From 57fd456ba4281b42eacae82d11927488bc0164a7 Mon Sep 17 00:00:00 2001 From: njdaoyehu Date: Wed, 8 Jan 2025 13:49:57 +0800 Subject: [PATCH] fixed --- .../dist/assets/Breadcrumb-241d4dce.js | 1 + .../dist/assets/DropMenuItem-ea8db23a.js | 1 + .../dist/assets/ErrorAction-c543d074.js | 1 + .../dist/assets/Exception-7cf14fef.js | 1 + .../dist/assets/InputNumberItem-92556698.js | 1 + .../dist/assets/LockModal-0cf56fb3.js | 1 + .../Embedded/dist/assets/LockPage-649852bd.js | 1 + .../dist/assets/SelectItem-b6bbeb2c.js | 1 + .../dist/assets/SettingFooter-72beec9a.js | 1 + .../dist/assets/SwitchItem-e816ab40.js | 1 + .../dist/assets/ThemeColorPicker-f906b84e.js | 1 + .../dist/assets/TypePicker-567499e2.js | 1 + .../Embedded/dist/assets/antd-eedb3ef5.js | 516 + .../dist/assets/authorityApi-323b0ce5.js | 1 + .../assets/copyTextToClipboard-96e9be8c.js | 1 + .../Embedded/dist/assets/detail-051eeade.js | 1 + .../Embedded/dist/assets/detail-13d6fddc.js | 1 + .../Embedded/dist/assets/detail-1e8c1678.js | 1 + .../Embedded/dist/assets/detail-1f6e90cd.css | 1 + .../Embedded/dist/assets/detail-3e8569aa.js | 1 + .../Embedded/dist/assets/detail-ede9e136.js | 1 + .../dist/assets/deviceApi-af691457.js | 1 + .../Embedded/dist/assets/drawer-170ccb98.js | 1 + .../Embedded/dist/assets/drawer-236fe6cc.js | 1 + .../Embedded/dist/assets/drawer-a273df39.css | 1 + .../Embedded/dist/assets/drawer-a27519c5.js | 1 + .../Embedded/dist/assets/drawer-a6f8c2fc.js | 1 + .../Embedded/dist/assets/drawer-a775275a.js | 1 + .../Embedded/dist/assets/drawer-a93dee93.js | 1 + .../Embedded/dist/assets/drawer-b5b146ff.css | 1 + .../Embedded/dist/assets/drawer-d8f88ec0.css | 1 + .../Embedded/dist/assets/drawer-ef4c8309.js | 1 + ...ue_type_script_setup_true_lang-1021b9c6.js | 1 + ...ue_type_script_setup_true_lang-b206d10f.js | 1 + ...ue_type_script_setup_true_lang-c5fbc028.js | 1 + ...ue_type_script_setup_true_lang-d0381ea7.js | 1 + .../Embedded/dist/assets/en-62bd803a.js | 1 + .../Embedded/dist/assets/index-05011eb9.css | 1 + .../Embedded/dist/assets/index-07b093f7.js | 1 + .../Embedded/dist/assets/index-17c9f9c0.css | 1 + .../Embedded/dist/assets/index-1adbc50a.js | 1 + .../Embedded/dist/assets/index-1ebc386f.js | 1 + .../Embedded/dist/assets/index-1faa983d.js | 1 + .../Embedded/dist/assets/index-248ee10e.js | 1 + .../Embedded/dist/assets/index-2883a0d6.css | 1 + .../Embedded/dist/assets/index-2c8532c7.js | 1 + .../Embedded/dist/assets/index-3ec4e6b2.js | 1 + .../Embedded/dist/assets/index-6255defe.js | 1 + .../Embedded/dist/assets/index-6f972d40.js | 1 + .../Embedded/dist/assets/index-81e00eda.js | 12 + .../Embedded/dist/assets/index-83b80289.js | 1 + .../Embedded/dist/assets/index-8c42ebd6.css | 1 + .../Embedded/dist/assets/index-8c5ac3df.css | 1 + .../Embedded/dist/assets/index-8e331aa4.js | 1 + .../Embedded/dist/assets/index-942f317f.js | 1 + .../Embedded/dist/assets/index-9a851ec7.js | 1 + .../Embedded/dist/assets/index-a17248e3.css | 1 + .../Embedded/dist/assets/index-b927c6db.css | 1 + .../Embedded/dist/assets/index-c1cedbf9.js | 1 + .../Embedded/dist/assets/index-c49b687f.js | 1 + .../Embedded/dist/assets/index-cb1b7a92.js | 1 + .../Embedded/dist/assets/index-ccf6944d.js | 1 + .../Embedded/dist/assets/index-df6647e6.js | 1 + .../Embedded/dist/assets/index-e60b7cd2.js | 1 + .../Embedded/dist/assets/index-e6731dea.css | 1 + .../Embedded/dist/assets/index-e73cf221.css | 1 + .../Embedded/dist/assets/index-f3708506.js | 1 + .../Embedded/dist/assets/index-fde1cef6.js | 1 + .../Embedded/dist/assets/modal-f0d4aa47.css | 1 + .../Embedded/dist/assets/modal-fe4687ff.js | 1 + .../Embedded/dist/assets/schema-f1b33936.js | 1 + .../Embedded/dist/assets/schema-f8c0dfeb.js | 1 + .../dist/assets/taskProgressApi-a25fdfc1.js | 1 + .../assets/useContentViewHeight-af1e3bfb.js | 1 + .../Embedded/dist/assets/useForm-df5105ea.js | 2 + .../Embedded/dist/assets/useTable-3e054214.js | 1 + .../dist/assets/useTable-91c68fcd.css | 1 + .../dist/assets/userAuthorityApi-e5a30d38.js | 1 + .../Embedded/dist/assets/zh_CN-f6d6458e.js | 1 + detect.gui/Embedded/dist/pdf.worker.mjs | 56979 ++++++++++++++++ 80 files changed, 57585 insertions(+) create mode 100644 detect.gui/Embedded/dist/assets/Breadcrumb-241d4dce.js create mode 100644 detect.gui/Embedded/dist/assets/DropMenuItem-ea8db23a.js create mode 100644 detect.gui/Embedded/dist/assets/ErrorAction-c543d074.js create mode 100644 detect.gui/Embedded/dist/assets/Exception-7cf14fef.js create mode 100644 detect.gui/Embedded/dist/assets/InputNumberItem-92556698.js create mode 100644 detect.gui/Embedded/dist/assets/LockModal-0cf56fb3.js create mode 100644 detect.gui/Embedded/dist/assets/LockPage-649852bd.js create mode 100644 detect.gui/Embedded/dist/assets/SelectItem-b6bbeb2c.js create mode 100644 detect.gui/Embedded/dist/assets/SettingFooter-72beec9a.js create mode 100644 detect.gui/Embedded/dist/assets/SwitchItem-e816ab40.js create mode 100644 detect.gui/Embedded/dist/assets/ThemeColorPicker-f906b84e.js create mode 100644 detect.gui/Embedded/dist/assets/TypePicker-567499e2.js create mode 100644 detect.gui/Embedded/dist/assets/antd-eedb3ef5.js create mode 100644 detect.gui/Embedded/dist/assets/authorityApi-323b0ce5.js create mode 100644 detect.gui/Embedded/dist/assets/copyTextToClipboard-96e9be8c.js create mode 100644 detect.gui/Embedded/dist/assets/detail-051eeade.js create mode 100644 detect.gui/Embedded/dist/assets/detail-13d6fddc.js create mode 100644 detect.gui/Embedded/dist/assets/detail-1e8c1678.js create mode 100644 detect.gui/Embedded/dist/assets/detail-1f6e90cd.css create mode 100644 detect.gui/Embedded/dist/assets/detail-3e8569aa.js create mode 100644 detect.gui/Embedded/dist/assets/detail-ede9e136.js create mode 100644 detect.gui/Embedded/dist/assets/deviceApi-af691457.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-170ccb98.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-236fe6cc.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-a273df39.css create mode 100644 detect.gui/Embedded/dist/assets/drawer-a27519c5.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-a6f8c2fc.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-a775275a.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-a93dee93.js create mode 100644 detect.gui/Embedded/dist/assets/drawer-b5b146ff.css create mode 100644 detect.gui/Embedded/dist/assets/drawer-d8f88ec0.css create mode 100644 detect.gui/Embedded/dist/assets/drawer-ef4c8309.js create mode 100644 detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js create mode 100644 detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-b206d10f.js create mode 100644 detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js create mode 100644 detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js create mode 100644 detect.gui/Embedded/dist/assets/en-62bd803a.js create mode 100644 detect.gui/Embedded/dist/assets/index-05011eb9.css create mode 100644 detect.gui/Embedded/dist/assets/index-07b093f7.js create mode 100644 detect.gui/Embedded/dist/assets/index-17c9f9c0.css create mode 100644 detect.gui/Embedded/dist/assets/index-1adbc50a.js create mode 100644 detect.gui/Embedded/dist/assets/index-1ebc386f.js create mode 100644 detect.gui/Embedded/dist/assets/index-1faa983d.js create mode 100644 detect.gui/Embedded/dist/assets/index-248ee10e.js create mode 100644 detect.gui/Embedded/dist/assets/index-2883a0d6.css create mode 100644 detect.gui/Embedded/dist/assets/index-2c8532c7.js create mode 100644 detect.gui/Embedded/dist/assets/index-3ec4e6b2.js create mode 100644 detect.gui/Embedded/dist/assets/index-6255defe.js create mode 100644 detect.gui/Embedded/dist/assets/index-6f972d40.js create mode 100644 detect.gui/Embedded/dist/assets/index-81e00eda.js create mode 100644 detect.gui/Embedded/dist/assets/index-83b80289.js create mode 100644 detect.gui/Embedded/dist/assets/index-8c42ebd6.css create mode 100644 detect.gui/Embedded/dist/assets/index-8c5ac3df.css create mode 100644 detect.gui/Embedded/dist/assets/index-8e331aa4.js create mode 100644 detect.gui/Embedded/dist/assets/index-942f317f.js create mode 100644 detect.gui/Embedded/dist/assets/index-9a851ec7.js create mode 100644 detect.gui/Embedded/dist/assets/index-a17248e3.css create mode 100644 detect.gui/Embedded/dist/assets/index-b927c6db.css create mode 100644 detect.gui/Embedded/dist/assets/index-c1cedbf9.js create mode 100644 detect.gui/Embedded/dist/assets/index-c49b687f.js create mode 100644 detect.gui/Embedded/dist/assets/index-cb1b7a92.js create mode 100644 detect.gui/Embedded/dist/assets/index-ccf6944d.js create mode 100644 detect.gui/Embedded/dist/assets/index-df6647e6.js create mode 100644 detect.gui/Embedded/dist/assets/index-e60b7cd2.js create mode 100644 detect.gui/Embedded/dist/assets/index-e6731dea.css create mode 100644 detect.gui/Embedded/dist/assets/index-e73cf221.css create mode 100644 detect.gui/Embedded/dist/assets/index-f3708506.js create mode 100644 detect.gui/Embedded/dist/assets/index-fde1cef6.js create mode 100644 detect.gui/Embedded/dist/assets/modal-f0d4aa47.css create mode 100644 detect.gui/Embedded/dist/assets/modal-fe4687ff.js create mode 100644 detect.gui/Embedded/dist/assets/schema-f1b33936.js create mode 100644 detect.gui/Embedded/dist/assets/schema-f8c0dfeb.js create mode 100644 detect.gui/Embedded/dist/assets/taskProgressApi-a25fdfc1.js create mode 100644 detect.gui/Embedded/dist/assets/useContentViewHeight-af1e3bfb.js create mode 100644 detect.gui/Embedded/dist/assets/useForm-df5105ea.js create mode 100644 detect.gui/Embedded/dist/assets/useTable-3e054214.js create mode 100644 detect.gui/Embedded/dist/assets/useTable-91c68fcd.css create mode 100644 detect.gui/Embedded/dist/assets/userAuthorityApi-e5a30d38.js create mode 100644 detect.gui/Embedded/dist/assets/zh_CN-f6d6458e.js create mode 100644 detect.gui/Embedded/dist/pdf.worker.mjs diff --git a/detect.gui/Embedded/dist/assets/Breadcrumb-241d4dce.js b/detect.gui/Embedded/dist/assets/Breadcrumb-241d4dce.js new file mode 100644 index 0000000..db2497c --- /dev/null +++ b/detect.gui/Embedded/dist/assets/Breadcrumb-241d4dce.js @@ -0,0 +1 @@ +var V=Object.defineProperty,G=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var M=(e,t,r)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,C=(e,t)=>{for(var r in t||(t={}))L.call(t,r)&&M(e,r,t[r]);if($)for(var r of $(t))O.call(t,r)&&M(e,r,t[r]);return e},B=(e,t)=>G(e,T(t));var P=(e,t,r)=>new Promise((h,d)=>{var g=l=>{try{f(r.next(l))}catch(c){d(c)}},p=l=>{try{f(r.throw(l))}catch(c){d(c)}},f=l=>l.done?h(l.value):Promise.resolve(l.value).then(g,p);f((r=r.apply(e,t)).next())});import{d as z,f as Y,S as Z,h as j,Z as _,_ as E,k as q,a5 as S,a1 as F,a6 as I,a4 as w,a8 as H,a0 as A,G as J}from"./vue-72a104e4.js";import{I as K,p as Q,u as U,B as W,k as X,v as x,i as ee,R as te,a1 as ne,G as ae,aV as re,_ as se}from"./index.js";import{aY as D}from"./antd-eedb3ef5.js";const oe=z({name:"LayoutBreadcrumb",components:{Icon:K,[D.name]:D},props:{theme:Q.oneOf(["dark","light"])},setup(){const e=Y([]),{currentRoute:t}=Z(),{prefixCls:r}=U("layout-breadcrumb"),{getShowBreadCrumbIcon:h}=W(),d=X(),{t:g}=x();j(()=>P(this,null,function*(){var k,y,R;if(t.value.name===te)return;const s=yield ne(),n=t.value.matched,a=n==null?void 0:n[n.length-1];let o=t.value.path;a&&((k=a==null?void 0:a.meta)!=null&&k.currentActiveMenu)&&(o=a.meta.currentActiveMenu);const u=ae(s,o),m=s.filter(N=>N.path===u[0]),i=p(m,u);if(!i||i.length===0)return;const b=f(i);(y=t.value.meta)!=null&&y.currentActiveMenu&&b.push(B(C({},t.value),{name:((R=t.value.meta)==null?void 0:R.title)||t.value.name})),e.value=b}));function p(s,n){const a=[];return s.forEach(o=>{var u,m;n.includes(o.path)&&a.push(B(C({},o),{name:((u=o.meta)==null?void 0:u.title)||o.name})),(m=o.children)!=null&&m.length&&a.push(...p(o.children,n))}),a}function f(s){return re(s,n=>{const{meta:a,name:o}=n;if(!a)return!!o;const{title:u,hideBreadcrumb:m,hideMenu:i}=a;return!(!u||m||i)}).filter(n=>{var a;return!((a=n.meta)!=null&&a.hideBreadcrumb)})}function l(s,n,a){a==null||a.preventDefault();const{children:o,redirect:u,meta:m}=s;if(o!=null&&o.length&&!u){a==null||a.stopPropagation();return}if(!(m!=null&&m.carryParam))if(u&&ee(u))d(u);else{let i="";n.length===1?i=n[0]:i=`${n.slice(1).pop()||""}`,i=/^\//.test(i)?i:`/${i}`,d(i)}}function c(s,n){return s.indexOf(n)!==s.length-1}function v(s){var n;return s.icon||((n=s.meta)==null?void 0:n.icon)}return{routes:e,t:g,prefixCls:r,getIcon:v,getShowBreadCrumbIcon:h,handleClick:l,hasRedirect:c}}});const ce={key:1};function ie(e,t,r,h,d,g){const p=I("Icon"),f=I("router-link"),l=I("a-breadcrumb");return _(),E("div",{class:F([e.prefixCls,`${e.prefixCls}--${e.theme}`])},[q(l,{routes:e.routes},{itemRender:S(({route:c,routes:v,paths:s})=>[e.getShowBreadCrumbIcon&&e.getIcon(c)?(_(),w(p,{key:0,icon:e.getIcon(c)},null,8,["icon"])):H("",!0),e.hasRedirect(v,c)?(_(),w(f,{key:2,to:"",onClick:n=>e.handleClick(c,s,n)},{default:S(()=>[J(A(e.t(c.name||c.meta.title)),1)]),_:2},1032,["onClick"])):(_(),E("span",ce,A(e.t(c.name||c.meta.title)),1))]),_:1},8,["routes"])],2)}const de=se(oe,[["render",ie]]);export{de as default}; diff --git a/detect.gui/Embedded/dist/assets/DropMenuItem-ea8db23a.js b/detect.gui/Embedded/dist/assets/DropMenuItem-ea8db23a.js new file mode 100644 index 0000000..5d665f3 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/DropMenuItem-ea8db23a.js @@ -0,0 +1 @@ +import{I as i,p as s,_ as u}from"./index.js";import{q as d}from"./antd-eedb3ef5.js";import{d as l,g as _,c as f,Z as I,a4 as y,a5 as k,a6 as a,$ as r,k as g,a0 as M}from"./vue-72a104e4.js";const $=l({name:"DropdownMenuItem",components:{MenuItem:d.Item,Icon:i},props:{key:s.string,text:s.string,icon:s.string},setup(e){const n=_();return{itemKey:f(()=>{var t,o;return e.key||((o=(t=n==null?void 0:n.vnode)==null?void 0:t.props)==null?void 0:o.key)})}}}),x={class:"flex items-center"};function C(e,n,c,t,o,h){const p=a("Icon"),m=a("MenuItem");return I(),y(m,{key:e.itemKey},{default:k(()=>[r("span",x,[g(p,{icon:e.icon,class:"mr-1"},null,8,["icon"]),r("span",null,M(e.text),1)])]),_:1})}const v=u($,[["render",C]]);export{v as default}; diff --git a/detect.gui/Embedded/dist/assets/ErrorAction-c543d074.js b/detect.gui/Embedded/dist/assets/ErrorAction-c543d074.js new file mode 100644 index 0000000..937d168 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/ErrorAction-c543d074.js @@ -0,0 +1 @@ +import{I as l,ba as m,v as d,x as _,_ as f}from"./index.js";import{d as g,S as E,c as C,Z as L,a4 as h,a5 as a,a6 as e,k as c}from"./vue-72a104e4.js";import{T,av as k}from"./antd-eedb3ef5.js";const B=g({name:"ErrorAction",components:{Icon:l,Tooltip:T,Badge:k},setup(){const{t:o}=d(),{push:n}=E(),t=m(),r=C(()=>t.getErrorLogListCount);function s(){n(_.ERROR_LOG_PAGE).then(()=>{t.setErrorLogListCount(0)})}return{t:o,getCount:r,handleToErrorList:s}}});function I(o,n,t,r,s,v){const u=e("Icon"),i=e("Badge"),p=e("Tooltip");return L(),h(p,{title:o.t("layout.header.tooltipErrorLog"),placement:"bottom",mouseEnterDelay:.5,onClick:o.handleToErrorList},{default:a(()=>[c(i,{count:o.getCount,offset:[0,10],overflowCount:99},{default:a(()=>[c(u,{icon:"ion:bug-outline"})]),_:1},8,["count"])]),_:1},8,["title","onClick"])}const A=f(B,[["render",I]]);export{A as default}; diff --git a/detect.gui/Embedded/dist/assets/Exception-7cf14fef.js b/detect.gui/Embedded/dist/assets/Exception-7cf14fef.js new file mode 100644 index 0000000..38ad0dc --- /dev/null +++ b/detect.gui/Embedded/dist/assets/Exception-7cf14fef.js @@ -0,0 +1 @@ +import{E as e,k as R,t as N,v as O,u as S,x as m}from"./index.js";import{d as A,f as k,ai as G,c as _,u as s,k as r}from"./vue-72a104e4.js";import{B as h,X as P}from"./antd-eedb3ef5.js";const v=""+new URL("no-data-f7e550cc.svg",import.meta.url).href,C=""+new URL("net-error-61b7e6df.svg",import.meta.url).href,B=A({name:"ErrorPage",props:{status:{type:Number,default:e.PAGE_NOT_FOUND},title:{type:String,default:""},subTitle:{type:String,default:""},full:{type:Boolean,default:!1}},setup(n){const o=k(new Map),{query:p}=G(),a=R(),c=N(),{t}=O(),{prefixCls:d}=S("app-exception-page"),x=_(()=>{const{status:l}=p,{status:i}=n;return Number(l)||i}),E=_(()=>s(o).get(s(x))),T=t("sys.exception.backLogin"),u=t("sys.exception.backHome");return s(o).set(e.PAGE_NOT_ACCESS,{title:"403",status:`${e.PAGE_NOT_ACCESS}`,subTitle:t("sys.exception.subTitle403"),btnText:n.full?T:u,handler:()=>n.full?a(m.BASE_LOGIN):a()}),s(o).set(e.PAGE_NOT_FOUND,{title:"404",status:`${e.PAGE_NOT_FOUND}`,subTitle:t("sys.exception.subTitle404"),btnText:n.full?T:u,handler:()=>n.full?a(m.BASE_LOGIN):a()}),s(o).set(e.ERROR,{title:"500",status:`${e.ERROR}`,subTitle:t("sys.exception.subTitle500"),btnText:u,handler:()=>a()}),s(o).set(e.PAGE_NOT_DATA,{title:t("sys.exception.noDataTitle"),subTitle:"",btnText:t("common.redo"),handler:()=>c(),icon:v}),s(o).set(e.NET_WORK_ERROR,{title:t("sys.exception.networkErrorTitle"),subTitle:t("sys.exception.networkErrorSubTitle"),btnText:t("common.redo"),handler:()=>c(),icon:C}),()=>{const{title:l,subTitle:i,btnText:b,icon:f,handler:g,status:y}=s(E)||{};return r(P,{class:d,status:y,title:n.title||l,"sub-title":n.subTitle||i},{extra:()=>b&&r(h,{type:"primary",onClick:g},{default:()=>b}),icon:()=>f?r("img",{src:f},null):null})}}});export{B as default}; diff --git a/detect.gui/Embedded/dist/assets/InputNumberItem-92556698.js b/detect.gui/Embedded/dist/assets/InputNumberItem-92556698.js new file mode 100644 index 0000000..920c63f --- /dev/null +++ b/detect.gui/Embedded/dist/assets/InputNumberItem-92556698.js @@ -0,0 +1 @@ +import{u as r,_ as o}from"./index.js";import{b as p}from"./index-8e331aa4.js";import{d as m,Z as i,_ as u,$ as l,a0 as c,k as _,a9 as d,a1 as f,a6 as b}from"./vue-72a104e4.js";import{ae as g}from"./antd-eedb3ef5.js";import"./index-e60b7cd2.js";import"./index-07b093f7.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const C=m({name:"InputNumberItem",components:{InputNumber:g},props:{event:{type:Number},title:{type:String}},setup(e){const{prefixCls:t}=r("setting-input-number-item");function n(s){e.event&&p(e.event,s)}return{prefixCls:t,handleChange:n}}});function I(e,t,n,s,N,v){const a=b("InputNumber");return i(),u("div",{class:f(e.prefixCls)},[l("span",null,c(e.title),1),_(a,d(e.$attrs,{size:"small",class:`${e.prefixCls}-input-number`,onChange:e.handleChange}),null,16,["class","onChange"])],2)}const H=o(C,[["render",I],["__scopeId","data-v-7ccf252c"]]);export{H as default}; diff --git a/detect.gui/Embedded/dist/assets/LockModal-0cf56fb3.js b/detect.gui/Embedded/dist/assets/LockModal-0cf56fb3.js new file mode 100644 index 0000000..85565bc --- /dev/null +++ b/detect.gui/Embedded/dist/assets/LockModal-0cf56fb3.js @@ -0,0 +1 @@ +var f=(e,d,o)=>new Promise((p,r)=>{var m=s=>{try{a(o.next(s))}catch(n){r(n)}},t=s=>{try{a(o.throw(s))}catch(n){r(n)}},a=s=>s.done?p(s.value):Promise.resolve(s.value).then(m,t);a((o=o.apply(e,d)).next())});import{u as $,am as w,v as y,_ as F}from"./index.js";import{B as L,a as M}from"./index-ccf6944d.js";import{B as S,u as I}from"./useForm-df5105ea.js";import{u as N}from"./lock-ba03254e.js";import{h as R}from"./header-b90f4bbc.js";import{d as b,c as _,Z as P,a4 as U,a5 as g,a9 as V,a6 as u,$ as c,a1 as i,a0 as k,k as h,G as D}from"./vue-72a104e4.js";import"./antd-eedb3ef5.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";const G=b({name:"LockModal",components:{BasicModal:L,BasicForm:S},setup(){const{t:e}=y(),{prefixCls:d}=$("header-lock-modal"),o=w(),p=N(),r=_(()=>{var l;return(l=o.getUserInfo)==null?void 0:l.realName}),[m,{closeModal:t}]=M(),[a,{validateFields:s,resetFields:n}]=I({showActionButtonGroup:!1,schemas:[{field:"password",label:e("layout.header.lockScreenPassword"),colProps:{span:24},component:"InputPassword",required:!0}]});function v(){return f(this,null,function*(){const C=(yield s()).password;t(),p.setLockInfo({isLock:!0,pwd:C}),yield n()})}const B=_(()=>{const{avatar:l}=o.getUserInfo;return l||R});return{t:e,prefixCls:d,getRealName:r,register:m,registerForm:a,handleLock:v,avatar:B}}});const q=["src"];function z(e,d,o,p,r,m){const t=u("BasicForm"),a=u("a-button"),s=u("BasicModal");return P(),U(s,V({footer:null,title:e.t("layout.header.lockScreen")},e.$attrs,{class:e.prefixCls,onRegister:e.register}),{default:g(()=>[c("div",{class:i(`${e.prefixCls}__entry`)},[c("div",{class:i(`${e.prefixCls}__header`)},[c("img",{src:e.avatar,class:i(`${e.prefixCls}__header-img`)},null,10,q),c("p",{class:i(`${e.prefixCls}__header-name`)},k(e.getRealName),3)],2),h(t,{onRegister:e.registerForm},null,8,["onRegister"]),c("div",{class:i(`${e.prefixCls}__footer`)},[h(a,{type:"primary",block:"",class:"mt-2",onClick:e.handleLock},{default:g(()=>[D(k(e.t("layout.header.lockScreenBtn")),1)]),_:1},8,["onClick"])],2)],2)]),_:1},16,["title","class","onRegister"])}const W=F(G,[["render",z]]);export{W as default}; diff --git a/detect.gui/Embedded/dist/assets/LockPage-649852bd.js b/detect.gui/Embedded/dist/assets/LockPage-649852bd.js new file mode 100644 index 0000000..4b36a3c --- /dev/null +++ b/detect.gui/Embedded/dist/assets/LockPage-649852bd.js @@ -0,0 +1 @@ +var q=Object.defineProperty,E=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var P=(l,a,e)=>a in l?q(l,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[a]=e,U=(l,a)=>{for(var e in a||(a={}))G.call(a,e)&&P(l,e,a[e]);if(N)for(var e of N(a))R.call(a,e)&&P(l,e,a[e]);return l},z=(l,a)=>E(l,F(a));var D=(l,a,e)=>new Promise((i,m)=>{var u=r=>{try{f(e.next(r))}catch(_){m(_)}},s=r=>{try{f(e.throw(r))}catch(_){m(_)}},f=r=>r.done?i(r.value):Promise.resolve(r.value).then(u,s);f((e=e.apply(l,a)).next())});import{r as Z,I as J,d as K,f as k,c as Q,a6 as W,Z as V,_ as j,m as h,A as g,$ as n,k as p,u as t,a0 as o,a1 as c,a5 as w,a8 as X,G as b,q as Y}from"./vue-72a104e4.js";import{an as ee,ao as te,ap as se,u as ae,am as ne,v as oe,_ as le}from"./index.js";import{u as re}from"./lock-ba03254e.js";import{h as ce}from"./header-b90f4bbc.js";import{w as ie,aa as ue}from"./antd-eedb3ef5.js";function de(l=!0){let a;const e=Z({year:0,month:0,week:"",day:0,hour:"",minute:"",second:0,meridiem:""}),i=()=>{const s=se(),f=s.format("HH"),r=s.format("mm"),_=s.get("s");e.year=s.get("y"),e.month=s.get("M")+1,e.week="星期"+["日","一","二","三","四","五","六"][s.day()],e.day=s.get("date"),e.hour=f,e.minute=r,e.second=_,e.meridiem=s.format("A")};function m(){i(),clearInterval(a),a=setInterval(()=>i(),1e3)}function u(){clearInterval(a)}return ee(()=>{l&&m()}),te(()=>{u()}),z(U({},J(e)),{start:m,stop:u})}const me={class:"flex w-screen h-screen justify-center items-center"},fe=["src"],_e={class:"absolute bottom-5 w-full text-gray-300 xl:text-xl 2xl:text-3xl text-center enter-y"},ve={class:"text-5xl mb-4 enter-x"},pe={class:"text-3xl"},xe={class:"text-2xl"},ye=K({__name:"LockPage",setup(l){const a=ie.Password,e=k(""),i=k(!1),m=k(!1),u=k(!0),{prefixCls:s}=ae("lock-page"),f=re(),r=ne(),{hour:_,month:B,minute:I,meridiem:C,year:M,day:O,week:T}=de(!0),{t:v}=oe(),L=Q(()=>r.getUserInfo||{});function A(){return D(this,null,function*(){if(!e.value)return;let x=e.value;try{i.value=!0;const d=yield f.unLock(x);m.value=!d}finally{i.value=!1}})}function H(){r.logout(!0),f.resetLockInfo()}function S(x=!1){u.value=x}return(x,d)=>{const $=W("a-button");return V(),j("div",{class:c([t(s),"fixed inset-0 flex h-screen w-screen bg-black items-center justify-center"])},[h(n("div",{class:c([`${t(s)}__unlock`,"absolute top-0 left-1/2 flex pt-5 h-16 items-center justify-center sm:text-md xl:text-xl text-white flex-col cursor-pointer transform translate-x-1/2"]),onClick:d[0]||(d[0]=y=>S(!1))},[p(t(ue)),n("span",null,o(t(v)("sys.lock.unlock")),1)],2),[[g,u.value]]),n("div",me,[n("div",{class:c([`${t(s)}__hour`,"relative mr-5 md:mr-20 w-2/5 h-2/5 md:h-4/5"])},[n("span",null,o(t(_)),1),h(n("span",{class:"meridiem absolute left-5 top-5 text-md xl:text-xl"},o(t(C)),513),[[g,u.value]])],2),n("div",{class:c(`${t(s)}__minute w-2/5 h-2/5 md:h-4/5 `)},[n("span",null,o(t(I)),1)],2)]),p(Y,{name:"fade-slide"},{default:w(()=>[h(n("div",{class:c(`${t(s)}-entry`)},[n("div",{class:c(`${t(s)}-entry-content`)},[n("div",{class:c(`${t(s)}-entry__header enter-x`)},[n("img",{src:L.value.avatar||t(ce),class:c(`${t(s)}-entry__header-img`)},null,10,fe),n("p",{class:c(`${t(s)}-entry__header-name`)},o(L.value.realName),3)],2),p(t(a),{placeholder:t(v)("sys.lock.placeholder"),class:"enter-x",value:e.value,"onUpdate:value":d[1]||(d[1]=y=>e.value=y)},null,8,["placeholder","value"]),m.value?(V(),j("span",{key:0,class:c(`${t(s)}-entry__err-msg enter-x`)},o(t(v)("sys.lock.alert")),3)):X("",!0),n("div",{class:c(`${t(s)}-entry__footer enter-x`)},[p($,{type:"link",size:"small",class:"mt-2 mr-2 enter-x",disabled:i.value,onClick:d[2]||(d[2]=y=>S(!0))},{default:w(()=>[b(o(t(v)("common.back")),1)]),_:1},8,["disabled"]),p($,{type:"link",size:"small",class:"mt-2 mr-2 enter-x",disabled:i.value,onClick:H},{default:w(()=>[b(o(t(v)("sys.lock.backToLogin")),1)]),_:1},8,["disabled"]),p($,{class:"mt-2",type:"link",size:"small",onClick:d[3]||(d[3]=y=>A()),loading:i.value},{default:w(()=>[b(o(t(v)("sys.lock.entry")),1)]),_:1},8,["loading"])],2)],2)],2),[[g,!u.value]])]),_:1}),n("div",_e,[h(n("div",ve,[b(o(t(_))+":"+o(t(I))+" ",1),n("span",pe,o(t(C)),1)],512),[[g,!u.value]]),n("div",xe,o(t(M))+"/"+o(t(B))+"/"+o(t(O))+" "+o(t(T)),1)])],2)}}});const Ie=le(ye,[["__scopeId","data-v-2d9ecb11"]]);export{Ie as default}; diff --git a/detect.gui/Embedded/dist/assets/SelectItem-b6bbeb2c.js b/detect.gui/Embedded/dist/assets/SelectItem-b6bbeb2c.js new file mode 100644 index 0000000..6186be1 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/SelectItem-b6bbeb2c.js @@ -0,0 +1 @@ +import{u as l,_ as i}from"./index.js";import{b as r}from"./index-8e331aa4.js";import{d,c as p,Z as m,_ as c,$ as u,a0 as f,k as _,a9 as g,a1 as y,a6 as C}from"./vue-72a104e4.js";import{af as S}from"./antd-eedb3ef5.js";import"./index-e60b7cd2.js";import"./index-07b093f7.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const b=d({name:"SelectItem",components:{Select:S},props:{event:{type:Number},disabled:{type:Boolean},title:{type:String},def:{type:[String,Number]},initValue:{type:[String,Number]},options:{type:Array,default:()=>[]}},setup(e){const{prefixCls:t}=l("setting-select-item"),a=p(()=>e.def?{value:e.def,defaultValue:e.initValue||e.def}:{});function n(s){e.event&&r(e.event,s)}return{prefixCls:t,handleChange:n,getBindValue:a}}});function v(e,t,a,n,s,h){const o=C("Select");return m(),c("div",{class:y(e.prefixCls)},[u("span",null,f(e.title),1),_(o,g(e.getBindValue,{class:`${e.prefixCls}-select`,onChange:e.handleChange,disabled:e.disabled,size:"small",options:e.options}),null,16,["class","onChange","disabled","options"])],2)}const P=i(b,[["render",v],["__scopeId","data-v-d811fa90"]]);export{P as default}; diff --git a/detect.gui/Embedded/dist/assets/SettingFooter-72beec9a.js b/detect.gui/Embedded/dist/assets/SettingFooter-72beec9a.js new file mode 100644 index 0000000..184ef96 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/SettingFooter-72beec9a.js @@ -0,0 +1 @@ +import{Y as y,u as k,ag as b,am as h,A as O,v as R,ak as f,b4 as v,b5 as M,b6 as A,q as B,_ as T}from"./index.js";import{c as $}from"./copyTextToClipboard-96e9be8c.js";import{b1 as x,a6 as F}from"./antd-eedb3ef5.js";import{d as N,u as P,Z as j,_ as w,k as o,a5 as c,a1 as D,a6 as i,G as u,a0 as d}from"./vue-72a104e4.js";const G=N({name:"SettingFooter",components:{CopyOutlined:x,RedoOutlined:F},setup(){const e=y(),{prefixCls:p}=k("setting-footer"),{t:s}=R(),{createSuccessModal:g,createMessage:a}=B(),m=b(),r=h(),t=O();function n(){$(JSON.stringify(P(t.getProjectConfig),null,2),null),g({title:s("layout.setting.operatingTitle"),content:s("layout.setting.operatingContent")})}function C(){try{t.setProjectConfig(f);const{colorWeak:l,grayMode:S}=f;v(),M(l),A(S),a.success(s("layout.setting.resetSuccess"))}catch(l){a.error(l)}}function _(){localStorage.clear(),t.resetAllState(),e.resetState(),m.resetState(),r.resetState(),location.reload()}return{prefixCls:p,t:s,handleCopy:n,handleResetSetting:C,handleClearAndRedo:_}}});function I(e,p,s,g,a,m){const r=i("CopyOutlined"),t=i("a-button"),n=i("RedoOutlined");return j(),w("div",{class:D(e.prefixCls)},[o(t,{type:"primary",block:"",onClick:e.handleCopy},{default:c(()=>[o(r,{class:"mr-2"}),u(" "+d(e.t("layout.setting.copyBtn")),1)]),_:1},8,["onClick"]),o(t,{color:"warning",block:"",onClick:e.handleResetSetting,class:"my-3"},{default:c(()=>[o(n,{class:"mr-2"}),u(" "+d(e.t("common.resetText")),1)]),_:1},8,["onClick"]),o(t,{color:"error",block:"",onClick:e.handleClearAndRedo},{default:c(()=>[o(n,{class:"mr-2"}),u(" "+d(e.t("layout.setting.clearBtn")),1)]),_:1},8,["onClick"])],2)}const E=T(G,[["render",I],["__scopeId","data-v-40d284fb"]]);export{E as default}; diff --git a/detect.gui/Embedded/dist/assets/SwitchItem-e816ab40.js b/detect.gui/Embedded/dist/assets/SwitchItem-e816ab40.js new file mode 100644 index 0000000..92b66b4 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/SwitchItem-e816ab40.js @@ -0,0 +1 @@ +import{u as r,v as d,_ as l}from"./index.js";import{b as c}from"./index-8e331aa4.js";import{d as p,c as m,Z as h,_ as u,$ as f,a0 as _,k as C,a9 as g,a1 as b,a6 as v}from"./vue-72a104e4.js";import{ah as y}from"./antd-eedb3ef5.js";import"./index-e60b7cd2.js";import"./index-07b093f7.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const k=p({name:"SwitchItem",components:{Switch:y},props:{event:{type:Number},disabled:{type:Boolean},title:{type:String},def:{type:Boolean}},setup(e){const{prefixCls:t}=r("setting-switch-item"),{t:n}=d(),a=m(()=>e.def?{checked:e.def}:{});function o(s){e.event&&c(e.event,s)}return{prefixCls:t,t:n,handleChange:o,getBindValue:a}}});function S(e,t,n,a,o,s){const i=v("Switch");return h(),u("div",{class:b(e.prefixCls)},[f("span",null,_(e.title),1),C(i,g(e.getBindValue,{onChange:e.handleChange,disabled:e.disabled,checkedChildren:e.t("layout.setting.on"),unCheckedChildren:e.t("layout.setting.off")}),null,16,["onChange","disabled","checkedChildren","unCheckedChildren"])],2)}const Z=l(k,[["render",S],["__scopeId","data-v-0f0bf616"]]);export{Z as default}; diff --git a/detect.gui/Embedded/dist/assets/ThemeColorPicker-f906b84e.js b/detect.gui/Embedded/dist/assets/ThemeColorPicker-f906b84e.js new file mode 100644 index 0000000..e498aa1 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/ThemeColorPicker-f906b84e.js @@ -0,0 +1 @@ +import{u as m,_ as p}from"./index.js";import{b as c}from"./index-8e331aa4.js";import{d,Z as n,_ as r,F as u,a7 as _,a1 as a,a6 as f,ad as C,k}from"./vue-72a104e4.js";import{am as h}from"./antd-eedb3ef5.js";import"./index-e60b7cd2.js";import"./index-07b093f7.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const v=d({name:"ThemeColorPicker",components:{CheckOutlined:h},props:{colorList:{type:Array,default:()=>[]},event:{type:Number},def:{type:String}},setup(e){const{prefixCls:o}=m("setting-theme-picker");function s(i){e.event&&c(e.event,i)}return{prefixCls:o,handleClick:s}}});const y=["onClick"];function $(e,o,s,i,g,b){const l=f("CheckOutlined");return n(),r("div",{class:a(e.prefixCls)},[(n(!0),r(u,null,_(e.colorList||[],t=>(n(),r("span",{key:t,onClick:L=>e.handleClick(t),class:a([`${e.prefixCls}__item`,{[`${e.prefixCls}__item--active`]:e.def===t}]),style:C({background:t})},[k(l)],14,y))),128))],2)}const E=p(v,[["render",$]]);export{E as default}; diff --git a/detect.gui/Embedded/dist/assets/TypePicker-567499e2.js b/detect.gui/Embedded/dist/assets/TypePicker-567499e2.js new file mode 100644 index 0000000..06fef54 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/TypePicker-567499e2.js @@ -0,0 +1 @@ +import{u as p,_ as l}from"./index.js";import{d,Z as s,_ as a,F as c,a7 as u,a1 as o,a6 as _,a4 as f,a5 as m,$ as r}from"./vue-72a104e4.js";import{T as y}from"./antd-eedb3ef5.js";const C=d({name:"MenuTypePicker",components:{Tooltip:y},props:{menuTypeList:{type:Array,default:()=>[]},handler:{type:Function,default:()=>({})},def:{type:String,default:""}},setup(){const{prefixCls:e}=p("setting-menu-type-picker");return{prefixCls:e}}});const k=["onClick"];function $(e,n,v,T,g,b){const i=_("Tooltip");return s(),a("div",{class:o(e.prefixCls)},[(s(!0),a(c,null,u(e.menuTypeList||[],t=>(s(),f(i,{key:t.title,title:t.title,placement:"bottom"},{default:m(()=>[r("div",{onClick:x=>e.handler(t),class:o([`${e.prefixCls}__item`,`${e.prefixCls}__item--${t.type}`,{[`${e.prefixCls}__item--active`]:e.def===t.type}])},n[0]||(n[0]=[r("div",{class:"mix-sidebar"},null,-1)]),10,k)]),_:2},1032,["title"]))),128))],2)}const L=l(C,[["render",$],["__scopeId","data-v-e25c4abd"]]);export{L as default}; diff --git a/detect.gui/Embedded/dist/assets/antd-eedb3ef5.js b/detect.gui/Embedded/dist/assets/antd-eedb3ef5.js new file mode 100644 index 0000000..751f1f9 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/antd-eedb3ef5.js @@ -0,0 +1,516 @@ +import{F as qe,i as tn,C as eC,T as lc,d as te,r as vt,g as wn,o as Ve,a as Co,b as Bn,w as ue,c as P,e as Ke,p as We,f as ee,u as Vt,s as q,h as ke,j as Ze,t as tC,k as f,l as sr,m as cn,n as H6,q as Jt,v as bo,x as cr,y as ot,z as Ne,A as yn,B as qh,D as Vp,E as Wp,G as ko,H as nC,I as Nr,J as Tt,K as j6,L as Kp,M as V6,N as W6,O as ac,P as Gp,Q as K6,R as G6}from"./vue-72a104e4.js";var X6=typeof global=="object"&&global&&global.Object===Object&&global;const oC=X6;var U6=typeof self=="object"&&self&&self.Object===Object&&self,Y6=oC||U6||Function("return this")();const co=Y6;var q6=co.Symbol;const Gn=q6;var rC=Object.prototype,Q6=rC.hasOwnProperty,Z6=rC.toString,fa=Gn?Gn.toStringTag:void 0;function J6(e){var t=Q6.call(e,fa),n=e[fa];try{e[fa]=void 0;var o=!0}catch(l){}var r=Z6.call(e);return o&&(t?e[fa]=n:delete e[fa]),r}var e8=Object.prototype,t8=e8.toString;function n8(e){return t8.call(e)}var o8="[object Null]",r8="[object Undefined]",Qh=Gn?Gn.toStringTag:void 0;function jo(e){return e==null?e===void 0?r8:o8:Qh&&Qh in Object(e)?J6(e):n8(e)}function Xn(e){return e!=null&&typeof e=="object"}var l8="[object Symbol]";function ic(e){return typeof e=="symbol"||Xn(e)&&jo(e)==l8}function Gl(e,t){for(var n=-1,o=e==null?0:e.length,r=Array(o);++n0){if(++t>=H8)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function K8(e){return function(){return e}}var G8=function(){try{var e=qr(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();const Is=G8;var X8=Is?function(e,t){return Is(e,"toString",{configurable:!0,enumerable:!1,value:K8(t),writable:!0})}:Xp;const U8=X8;var Y8=W8(U8);const iC=Y8;function q8(e,t){for(var n=-1,o=e==null?0:e.length;++n-1}var e5=9007199254740991,t5=/^(?:0|[1-9]\d*)$/;function sc(e,t){var n=typeof e;return t=t==null?e5:t,!!t&&(n=="number"||n!="symbol"&&t5.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=r5}function Qr(e){return e!=null&&Zp(e.length)&&!Up(e)}function l5(e,t,n){if(!$n(n))return!1;var o=typeof t;return(o=="number"?Qr(n)&&sc(t,n.length):o=="string"&&t in n)?li(n[t],e):!1}function uC(e){return ai(function(t,n){var o=-1,r=n.length,l=r>1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(l=e.length>3&&typeof l=="function"?(r--,l):void 0,a&&l5(n[0],n[1],a)&&(l=r<3?void 0:l,r=1),t=Object(t);++o-1}function $P(e,t){var n=this.__data__,o=dc(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function Vo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(i)?t>1?vc(i,t-1,n,o,r):tv(r,i):o||(r[r.length]=i)}return r}function kP(e){var t=e==null?0:e.length;return t?vc(e,1):[]}function bC(e){return iC(cC(e,void 0,kP),e+"")}var LP=gC(Object.getPrototypeOf,Object);const nv=LP;var zP="[object Object]",HP=Function.prototype,jP=Object.prototype,yC=HP.toString,VP=jP.hasOwnProperty,WP=yC.call(Object);function gc(e){if(!Xn(e)||jo(e)!=zP)return!1;var t=nv(e);if(t===null)return!0;var n=VP.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&yC.call(n)==WP}function $C(e,t,n){var o=-1,r=e.length;t<0&&(t=-t>r?0:r+t),n=n>r?r:n,n<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var l=Array(r);++o=o?e:$C(e,t,n)}var GP="\\ud800-\\udfff",XP="\\u0300-\\u036f",UP="\\ufe20-\\ufe2f",YP="\\u20d0-\\u20ff",qP=XP+UP+YP,QP="\\ufe0e\\ufe0f",ZP="\\u200d",JP=RegExp("["+ZP+GP+qP+QP+"]");function SC(e){return JP.test(e)}function e7(e){return e.split("")}var CC="\\ud800-\\udfff",t7="\\u0300-\\u036f",n7="\\ufe20-\\ufe2f",o7="\\u20d0-\\u20ff",r7=t7+n7+o7,l7="\\ufe0e\\ufe0f",a7="["+CC+"]",Jd="["+r7+"]",ef="\\ud83c[\\udffb-\\udfff]",i7="(?:"+Jd+"|"+ef+")",xC="[^"+CC+"]",wC="(?:\\ud83c[\\udde6-\\uddff]){2}",OC="[\\ud800-\\udbff][\\udc00-\\udfff]",s7="\\u200d",PC=i7+"?",IC="["+l7+"]?",c7="(?:"+s7+"(?:"+[xC,wC,OC].join("|")+")"+IC+PC+")*",u7=IC+PC+c7,d7="(?:"+[xC+Jd+"?",Jd,wC,OC,a7].join("|")+")",f7=RegExp(ef+"(?="+ef+")|"+d7+u7,"g");function p7(e){return e.match(f7)||[]}function v7(e){return SC(e)?p7(e):e7(e)}function g7(e){return function(t){t=hC(t);var n=SC(t)?v7(t):void 0,o=n?n[0]:t.charAt(0),r=n?KP(n,1).join(""):t.slice(1);return o[e]()+r}}var m7=g7("toUpperCase");const ule=m7;function h7(){this.__data__=new Vo,this.size=0}function b7(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function y7(e){return this.__data__.get(e)}function $7(e){return this.__data__.has(e)}var S7=200;function C7(e,t){var n=this.__data__;if(n instanceof Vo){var o=n.__data__;if(!ja||o.lengthi))return!1;var u=l.get(e),c=l.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,v=n&lT?new Vr:void 0;for(l.set(e,t),l.set(t,e);++d=t||x<0||d&&I>=l}function b(){var O=_u();if(h(O))return $(O);i=setTimeout(b,m(O))}function $(O){return i=void 0,p&&o?v(O):(o=r=void 0,a)}function C(){i!==void 0&&clearTimeout(i),u=0,o=s=r=i=void 0}function w(){return i===void 0?a:$(_u())}function S(){var O=_u(),x=h(O);if(o=arguments,r=this,s=O,x){if(i===void 0)return y(s);if(d)return clearTimeout(i),i=setTimeout(b,t),v(s)}return i===void 0&&(i=setTimeout(b,t)),a}return S.cancel=C,S.flush=w,S}function rf(e,t,n){(n!==void 0&&!li(e[t],n)||n===void 0&&!(t in e))&&qp(e,t,n)}function Wa(e){return Xn(e)&&Qr(e)}function lf(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function eE(e){return Xl(e,si(e))}function tE(e,t,n,o,r,l,a){var i=lf(e,n),s=lf(t,n),u=a.get(s);if(u){rf(e,n,u);return}var c=l?l(i,s,n+"",e,t,a):void 0,d=c===void 0;if(d){var p=nn(s),v=!p&&_l(s),y=!p&&!v&&uc(s);c=s,p||v||y?nn(i)?c=i:Wa(i)?c=aC(i):v?(d=!1,c=EC(s,!0)):y?(d=!1,c=RC(s,!0)):c=[]:gc(s)||Ml(s)?(c=i,Ml(i)?c=eE(i):(!$n(i)||Up(i))&&(c=BC(s))):d=!1}d&&(a.set(s,c),r(c,s,o,l,a),a.delete(s)),rf(e,n,c)}function av(e,t,n,o,r){e!==t&&VC(t,function(l,a){if(r||(r=new ro),$n(l))tE(e,t,a,n,av,o,r);else{var i=o?o(lf(e,a),l,a+"",e,t,r):void 0;i===void 0&&(i=l),rf(e,a,i)}},si)}var nE=uC(function(e,t,n,o){av(e,t,n,o)});const fle=nE;function iv(e,t,n){for(var o=-1,r=e==null?0:e.length;++o=oE&&(l=Va,a=!1,t=new Vr(t));e:for(;++r-1?r[l?t[a]:a]:void 0}}var iE=Math.max;function sE(e,t,n){var o=e==null?0:e.length;if(!o)return-1;var r=n==null?0:b8(n);return r<0&&(r=iE(o+r,0)),sC(e,hc(t),r)}var cE=aE(sE);const uE=cE;function dE(e){for(var t=-1,n=e==null?0:e.length,o={};++t=120&&c.length>=120)?new Vr(a&&c):void 0}c=e[0];var d=-1,p=i[0];e:for(;++d1),l}),Xl(e,AC(e),n),o&&(n=bl(n,PE|IE|TE,OE));for(var r=t.length;r--;)UC(n,t[r]);return n});const ME=EE;function YC(e,t,n,o){if(!$n(e))return e;t=Yl(t,e);for(var r=-1,l=t.length,a=l-1,i=e;i!=null&&++r=LE){var u=t?null:kE(e);if(u)return lv(u);a=!1,r=Va,s=new Vr}else s=t?[]:i;e:for(;++otypeof e=="function",KE=Array.isArray,GE=e=>typeof e=="string",XE=e=>e!==null&&typeof e=="object",UE=/^on[^a-z]/,YE=e=>UE.test(e),dv=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},qE=/-(\w)/g,Zr=dv(e=>e.replace(qE,(t,n)=>n?n.toUpperCase():"")),QE=/\B([A-Z])/g,ZE=dv(e=>e.replace(QE,"-$1").toLowerCase()),JE=dv(e=>e.charAt(0).toUpperCase()+e.slice(1)),e9=Object.prototype.hasOwnProperty,T0=(e,t)=>e9.call(e,t);function t9(e,t,n,o){const r=e[n];if(r!=null){const l=T0(r,"default");if(l&&o===void 0){const a=r.default;o=r.type!==Function&&WE(a)?a():a}r.type===Boolean&&(!T0(t,n)&&!l?o=!1:o===""&&(o=!0))}return o}function Pr(e){return typeof e=="number"?`${e}px`:e}function pl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return typeof e=="function"?e(t):e!=null?e:n}function n9(e){let t;const n=new Promise(r=>{t=e(()=>{r(!0)})}),o=()=>{t==null||t()};return o.then=(r,l)=>n.then(r,l),o.promise=n,o}function ne(){const e=[];for(let t=0;t0},e.prototype.connect_=function(){!af||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s9?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!af||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,o=n===void 0?"":n,r=i9.some(function(l){return!!~o.indexOf(l)});r&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),ZC=function(e,t){for(var n=0,o=Object.keys(t);n0},e}(),ex=typeof WeakMap!="undefined"?new WeakMap:new QC,tx=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c9.getInstance(),o=new y9(t,n,this);ex.set(this,o)}return e}();["observe","unobserve","disconnect"].forEach(function(e){tx.prototype[e]=function(){var t;return(t=ex.get(this))[e].apply(t,arguments)}});var nx=function(){return typeof Es.ResizeObserver!="undefined"?Es.ResizeObserver:tx}();const $9=e=>e!=null&&e!=="",sf=$9,S9=(e,t)=>{const n=g({},e);return Object.keys(t).forEach(o=>{const r=n[o];if(r)r.type||r.default?r.default=t[o]:r.def?r.def(t[o]):n[o]={type:r,default:t[o]};else throw new Error(`not have ${o} prop`)}),n},rt=S9,fv=e=>{const t=Object.keys(e),n={},o={},r={};for(let l=0,a=t.length;l0&&arguments[0]!==void 0?arguments[0]:"",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n={},o=/;(?![^(]*\))/g,r=/:(.+)/;return typeof e=="object"?e:(e.split(o).forEach(function(l){if(l){const a=l.split(r);if(a.length>1){const i=t?Zr(a[0].trim()):a[0].trim();n[i]=a[1].trim()}}}),n)},Ao=(e,t)=>e[t]!==void 0,ox=Symbol("skipFlatten"),bt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const n=Array.isArray(e)?e:[e],o=[];return n.forEach(r=>{Array.isArray(r)?o.push(...bt(r,t)):r&&r.type===qe?r.key===ox?o.push(r):o.push(...bt(r.children,t)):r&&tn(r)?t&&!yc(r)?o.push(r):t||o.push(r):sf(r)&&o.push(r)}),o},pv=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(tn(e))return e.type===qe?t==="default"?bt(e.children):[]:e.children&&e.children[t]?bt(e.children[t](n)):[];{const o=e.$slots[t]&&e.$slots[t](n);return bt(o)}},sn=e=>{var t;let n=((t=e==null?void 0:e.vnode)===null||t===void 0?void 0:t.el)||e&&(e.$el||e);for(;n&&!n.tagName;)n=n.nextSibling;return n},x9=e=>{const t={};if(e.$&&e.$.vnode){const n=e.$.vnode.props||{};Object.keys(e.$props).forEach(o=>{const r=e.$props[o],l=ZE(o);(r!==void 0||l in n)&&(t[o]=r)})}else if(tn(e)&&typeof e.type=="object"){const n=e.props||{},o={};Object.keys(n).forEach(l=>{o[Zr(l)]=n[l]});const r=e.type.props||{};Object.keys(r).forEach(l=>{const a=t9(r,o,l,o[l]);(a!==void 0||l in o)&&(t[l]=a)})}return t},rx=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,r;if(e.$){const l=e[t];if(l!==void 0)return typeof l=="function"&&o?l(n):l;r=e.$slots[t],r=o&&r?r(n):r}else if(tn(e)){const l=e.props&&e.props[t];if(l!==void 0&&e.props!==null)return typeof l=="function"&&o?l(n):l;e.type===qe?r=e.children:e.children&&e.children[t]&&(r=e.children[t],r=o&&r?r(n):r)}return Array.isArray(r)&&(r=bt(r),r=r.length===1?r[0]:r,r=r.length===0?void 0:r),r};function M0(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n={};return e.$?n=g(g({},n),e.$attrs):n=g(g({},n),e.props),fv(n)[t?"onEvents":"events"]}function w9(e){const n=((tn(e)?e.props:e.$attrs)||{}).class||{};let o={};return typeof n=="string"?n.split(" ").forEach(r=>{o[r.trim()]=!0}):Array.isArray(n)?ne(n).split(" ").forEach(r=>{o[r.trim()]=!0}):o=g(g({},o),n),o}function lx(e,t){let o=((tn(e)?e.props:e.$attrs)||{}).style||{};if(typeof o=="string")o=C9(o,t);else if(t&&o){const r={};return Object.keys(o).forEach(l=>r[Zr(l)]=o[l]),r}return o}function O9(e){return e.length===1&&e[0].type===qe}function P9(e){return e==null||e===""||Array.isArray(e)&&e.length===0}function yc(e){return e&&(e.type===eC||e.type===qe&&e.children.length===0||e.type===lc&&e.children.trim()==="")}function I9(e){return e&&e.type===lc}function Ot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=[];return e.forEach(n=>{Array.isArray(n)?t.push(...n):(n==null?void 0:n.type)===qe?t.push(...Ot(n.children)):t.push(n)}),t.filter(n=>!yc(n))}function pa(e){if(e){const t=Ot(e);return t.length?t:void 0}else return e}function Rt(e){return Array.isArray(e)&&e.length===1&&(e=e[0]),e&&e.__v_isVNode&&typeof e.type!="symbol"}function At(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"default";var o,r;return(o=t[n])!==null&&o!==void 0?o:(r=e[n])===null||r===void 0?void 0:r.call(e)}const io=te({compatConfig:{MODE:3},name:"ResizeObserver",props:{disabled:Boolean,onResize:Function},emits:["resize"],setup(e,t){let{slots:n}=t;const o=vt({width:0,height:0,offsetHeight:0,offsetWidth:0});let r=null,l=null;const a=()=>{l&&(l.disconnect(),l=null)},i=c=>{const{onResize:d}=e,p=c[0].target,{width:v,height:y}=p.getBoundingClientRect(),{offsetWidth:m,offsetHeight:h}=p,b=Math.floor(v),$=Math.floor(y);if(o.width!==b||o.height!==$||o.offsetWidth!==m||o.offsetHeight!==h){const C={width:b,height:$,offsetWidth:m,offsetHeight:h};g(o,C),d&&Promise.resolve().then(()=>{d(g(g({},C),{offsetWidth:m,offsetHeight:h}),p)})}},s=wn(),u=()=>{const{disabled:c}=e;if(c){a();return}const d=sn(s);d!==r&&(a(),r=d),!l&&d&&(l=new nx(i),l.observe(d))};return Ve(()=>{u()}),Co(()=>{u()}),Bn(()=>{a()}),ue(()=>e.disabled,()=>{u()},{flush:"post"}),()=>{var c;return(c=n.default)===null||c===void 0?void 0:c.call(n)[0]}}});let ax=e=>setTimeout(e,16),ix=e=>clearTimeout(e);typeof window!="undefined"&&"requestAnimationFrame"in window&&(ax=e=>window.requestAnimationFrame(e),ix=e=>window.cancelAnimationFrame(e));let _0=0;const vv=new Map;function sx(e){vv.delete(e)}function He(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;_0+=1;const n=_0;function o(r){if(r===0)sx(n),e();else{const l=ax(()=>{o(r-1)});vv.set(n,l)}}return o(t),n}He.cancel=e=>{const t=vv.get(e);return sx(t),ix(t)};function T9(e){let t;const n=r=>()=>{t=null,e(...r)},o=function(){if(t==null){for(var r=arguments.length,l=new Array(r),a=0;a{He.cancel(t),t=null},o}const Sn=function(){for(var e=arguments.length,t=new Array(e),n=0;n{const t=e;return t.install=function(n){n.component(t.displayName||t.name,e)},e};function Wr(){return{type:[Function,Array]}}function De(e){return{type:Object,default:e}}function xe(e){return{type:Boolean,default:e}}function ce(e){return{type:Function,default:e}}function It(e,t){const n={validator:()=>!0,default:e};return n}function Dn(){return{validator:()=>!0}}function st(e){return{type:Array,default:e}}function je(e){return{type:String,default:e}}function Xe(e,t){return e?{type:e,default:t}:It(t)}let cx=!1;try{const e=Object.defineProperty({},"passive",{get(){cx=!0}});window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}catch(e){}const qt=cx;function Pt(e,t,n,o){if(e&&e.addEventListener){let r=o;r===void 0&&qt&&(t==="touchstart"||t==="touchmove"||t==="wheel")&&(r={passive:!1}),e.addEventListener(t,n,r)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(t,n)}}}const gv="anticon",ux=Symbol("GlobalFormContextKey"),M9=e=>{We(ux,e)},_9=()=>Ke(ux,{validateMessages:P(()=>{})}),D9=()=>({iconPrefixCls:String,getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:De(),input:De(),autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:De(),pageHeader:De(),componentSize:{type:String},componentDisabled:{type:Boolean,default:void 0},direction:{type:String,default:"ltr"},space:De(),virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:De(),pagination:De(),theme:De(),select:De(),wave:De()}),mv=Symbol("configProvider"),dx={getPrefixCls:(e,t)=>t||(e?`ant-${e}`:"ant"),iconPrefixCls:P(()=>gv),getPopupContainer:P(()=>()=>document.body),direction:P(()=>"ltr")},hv=()=>Ke(mv,dx),A9=e=>We(mv,e),fx=Symbol("DisabledContextKey"),Cn=()=>Ke(fx,ee(void 0)),px=e=>{const t=Cn();return We(fx,P(()=>{var n;return(n=e.value)!==null&&n!==void 0?n:t.value})),e},vx={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},R9={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},B9=R9,N9={placeholder:"Select time",rangePlaceholder:["Start time","End time"]},gx=N9,F9={lang:g({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},B9),timePickerLocale:g({},gx)},_s=F9,In="${label} is not a valid ${type}",k9={locale:"en",Pagination:vx,DatePicker:_s,TimePicker:gx,Calendar:_s,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:In,method:In,array:In,object:In,number:In,date:In,boolean:In,integer:In,float:In,regexp:In,email:In,url:In,hex:In},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"}},xn=k9,Ql=te({compatConfig:{MODE:3},name:"LocaleReceiver",props:{componentName:String,defaultLocale:{type:[Object,Function]},children:{type:Function}},setup(e,t){let{slots:n}=t;const o=Ke("localeData",{}),r=P(()=>{const{componentName:a="global",defaultLocale:i}=e,s=i||xn[a||"global"],{antLocale:u}=o,c=a&&u?u[a]:{};return g(g({},typeof s=="function"?s():s),c||{})}),l=P(()=>{const{antLocale:a}=o,i=a&&a.locale;return a&&a.exist&&!i?xn.locale:i});return()=>{const a=e.children||n.default,{antLocale:i}=o;return a==null?void 0:a(r.value,l.value,i)}}});function xo(e,t,n){const o=Ke("localeData",{});return[P(()=>{const{antLocale:l}=o,a=Vt(t)||xn[e||"global"],i=e&&l?l[e]:{};return g(g(g({},typeof a=="function"?a():a),i||{}),Vt(n)||{})})]}function bv(e){for(var t=0,n,o=0,r=e.length;r>=4;++o,r-=4)n=e.charCodeAt(o)&255|(e.charCodeAt(++o)&255)<<8|(e.charCodeAt(++o)&255)<<16|(e.charCodeAt(++o)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(r){case 3:t^=(e.charCodeAt(o+2)&255)<<16;case 2:t^=(e.charCodeAt(o+1)&255)<<8;case 1:t^=e.charCodeAt(o)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}const D0="%";class L9{constructor(t){this.cache=new Map,this.instanceId=t}get(t){return this.cache.get(Array.isArray(t)?t.join(D0):t)||null}update(t,n){const o=Array.isArray(t)?t.join(D0):t,r=this.cache.get(o),l=n(r);l===null?this.cache.delete(o):this.cache.set(o,l)}}const z9=L9,mx="data-token-hash",Fr="data-css-hash",vl="__cssinjs_instance__";function Ga(){const e=Math.random().toString(12).slice(2);if(typeof document!="undefined"&&document.head&&document.body){const t=document.body.querySelectorAll(`style[${Fr}]`)||[],{firstChild:n}=document.head;Array.from(t).forEach(r=>{r[vl]=r[vl]||e,r[vl]===e&&document.head.insertBefore(r,n)});const o={};Array.from(document.querySelectorAll(`style[${Fr}]`)).forEach(r=>{var l;const a=r.getAttribute(Fr);o[a]?r[vl]===e&&((l=r.parentNode)===null||l===void 0||l.removeChild(r)):o[a]=!0})}return new z9(e)}const hx=Symbol("StyleContextKey"),H9=()=>{var e,t,n;const o=wn();let r;if(o&&o.appContext){const l=(n=(t=(e=o.appContext)===null||e===void 0?void 0:e.config)===null||t===void 0?void 0:t.globalProperties)===null||n===void 0?void 0:n.__ANTDV_CSSINJS_CACHE__;l?r=l:(r=Ga(),o.appContext.config.globalProperties&&(o.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__=r))}else r=Ga();return r},bx={cache:Ga(),defaultCache:!0,hashPriority:"low"},$c=()=>{const e=H9();return Ke(hx,q(g(g({},bx),{cache:e})))},j9=e=>{const t=$c(),n=q(g(g({},bx),{cache:Ga()}));return ue([()=>Vt(e),t],()=>{const o=g({},t.value),r=Vt(e);Object.keys(r).forEach(a=>{const i=r[a];r[a]!==void 0&&(o[a]=i)});const{cache:l}=r;o.cache=o.cache||Ga(),o.defaultCache=!l&&t.value.defaultCache,n.value=o},{immediate:!0}),We(hx,n),n},V9=()=>({autoClear:xe(),mock:je(),cache:De(),defaultCache:xe(),hashPriority:je(),container:Xe(),ssrInline:xe(),transformers:st(),linters:st()});Gt(te({name:"AStyleProvider",inheritAttrs:!1,props:V9(),setup(e,t){let{slots:n}=t;return j9(e),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}));function yx(e,t,n,o){const r=$c(),l=q(""),a=q();ke(()=>{l.value=[e,...t.value].join("%")});const i=s=>{r.value.cache.update(s,u=>{const[c=0,d]=u||[];return c-1===0?(o==null||o(d,!1),null):[c-1,d]})};return ue(l,(s,u)=>{u&&i(u),r.value.cache.update(s,c=>{const[d=0,p]=c||[],y=p||n();return[d+1,y]}),a.value=r.value.cache.get(l.value)[1]},{immediate:!0}),Ze(()=>{i(l.value)}),a}function un(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}function tr(e,t){return e&&e.contains?e.contains(t):!1}const A0="data-vc-order",W9="vc-util-key",cf=new Map;function $x(){let{mark:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e?e.startsWith("data-")?e:`data-${e}`:W9}function Sc(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function K9(e){return e==="queue"?"prependQueue":e?"prepend":"append"}function Sx(e){return Array.from((cf.get(e)||e).children).filter(t=>t.tagName==="STYLE")}function Cx(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!un())return null;const{csp:n,prepend:o}=t,r=document.createElement("style");r.setAttribute(A0,K9(o)),n!=null&&n.nonce&&(r.nonce=n==null?void 0:n.nonce),r.innerHTML=e;const l=Sc(t),{firstChild:a}=l;if(o){if(o==="queue"){const i=Sx(l).filter(s=>["prepend","prependQueue"].includes(s.getAttribute(A0)));if(i.length)return l.insertBefore(r,i[i.length-1].nextSibling),r}l.insertBefore(r,a)}else l.appendChild(r);return r}function xx(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=Sc(t);return Sx(n).find(o=>o.getAttribute($x(t))===e)}function Ds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=xx(e,t);n&&Sc(t).removeChild(n)}function G9(e,t){const n=cf.get(e);if(!n||!tr(document,n)){const o=Cx("",t),{parentNode:r}=o;cf.set(e,r),e.removeChild(o)}}function Xa(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var o,r,l;const a=Sc(n);G9(a,n);const i=xx(t,n);if(i)return!((o=n.csp)===null||o===void 0)&&o.nonce&&i.nonce!==((r=n.csp)===null||r===void 0?void 0:r.nonce)&&(i.nonce=(l=n.csp)===null||l===void 0?void 0:l.nonce),i.innerHTML!==e&&(i.innerHTML=e),i;const s=Cx(e,n);return s.setAttribute($x(n),t),s}function X9(e,t){if(e.length!==t.length)return!1;for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:!1,o={map:this.cache};return t.forEach(r=>{var l;o?o=(l=o==null?void 0:o.map)===null||l===void 0?void 0:l.get(r):o=void 0}),o!=null&&o.value&&n&&(o.value[1]=this.cacheCallTimes++),o==null?void 0:o.value}get(t){var n;return(n=this.internalGet(t,!0))===null||n===void 0?void 0:n[0]}has(t){return!!this.internalGet(t)}set(t,n){if(!this.has(t)){if(this.size()+1>Bl.MAX_CACHE_SIZE+Bl.MAX_CACHE_OFFSET){const[r]=this.keys.reduce((l,a)=>{const[,i]=l;return this.internalGet(a)[1]{if(l===t.length-1)o.set(r,{value:[n,this.cacheCallTimes++]});else{const a=o.get(r);a?a.map||(a.map=new Map):o.set(r,{map:new Map}),o=o.get(r).map}})}deleteByPath(t,n){var o;const r=t.get(n[0]);if(n.length===1)return r.map?t.set(n[0],{map:r.map}):t.delete(n[0]),(o=r.value)===null||o===void 0?void 0:o[0];const l=this.deleteByPath(r.map,n.slice(1));return(!r.map||r.map.size===0)&&!r.value&&t.delete(n[0]),l}delete(t){if(this.has(t))return this.keys=this.keys.filter(n=>!X9(n,t)),this.deleteByPath(this.cache,t)}}Bl.MAX_CACHE_SIZE=20;Bl.MAX_CACHE_OFFSET=5;let R0={};function U9(e,t){}function Y9(e,t){}function wx(e,t,n){!t&&!R0[n]&&(e(!1,n),R0[n]=!0)}function yv(e,t){wx(U9,e,t)}function q9(e,t){wx(Y9,e,t)}function Q9(){}let Z9=Q9;const $t=Z9;let B0=0;class Ox{constructor(t){this.derivatives=Array.isArray(t)?t:[t],this.id=B0,t.length===0&&$t(t.length>0),B0+=1}getDerivativeToken(t){return this.derivatives.reduce((n,o)=>o(t,n),void 0)}}const Au=new Bl;function Px(e){const t=Array.isArray(e)?e:[e];return Au.has(t)||Au.set(t,new Ox(t)),Au.get(t)}const N0=new WeakMap;function As(e){let t=N0.get(e)||"";return t||(Object.keys(e).forEach(n=>{const o=e[n];t+=n,o instanceof Ox?t+=o.id:o&&typeof o=="object"?t+=As(o):t+=o}),N0.set(e,t)),t}function J9(e,t){return bv(`${t}_${As(e)}`)}const Pa=`random-${Date.now()}-${Math.random()}`.replace(/\./g,""),Ix="_bAmBoO_";function eM(e,t,n){var o,r;if(un()){Xa(e,Pa);const l=document.createElement("div");l.style.position="fixed",l.style.left="0",l.style.top="0",t==null||t(l),document.body.appendChild(l);const a=n?n(l):(o=getComputedStyle(l).content)===null||o===void 0?void 0:o.includes(Ix);return(r=l.parentNode)===null||r===void 0||r.removeChild(l),Ds(Pa),a}return!1}let Ru;function tM(){return Ru===void 0&&(Ru=eM(`@layer ${Pa} { .${Pa} { content: "${Ix}"!important; } }`,e=>{e.className=Pa})),Ru}const F0={},nM=!0,oM=!1,rM=!nM&&!oM?"css-dev-only-do-not-override":"css",Ir=new Map;function lM(e){Ir.set(e,(Ir.get(e)||0)+1)}function aM(e,t){typeof document!="undefined"&&document.querySelectorAll(`style[${mx}="${e}"]`).forEach(o=>{var r;o[vl]===t&&((r=o.parentNode)===null||r===void 0||r.removeChild(o))})}const iM=0;function sM(e,t){Ir.set(e,(Ir.get(e)||0)-1);const n=Array.from(Ir.keys()),o=n.filter(r=>(Ir.get(r)||0)<=0);n.length-o.length>iM&&o.forEach(r=>{aM(r,t),Ir.delete(r)})}const cM=(e,t,n,o)=>{const r=n.getDerivativeToken(e);let l=g(g({},r),t);return o&&(l=o(l)),l};function uM(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ee({});const o=$c(),r=P(()=>g({},...t.value)),l=P(()=>As(r.value)),a=P(()=>As(n.value.override||F0));return yx("token",P(()=>[n.value.salt||"",e.value.id,l.value,a.value]),()=>{const{salt:s="",override:u=F0,formatToken:c,getComputedToken:d}=n.value,p=d?d(r.value,u,e.value):cM(r.value,u,e.value,c),v=J9(p,s);p._tokenKey=v,lM(v);const y=`${rM}-${bv(v)}`;return p._hashId=y,[p,y]},s=>{var u;sM(s[0]._tokenKey,(u=o.value)===null||u===void 0?void 0:u.cache.instanceId)})}var dM={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Tx="comm",Ex="rule",Mx="decl",fM="@import",pM="@keyframes",vM="@layer",_x=Math.abs,$v=String.fromCharCode;function Dx(e){return e.trim()}function ls(e,t,n){return e.replace(t,n)}function gM(e,t,n){return e.indexOf(t,n)}function Ua(e,t){return e.charCodeAt(t)|0}function Nl(e,t,n){return e.slice(t,n)}function go(e){return e.length}function mM(e){return e.length}function Ei(e,t){return t.push(e),e}var Cc=1,Fl=1,Ax=0,Un=0,kt=0,Zl="";function Sv(e,t,n,o,r,l,a,i){return{value:e,root:t,parent:n,type:o,props:r,children:l,line:Cc,column:Fl,length:a,return:"",siblings:i}}function hM(){return kt}function bM(){return kt=Un>0?Ua(Zl,--Un):0,Fl--,kt===10&&(Fl=1,Cc--),kt}function lo(){return kt=Un2||Ya(kt)>3?"":" "}function CM(e,t){for(;--t&&lo()&&!(kt<48||kt>102||kt>57&&kt<65||kt>70&&kt<97););return xc(e,as()+(t<6&&nr()==32&&lo()==32))}function uf(e){for(;lo();)switch(kt){case e:return Un;case 34:case 39:e!==34&&e!==39&&uf(kt);break;case 40:e===41&&uf(e);break;case 92:lo();break}return Un}function xM(e,t){for(;lo()&&e+kt!==47+10;)if(e+kt===42+42&&nr()===47)break;return"/*"+xc(t,Un-1)+"*"+$v(e===47?e:lo())}function wM(e){for(;!Ya(nr());)lo();return xc(e,Un)}function OM(e){return $M(is("",null,null,null,[""],e=yM(e),0,[0],e))}function is(e,t,n,o,r,l,a,i,s){for(var u=0,c=0,d=a,p=0,v=0,y=0,m=1,h=1,b=1,$=0,C="",w=r,S=l,O=o,x=C;h;)switch(y=$,$=lo()){case 40:if(y!=108&&Ua(x,d-1)==58){gM(x+=ls(Bu($),"&","&\f"),"&\f",_x(u?i[u-1]:0))!=-1&&(b=-1);break}case 34:case 39:case 91:x+=Bu($);break;case 9:case 10:case 13:case 32:x+=SM(y);break;case 92:x+=CM(as()-1,7);continue;case 47:switch(nr()){case 42:case 47:Ei(PM(xM(lo(),as()),t,n,s),s),(Ya(y||1)==5||Ya(nr()||1)==5)&&go(x)&&Nl(x,-1,void 0)!==" "&&(x+=" ");break;default:x+="/"}break;case 123*m:i[u++]=go(x)*b;case 125*m:case 59:case 0:switch($){case 0:case 125:h=0;case 59+c:b==-1&&(x=ls(x,/\f/g,"")),v>0&&(go(x)-d||m===0&&y===47)&&Ei(v>32?L0(x+";",o,n,d-1,s):L0(ls(x," ","")+";",o,n,d-2,s),s);break;case 59:x+=";";default:if(Ei(O=k0(x,t,n,u,c,r,i,C,w=[],S=[],d,l),l),$===123)if(c===0)is(x,t,O,O,w,l,d,i,S);else switch(p===99&&Ua(x,3)===110?100:p){case 100:case 108:case 109:case 115:is(e,O,O,o&&Ei(k0(e,O,O,0,0,r,i,C,r,w=[],d,S),S),r,S,d,i,o?w:S);break;default:is(x,O,O,O,[""],S,0,i,S)}}u=c=v=0,m=b=1,C=x="",d=a;break;case 58:d=1+go(x),v=y;default:if(m<1){if($==123)--m;else if($==125&&m++==0&&bM()==125)continue}switch(x+=$v($),$*m){case 38:b=c>0?1:(x+="\f",-1);break;case 44:i[u++]=(go(x)-1)*b,b=1;break;case 64:nr()===45&&(x+=Bu(lo())),p=nr(),c=d=go(C=x+=wM(as())),$++;break;case 45:y===45&&go(x)==2&&(m=0)}}return l}function k0(e,t,n,o,r,l,a,i,s,u,c,d){for(var p=r-1,v=r===0?l:[""],y=mM(v),m=0,h=0,b=0;m0?v[$]+" "+C:ls(C,/&\f/g,v[$])))&&(s[b++]=w);return Sv(e,t,n,r===0?Ex:i,s,u,c,d)}function PM(e,t,n,o){return Sv(e,t,n,Tx,$v(hM()),Nl(e,2,-2),0,o)}function L0(e,t,n,o,r){return Sv(e,t,n,Mx,Nl(e,0,o),Nl(e,o+1,-1),o,r)}function df(e,t){for(var n="",o=0;o{const[l,a]=r.split(":");kr[l]=a});const o=document.querySelector(`style[${z0}]`);o&&(Rx=!1,(e=o.parentNode)===null||e===void 0||e.removeChild(o)),document.body.removeChild(t)}}function MM(e){return EM(),!!kr[e]}function _M(e){const t=kr[e];let n=null;if(t&&un())if(Rx)n=TM;else{const o=document.querySelector(`style[${Fr}="${kr[e]}"]`);o?n=o.innerHTML:delete kr[e]}return[n,t]}const H0=un(),DM="_skip_check_",Bx="_multi_value_";function j0(e){return df(OM(e),IM).replace(/\{%%%\:[^;];}/g,";")}function AM(e){return typeof e=="object"&&e&&(DM in e||Bx in e)}function RM(e,t,n){if(!t)return e;const o=`.${t}`,r=n==="low"?`:where(${o})`:o;return e.split(",").map(a=>{var i;const s=a.trim().split(/\s+/);let u=s[0]||"";const c=((i=u.match(/^\w+/))===null||i===void 0?void 0:i[0])||"";return u=`${c}${r}${u.slice(c.length)}`,[u,...s.slice(1)].join(" ")}).join(",")}const V0=new Set,ff=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{root:n,injectHash:o,parentSelectors:r}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]};const{hashId:l,layer:a,path:i,hashPriority:s,transformers:u=[],linters:c=[]}=t;let d="",p={};function v(h){const b=h.getName(l);if(!p[b]){const[$]=ff(h.style,t,{root:!1,parentSelectors:r});p[b]=`@keyframes ${h.getName(l)}${$}`}}function y(h){let b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return h.forEach($=>{Array.isArray($)?y($,b):$&&b.push($)}),b}if(y(Array.isArray(e)?e:[e]).forEach(h=>{const b=typeof h=="string"&&!n?{}:h;if(typeof b=="string")d+=`${b} +`;else if(b._keyframe)v(b);else{const $=u.reduce((C,w)=>{var S;return((S=w==null?void 0:w.visit)===null||S===void 0?void 0:S.call(w,C))||C},b);Object.keys($).forEach(C=>{var w;const S=$[C];if(typeof S=="object"&&S&&(C!=="animationName"||!S._keyframe)&&!AM(S)){let O=!1,x=C.trim(),I=!1;(n||o)&&l?x.startsWith("@")?O=!0:x=RM(C,l,s):n&&!l&&(x==="&"||x==="")&&(x="",I=!0);const[E,M]=ff(S,t,{root:I,injectHash:O,parentSelectors:[...r,x]});p=g(g({},p),M),d+=`${x}${E}`}else{let O=function(I,E){const M=I.replace(/[A-Z]/g,z=>`-${z.toLowerCase()}`);let _=E;!dM[I]&&typeof _=="number"&&_!==0&&(_=`${_}px`),I==="animationName"&&(E!=null&&E._keyframe)&&(v(E),_=E.getName(l)),d+=`${M}:${_};`};const x=(w=S==null?void 0:S.value)!==null&&w!==void 0?w:S;typeof S=="object"&&(S!=null&&S[Bx])&&Array.isArray(x)?x.forEach(I=>{O(C,I)}):O(C,x)}})}}),!n)d=`{${d}}`;else if(a&&tM()){const h=a.split(",");d=`@layer ${h[h.length-1].trim()} {${d}}`,h.length>1&&(d=`@layer ${a}{%%%:%}${d}`)}return[d,p]};function BM(e,t){return bv(`${e.join("%")}${t}`)}function pf(e,t){const n=$c(),o=P(()=>e.value.token._tokenKey),r=P(()=>[o.value,...e.value.path]);let l=H0;return yx("style",r,()=>{const{path:a,hashId:i,layer:s,nonce:u,clientOnly:c,order:d=0}=e.value,p=r.value.join("|");if(MM(p)){const[x,I]=_M(p);if(x)return[x,o.value,I,{},c,d]}const v=t(),{hashPriority:y,container:m,transformers:h,linters:b,cache:$}=n.value,[C,w]=ff(v,{hashId:i,hashPriority:y,layer:s,path:a.join("-"),transformers:h,linters:b}),S=j0(C),O=BM(r.value,S);if(l){const x={mark:Fr,prepend:"queue",attachTo:m,priority:d},I=typeof u=="function"?u():u;I&&(x.csp={nonce:I});const E=Xa(S,O,x);E[vl]=$.instanceId,E.setAttribute(mx,o.value),Object.keys(w).forEach(M=>{V0.has(M)||(V0.add(M),Xa(j0(w[M]),`_effect-${M}`,{mark:Fr,prepend:"queue",attachTo:m}))})}return[S,o.value,O,w,c,d]},(a,i)=>{let[,,s]=a;(i||n.value.autoClear)&&H0&&Ds(s,{mark:Fr})}),a=>a}class NM{constructor(t,n){this._keyframe=!0,this.name=t,this.style=n}getName(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return t?`${t}-${this.name}`:this.name}}const Ue=NM,FM="4.2.5",qa=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function Zt(e,t){kM(e)&&(e="100%");var n=LM(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Mi(e){return Math.min(1,Math.max(0,e))}function kM(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function LM(e){return typeof e=="string"&&e.indexOf("%")!==-1}function Nx(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function _i(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ar(e){return e.length===1?"0"+e:String(e)}function zM(e,t,n){return{r:Zt(e,255)*255,g:Zt(t,255)*255,b:Zt(n,255)*255}}function W0(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),l=0,a=0,i=(o+r)/2;if(o===r)a=0,l=0;else{var s=o-r;switch(a=i>.5?s/(2-o-r):s/(o+r),o){case e:l=(t-n)/s+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function HM(e,t,n){var o,r,l;if(e=Zt(e,360),t=Zt(t,100),n=Zt(n,100),t===0)r=n,l=n,o=n;else{var a=n<.5?n*(1+t):n+t-n*t,i=2*n-a;o=Nu(i,a,e+1/3),r=Nu(i,a,e),l=Nu(i,a,e-1/3)}return{r:o*255,g:r*255,b:l*255}}function vf(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),l=0,a=o,i=o-r,s=o===0?0:i/o;if(o===r)l=0;else{switch(o){case e:l=(t-n)/i+(t>16,g:(e&65280)>>8,b:e&255}}var mf={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function cl(e){var t={r:0,g:0,b:0},n=1,o=null,r=null,l=null,a=!1,i=!1;return typeof e=="string"&&(e=UM(e)),typeof e=="object"&&(Io(e.r)&&Io(e.g)&&Io(e.b)?(t=zM(e.r,e.g,e.b),a=!0,i=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Io(e.h)&&Io(e.s)&&Io(e.v)?(o=_i(e.s),r=_i(e.v),t=jM(e.h,o,r),a=!0,i="hsv"):Io(e.h)&&Io(e.s)&&Io(e.l)&&(o=_i(e.s),l=_i(e.l),t=HM(e.h,o,l),a=!0,i="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=Nx(n),{ok:a,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var GM="[-\\+]?\\d+%?",XM="[-\\+]?\\d*\\.\\d+%?",or="(?:".concat(XM,")|(?:").concat(GM,")"),Fu="[\\s|\\(]+(".concat(or,")[,|\\s]+(").concat(or,")[,|\\s]+(").concat(or,")\\s*\\)?"),ku="[\\s|\\(]+(".concat(or,")[,|\\s]+(").concat(or,")[,|\\s]+(").concat(or,")[,|\\s]+(").concat(or,")\\s*\\)?"),no={CSS_UNIT:new RegExp(or),rgb:new RegExp("rgb"+Fu),rgba:new RegExp("rgba"+ku),hsl:new RegExp("hsl"+Fu),hsla:new RegExp("hsla"+ku),hsv:new RegExp("hsv"+Fu),hsva:new RegExp("hsva"+ku),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function UM(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(mf[e])e=mf[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=no.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=no.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=no.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=no.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=no.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=no.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=no.hex8.exec(e),n?{r:En(n[1]),g:En(n[2]),b:En(n[3]),a:K0(n[4]),format:t?"name":"hex8"}:(n=no.hex6.exec(e),n?{r:En(n[1]),g:En(n[2]),b:En(n[3]),format:t?"name":"hex"}:(n=no.hex4.exec(e),n?{r:En(n[1]+n[1]),g:En(n[2]+n[2]),b:En(n[3]+n[3]),a:K0(n[4]+n[4]),format:t?"name":"hex8"}:(n=no.hex3.exec(e),n?{r:En(n[1]+n[1]),g:En(n[2]+n[2]),b:En(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function Io(e){return!!no.CSS_UNIT.exec(String(e))}var ut=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=KM(t)),this.originalInput=t;var r=cl(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,r,l=t.r/255,a=t.g/255,i=t.b/255;return l<=.03928?n=l/12.92:n=Math.pow((l+.055)/1.055,2.4),a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),i<=.03928?r=i/12.92:r=Math.pow((i+.055)/1.055,2.4),.2126*n+.7152*o+.0722*r},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=Nx(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=vf(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=vf(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=W0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=W0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),gf(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),VM(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Zt(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Zt(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+gf(this.r,this.g,this.b,!1),n=0,o=Object.entries(mf);n=0,l=!n&&r&&(t.startsWith("hex")||t==="name");return l?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Mi(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Mi(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Mi(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Mi(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),r=new e(t).toRgb(),l=n/100,a={r:(r.r-o.r)*l+o.r,g:(r.g-o.g)*l+o.g,b:(r.b-o.b)*l+o.b,a:(r.a-o.a)*l+o.a};return new e(a)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),r=360/n,l=[this];for(o.h=(o.h-(r*t>>1)+720)%360;--t;)o.h=(o.h+r)%360,l.push(new e(o));return l},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,r=n.s,l=n.v,a=[],i=1/t;t--;)a.push(new e({h:o,s:r,v:l})),l=(l+i)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),r=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/r,g:(n.g*n.a+o.g*o.a*(1-n.a))/r,b:(n.b*n.a+o.b*o.a*(1-n.a))/r,a:r})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,r=[this],l=360/t,a=1;a=60&&Math.round(e.h)<=240?o=n?Math.round(e.h)-Di*t:Math.round(e.h)+Di*t:o=n?Math.round(e.h)+Di*t:Math.round(e.h)-Di*t,o<0?o+=360:o>=360&&(o-=360),o}function Y0(e,t,n){if(e.h===0&&e.s===0)return e.s;var o;return n?o=e.s-G0*t:t===kx?o=e.s+G0:o=e.s+YM*t,o>1&&(o=1),n&&t===Fx&&o>.1&&(o=.1),o<.06&&(o=.06),Number(o.toFixed(2))}function q0(e,t,n){var o;return n?o=e.v+qM*t:o=e.v-QM*t,o>1&&(o=1),Number(o.toFixed(2))}function ur(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=[],o=cl(e),r=Fx;r>0;r-=1){var l=X0(o),a=Ai(cl({h:U0(l,r,!0),s:Y0(l,r,!0),v:q0(l,r,!0)}));n.push(a)}n.push(Ai(o));for(var i=1;i<=kx;i+=1){var s=X0(o),u=Ai(cl({h:U0(s,i),s:Y0(s,i),v:q0(s,i)}));n.push(u)}return t.theme==="dark"?ZM.map(function(c){var d=c.index,p=c.opacity,v=Ai(JM(cl(t.backgroundColor||"#141414"),cl(n[d]),p*100));return v}):n}var yl={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},Ia={},Lu={};Object.keys(yl).forEach(function(e){Ia[e]=ur(yl[e]),Ia[e].primary=Ia[e][5],Lu[e]=ur(yl[e],{theme:"dark",backgroundColor:"#141414"}),Lu[e].primary=Lu[e][5]});var e_=Ia.gold,t_=Ia.blue;const n_=e=>{const{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}},o_=n_;function r_(e){const{sizeUnit:t,sizeStep:n}=e;return{sizeXXL:t*(n+8),sizeXL:t*(n+4),sizeLG:t*(n+2),sizeMD:t*(n+1),sizeMS:t*n,size:t*n,sizeSM:t*(n-1),sizeXS:t*(n-2),sizeXXS:t*(n-3)}}const Lx={blue:"#1677ff",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#eb2f96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},l_=g(g({},Lx),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, +'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', +'Noto Color Emoji'`,fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1}),wc=l_;function a_(e,t){let{generateColorPalettes:n,generateNeutralColorPalettes:o}=t;const{colorSuccess:r,colorWarning:l,colorError:a,colorInfo:i,colorPrimary:s,colorBgBase:u,colorTextBase:c}=e,d=n(s),p=n(r),v=n(l),y=n(a),m=n(i),h=o(u,c);return g(g({},h),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:p[1],colorSuccessBgHover:p[2],colorSuccessBorder:p[3],colorSuccessBorderHover:p[4],colorSuccessHover:p[4],colorSuccess:p[6],colorSuccessActive:p[7],colorSuccessTextHover:p[8],colorSuccessText:p[9],colorSuccessTextActive:p[10],colorErrorBg:y[1],colorErrorBgHover:y[2],colorErrorBorder:y[3],colorErrorBorderHover:y[4],colorErrorHover:y[5],colorError:y[6],colorErrorActive:y[7],colorErrorTextHover:y[8],colorErrorText:y[9],colorErrorTextActive:y[10],colorWarningBg:v[1],colorWarningBgHover:v[2],colorWarningBorder:v[3],colorWarningBorderHover:v[4],colorWarningHover:v[4],colorWarning:v[6],colorWarningActive:v[7],colorWarningTextHover:v[8],colorWarningText:v[9],colorWarningTextActive:v[10],colorInfoBg:m[1],colorInfoBgHover:m[2],colorInfoBorder:m[3],colorInfoBorderHover:m[4],colorInfoHover:m[4],colorInfo:m[6],colorInfoActive:m[7],colorInfoTextHover:m[8],colorInfoText:m[9],colorInfoTextActive:m[10],colorBgMask:new ut("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}const i_=e=>{let t=e,n=e,o=e,r=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?n=4:e<8&&e>=7?n=5:e<14&&e>=8?n=6:e<16&&e>=14?n=7:e>=16&&(n=8),e<6&&e>=2?o=1:e>=6&&(o=2),e>4&&e<8?r=4:e>=8&&(r=6),{borderRadius:e>16?16:e,borderRadiusXS:o,borderRadiusSM:n,borderRadiusLG:t,borderRadiusOuter:r}},s_=i_;function c_(e){const{motionUnit:t,motionBase:n,borderRadius:o,lineWidth:r}=e;return g({motionDurationFast:`${(n+t).toFixed(1)}s`,motionDurationMid:`${(n+t*2).toFixed(1)}s`,motionDurationSlow:`${(n+t*3).toFixed(1)}s`,lineWidthBold:r+1},s_(o))}const To=(e,t)=>new ut(e).setAlpha(t).toRgbString(),va=(e,t)=>new ut(e).darken(t).toHexString(),u_=e=>{const t=ur(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},d_=(e,t)=>{const n=e||"#fff",o=t||"#000";return{colorBgBase:n,colorTextBase:o,colorText:To(o,.88),colorTextSecondary:To(o,.65),colorTextTertiary:To(o,.45),colorTextQuaternary:To(o,.25),colorFill:To(o,.15),colorFillSecondary:To(o,.06),colorFillTertiary:To(o,.04),colorFillQuaternary:To(o,.02),colorBgLayout:va(n,4),colorBgContainer:va(n,0),colorBgElevated:va(n,0),colorBgSpotlight:To(o,.85),colorBorder:va(n,15),colorBorderSecondary:va(n,6)}};function f_(e){const t=new Array(10).fill(null).map((n,o)=>{const r=o-1,l=e*Math.pow(2.71828,r/5),a=o>1?Math.floor(l):Math.ceil(l);return Math.floor(a/2)*2});return t[1]=e,t.map(n=>{const o=n+8;return{size:n,lineHeight:o/n}})}const p_=e=>{const t=f_(e),n=t.map(r=>r.size),o=t.map(r=>r.lineHeight);return{fontSizeSM:n[0],fontSize:n[1],fontSizeLG:n[2],fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:o[1],lineHeightLG:o[2],lineHeightSM:o[0],lineHeightHeading1:o[6],lineHeightHeading2:o[5],lineHeightHeading3:o[4],lineHeightHeading4:o[3],lineHeightHeading5:o[2]}},v_=p_;function g_(e){const t=Object.keys(Lx).map(n=>{const o=ur(e[n]);return new Array(10).fill(1).reduce((r,l,a)=>(r[`${n}-${a+1}`]=o[a],r),{})}).reduce((n,o)=>(n=g(g({},n),o),n),{});return g(g(g(g(g(g(g({},e),t),a_(e,{generateColorPalettes:u_,generateNeutralColorPalettes:d_})),v_(e.fontSize)),r_(e)),o_(e)),c_(e))}function zu(e){return e>=0&&e<=255}function Ri(e,t){const{r:n,g:o,b:r,a:l}=new ut(e).toRgb();if(l<1)return e;const{r:a,g:i,b:s}=new ut(t).toRgb();for(let u=.01;u<=1;u+=.01){const c=Math.round((n-a*(1-u))/u),d=Math.round((o-i*(1-u))/u),p=Math.round((r-s*(1-u))/u);if(zu(c)&&zu(d)&&zu(p))return new ut({r:c,g:d,b:p,a:Math.round(u*100)/100}).toRgbString()}return new ut({r:n,g:o,b:r,a:1}).toRgbString()}var m_=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{delete o[v]});const r=g(g({},n),o),l=480,a=576,i=768,s=992,u=1200,c=1600,d=2e3;return g(g(g({},r),{colorLink:r.colorInfoText,colorLinkHover:r.colorInfoHover,colorLinkActive:r.colorInfoActive,colorFillContent:r.colorFillSecondary,colorFillContentHover:r.colorFill,colorFillAlter:r.colorFillQuaternary,colorBgContainerDisabled:r.colorFillTertiary,colorBorderBg:r.colorBgContainer,colorSplit:Ri(r.colorBorderSecondary,r.colorBgContainer),colorTextPlaceholder:r.colorTextQuaternary,colorTextDisabled:r.colorTextQuaternary,colorTextHeading:r.colorText,colorTextLabel:r.colorTextSecondary,colorTextDescription:r.colorTextTertiary,colorTextLightSolid:r.colorWhite,colorHighlight:r.colorError,colorBgTextHover:r.colorFillSecondary,colorBgTextActive:r.colorFill,colorIcon:r.colorTextTertiary,colorIconHover:r.colorText,colorErrorOutline:Ri(r.colorErrorBg,r.colorBgContainer),colorWarningOutline:Ri(r.colorWarningBg,r.colorBgContainer),fontSizeIcon:r.fontSizeSM,lineWidth:r.lineWidth,controlOutlineWidth:r.lineWidth*2,controlInteractiveSize:r.controlHeight/2,controlItemBgHover:r.colorFillTertiary,controlItemBgActive:r.colorPrimaryBg,controlItemBgActiveHover:r.colorPrimaryBgHover,controlItemBgActiveDisabled:r.colorFill,controlTmpOutline:r.colorFillQuaternary,controlOutline:Ri(r.colorPrimaryBg,r.colorBgContainer),lineType:r.lineType,borderRadius:r.borderRadius,borderRadiusXS:r.borderRadiusXS,borderRadiusSM:r.borderRadiusSM,borderRadiusLG:r.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:r.sizeXXS,paddingXS:r.sizeXS,paddingSM:r.sizeSM,padding:r.size,paddingMD:r.sizeMD,paddingLG:r.sizeLG,paddingXL:r.sizeXL,paddingContentHorizontalLG:r.sizeLG,paddingContentVerticalLG:r.sizeMS,paddingContentHorizontal:r.sizeMS,paddingContentVertical:r.sizeSM,paddingContentHorizontalSM:r.size,paddingContentVerticalSM:r.sizeXS,marginXXS:r.sizeXXS,marginXS:r.sizeXS,marginSM:r.sizeSM,margin:r.size,marginMD:r.sizeMD,marginLG:r.sizeLG,marginXL:r.sizeXL,marginXXL:r.sizeXXL,boxShadow:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:l,screenXSMin:l,screenXSMax:a-1,screenSM:a,screenSMMin:a,screenSMMax:i-1,screenMD:i,screenMDMin:i,screenMDMax:s-1,screenLG:s,screenLGMin:s,screenLGMax:u-1,screenXL:u,screenXLMin:u,screenXLMax:c-1,screenXXL:c,screenXXLMin:c,screenXXLMax:d-1,screenXXXL:d,screenXXXLMin:d,boxShadowPopoverArrow:"3px 3px 7px rgba(0, 0, 0, 0.1)",boxShadowCard:` + 0 1px 2px -2px ${new ut("rgba(0, 0, 0, 0.16)").toRgbString()}, + 0 3px 6px 0 ${new ut("rgba(0, 0, 0, 0.12)").toRgbString()}, + 0 5px 12px 4px ${new ut("rgba(0, 0, 0, 0.09)").toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),o)}const Oc=e=>({color:e.colorLink,textDecoration:"none",outline:"none",cursor:"pointer",transition:`color ${e.motionDurationSlow}`,"&:focus, &:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive}}),Cv=(e,t,n,o,r)=>{const l=e/2,a=0,i=l,s=n*1/Math.sqrt(2),u=l-n*(1-1/Math.sqrt(2)),c=l-t*(1/Math.sqrt(2)),d=n*(Math.sqrt(2)-1)+t*(1/Math.sqrt(2)),p=2*l-c,v=d,y=2*l-s,m=u,h=2*l-a,b=i,$=l*Math.sqrt(2)+n*(Math.sqrt(2)-2),C=n*(Math.sqrt(2)-1);return{pointerEvents:"none",width:e,height:e,overflow:"hidden","&::after":{content:'""',position:"absolute",width:$,height:$,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${t}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:r,zIndex:0,background:"transparent"},"&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:e,height:e/2,background:o,clipPath:{_multi_value_:!0,value:[`polygon(${C}px 100%, 50% ${C}px, ${2*l-C}px 100%, ${C}px 100%)`,`path('M ${a} ${i} A ${n} ${n} 0 0 0 ${s} ${u} L ${c} ${d} A ${t} ${t} 0 0 1 ${p} ${v} L ${y} ${m} A ${n} ${n} 0 0 0 ${h} ${b} Z')`]},content:'""'}}};function Rs(e,t){return qa.reduce((n,o)=>{const r=e[`${o}-1`],l=e[`${o}-3`],a=e[`${o}-6`],i=e[`${o}-7`];return g(g({},n),t(o,{lightColor:r,lightBorderColor:l,darkColor:a,textColor:i}))},{})}const Xt={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},Qe=e=>({boxSizing:"border-box",margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:"none",fontFamily:e.fontFamily}),Jl=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),so=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),b_=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${e.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive},"&:active,\n &:hover":{textDecoration:e.linkHoverDecoration,outline:0},"&:focus":{textDecoration:e.linkFocusDecoration,outline:0},"&[disabled]":{color:e.colorTextDisabled,cursor:"not-allowed"}}}),y_=(e,t)=>{const{fontFamily:n,fontSize:o}=e,r=`[class^="${t}"], [class*=" ${t}"]`;return{[r]:{fontFamily:n,fontSize:o,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[r]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},Lo=e=>({outline:`${e.lineWidthBold}px solid ${e.colorPrimaryBorder}`,outlineOffset:1,transition:"outline-offset 0s, outline 0s"}),zo=e=>({"&:focus-visible":g({},Lo(e))});function Je(e,t,n){return o=>{const r=P(()=>o==null?void 0:o.value),[l,a,i]=ea(),{getPrefixCls:s,iconPrefixCls:u}=hv(),c=P(()=>s()),d=P(()=>({theme:l.value,token:a.value,hashId:i.value,path:["Shared",c.value]}));pf(d,()=>[{"&":b_(a.value)}]);const p=P(()=>({theme:l.value,token:a.value,hashId:i.value,path:[e,r.value,u.value]}));return[pf(p,()=>{const{token:v,flush:y}=S_(a.value),m=typeof n=="function"?n(v):n,h=g(g({},m),a.value[e]),b=`.${r.value}`,$=Le(v,{componentCls:b,prefixCls:r.value,iconCls:`.${u.value}`,antCls:`.${c.value}`},h),C=t($,{hashId:i.value,prefixCls:r.value,rootPrefixCls:c.value,iconPrefixCls:u.value,overrideComponentToken:a.value[e]});return y(e,h),[y_(a.value,r.value),C]}),i]}}const zx=typeof CSSINJS_STATISTIC!="undefined";let hf=!0;function Le(){for(var e=arguments.length,t=new Array(e),n=0;n{Object.keys(r).forEach(a=>{Object.defineProperty(o,a,{configurable:!0,enumerable:!0,get:()=>r[a]})})}),hf=!0,o}function $_(){}function S_(e){let t,n=e,o=$_;return zx&&(t=new Set,n=new Proxy(e,{get(r,l){return hf&&t.add(l),r[l]}}),o=(r,l)=>{Array.from(t)}),{token:n,keys:t,flush:o}}const C_=Px(g_),Hx={token:wc,hashed:!0},jx=Symbol("DesignTokenContext"),bf=q(),x_=e=>{We(jx,e),ue(e,()=>{bf.value=Vt(e),tC(bf)},{immediate:!0,deep:!0})},w_=te({props:{value:De()},setup(e,t){let{slots:n}=t;return x_(P(()=>e.value)),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}});function ea(){const e=Ke(jx,P(()=>bf.value||Hx)),t=P(()=>`${FM}-${e.value.hashed||""}`),n=P(()=>e.value.theme||C_),o=uM(n,P(()=>[wc,e.value.token]),P(()=>({salt:t.value,override:g({override:e.value.token},e.value.components),formatToken:h_})));return[n,P(()=>o.value[0]),P(()=>e.value.hashed?o.value[1]:"")]}const Vx=te({compatConfig:{MODE:3},setup(){const[,e]=ea(),t=P(()=>new ut(e.value.colorBgBase).toHsl().l<.5?{opacity:.65}:{});return()=>f("svg",{style:t.value,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},[f("g",{fill:"none","fill-rule":"evenodd"},[f("g",{transform:"translate(24 31.67)"},[f("ellipse",{"fill-opacity":".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"},null),f("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"},null),f("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"},null),f("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"},null),f("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"},null)]),f("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"},null),f("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},[f("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"},null),f("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"},null)])])])}});Vx.PRESENTED_IMAGE_DEFAULT=!0;const Wx=Vx,Kx=te({compatConfig:{MODE:3},setup(){const[,e]=ea(),t=P(()=>{const{colorFill:n,colorFillTertiary:o,colorFillQuaternary:r,colorBgContainer:l}=e.value;return{borderColor:new ut(n).onBackground(l).toHexString(),shadowColor:new ut(o).onBackground(l).toHexString(),contentColor:new ut(r).onBackground(l).toHexString()}});return()=>f("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},[f("g",{transform:"translate(0 1)",fill:"none","fill-rule":"evenodd"},[f("ellipse",{fill:t.value.shadowColor,cx:"32",cy:"33",rx:"32",ry:"7"},null),f("g",{"fill-rule":"nonzero",stroke:t.value.borderColor},[f("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"},null),f("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:t.value.contentColor},null)])])])}});Kx.PRESENTED_IMAGE_SIMPLE=!0;const O_=Kx,P_=e=>{const{componentCls:t,margin:n,marginXS:o,marginXL:r,fontSize:l,lineHeight:a}=e;return{[t]:{marginInline:o,fontSize:l,lineHeight:a,textAlign:"center",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:o,opacity:e.opacityImage,img:{height:"100%"},svg:{height:"100%",margin:"auto"}},[`${t}-footer`]:{marginTop:n},"&-normal":{marginBlock:r,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:o,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},I_=Je("Empty",e=>{const{componentCls:t,controlHeightLG:n}=e,o=Le(e,{emptyImgCls:`${t}-img`,emptyImgHeight:n*2.5,emptyImgHeightMD:n,emptyImgHeightSM:n*.875});return[P_(o)]});var T_=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,imageStyle:De(),image:It(),description:It()}),xv=te({name:"AEmpty",compatConfig:{MODE:3},inheritAttrs:!1,props:E_(),setup(e,t){let{slots:n={},attrs:o}=t;const{direction:r,prefixCls:l}=Me("empty",e),[a,i]=I_(l);return()=>{var s,u;const c=l.value,d=g(g({},e),o),{image:p=((s=n.image)===null||s===void 0?void 0:s.call(n))||sr(Wx),description:v=((u=n.description)===null||u===void 0?void 0:u.call(n))||void 0,imageStyle:y,class:m=""}=d,h=T_(d,["image","description","imageStyle","class"]),b=typeof p=="function"?p():p,$=typeof b=="object"&&"type"in b&&b.type.PRESENTED_IMAGE_SIMPLE;return a(f(Ql,{componentName:"Empty",children:C=>{const w=typeof v!="undefined"?v:C.description,S=typeof w=="string"?w:"empty";let O=null;return typeof b=="string"?O=f("img",{alt:S,src:b},null):O=b,f("div",F({class:ne(c,m,i.value,{[`${c}-normal`]:$,[`${c}-rtl`]:r.value==="rtl"})},h),[f("div",{class:`${c}-image`,style:y},[O]),w&&f("p",{class:`${c}-description`},[w]),n.default&&f("div",{class:`${c}-footer`},[Ot(n.default())])])}},null))}}});xv.PRESENTED_IMAGE_DEFAULT=()=>sr(Wx);xv.PRESENTED_IMAGE_SIMPLE=()=>sr(O_);const Tr=Gt(xv),wv=e=>{const{prefixCls:t}=Me("empty",e);return(o=>{switch(o){case"Table":case"List":return f(Tr,{image:Tr.PRESENTED_IMAGE_SIMPLE},null);case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return f(Tr,{image:Tr.PRESENTED_IMAGE_SIMPLE,class:`${t.value}-small`},null);default:return f(Tr,null,null)}})(e.componentName)};function M_(e){return f(wv,{componentName:e},null)}const Gx=Symbol("SizeContextKey"),Xx=()=>Ke(Gx,ee(void 0)),Ux=e=>{const t=Xx();return We(Gx,P(()=>e.value||t.value)),e},Me=(e,t)=>{const n=Xx(),o=Cn(),r=Ke(mv,g(g({},dx),{renderEmpty:x=>sr(wv,{componentName:x})})),l=P(()=>r.getPrefixCls(e,t.prefixCls)),a=P(()=>{var x,I;return(x=t.direction)!==null&&x!==void 0?x:(I=r.direction)===null||I===void 0?void 0:I.value}),i=P(()=>{var x;return(x=t.iconPrefixCls)!==null&&x!==void 0?x:r.iconPrefixCls.value}),s=P(()=>r.getPrefixCls()),u=P(()=>{var x;return(x=r.autoInsertSpaceInButton)===null||x===void 0?void 0:x.value}),c=r.renderEmpty,d=r.space,p=r.pageHeader,v=r.form,y=P(()=>{var x,I;return(x=t.getTargetContainer)!==null&&x!==void 0?x:(I=r.getTargetContainer)===null||I===void 0?void 0:I.value}),m=P(()=>{var x,I,E;return(I=(x=t.getContainer)!==null&&x!==void 0?x:t.getPopupContainer)!==null&&I!==void 0?I:(E=r.getPopupContainer)===null||E===void 0?void 0:E.value}),h=P(()=>{var x,I;return(x=t.dropdownMatchSelectWidth)!==null&&x!==void 0?x:(I=r.dropdownMatchSelectWidth)===null||I===void 0?void 0:I.value}),b=P(()=>{var x;return(t.virtual===void 0?((x=r.virtual)===null||x===void 0?void 0:x.value)!==!1:t.virtual!==!1)&&h.value!==!1}),$=P(()=>t.size||n.value),C=P(()=>{var x,I,E;return(x=t.autocomplete)!==null&&x!==void 0?x:(E=(I=r.input)===null||I===void 0?void 0:I.value)===null||E===void 0?void 0:E.autocomplete}),w=P(()=>{var x;return(x=t.disabled)!==null&&x!==void 0?x:o.value}),S=P(()=>{var x;return(x=t.csp)!==null&&x!==void 0?x:r.csp}),O=P(()=>{var x,I;return(x=t.wave)!==null&&x!==void 0?x:(I=r.wave)===null||I===void 0?void 0:I.value});return{configProvider:r,prefixCls:l,direction:a,size:$,getTargetContainer:y,getPopupContainer:m,space:d,pageHeader:p,form:v,autoInsertSpaceInButton:u,renderEmpty:c,virtual:b,dropdownMatchSelectWidth:h,rootPrefixCls:s,getPrefixCls:r.getPrefixCls,autocomplete:C,csp:S,iconPrefixCls:i,disabled:w,select:r.select,wave:O}};function tt(e,t){const n=g({},e);for(let o=0;ot||l>e&&a=t&&i>=n?l-e-o:a>t&&in?a-t+r:0}var J0=function(e,t){var n=window,o=t.scrollMode,r=t.block,l=t.inline,a=t.boundary,i=t.skipOverflowHiddenElements,s=typeof a=="function"?a:function(pe){return pe!==a};if(!Q0(e))throw new TypeError("Invalid target");for(var u,c,d=document.scrollingElement||document.documentElement,p=[],v=e;Q0(v)&&s(v);){if((v=(c=(u=v).parentElement)==null?u.getRootNode().host||null:c)===d){p.push(v);break}v!=null&&v===document.body&&Hu(v)&&!Hu(document.documentElement)||v!=null&&Hu(v,i)&&p.push(v)}for(var y=n.visualViewport?n.visualViewport.width:innerWidth,m=n.visualViewport?n.visualViewport.height:innerHeight,h=window.scrollX||pageXOffset,b=window.scrollY||pageYOffset,$=e.getBoundingClientRect(),C=$.height,w=$.width,S=$.top,O=$.right,x=$.bottom,I=$.left,E=r==="start"||r==="nearest"?S:r==="end"?x:S+C/2,M=l==="center"?I+w/2:l==="end"?O:I,_=[],z=0;z=0&&I>=0&&x<=m&&O<=y&&S>=A&&x<=N&&I>=k&&O<=B)return _;var L=getComputedStyle(R),j=parseInt(L.borderLeftWidth,10),G=parseInt(L.borderTopWidth,10),U=parseInt(L.borderRightWidth,10),K=parseInt(L.borderBottomWidth,10),Y=0,Q=0,J="offsetWidth"in R?R.offsetWidth-R.clientWidth-j-U:0,Z="offsetHeight"in R?R.offsetHeight-R.clientHeight-G-K:0,W="offsetWidth"in R?R.offsetWidth===0?0:D/R.offsetWidth:0,X="offsetHeight"in R?R.offsetHeight===0?0:T/R.offsetHeight:0;if(d===R)Y=r==="start"?E:r==="end"?E-m:r==="nearest"?Bi(b,b+m,m,G,K,b+E,b+E+C,C):E-m/2,Q=l==="start"?M:l==="center"?M-y/2:l==="end"?M-y:Bi(h,h+y,y,j,U,h+M,h+M+w,w),Y=Math.max(0,Y+b),Q=Math.max(0,Q+h);else{Y=r==="start"?E-A-G:r==="end"?E-N+K+Z:r==="nearest"?Bi(A,N,T,G,K+Z,E,E+C,C):E-(A+T/2)+Z/2,Q=l==="start"?M-k-j:l==="center"?M-(k+D/2)+J/2:l==="end"?M-B+U+J:Bi(k,B,D,j,U+J,M,M+w,w);var re=R.scrollLeft,ae=R.scrollTop;E+=ae-(Y=Math.max(0,Math.min(ae+Y/X,R.scrollHeight-T/X+Z))),M+=re-(Q=Math.max(0,Math.min(re+Q/W,R.scrollWidth-D/W+J)))}_.push({el:R,top:Y,left:Q})}return _};function Yx(e){return e===Object(e)&&Object.keys(e).length!==0}function __(e,t){t===void 0&&(t="auto");var n="scrollBehavior"in document.body.style;e.forEach(function(o){var r=o.el,l=o.top,a=o.left;r.scroll&&n?r.scroll({top:l,left:a,behavior:t}):(r.scrollTop=l,r.scrollLeft=a)})}function D_(e){return e===!1?{block:"end",inline:"nearest"}:Yx(e)?e:{block:"start",inline:"nearest"}}function A_(e,t){var n=e.isConnected||e.ownerDocument.documentElement.contains(e);if(Yx(t)&&typeof t.behavior=="function")return t.behavior(n?J0(e,t):[]);if(n){var o=D_(t);return __(J0(e,o),o.behavior)}}function R_(e,t,n,o){const r=n-t;return e/=o/2,e<1?r/2*e*e*e+t:r/2*((e-=2)*e*e+2)+t}function yf(e){return e!=null&&e===e.window}function qx(e,t){var n,o;if(typeof window=="undefined")return 0;const r=t?"scrollTop":"scrollLeft";let l=0;return yf(e)?l=e[t?"scrollY":"scrollX"]:e instanceof Document?l=e.documentElement[r]:(e instanceof HTMLElement||e)&&(l=e[r]),e&&!yf(e)&&typeof l!="number"&&(l=(o=((n=e.ownerDocument)!==null&&n!==void 0?n:e).documentElement)===null||o===void 0?void 0:o[r]),l}function Qx(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{getContainer:n=()=>window,callback:o,duration:r=450}=t,l=n(),a=qx(l,!0),i=Date.now(),s=()=>{const c=Date.now()-i,d=R_(c>r?r:c,a,e,r);yf(l)?l.scrollTo(window.scrollX,d):l instanceof Document?l.documentElement.scrollTop=d:l.scrollTop=d,c=0||(r[n]=e[n]);return r}function tb(e){return((t=e)!=null&&typeof t=="object"&&Array.isArray(t)===!1)==1&&Object.prototype.toString.call(e)==="[object Object]";var t}var t2=Object.prototype,n2=t2.toString,B_=t2.hasOwnProperty,o2=/^\s*function (\w+)/;function nb(e){var t,n=(t=e==null?void 0:e.type)!==null&&t!==void 0?t:e;if(n){var o=n.toString().match(o2);return o?o[1]:""}return""}var Kr=function(e){var t,n;return tb(e)!==!1&&typeof(t=e.constructor)=="function"&&tb(n=t.prototype)!==!1&&n.hasOwnProperty("isPrototypeOf")!==!1},N_=function(e){return e},ln=N_,Qa=function(e,t){return B_.call(e,t)},F_=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e},kl=Array.isArray||function(e){return n2.call(e)==="[object Array]"},Ll=function(e){return n2.call(e)==="[object Function]"},Bs=function(e){return Kr(e)&&Qa(e,"_vueTypes_name")},r2=function(e){return Kr(e)&&(Qa(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return Qa(e,t)}))};function Ov(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function Jr(e,t,n){var o;n===void 0&&(n=!1);var r=!0,l="";o=Kr(e)?e:{type:e};var a=Bs(o)?o._vueTypes_name+" - ":"";if(r2(o)&&o.type!==null){if(o.type===void 0||o.type===!0||!o.required&&t===void 0)return r;kl(o.type)?(r=o.type.some(function(d){return Jr(d,t,!0)===!0}),l=o.type.map(function(d){return nb(d)}).join(" or ")):r=(l=nb(o))==="Array"?kl(t):l==="Object"?Kr(t):l==="String"||l==="Number"||l==="Boolean"||l==="Function"?function(d){if(d==null)return"";var p=d.constructor.toString().match(o2);return p?p[1]:""}(t)===l:t instanceof o.type}if(!r){var i=a+'value "'+t+'" should be of type "'+l+'"';return n===!1?(ln(i),!1):i}if(Qa(o,"validator")&&Ll(o.validator)){var s=ln,u=[];if(ln=function(d){u.push(d)},r=o.validator(t),ln=s,!r){var c=(u.length>1?"* ":"")+u.join(` +* `);return u.length=0,n===!1?(ln(c),r):c}}return r}function Rn(e,t){var n=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(r){return r!==void 0||this.default?Ll(r)||Jr(this,r,!0)===!0?(this.default=kl(r)?function(){return[].concat(r)}:Kr(r)?function(){return Object.assign({},r)}:r,this):(ln(this._vueTypes_name+' - invalid default value: "'+r+'"'),this):this}}}),o=n.validator;return Ll(o)&&(n.validator=Ov(o,n)),n}function yo(e,t){var n=Rn(e,t);return Object.defineProperty(n,"validate",{value:function(o){return Ll(this.validator)&&ln(this._vueTypes_name+` - calling .validate() will overwrite the current custom validator function. Validator info: +`+JSON.stringify(this)),this.validator=Ov(o,this),this}})}function ob(e,t,n){var o,r,l=(o=t,r={},Object.getOwnPropertyNames(o).forEach(function(d){r[d]=Object.getOwnPropertyDescriptor(o,d)}),Object.defineProperties({},r));if(l._vueTypes_name=e,!Kr(n))return l;var a,i,s=n.validator,u=e2(n,["validator"]);if(Ll(s)){var c=l.validator;c&&(c=(i=(a=c).__original)!==null&&i!==void 0?i:a),l.validator=Ov(c?function(d){return c.call(this,d)&&s.call(this,d)}:s,l)}return Object.assign(l,u)}function Pc(e){return e.replace(/^(?!\s*$)/gm," ")}var k_=function(){return yo("any",{})},L_=function(){return yo("function",{type:Function})},z_=function(){return yo("boolean",{type:Boolean})},H_=function(){return yo("string",{type:String})},j_=function(){return yo("number",{type:Number})},V_=function(){return yo("array",{type:Array})},W_=function(){return yo("object",{type:Object})},K_=function(){return Rn("integer",{type:Number,validator:function(e){return F_(e)}})},G_=function(){return Rn("symbol",{validator:function(e){return typeof e=="symbol"}})};function X_(e,t){if(t===void 0&&(t="custom validation failed"),typeof e!="function")throw new TypeError("[VueTypes error]: You must provide a function as argument");return Rn(e.name||"<>",{validator:function(n){var o=e(n);return o||ln(this._vueTypes_name+" - "+t),o}})}function U_(e){if(!kl(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.join('", "')+'".',n=e.reduce(function(o,r){if(r!=null){var l=r.constructor;o.indexOf(l)===-1&&o.push(l)}return o},[]);return Rn("oneOf",{type:n.length>0?n:void 0,validator:function(o){var r=e.indexOf(o)!==-1;return r||ln(t),r}})}function Y_(e){if(!kl(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,n=[],o=0;o0&&n.some(function(s){return a.indexOf(s)===-1})){var i=n.filter(function(s){return a.indexOf(s)===-1});return ln(i.length===1?'shape - required property "'+i[0]+'" is not defined.':'shape - required properties "'+i.join('", "')+'" are not defined.'),!1}return a.every(function(s){if(t.indexOf(s)===-1)return l._vueTypes_isLoose===!0||(ln('shape - shape definition does not include a "'+s+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var u=Jr(e[s],r[s],!0);return typeof u=="string"&&ln('shape - "'+s+`" property validation error: + `+Pc(u)),u===!0})}});return Object.defineProperty(o,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(o,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),o}var fo=function(){function e(){}return e.extend=function(t){var n=this;if(kl(t))return t.forEach(function(d){return n.extend(d)}),this;var o=t.name,r=t.validate,l=r!==void 0&&r,a=t.getter,i=a!==void 0&&a,s=e2(t,["name","validate","getter"]);if(Qa(this,o))throw new TypeError('[VueTypes error]: Type "'+o+'" already defined');var u,c=s.type;return Bs(c)?(delete s.type,Object.defineProperty(this,o,i?{get:function(){return ob(o,c,s)}}:{value:function(){var d,p=ob(o,c,s);return p.validator&&(p.validator=(d=p.validator).bind.apply(d,[p].concat([].slice.call(arguments)))),p}})):(u=i?{get:function(){var d=Object.assign({},s);return l?yo(o,d):Rn(o,d)},enumerable:!0}:{value:function(){var d,p,v=Object.assign({},s);return d=l?yo(o,v):Rn(o,v),v.validator&&(d.validator=(p=v.validator).bind.apply(p,[d].concat([].slice.call(arguments)))),d},enumerable:!0},Object.defineProperty(this,o,u))},Zx(e,null,[{key:"any",get:function(){return k_()}},{key:"func",get:function(){return L_().def(this.defaults.func)}},{key:"bool",get:function(){return z_().def(this.defaults.bool)}},{key:"string",get:function(){return H_().def(this.defaults.string)}},{key:"number",get:function(){return j_().def(this.defaults.number)}},{key:"array",get:function(){return V_().def(this.defaults.array)}},{key:"object",get:function(){return W_().def(this.defaults.object)}},{key:"integer",get:function(){return K_().def(this.defaults.integer)}},{key:"symbol",get:function(){return G_()}}]),e}();function l2(e){var t;return e===void 0&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),(t=function(n){function o(){return n.apply(this,arguments)||this}return Jx(o,n),Zx(o,null,[{key:"sensibleDefaults",get:function(){return ss({},this.defaults)},set:function(r){this.defaults=r!==!1?ss({},r!==!0?r:e):{}}}]),o}(fo)).defaults=ss({},e),t}fo.defaults={},fo.custom=X_,fo.oneOf=U_,fo.instanceOf=Q_,fo.oneOfType=Y_,fo.arrayOf=q_,fo.objectOf=Z_,fo.shape=J_,fo.utils={validate:function(e,t){return Jr(t,e,!0)===!0},toType:function(e,t,n){return n===void 0&&(n=!1),n?yo(e,t):Rn(e,t)}};(function(e){function t(){return e.apply(this,arguments)||this}return Jx(t,e),t})(l2());const a2=l2({func:void 0,bool:void 0,string:void 0,number:void 0,array:void 0,object:void 0,integer:void 0});a2.extend([{name:"looseBool",getter:!0,type:Boolean,default:void 0},{name:"style",getter:!0,type:[String,Object],default:void 0},{name:"VueNode",getter:!0,type:null}]);function eD(e){return e.default=void 0,e}const V=a2,yt=(e,t,n)=>{yv(e,`[ant-design-vue: ${t}] ${n}`)};function rb(e,t){const{key:n}=e;let o;return"value"in e&&({value:o}=e),n!=null?n:o!==void 0?o:`rc-index-key-${t}`}function i2(e,t){const{label:n,value:o,options:r}=e||{};return{label:n||(t?"children":"label"),value:o||"value",options:r||"options"}}function tD(e){let{fieldNames:t,childrenAsData:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const o=[],{label:r,value:l,options:a}=i2(t,!1);function i(s,u){s.forEach(c=>{const d=c[r];if(u||!(a in c)){const p=c[l];o.push({key:rb(c,o.length),groupOption:u,data:c,label:d,value:p})}else{let p=d;p===void 0&&n&&(p=c.label),o.push({key:rb(c,o.length),group:!0,data:c,label:p}),i(c[a],!0)}})}return i(e,!1),o}function $f(e){const t=g({},e);return"props"in t||Object.defineProperty(t,"props",{get(){return t}}),t}function nD(e,t){if(!t||!t.length)return null;let n=!1;function o(l,a){let[i,...s]=a;if(!i)return[l];const u=l.split(i);return n=n||u.length>1,u.reduce((c,d)=>[...c,...o(d,s)],[]).filter(c=>c)}const r=o(e,t);return n?r:null}function oD(){return""}function rD(e){return e?e.ownerDocument:window.document}function s2(){}const lD=()=>({action:V.oneOfType([V.string,V.arrayOf(V.string)]).def([]),showAction:V.any.def([]),hideAction:V.any.def([]),getPopupClassNameFromAlign:V.any.def(oD),onPopupVisibleChange:Function,afterPopupVisibleChange:V.func.def(s2),popup:V.any,arrow:V.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:V.string.def("rc-trigger-popup"),popupClassName:V.string.def(""),popupPlacement:String,builtinPlacements:V.object,popupTransitionName:String,popupAnimation:V.any,mouseEnterDelay:V.number.def(0),mouseLeaveDelay:V.number.def(.1),zIndex:Number,focusDelay:V.number.def(0),blurDelay:V.number.def(.15),getPopupContainer:Function,getDocument:V.func.def(rD),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:V.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),Pv={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},aD=g(g({},Pv),{mobile:{type:Object}}),iD=g(g({},Pv),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function Iv(e){let{prefixCls:t,animation:n,transitionName:o}=e;return n?{name:`${t}-${n}`}:o?{name:o}:{}}function c2(e){const{prefixCls:t,visible:n,zIndex:o,mask:r,maskAnimation:l,maskTransitionName:a}=e;if(!r)return null;let i={};return(a||l)&&(i=Iv({prefixCls:t,transitionName:a,animation:l})),f(Jt,F({appear:!0},i),{default:()=>[cn(f("div",{style:{zIndex:o},class:`${t}-mask`},null),[[H6("if"),n]])]})}c2.displayName="Mask";const sD=te({compatConfig:{MODE:3},name:"MobilePopupInner",inheritAttrs:!1,props:aD,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(e,t){let{expose:n,slots:o}=t;const r=ee();return n({forceAlign:()=>{},getElement:()=>r.value}),()=>{var l;const{zIndex:a,visible:i,prefixCls:s,mobile:{popupClassName:u,popupStyle:c,popupMotion:d={},popupRender:p}={}}=e,v=g({zIndex:a},c);let y=bt((l=o.default)===null||l===void 0?void 0:l.call(o));y.length>1&&(y=f("div",{class:`${s}-content`},[y])),p&&(y=p(y));const m=ne(s,u);return f(Jt,F({ref:r},d),{default:()=>[i?f("div",{class:m,style:v},[y]):null]})}}});var cD=globalThis&&globalThis.__awaiter||function(e,t,n,o){function r(l){return l instanceof n?l:new n(function(a){a(l)})}return new(n||(n=Promise))(function(l,a){function i(c){try{u(o.next(c))}catch(d){a(d)}}function s(c){try{u(o.throw(c))}catch(d){a(d)}}function u(c){c.done?l(c.value):r(c.value).then(i,s)}u((o=o.apply(e,t||[])).next())})};const lb=["measure","align",null,"motion"],uD=(e,t)=>{const n=q(null),o=q(),r=q(!1);function l(s){r.value||(n.value=s)}function a(){He.cancel(o.value)}function i(s){a(),o.value=He(()=>{let u=n.value;switch(n.value){case"align":u="motion";break;case"motion":u="stable";break}l(u),s==null||s()})}return ue(e,()=>{l("measure")},{immediate:!0,flush:"post"}),Ve(()=>{ue(n,()=>{switch(n.value){case"measure":t();break}n.value&&(o.value=He(()=>cD(void 0,void 0,void 0,function*(){const s=lb.indexOf(n.value),u=lb[s+1];u&&s!==-1&&l(u)})))},{immediate:!0,flush:"post"})}),Ze(()=>{r.value=!0,a()}),[n,i]},dD=e=>{const t=q({width:0,height:0});function n(r){t.value={width:r.offsetWidth,height:r.offsetHeight}}return[P(()=>{const r={};if(e.value){const{width:l,height:a}=t.value;e.value.indexOf("height")!==-1&&a?r.height=`${a}px`:e.value.indexOf("minHeight")!==-1&&a&&(r.minHeight=`${a}px`),e.value.indexOf("width")!==-1&&l?r.width=`${l}px`:e.value.indexOf("minWidth")!==-1&&l&&(r.minWidth=`${l}px`)}return r}),n]};function ab(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,o)}return n}function ib(e){for(var t=1;t=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function RD(e,t,n,o){var r=lt.clone(e),l={width:t.width,height:t.height};return o.adjustX&&r.left=n.left&&r.left+l.width>n.right&&(l.width-=r.left+l.width-n.right),o.adjustX&&r.left+l.width>n.right&&(r.left=Math.max(n.right-l.width,n.left)),o.adjustY&&r.top=n.top&&r.top+l.height>n.bottom&&(l.height-=r.top+l.height-n.bottom),o.adjustY&&r.top+l.height>n.bottom&&(r.top=Math.max(n.bottom-l.height,n.top)),lt.mix(r,l)}function _v(e){var t,n,o;if(!lt.isWindow(e)&&e.nodeType!==9)t=lt.offset(e),n=lt.outerWidth(e),o=lt.outerHeight(e);else{var r=lt.getWindow(e);t={left:lt.getWindowScrollLeft(r),top:lt.getWindowScrollTop(r)},n=lt.viewportWidth(r),o=lt.viewportHeight(r)}return t.width=n,t.height=o,t}function gb(e,t){var n=t.charAt(0),o=t.charAt(1),r=e.width,l=e.height,a=e.left,i=e.top;return n==="c"?i+=l/2:n==="b"&&(i+=l),o==="c"?a+=r/2:o==="r"&&(a+=r),{left:a,top:i}}function Fi(e,t,n,o,r){var l=gb(t,n[1]),a=gb(e,n[0]),i=[a.left-l.left,a.top-l.top];return{left:Math.round(e.left-i[0]+o[0]-r[0]),top:Math.round(e.top-i[1]+o[1]-r[1])}}function mb(e,t,n){return e.leftn.right}function hb(e,t,n){return e.topn.bottom}function BD(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.right||o.top>=n.bottom}function Dv(e,t,n){var o=n.target||t,r=_v(o),l=!FD(o,n.overflow&&n.overflow.alwaysByViewport);return h2(e,r,n,l)}Dv.__getOffsetParent=wf;Dv.__getVisibleRectForElement=Mv;function kD(e,t,n){var o,r,l=lt.getDocument(e),a=l.defaultView||l.parentWindow,i=lt.getWindowScrollLeft(a),s=lt.getWindowScrollTop(a),u=lt.viewportWidth(a),c=lt.viewportHeight(a);"pageX"in t?o=t.pageX:o=i+t.clientX,"pageY"in t?r=t.pageY:r=s+t.clientY;var d={left:o,top:r,width:0,height:0},p=o>=0&&o<=i+u&&r>=0&&r<=s+c,v=[n.points[0],"cc"];return h2(e,d,ib(ib({},n),{},{points:v}),p)}function gt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=e;if(Array.isArray(e)&&(r=Ot(e)[0]),!r)return null;const l=bo(r,t,o);return l.props=n?g(g({},l.props),t):l.props,$t(typeof l.props.class!="object"),l}function LD(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(o=>gt(o,t,n))}function zD(e,t,n){cr(bo(e,g({},t)),n)}const b2=e=>(e||[]).some(t=>tn(t)?!(t.type===eC||t.type===qe&&!b2(t.children)):!0)?e:null;function Tc(e,t,n,o){var r;const l=(r=e[t])===null||r===void 0?void 0:r.call(e,n);return b2(l)?l:o==null?void 0:o()}const Ec=e=>{if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){const t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){const t=e.getBoundingClientRect();if(t.width||t.height)return!0}return!1};function HD(e,t){return e===t?!0:!e||!t?!1:"pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t?e.clientX===t.clientX&&e.clientY===t.clientY:!1}function jD(e,t){e!==document.activeElement&&tr(t,e)&&typeof e.focus=="function"&&e.focus()}function $b(e,t){let n=null,o=null;function r(a){let[{target:i}]=a;if(!document.documentElement.contains(i))return;const{width:s,height:u}=i.getBoundingClientRect(),c=Math.floor(s),d=Math.floor(u);(n!==c||o!==d)&&Promise.resolve().then(()=>{t({width:c,height:d})}),n=c,o=d}const l=new nx(r);return e&&l.observe(e),()=>{l.disconnect()}}const VD=(e,t)=>{let n=!1,o=null;function r(){clearTimeout(o)}function l(a){if(!n||a===!0){if(e()===!1)return;n=!0,r(),o=setTimeout(()=>{n=!1},t.value)}else r(),o=setTimeout(()=>{n=!1,l()},t.value)}return[l,()=>{n=!1,r()}]},WD={align:Object,target:[Object,Function],onAlign:Function,monitorBufferTime:Number,monitorWindowResize:Boolean,disabled:Boolean};function Sb(e){return typeof e!="function"?null:e()}function Cb(e){return typeof e!="object"||!e?null:e}const KD=te({compatConfig:{MODE:3},name:"Align",props:WD,emits:["align"],setup(e,t){let{expose:n,slots:o}=t;const r=ee({}),l=ee(),[a,i]=VD(()=>{const{disabled:p,target:v,align:y,onAlign:m}=e;if(!p&&v&&l.value){const h=l.value;let b;const $=Sb(v),C=Cb(v);r.value.element=$,r.value.point=C,r.value.align=y;const{activeElement:w}=document;return $&&Ec($)?b=Dv(h,$,y):C&&(b=kD(h,C,y)),jD(w,h),m&&b&&m(h,b),!0}return!1},P(()=>e.monitorBufferTime)),s=ee({cancel:()=>{}}),u=ee({cancel:()=>{}}),c=()=>{const p=e.target,v=Sb(p),y=Cb(p);l.value!==u.value.element&&(u.value.cancel(),u.value.element=l.value,u.value.cancel=$b(l.value,a)),(r.value.element!==v||!HD(r.value.point,y)||!cv(r.value.align,e.align))&&(a(),s.value.element!==v&&(s.value.cancel(),s.value.element=v,s.value.cancel=$b(v,a)))};Ve(()=>{ot(()=>{c()})}),Co(()=>{ot(()=>{c()})}),ue(()=>e.disabled,p=>{p?i():a()},{immediate:!0,flush:"post"});const d=ee(null);return ue(()=>e.monitorWindowResize,p=>{p?d.value||(d.value=Pt(window,"resize",a)):d.value&&(d.value.remove(),d.value=null)},{flush:"post"}),Bn(()=>{s.value.cancel(),u.value.cancel(),d.value&&d.value.remove(),i()}),n({forceAlign:()=>a(!0)}),()=>{const p=o==null?void 0:o.default();return p?gt(p[0],{ref:l},!0,!0):null}}});Sn("bottomLeft","bottomRight","topLeft","topRight");const Av=e=>e!==void 0&&(e==="topLeft"||e==="topRight")?"slide-down":"slide-up",Yn=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return g(e?{name:e,appear:!0,enterFromClass:`${e}-enter ${e}-enter-prepare ${e}-enter-start`,enterActiveClass:`${e}-enter ${e}-enter-prepare`,enterToClass:`${e}-enter ${e}-enter-active`,leaveFromClass:` ${e}-leave`,leaveActiveClass:`${e}-leave ${e}-leave-active`,leaveToClass:`${e}-leave ${e}-leave-active`}:{css:!1},t)},Mc=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return g(e?{name:e,appear:!0,appearActiveClass:`${e}`,appearToClass:`${e}-appear ${e}-appear-active`,enterFromClass:`${e}-appear ${e}-enter ${e}-appear-prepare ${e}-enter-prepare`,enterActiveClass:`${e}`,enterToClass:`${e}-enter ${e}-appear ${e}-appear-active ${e}-enter-active`,leaveActiveClass:`${e} ${e}-leave`,leaveToClass:`${e}-leave-active`}:{css:!1},t)},on=(e,t,n)=>n!==void 0?n:`${e}-${t}`,GD=te({compatConfig:{MODE:3},name:"PopupInner",inheritAttrs:!1,props:Pv,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup(e,t){let{expose:n,attrs:o,slots:r}=t;const l=q(),a=q(),i=q(),[s,u]=dD(Ne(e,"stretch")),c=()=>{e.stretch&&u(e.getRootDomNode())},d=q(!1);let p;ue(()=>e.visible,O=>{clearTimeout(p),O?p=setTimeout(()=>{d.value=e.visible}):d.value=!1},{immediate:!0});const[v,y]=uD(d,c),m=q(),h=()=>e.point?e.point:e.getRootDomNode,b=()=>{var O;(O=l.value)===null||O===void 0||O.forceAlign()},$=(O,x)=>{var I;const E=e.getClassNameFromAlign(x),M=i.value;i.value!==E&&(i.value=E),v.value==="align"&&(M!==E?Promise.resolve().then(()=>{b()}):y(()=>{var _;(_=m.value)===null||_===void 0||_.call(m)}),(I=e.onAlign)===null||I===void 0||I.call(e,O,x))},C=P(()=>{const O=typeof e.animation=="object"?e.animation:Iv(e);return["onAfterEnter","onAfterLeave"].forEach(x=>{const I=O[x];O[x]=E=>{y(),v.value="stable",I==null||I(E)}}),O}),w=()=>new Promise(O=>{m.value=O});ue([C,v],()=>{!C.value&&v.value==="motion"&&y()},{immediate:!0}),n({forceAlign:b,getElement:()=>a.value.$el||a.value});const S=P(()=>{var O;return!(!((O=e.align)===null||O===void 0)&&O.points&&(v.value==="align"||v.value==="stable"))});return()=>{var O;const{zIndex:x,align:I,prefixCls:E,destroyPopupOnHide:M,onMouseenter:_,onMouseleave:z,onTouchstart:R=()=>{},onMousedown:H}=e,T=v.value,D=[g(g({},s.value),{zIndex:x,opacity:T==="motion"||T==="stable"||!d.value?null:0,pointerEvents:!d.value&&T!=="stable"?"none":null}),o.style];let A=bt((O=r.default)===null||O===void 0?void 0:O.call(r,{visible:e.visible}));A.length>1&&(A=f("div",{class:`${E}-content`},[A]));const B=ne(E,o.class,i.value,!e.arrow&&`${E}-arrow-hidden`),k=d.value||!e.visible?Yn(C.value.name,C.value):{};return f(Jt,F(F({ref:a},k),{},{onBeforeEnter:w}),{default:()=>!M||e.visible?cn(f(KD,{target:h(),key:"popup",ref:l,monitorWindowResize:!0,disabled:S.value,align:I,onAlign:$},{default:()=>f("div",{class:B,onMouseenter:_,onMouseleave:z,onMousedown:qh(H,["capture"]),[qt?"onTouchstartPassive":"onTouchstart"]:qh(R,["capture"]),style:D},[A])}),[[yn,d.value]]):null})}}}),XD=te({compatConfig:{MODE:3},name:"Popup",inheritAttrs:!1,props:iD,setup(e,t){let{attrs:n,slots:o,expose:r}=t;const l=q(!1),a=q(!1),i=q(),s=q();return ue([()=>e.visible,()=>e.mobile],()=>{l.value=e.visible,e.visible&&e.mobile&&(a.value=!0)},{immediate:!0,flush:"post"}),r({forceAlign:()=>{var u;(u=i.value)===null||u===void 0||u.forceAlign()},getElement:()=>{var u;return(u=i.value)===null||u===void 0?void 0:u.getElement()}}),()=>{const u=g(g(g({},e),n),{visible:l.value}),c=a.value?f(sD,F(F({},u),{},{mobile:e.mobile,ref:i}),{default:o.default}):f(GD,F(F({},u),{},{ref:i}),{default:o.default});return f("div",{ref:s},[f(c2,u,null),c])}}});function UD(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function xb(e,t,n){const o=e[t]||{};return g(g({},o),n)}function YD(e,t,n,o){const{points:r}=n,l=Object.keys(e);for(let a=0;a0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=typeof e=="function"?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){const o=this.getDerivedStateFromProps(x9(this),g(g({},this.$data),n));if(o===null)return;n=g(g({},n),o||{})}g(this.$data,n),this._.isMounted&&this.$forceUpdate(),ot(()=>{t&&t()})},__emit(){const e=[].slice.call(arguments,0);let t=e[0];t=`on${t[0].toUpperCase()}${t.substring(1)}`;const n=this.$props[t]||this.$attrs[t];if(e.length&&n)if(Array.isArray(n))for(let o=0,r=n.length;o1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};We(y2,{inTriggerContext:t.inTriggerContext,shouldRender:P(()=>{const{sPopupVisible:n,popupRef:o,forceRender:r,autoDestroy:l}=e||{};let a=!1;return(n||o||r)&&(a=!0),!n&&l&&(a=!1),a})})},qD=()=>{Rv({},{inTriggerContext:!1});const e=Ke(y2,{shouldRender:P(()=>!1),inTriggerContext:!1});return{shouldRender:P(()=>e.shouldRender.value||e.inTriggerContext===!1)}},$2=te({compatConfig:{MODE:3},name:"Portal",inheritAttrs:!1,props:{getContainer:V.func.isRequired,didUpdate:Function},setup(e,t){let{slots:n}=t,o=!0,r;const{shouldRender:l}=qD();function a(){l.value&&(r=e.getContainer())}Vp(()=>{o=!1,a()}),Ve(()=>{r||a()});const i=ue(l,()=>{l.value&&!r&&(r=e.getContainer()),r&&i()});return Co(()=>{ot(()=>{var s;l.value&&((s=e.didUpdate)===null||s===void 0||s.call(e,e))})}),()=>{var s;return l.value?o?(s=n.default)===null||s===void 0?void 0:s.call(n):r?f(Wp,{to:r},n):null:null}}});let Gu;function Fs(e){if(typeof document=="undefined")return 0;if(e||Gu===void 0){const t=document.createElement("div");t.style.width="100%",t.style.height="200px";const n=document.createElement("div"),o=n.style;o.position="absolute",o.top="0",o.left="0",o.pointerEvents="none",o.visibility="hidden",o.width="200px",o.height="150px",o.overflow="hidden",n.appendChild(t),document.body.appendChild(n);const r=t.offsetWidth;n.style.overflow="scroll";let l=t.offsetWidth;r===l&&(l=n.clientWidth),document.body.removeChild(n),Gu=r-l}return Gu}function wb(e){const t=e.match(/^(.*)px$/),n=Number(t==null?void 0:t[1]);return Number.isNaN(n)?Fs():n}function QD(e){if(typeof document=="undefined"||!e||!(e instanceof Element))return{width:0,height:0};const{width:t,height:n}=getComputedStyle(e,"::-webkit-scrollbar");return{width:wb(t),height:wb(n)}}const ZD=`vc-util-locker-${Date.now()}`;let Ob=0;function JD(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function eA(e){const t=P(()=>!!e&&!!e.value);Ob+=1;const n=`${ZD}_${Ob}`;ke(o=>{if(un()){if(t.value){const r=Fs(),l=JD();Xa(` +html body { + overflow-y: hidden; + ${l?`width: calc(100% - ${r}px);`:""} +}`,n)}else Ds(n);o(()=>{Ds(n)})}},{flush:"post"})}let yr=0;const cs=un(),Pb=e=>{if(!cs)return null;if(e){if(typeof e=="string")return document.querySelectorAll(e)[0];if(typeof e=="function")return e();if(typeof e=="object"&&e instanceof window.HTMLElement)return e}return document.body},Bv=te({compatConfig:{MODE:3},name:"PortalWrapper",inheritAttrs:!1,props:{wrapperClassName:String,forceRender:{type:Boolean,default:void 0},getContainer:V.any,visible:{type:Boolean,default:void 0},autoLock:xe(),didUpdate:Function},setup(e,t){let{slots:n}=t;const o=q(),r=q(),l=q(),a=q(1),i=un()&&document.createElement("div"),s=()=>{var v,y;o.value===i&&((y=(v=o.value)===null||v===void 0?void 0:v.parentNode)===null||y===void 0||y.removeChild(o.value)),o.value=null};let u=null;const c=function(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1)||o.value&&!o.value.parentNode?(u=Pb(e.getContainer),u?(u.appendChild(o.value),!0):!1):!0},d=()=>cs?(o.value||(o.value=i,c(!0)),p(),o.value):null,p=()=>{const{wrapperClassName:v}=e;o.value&&v&&v!==o.value.className&&(o.value.className=v)};return Co(()=>{p(),c()}),eA(P(()=>e.autoLock&&e.visible&&un()&&(o.value===document.body||o.value===i))),Ve(()=>{let v=!1;ue([()=>e.visible,()=>e.getContainer],(y,m)=>{let[h,b]=y,[$,C]=m;cs&&(u=Pb(e.getContainer),u===document.body&&(h&&!$?yr+=1:v&&(yr-=1))),v&&(typeof b=="function"&&typeof C=="function"?b.toString()!==C.toString():b!==C)&&s(),v=!0},{immediate:!0,flush:"post"}),ot(()=>{c()||(l.value=He(()=>{a.value+=1}))})}),Ze(()=>{const{visible:v}=e;cs&&u===document.body&&(yr=v&&yr?yr-1:yr),s(),He.cancel(l.value)}),()=>{const{forceRender:v,visible:y}=e;let m=null;const h={getOpenCount:()=>yr,getContainer:d};return a.value&&(v||y||r.value)&&(m=f($2,{getContainer:d,ref:r,didUpdate:e.didUpdate},{default:()=>{var b;return(b=n.default)===null||b===void 0?void 0:b.call(n,h)}})),m}}}),tA=["onClick","onMousedown","onTouchstart","onMouseenter","onMouseleave","onFocus","onBlur","onContextmenu"],di=te({compatConfig:{MODE:3},name:"Trigger",mixins:[ui],inheritAttrs:!1,props:lD(),setup(e){const t=P(()=>{const{popupPlacement:r,popupAlign:l,builtinPlacements:a}=e;return r&&a?xb(a,r,l):l}),n=q(null),o=r=>{n.value=r};return{vcTriggerContext:Ke("vcTriggerContext",{}),popupRef:n,setPopupRef:o,triggerRef:q(null),align:t,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){const e=this.$props;let t;return this.popupVisible!==void 0?t=!!e.popupVisible:t=!!e.defaultPopupVisible,tA.forEach(n=>{this[`fire${n}`]=o=>{this.fireEvents(n,o)}}),{prevPopupVisible:t,sPopupVisible:t,point:null}},watch:{popupVisible(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created(){We("vcTriggerContext",{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),Rv(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),He.cancel(this.attachId)},methods:{updatedCal(){const e=this.$props;if(this.$data.sPopupVisible){let n;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(n=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=Pt(n,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(n=n||e.getDocument(this.getRootDomNode()),this.touchOutsideHandler=Pt(n,"touchstart",this.onDocumentClick,qt?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(n=n||e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=Pt(n,"scroll",this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=Pt(window,"blur",this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(e){const{mouseEnterDelay:t}=this.$props;this.fireEvents("onMouseenter",e),this.delaySetPopupVisible(!0,t,t?null:e)},onMouseMove(e){this.fireEvents("onMousemove",e),this.setPoint(e)},onMouseleave(e){this.fireEvents("onMouseleave",e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){const{vcTriggerContext:e={}}=this;e.onPopupMouseenter&&e.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(e){var t;if(e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&tr((t=this.popupRef)===null||t===void 0?void 0:t.getElement(),e.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);const{vcTriggerContext:n={}}=this;n.onPopupMouseleave&&n.onPopupMouseleave(e)},onFocus(e){this.fireEvents("onFocus",e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(e){this.fireEvents("onMousedown",e),this.preClickTime=Date.now()},onTouchstart(e){this.fireEvents("onTouchstart",e),this.preTouchTime=Date.now()},onBlur(e){tr(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents("onBlur",e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(e){e.preventDefault(),this.fireEvents("onContextmenu",e),this.setPopupVisible(!0,e)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(e){if(this.fireEvents("onClick",e),this.focusTime){let n;if(this.preClickTime&&this.preTouchTime?n=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?n=this.preClickTime:this.preTouchTime&&(n=this.preTouchTime),Math.abs(n-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();const t=!this.$data.sPopupVisible;(this.isClickToHide()&&!t||t&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown(){const{vcTriggerContext:e={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),e.onPopupMouseDown&&e.onPopupMouseDown(...arguments)},onDocumentClick(e){if(this.$props.mask&&!this.$props.maskClosable)return;const t=e.target,n=this.getRootDomNode(),o=this.getPopupDomNode();(!tr(n,t)||this.isContextMenuOnly())&&!tr(o,t)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){var e;return((e=this.popupRef)===null||e===void 0?void 0:e.getElement())||null},getRootDomNode(){var e,t,n,o;const{getTriggerDOMNode:r}=this.$props;if(r){const l=((t=(e=this.triggerRef)===null||e===void 0?void 0:e.$el)===null||t===void 0?void 0:t.nodeName)==="#comment"?null:sn(this.triggerRef);return sn(r(l))}try{const l=((o=(n=this.triggerRef)===null||n===void 0?void 0:n.$el)===null||o===void 0?void 0:o.nodeName)==="#comment"?null:sn(this.triggerRef);if(l)return l}catch(l){}return sn(this)},handleGetPopupClassFromAlign(e){const t=[],n=this.$props,{popupPlacement:o,builtinPlacements:r,prefixCls:l,alignPoint:a,getPopupClassNameFromAlign:i}=n;return o&&r&&t.push(YD(r,l,e,a)),i&&t.push(i(e)),t.join(" ")},getPopupAlign(){const e=this.$props,{popupPlacement:t,popupAlign:n,builtinPlacements:o}=e;return t&&o?xb(o,t,n):n},getComponent(){const e={};this.isMouseEnterToShow()&&(e.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(e.onMouseleave=this.onPopupMouseleave),e.onMousedown=this.onPopupMouseDown,e[qt?"onTouchstartPassive":"onTouchstart"]=this.onPopupMouseDown;const{handleGetPopupClassFromAlign:t,getRootDomNode:n,$attrs:o}=this,{prefixCls:r,destroyPopupOnHide:l,popupClassName:a,popupAnimation:i,popupTransitionName:s,popupStyle:u,mask:c,maskAnimation:d,maskTransitionName:p,zIndex:v,stretch:y,alignPoint:m,mobile:h,arrow:b,forceRender:$}=this.$props,{sPopupVisible:C,point:w}=this.$data,S=g(g({prefixCls:r,arrow:b,destroyPopupOnHide:l,visible:C,point:m?w:null,align:this.align,animation:i,getClassNameFromAlign:t,stretch:y,getRootDomNode:n,mask:c,zIndex:v,transitionName:s,maskAnimation:d,maskTransitionName:p,class:a,style:u,onAlign:o.onPopupAlign||s2},e),{ref:this.setPopupRef,mobile:h,forceRender:$});return f(XD,S,{default:this.$slots.popup||(()=>rx(this,"popup"))})},attachParent(e){He.cancel(this.attachId);const{getPopupContainer:t,getDocument:n}=this.$props,o=this.getRootDomNode();let r;t?(o||t.length===0)&&(r=t(o)):r=n(this.getRootDomNode()).body,r?r.appendChild(e):this.attachId=He(()=>{this.attachParent(e)})},getContainer(){const{$props:e}=this,{getDocument:t}=e,n=t(this.getRootDomNode()).createElement("div");return n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%",this.attachParent(n),n},setPopupVisible(e,t){const{alignPoint:n,sPopupVisible:o,onPopupVisibleChange:r}=this;this.clearDelayTimer(),o!==e&&(Ao(this,"popupVisible")||this.setState({sPopupVisible:e,prevPopupVisible:o}),r&&r(e)),n&&t&&e&&this.setPoint(t)},setPoint(e){const{alignPoint:t}=this.$props;!t||!e||this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(e,t,n){const o=t*1e3;if(this.clearDelayTimer(),o){const r=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(e,r),this.clearDelayTimer()},o)}else this.setPopupVisible(e,n)},clearDelayTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},clearOutsideHandler(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextmenuOutsideHandler1&&(this.contextmenuOutsideHandler1.remove(),this.contextmenuOutsideHandler1=null),this.contextmenuOutsideHandler2&&(this.contextmenuOutsideHandler2.remove(),this.contextmenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},createTwoChains(e){let t=()=>{};const n=M0(this);return this.childOriginEvents[e]&&n[e]?this[`fire${e}`]:(t=this.childOriginEvents[e]||n[e]||t,t)},isClickToShow(){const{action:e,showAction:t}=this.$props;return e.indexOf("click")!==-1||t.indexOf("click")!==-1},isContextMenuOnly(){const{action:e}=this.$props;return e==="contextmenu"||e.length===1&&e[0]==="contextmenu"},isContextmenuToShow(){const{action:e,showAction:t}=this.$props;return e.indexOf("contextmenu")!==-1||t.indexOf("contextmenu")!==-1},isClickToHide(){const{action:e,hideAction:t}=this.$props;return e.indexOf("click")!==-1||t.indexOf("click")!==-1},isMouseEnterToShow(){const{action:e,showAction:t}=this.$props;return e.indexOf("hover")!==-1||t.indexOf("mouseenter")!==-1},isMouseLeaveToHide(){const{action:e,hideAction:t}=this.$props;return e.indexOf("hover")!==-1||t.indexOf("mouseleave")!==-1},isFocusToShow(){const{action:e,showAction:t}=this.$props;return e.indexOf("focus")!==-1||t.indexOf("focus")!==-1},isBlurToHide(){const{action:e,hideAction:t}=this.$props;return e.indexOf("focus")!==-1||t.indexOf("blur")!==-1},forcePopupAlign(){var e;this.$data.sPopupVisible&&((e=this.popupRef)===null||e===void 0||e.forceAlign())},fireEvents(e,t){this.childOriginEvents[e]&&this.childOriginEvents[e](t);const n=this.$props[e]||this.$attrs[e];n&&n(t)},close(){this.setPopupVisible(!1)}},render(){const{$attrs:e}=this,t=Ot(pv(this)),{alignPoint:n,getPopupContainer:o}=this.$props,r=t[0];this.childOriginEvents=M0(r);const l={key:"trigger"};this.isContextmenuToShow()?l.onContextmenu=this.onContextmenu:l.onContextmenu=this.createTwoChains("onContextmenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMousedown=this.onMousedown,l[qt?"onTouchstartPassive":"onTouchstart"]=this.onTouchstart):(l.onClick=this.createTwoChains("onClick"),l.onMousedown=this.createTwoChains("onMousedown"),l[qt?"onTouchstartPassive":"onTouchstart"]=this.createTwoChains("onTouchstart")),this.isMouseEnterToShow()?(l.onMouseenter=this.onMouseenter,n&&(l.onMousemove=this.onMouseMove)):l.onMouseenter=this.createTwoChains("onMouseenter"),this.isMouseLeaveToHide()?l.onMouseleave=this.onMouseleave:l.onMouseleave=this.createTwoChains("onMouseleave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=u=>{u&&(!u.relatedTarget||!tr(u.target,u.relatedTarget))&&this.createTwoChains("onBlur")(u)});const a=ne(r&&r.props&&r.props.class,e.class);a&&(l.class=a);const i=gt(r,g(g({},l),{ref:"triggerRef"}),!0,!0),s=f(Bv,{key:"portal",getContainer:o&&(()=>o(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent});return f(qe,null,[i,s])}});var nA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{const t=e===!0?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}},rA=te({name:"SelectTrigger",inheritAttrs:!1,props:{dropdownAlign:Object,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},dropdownClassName:String,dropdownStyle:V.object,placement:String,empty:{type:Boolean,default:void 0},prefixCls:String,popupClassName:String,animation:String,transitionName:String,getPopupContainer:Function,dropdownRender:Function,containerWidth:Number,dropdownMatchSelectWidth:V.oneOfType([Number,Boolean]).def(!0),popupElement:V.any,direction:String,getTriggerDOMNode:Function,onPopupVisibleChange:Function,onPopupMouseEnter:Function,onPopupFocusin:Function,onPopupFocusout:Function},setup(e,t){let{slots:n,attrs:o,expose:r}=t;const l=P(()=>{const{dropdownMatchSelectWidth:i}=e;return oA(i)}),a=ee();return r({getPopupElement:()=>a.value}),()=>{const i=g(g({},e),o),{empty:s=!1}=i,u=nA(i,["empty"]),{visible:c,dropdownAlign:d,prefixCls:p,popupElement:v,dropdownClassName:y,dropdownStyle:m,direction:h="ltr",placement:b,dropdownMatchSelectWidth:$,containerWidth:C,dropdownRender:w,animation:S,transitionName:O,getPopupContainer:x,getTriggerDOMNode:I,onPopupVisibleChange:E,onPopupMouseEnter:M,onPopupFocusin:_,onPopupFocusout:z}=u,R=`${p}-dropdown`;let H=v;w&&(H=w({menuNode:v,props:e}));const T=S?`${R}-${S}`:O,D=g({minWidth:`${C}px`},m);return typeof $=="number"?D.width=`${$}px`:$&&(D.width=`${C}px`),f(di,F(F({},e),{},{showAction:E?["click"]:[],hideAction:E?["click"]:[],popupPlacement:b||(h==="rtl"?"bottomRight":"bottomLeft"),builtinPlacements:l.value,prefixCls:R,popupTransitionName:T,popupAlign:d,popupVisible:c,getPopupContainer:x,popupClassName:ne(y,{[`${R}-empty`]:s}),popupStyle:D,getTriggerDOMNode:I,onPopupVisibleChange:E}),{default:n.default,popup:()=>f("div",{ref:a,onMouseenter:M,onFocusin:_,onFocusout:z},[H])})}}}),lA=rA,et={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(t){const{keyCode:n}=t;if(t.altKey&&!t.ctrlKey||t.metaKey||n>=et.F1&&n<=et.F12)return!1;switch(n){case et.ALT:case et.CAPS_LOCK:case et.CONTEXT_MENU:case et.CTRL:case et.DOWN:case et.END:case et.ESC:case et.HOME:case et.INSERT:case et.LEFT:case et.MAC_FF_META:case et.META:case et.NUMLOCK:case et.NUM_CENTER:case et.PAGE_DOWN:case et.PAGE_UP:case et.PAUSE:case et.PRINT_SCREEN:case et.RIGHT:case et.SHIFT:case et.UP:case et.WIN_KEY:case et.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=et.ZERO&&t<=et.NINE||t>=et.NUM_ZERO&&t<=et.NUM_MULTIPLY||t>=et.A&&t<=et.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&t===0)return!0;switch(t){case et.SPACE:case et.QUESTION_MARK:case et.NUM_PLUS:case et.NUM_MINUS:case et.NUM_PERIOD:case et.NUM_DIVISION:case et.SEMICOLON:case et.DASH:case et.EQUALS:case et.COMMA:case et.PERIOD:case et.SLASH:case et.APOSTROPHE:case et.SINGLE_QUOTE:case et.OPEN_SQUARE_BRACKET:case et.BACKSLASH:case et.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},Se=et,_c=(e,t)=>{let{slots:n}=t;var o;const{class:r,customizeIcon:l,customizeIconProps:a,onMousedown:i,onClick:s}=e;let u;return typeof l=="function"?u=l(a):u=tn(l)?bo(l):l,f("span",{class:r,onMousedown:c=>{c.preventDefault(),i&&i(c)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:s,"aria-hidden":!0},[u!==void 0?u:f("span",{class:r.split(/\s+/).map(c=>`${c}-icon`)},[(o=n.default)===null||o===void 0?void 0:o.call(n)])])};_c.inheritAttrs=!1;_c.displayName="TransBtn";_c.props={class:String,customizeIcon:V.any,customizeIconProps:V.any,onMousedown:Function,onClick:Function};const ks=_c;var aA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{o.value&&o.value.focus()},blur:()=>{o.value&&o.value.blur()},input:o,setSelectionRange:(s,u,c)=>{var d;(d=o.value)===null||d===void 0||d.setSelectionRange(s,u,c)},select:()=>{var s;(s=o.value)===null||s===void 0||s.select()},getSelectionStart:()=>{var s;return(s=o.value)===null||s===void 0?void 0:s.selectionStart},getSelectionEnd:()=>{var s;return(s=o.value)===null||s===void 0?void 0:s.selectionEnd},getScrollTop:()=>{var s;return(s=o.value)===null||s===void 0?void 0:s.scrollTop}}),()=>{const{tag:s,value:u}=e,c=aA(e,["tag","value"]);return f(s,F(F({},c),{},{ref:o,value:u}),null)}}}),sA=iA;function cA(){const e=document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{width:e,height:t}}function Ls(e){const t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.scrollX||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.scrollY||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}function uA(e){return Array.prototype.slice.apply(e).map(n=>`${n}: ${e.getPropertyValue(n)};`).join("")}function dA(e){return Object.keys(e).reduce((t,n)=>{const o=e[n];return typeof o=="undefined"||o===null||(t+=`${n}: ${e[n]};`),t},"")}var fA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.value,i],()=>{i.value||(a.value=e.value)},{immediate:!0});const s=x=>{n("change",x)},u=x=>{i.value=!0,x.target.composing=!0,n("compositionstart",x)},c=x=>{i.value=!1,x.target.composing=!1,n("compositionend",x);const I=document.createEvent("HTMLEvents");I.initEvent("input",!0,!0),x.target.dispatchEvent(I),s(x)},d=x=>{if(i.value&&e.lazy){a.value=x.target.value;return}n("input",x)},p=x=>{n("blur",x)},v=x=>{n("focus",x)},y=()=>{l.value&&l.value.focus()},m=()=>{l.value&&l.value.blur()},h=x=>{n("keydown",x)},b=x=>{n("keyup",x)},$=(x,I,E)=>{var M;(M=l.value)===null||M===void 0||M.setSelectionRange(x,I,E)},C=()=>{var x;(x=l.value)===null||x===void 0||x.select()};r({focus:y,blur:m,input:P(()=>{var x;return(x=l.value)===null||x===void 0?void 0:x.input}),setSelectionRange:$,select:C,getSelectionStart:()=>{var x;return(x=l.value)===null||x===void 0?void 0:x.getSelectionStart()},getSelectionEnd:()=>{var x;return(x=l.value)===null||x===void 0?void 0:x.getSelectionEnd()},getScrollTop:()=>{var x;return(x=l.value)===null||x===void 0?void 0:x.getScrollTop()}});const w=x=>{n("mousedown",x)},S=x=>{n("paste",x)},O=P(()=>e.style&&typeof e.style!="string"?dA(e.style):e.style);return()=>{const x=fA(e,["style","lazy"]);return f(sA,F(F(F({},x),o),{},{style:O.value,onInput:d,onChange:s,onBlur:p,onFocus:v,ref:l,value:a.value,onCompositionstart:u,onCompositionend:c,onKeyup:b,onKeydown:h,onPaste:S,onMousedown:w}),null)}}}),fi=pA,vA={inputRef:V.any,prefixCls:String,id:String,inputElement:V.VueNode,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,editable:{type:Boolean,default:void 0},activeDescendantId:String,value:String,open:{type:Boolean,default:void 0},tabindex:V.oneOfType([V.number,V.string]),attrs:V.object,onKeydown:{type:Function},onMousedown:{type:Function},onChange:{type:Function},onPaste:{type:Function},onCompositionstart:{type:Function},onCompositionend:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},gA=te({compatConfig:{MODE:3},name:"SelectInput",inheritAttrs:!1,props:vA,setup(e){let t=null;const n=Ke("VCSelectContainerEvent");return()=>{var o;const{prefixCls:r,id:l,inputElement:a,disabled:i,tabindex:s,autofocus:u,autocomplete:c,editable:d,activeDescendantId:p,value:v,onKeydown:y,onMousedown:m,onChange:h,onPaste:b,onCompositionstart:$,onCompositionend:C,onFocus:w,onBlur:S,open:O,inputRef:x,attrs:I}=e;let E=a||f(fi,null,null);const M=E.props||{},{onKeydown:_,onInput:z,onFocus:R,onBlur:H,onMousedown:T,onCompositionstart:D,onCompositionend:A,style:B}=M;return E=gt(E,g(g(g(g(g({type:"search"},M),{id:l,ref:x,disabled:i,tabindex:s,lazy:!1,autocomplete:c||"off",autofocus:u,class:ne(`${r}-selection-search-input`,(o=E==null?void 0:E.props)===null||o===void 0?void 0:o.class),role:"combobox","aria-expanded":O,"aria-haspopup":"listbox","aria-owns":`${l}_list`,"aria-autocomplete":"list","aria-controls":`${l}_list`,"aria-activedescendant":p}),I),{value:d?v:"",readonly:!d,unselectable:d?null:"on",style:g(g({},B),{opacity:d?null:0}),onKeydown:N=>{y(N),_&&_(N)},onMousedown:N=>{m(N),T&&T(N)},onInput:N=>{h(N),z&&z(N)},onCompositionstart(N){$(N),D&&D(N)},onCompositionend(N){C(N),A&&A(N)},onPaste:b,onFocus:function(){clearTimeout(t),R&&R(arguments.length<=0?void 0:arguments[0]),w&&w(arguments.length<=0?void 0:arguments[0]),n==null||n.focus(arguments.length<=0?void 0:arguments[0])},onBlur:function(){for(var N=arguments.length,k=new Array(N),L=0;L{H&&H(k[0]),S&&S(k[0]),n==null||n.blur(k[0])},100)}}),E.type==="textarea"?{}:{type:"search"}),!0,!0),E}}}),S2=gA,mA=`accept acceptcharset accesskey action allowfullscreen allowtransparency +alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge +charset checked classid classname colspan cols content contenteditable contextmenu +controls coords crossorigin data datetime default defer dir disabled download draggable +enctype form formaction formenctype formmethod formnovalidate formtarget frameborder +headers height hidden high href hreflang htmlfor for httpequiv icon id inputmode integrity +is keyparams keytype kind label lang list loop low manifest marginheight marginwidth max maxlength media +mediagroup method min minlength multiple muted name novalidate nonce open +optimum pattern placeholder poster preload radiogroup readonly rel required +reversed role rowspan rows sandbox scope scoped scrolling seamless selected +shape size sizes span spellcheck src srcdoc srclang srcset start step style +summary tabindex target title type usemap value width wmode wrap`,hA=`onCopy onCut onPaste onCompositionend onCompositionstart onCompositionupdate onKeydown + onKeypress onKeyup onFocus onBlur onChange onInput onSubmit onClick onContextmenu onDoubleclick onDblclick + onDrag onDragend onDragenter onDragexit onDragleave onDragover onDragstart onDrop onMousedown + onMouseenter onMouseleave onMousemove onMouseout onMouseover onMouseup onSelect onTouchcancel + onTouchend onTouchmove onTouchstart onTouchstartPassive onTouchmovePassive onScroll onWheel onAbort onCanplay onCanplaythrough + onDurationchange onEmptied onEncrypted onEnded onError onLoadeddata onLoadedmetadata + onLoadstart onPause onPlay onPlaying onProgress onRatechange onSeeked onSeeking onStalled onSuspend onTimeupdate onVolumechange onWaiting onLoad onError`,Ib=`${mA} ${hA}`.split(/[\s\n]+/),bA="aria-",yA="data-";function Tb(e,t){return e.indexOf(t)===0}function fr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n;t===!1?n={aria:!0,data:!0,attr:!0}:t===!0?n={aria:!0}:n=g({},t);const o={};return Object.keys(e).forEach(r=>{(n.aria&&(r==="role"||Tb(r,bA))||n.data&&Tb(r,yA)||n.attr&&(Ib.includes(r)||Ib.includes(r.toLowerCase())))&&(o[r]=e[r])}),o}const C2=Symbol("OverflowContextProviderKey"),Of=te({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,t){let{slots:n}=t;return We(C2,P(()=>e.value)),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),$A=()=>Ke(C2,P(()=>null));var SA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.responsive&&!e.display),l=ee();o({itemNodeRef:l});function a(i){e.registerSize(e.itemKey,i)}return Bn(()=>{a(null)}),()=>{var i;const{prefixCls:s,invalidate:u,item:c,renderItem:d,responsive:p,registerSize:v,itemKey:y,display:m,order:h,component:b="div"}=e,$=SA(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),C=(i=n.default)===null||i===void 0?void 0:i.call(n),w=d&&c!==ol?d(c):C;let S;u||(S={opacity:r.value?0:1,height:r.value?0:ol,overflowY:r.value?"hidden":ol,order:p?h:ol,pointerEvents:r.value?"none":ol,position:r.value?"absolute":ol});const O={};return r.value&&(O["aria-hidden"]=!0),f(io,{disabled:!p,onResize:x=>{let{offsetWidth:I}=x;a(I)}},{default:()=>f(b,F(F(F({class:ne(!u&&s),style:S},O),$),{},{ref:l}),{default:()=>[w]})})}}});var Xu=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{var l;if(!r.value){const{component:d="div"}=e,p=Xu(e,["component"]);return f(d,F(F({},p),o),{default:()=>[(l=n.default)===null||l===void 0?void 0:l.call(n)]})}const a=r.value,{className:i}=a,s=Xu(a,["className"]),{class:u}=o,c=Xu(o,["class"]);return f(Of,{value:null},{default:()=>[f(us,F(F(F({class:ne(i,u)},s),c),e),n)]})}}});var xA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:V.any,component:String,itemComponent:V.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Dc=te({name:"Overflow",inheritAttrs:!1,props:OA(),emits:["visibleChange"],setup(e,t){let{attrs:n,emit:o,slots:r}=t;const l=P(()=>e.ssr==="full"),a=q(null),i=P(()=>a.value||0),s=q(new Map),u=q(0),c=q(0),d=q(0),p=q(null),v=q(null),y=P(()=>v.value===null&&l.value?Number.MAX_SAFE_INTEGER:v.value||0),m=q(!1),h=P(()=>`${e.prefixCls}-item`),b=P(()=>Math.max(u.value,c.value)),$=P(()=>!!(e.data.length&&e.maxCount===x2)),C=P(()=>e.maxCount===w2),w=P(()=>$.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),S=P(()=>{let T=e.data;return $.value?a.value===null&&l.value?T=e.data:T=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(T=e.data.slice(0,e.maxCount)),T}),O=P(()=>$.value?e.data.slice(y.value+1):e.data.slice(S.value.length)),x=(T,D)=>{var A;return typeof e.itemKey=="function"?e.itemKey(T):(A=e.itemKey&&(T==null?void 0:T[e.itemKey]))!==null&&A!==void 0?A:D},I=P(()=>e.renderItem||(T=>T)),E=(T,D)=>{v.value=T,D||(m.value=T{a.value=D.clientWidth},_=(T,D)=>{const A=new Map(s.value);D===null?A.delete(T):A.set(T,D),s.value=A},z=(T,D)=>{u.value=c.value,c.value=D},R=(T,D)=>{d.value=D},H=T=>s.value.get(x(S.value[T],T));return ue([i,s,c,d,()=>e.itemKey,S],()=>{if(i.value&&b.value&&S.value){let T=d.value;const D=S.value.length,A=D-1;if(!D){E(0),p.value=null;return}for(let B=0;Bi.value){E(B-1),p.value=T-N-d.value+c.value;break}}e.suffix&&H(0)+d.value>i.value&&(p.value=null)}}),()=>{const T=m.value&&!!O.value.length,{itemComponent:D,renderRawItem:A,renderRawRest:B,renderRest:N,prefixCls:k="rc-overflow",suffix:L,component:j="div",id:G,onMousedown:U}=e,{class:K,style:Y}=n,Q=xA(n,["class","style"]);let J={};p.value!==null&&$.value&&(J={position:"absolute",left:`${p.value}px`,top:0});const Z={prefixCls:h.value,responsive:$.value,component:D,invalidate:C.value},W=A?(pe,ye)=>{const de=x(pe,ye);return f(Of,{key:de,value:g(g({},Z),{order:ye,item:pe,itemKey:de,registerSize:_,display:ye<=y.value})},{default:()=>[A(pe,ye)]})}:(pe,ye)=>{const de=x(pe,ye);return f(us,F(F({},Z),{},{order:ye,key:de,item:pe,renderItem:I.value,itemKey:de,registerSize:_,display:ye<=y.value}),null)};let X=()=>null;const re={order:T?y.value:Number.MAX_SAFE_INTEGER,className:`${h.value} ${h.value}-rest`,registerSize:z,display:T};if(B)B&&(X=()=>f(Of,{value:g(g({},Z),re)},{default:()=>[B(O.value)]}));else{const pe=N||wA;X=()=>f(us,F(F({},Z),re),{default:()=>typeof pe=="function"?pe(O.value):pe})}const ae=()=>{var pe;return f(j,F({id:G,class:ne(!C.value&&k,K),style:Y,onMousedown:U,role:e.role},Q),{default:()=>[S.value.map(W),w.value?X():null,L&&f(us,F(F({},Z),{},{order:y.value,class:`${h.value}-suffix`,registerSize:R,display:!0,style:J}),{default:()=>L}),(pe=r.default)===null||pe===void 0?void 0:pe.call(r)]})};return f(io,{disabled:!$.value,onResize:M},{default:ae})}}});Dc.Item=CA;Dc.RESPONSIVE=x2;Dc.INVALIDATE=w2;const Sl=Dc,O2=Symbol("TreeSelectLegacyContextPropsKey");function PA(e){return We(O2,e)}function Ac(){return Ke(O2,{})}const IA={id:String,prefixCls:String,values:V.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:V.any,placeholder:V.any,disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:V.oneOfType([V.number,V.string]),compositionStatus:Boolean,removeIcon:V.any,choiceTransitionName:String,maxTagCount:V.oneOfType([V.number,V.string]),maxTagTextLength:Number,maxTagPlaceholder:V.any.def(()=>e=>`+ ${e.length} ...`),tagRender:Function,onToggleOpen:{type:Function},onRemove:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},Eb=e=>{e.preventDefault(),e.stopPropagation()},TA=te({name:"MultipleSelectSelector",inheritAttrs:!1,props:IA,setup(e){const t=q(),n=q(0),o=q(!1),r=Ac(),l=P(()=>`${e.prefixCls}-selection`),a=P(()=>e.open||e.mode==="tags"?e.searchValue:""),i=P(()=>e.mode==="tags"||e.showSearch&&(e.open||o.value)),s=ee("");ke(()=>{s.value=a.value}),Ve(()=>{ue(s,()=>{n.value=t.value.scrollWidth},{flush:"post",immediate:!0})});function u(y,m,h,b,$){return f("span",{class:ne(`${l.value}-item`,{[`${l.value}-item-disabled`]:h}),title:typeof y=="string"||typeof y=="number"?y.toString():void 0},[f("span",{class:`${l.value}-item-content`},[m]),b&&f(ks,{class:`${l.value}-item-remove`,onMousedown:Eb,onClick:$,customizeIcon:e.removeIcon},{default:()=>[ko("×")]})])}function c(y,m,h,b,$,C){var w;const S=x=>{Eb(x),e.onToggleOpen(!open)};let O=C;return r.keyEntities&&(O=((w=r.keyEntities[y])===null||w===void 0?void 0:w.node)||{}),f("span",{key:y,onMousedown:S},[e.tagRender({label:m,value:y,disabled:h,closable:b,onClose:$,option:O})])}function d(y){const{disabled:m,label:h,value:b,option:$}=y,C=!e.disabled&&!m;let w=h;if(typeof e.maxTagTextLength=="number"&&(typeof h=="string"||typeof h=="number")){const O=String(w);O.length>e.maxTagTextLength&&(w=`${O.slice(0,e.maxTagTextLength)}...`)}const S=O=>{var x;O&&O.stopPropagation(),(x=e.onRemove)===null||x===void 0||x.call(e,y)};return typeof e.tagRender=="function"?c(b,w,m,C,S,$):u(h,w,m,C,S)}function p(y){const{maxTagPlaceholder:m=b=>`+ ${b.length} ...`}=e,h=typeof m=="function"?m(y):m;return u(h,h,!1)}const v=y=>{const m=y.target.composing;s.value=y.target.value,m||e.onInputChange(y)};return()=>{const{id:y,prefixCls:m,values:h,open:b,inputRef:$,placeholder:C,disabled:w,autofocus:S,autocomplete:O,activeDescendantId:x,tabindex:I,compositionStatus:E,onInputPaste:M,onInputKeyDown:_,onInputMouseDown:z,onInputCompositionStart:R,onInputCompositionEnd:H}=e,T=f("div",{class:`${l.value}-search`,style:{width:n.value+"px"},key:"input"},[f(S2,{inputRef:$,open:b,prefixCls:m,id:y,inputElement:null,disabled:w,autofocus:S,autocomplete:O,editable:i.value,activeDescendantId:x,value:s.value,onKeydown:_,onMousedown:z,onChange:v,onPaste:M,onCompositionstart:R,onCompositionend:H,tabindex:I,attrs:fr(e,!0),onFocus:()=>o.value=!0,onBlur:()=>o.value=!1},null),f("span",{ref:t,class:`${l.value}-search-mirror`,"aria-hidden":!0},[s.value,ko(" ")])]),D=f(Sl,{prefixCls:`${l.value}-overflow`,data:h,renderItem:d,renderRest:p,suffix:T,itemKey:"key",maxCount:e.maxTagCount,key:"overflow"},null);return f(qe,null,[D,!h.length&&!a.value&&!E&&f("span",{class:`${l.value}-placeholder`},[C])])}}}),EA=TA,MA={inputElement:V.any,id:String,prefixCls:String,values:V.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:V.any,placeholder:V.any,compositionStatus:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:V.oneOfType([V.number,V.string]),activeValue:String,backfill:{type:Boolean,default:void 0},optionLabelRender:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},Nv=te({name:"SingleSelector",setup(e){const t=q(!1),n=P(()=>e.mode==="combobox"),o=P(()=>n.value||e.showSearch),r=P(()=>{let c=e.searchValue||"";return n.value&&e.activeValue&&!t.value&&(c=e.activeValue),c}),l=Ac();ue([n,()=>e.activeValue],()=>{n.value&&(t.value=!1)},{immediate:!0});const a=P(()=>e.mode!=="combobox"&&!e.open&&!e.showSearch?!1:!!r.value||e.compositionStatus),i=P(()=>{const c=e.values[0];return c&&(typeof c.label=="string"||typeof c.label=="number")?c.label.toString():void 0}),s=()=>{if(e.values[0])return null;const c=a.value?{visibility:"hidden"}:void 0;return f("span",{class:`${e.prefixCls}-selection-placeholder`,style:c},[e.placeholder])},u=c=>{c.target.composing||(t.value=!0,e.onInputChange(c))};return()=>{var c,d,p,v;const{inputElement:y,prefixCls:m,id:h,values:b,inputRef:$,disabled:C,autofocus:w,autocomplete:S,activeDescendantId:O,open:x,tabindex:I,optionLabelRender:E,onInputKeyDown:M,onInputMouseDown:_,onInputPaste:z,onInputCompositionStart:R,onInputCompositionEnd:H}=e,T=b[0];let D=null;if(T&&l.customSlots){const A=(c=T.key)!==null&&c!==void 0?c:T.value,B=((d=l.keyEntities[A])===null||d===void 0?void 0:d.node)||{};D=l.customSlots[(p=B.slots)===null||p===void 0?void 0:p.title]||l.customSlots.title||T.label,typeof D=="function"&&(D=D(B))}else D=E&&T?E(T.option):T==null?void 0:T.label;return f(qe,null,[f("span",{class:`${m}-selection-search`},[f(S2,{inputRef:$,prefixCls:m,id:h,open:x,inputElement:y,disabled:C,autofocus:w,autocomplete:S,editable:o.value,activeDescendantId:O,value:r.value,onKeydown:M,onMousedown:_,onChange:u,onPaste:z,onCompositionstart:R,onCompositionend:H,tabindex:I,attrs:fr(e,!0)},null)]),!n.value&&T&&!a.value&&f("span",{class:`${m}-selection-item`,title:i.value},[f(qe,{key:(v=T.key)!==null&&v!==void 0?v:T.value},[D])]),s()])}}});Nv.props=MA;Nv.inheritAttrs=!1;const _A=Nv;function DA(e){return![Se.ESC,Se.SHIFT,Se.BACKSPACE,Se.TAB,Se.WIN_KEY,Se.ALT,Se.META,Se.WIN_KEY_RIGHT,Se.CTRL,Se.SEMICOLON,Se.EQUALS,Se.CAPS_LOCK,Se.CONTEXT_MENU,Se.F1,Se.F2,Se.F3,Se.F4,Se.F5,Se.F6,Se.F7,Se.F8,Se.F9,Se.F10,Se.F11,Se.F12].includes(e)}function P2(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,t=null,n;Ze(()=>{clearTimeout(n)});function o(r){(r||t===null)&&(t=r),clearTimeout(n),n=setTimeout(()=>{t=null},e)}return[()=>t,o]}function Ja(){const e=t=>{e.current=t};return e}const AA=te({name:"Selector",inheritAttrs:!1,props:{id:String,prefixCls:String,showSearch:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},values:V.array,multiple:{type:Boolean,default:void 0},mode:String,searchValue:String,activeValue:String,inputElement:V.any,autofocus:{type:Boolean,default:void 0},activeDescendantId:String,tabindex:V.oneOfType([V.number,V.string]),disabled:{type:Boolean,default:void 0},placeholder:V.any,removeIcon:V.any,maxTagCount:V.oneOfType([V.number,V.string]),maxTagTextLength:Number,maxTagPlaceholder:V.any,tagRender:Function,optionLabelRender:Function,tokenWithEnter:{type:Boolean,default:void 0},choiceTransitionName:String,onToggleOpen:{type:Function},onSearch:Function,onSearchSubmit:Function,onRemove:Function,onInputKeyDown:{type:Function},domRef:Function},setup(e,t){let{expose:n}=t;const o=Ja(),r=ee(!1),[l,a]=P2(0),i=b=>{const{which:$}=b;($===Se.UP||$===Se.DOWN)&&b.preventDefault(),e.onInputKeyDown&&e.onInputKeyDown(b),$===Se.ENTER&&e.mode==="tags"&&!r.value&&!e.open&&e.onSearchSubmit(b.target.value),DA($)&&e.onToggleOpen(!0)},s=()=>{a(!0)};let u=null;const c=b=>{e.onSearch(b,!0,r.value)!==!1&&e.onToggleOpen(!0)},d=()=>{r.value=!0},p=b=>{r.value=!1,e.mode!=="combobox"&&c(b.target.value)},v=b=>{let{target:{value:$}}=b;if(e.tokenWithEnter&&u&&/[\r\n]/.test(u)){const C=u.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");$=$.replace(C,u)}u=null,c($)},y=b=>{const{clipboardData:$}=b;u=$.getData("text")},m=b=>{let{target:$}=b;$!==o.current&&(document.body.style.msTouchAction!==void 0?setTimeout(()=>{o.current.focus()}):o.current.focus())},h=b=>{const $=l();b.target!==o.current&&!$&&b.preventDefault(),(e.mode!=="combobox"&&(!e.showSearch||!$)||!e.open)&&(e.open&&e.onSearch("",!0,!1),e.onToggleOpen())};return n({focus:()=>{o.current.focus()},blur:()=>{o.current.blur()}}),()=>{const{prefixCls:b,domRef:$,mode:C}=e,w={inputRef:o,onInputKeyDown:i,onInputMouseDown:s,onInputChange:v,onInputPaste:y,compositionStatus:r.value,onInputCompositionStart:d,onInputCompositionEnd:p},S=C==="multiple"||C==="tags"?f(EA,F(F({},e),w),null):f(_A,F(F({},e),w),null);return f("div",{ref:$,class:`${b}-selector`,onClick:m,onMousedown:h},[S])}}}),RA=AA;function BA(e,t,n){function o(r){var l,a,i;let s=r.target;s.shadowRoot&&r.composed&&(s=r.composedPath()[0]||s);const u=[(l=e[0])===null||l===void 0?void 0:l.value,(i=(a=e[1])===null||a===void 0?void 0:a.value)===null||i===void 0?void 0:i.getPopupElement()];t.value&&u.every(c=>c&&!c.contains(s)&&c!==s)&&n(!1)}Ve(()=>{window.addEventListener("mousedown",o)}),Ze(()=>{window.removeEventListener("mousedown",o)})}function NA(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10;const t=q(!1);let n;const o=()=>{clearTimeout(n)};return Ve(()=>{o()}),[t,(l,a)=>{o(),n=setTimeout(()=>{t.value=l,a&&a()},e)},o]}const I2=Symbol("BaseSelectContextKey");function FA(e){return We(I2,e)}function pi(){return Ke(I2,{})}const Fv=()=>{if(typeof navigator=="undefined"||typeof window=="undefined")return!1;const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e==null?void 0:e.substring(0,4))};function zs(e){if(!nC(e))return vt(e);const t=new Proxy({},{get(n,o,r){return Reflect.get(e.value,o,r)},set(n,o,r){return e.value[o]=r,!0},deleteProperty(n,o){return Reflect.deleteProperty(e.value,o)},has(n,o){return Reflect.has(e.value,o)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return vt(t)}var kA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,id:String,omitDomProps:Array,displayValues:Array,onDisplayValuesChange:Function,activeValue:String,activeDescendantId:String,onActiveValueChange:Function,searchValue:String,onSearch:Function,onSearchSplit:Function,maxLength:Number,OptionList:V.any,emptyOptions:Boolean}),Rc=()=>({showSearch:{type:Boolean,default:void 0},tagRender:{type:Function},optionLabelRender:{type:Function},direction:{type:String},tabindex:Number,autofocus:Boolean,notFoundContent:V.any,placeholder:V.any,onClear:Function,choiceTransitionName:String,mode:String,disabled:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},onDropdownVisibleChange:{type:Function},getInputElement:{type:Function},getRawInputElement:{type:Function},maxTagTextLength:Number,maxTagCount:{type:[String,Number]},maxTagPlaceholder:V.any,tokenSeparators:{type:Array},allowClear:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:void 0},inputIcon:V.any,clearIcon:V.any,removeIcon:V.any,animation:String,transitionName:String,dropdownStyle:{type:Object},dropdownClassName:String,dropdownMatchSelectWidth:{type:[Boolean,Number],default:void 0},dropdownRender:{type:Function},dropdownAlign:Object,placement:{type:String},getPopupContainer:{type:Function},showAction:{type:Array},onBlur:{type:Function},onFocus:{type:Function},onKeyup:Function,onKeydown:Function,onMousedown:Function,onPopupScroll:Function,onInputKeyDown:Function,onMouseenter:Function,onMouseleave:Function,onClick:Function}),HA=()=>g(g({},zA()),Rc());function T2(e){return e==="tags"||e==="multiple"}const kv=te({compatConfig:{MODE:3},name:"BaseSelect",inheritAttrs:!1,props:rt(HA(),{showAction:[],notFoundContent:"Not Found"}),setup(e,t){let{attrs:n,expose:o,slots:r}=t;const l=P(()=>T2(e.mode)),a=P(()=>e.showSearch!==void 0?e.showSearch:l.value||e.mode==="combobox"),i=q(!1);Ve(()=>{i.value=Fv()});const s=Ac(),u=q(null),c=Ja(),d=q(null),p=q(null),v=q(null),y=ee(!1),[m,h,b]=NA();o({focus:()=>{var W;(W=p.value)===null||W===void 0||W.focus()},blur:()=>{var W;(W=p.value)===null||W===void 0||W.blur()},scrollTo:W=>{var X;return(X=v.value)===null||X===void 0?void 0:X.scrollTo(W)}});const w=P(()=>{var W;if(e.mode!=="combobox")return e.searchValue;const X=(W=e.displayValues[0])===null||W===void 0?void 0:W.value;return typeof X=="string"||typeof X=="number"?String(X):""}),S=e.open!==void 0?e.open:e.defaultOpen,O=q(S),x=q(S),I=W=>{O.value=e.open!==void 0?e.open:W,x.value=O.value};ue(()=>e.open,()=>{I(e.open)});const E=P(()=>!e.notFoundContent&&e.emptyOptions);ke(()=>{x.value=O.value,(e.disabled||E.value&&x.value&&e.mode==="combobox")&&(x.value=!1)});const M=P(()=>E.value?!1:x.value),_=W=>{const X=W!==void 0?W:!x.value;x.value!==X&&!e.disabled&&(I(X),e.onDropdownVisibleChange&&e.onDropdownVisibleChange(X))},z=P(()=>(e.tokenSeparators||[]).some(W=>[` +`,`\r +`].includes(W))),R=(W,X,re)=>{var ae,pe;let ye=!0,de=W;(ae=e.onActiveValueChange)===null||ae===void 0||ae.call(e,null);const me=re?null:nD(W,e.tokenSeparators);return e.mode!=="combobox"&&me&&(de="",(pe=e.onSearchSplit)===null||pe===void 0||pe.call(e,me),_(!1),ye=!1),e.onSearch&&w.value!==de&&e.onSearch(de,{source:X?"typing":"effect"}),ye},H=W=>{var X;!W||!W.trim()||(X=e.onSearch)===null||X===void 0||X.call(e,W,{source:"submit"})};ue(x,()=>{!x.value&&!l.value&&e.mode!=="combobox"&&R("",!1,!1)},{immediate:!0,flush:"post"}),ue(()=>e.disabled,()=>{O.value&&e.disabled&&I(!1),e.disabled&&!y.value&&h(!1)},{immediate:!0});const[T,D]=P2(),A=function(W){var X;const re=T(),{which:ae}=W;if(ae===Se.ENTER&&(e.mode!=="combobox"&&W.preventDefault(),x.value||_(!0)),D(!!w.value),ae===Se.BACKSPACE&&!re&&l.value&&!w.value&&e.displayValues.length){const me=[...e.displayValues];let ie=null;for(let se=me.length-1;se>=0;se-=1){const be=me[se];if(!be.disabled){me.splice(se,1),ie=be;break}}ie&&e.onDisplayValuesChange(me,{type:"remove",values:[ie]})}for(var pe=arguments.length,ye=new Array(pe>1?pe-1:0),de=1;de1?X-1:0),ae=1;ae{const X=e.displayValues.filter(re=>re!==W);e.onDisplayValuesChange(X,{type:"remove",values:[W]})},k=q(!1),L=function(){h(!0),e.disabled||(e.onFocus&&!k.value&&e.onFocus(...arguments),e.showAction&&e.showAction.includes("focus")&&_(!0)),k.value=!0},j=ee(!1),G=function(){if(j.value||(y.value=!0,h(!1,()=>{k.value=!1,y.value=!1,_(!1)}),e.disabled))return;const W=w.value;W&&(e.mode==="tags"?e.onSearch(W,{source:"submit"}):e.mode==="multiple"&&e.onSearch("",{source:"blur"})),e.onBlur&&e.onBlur(...arguments)},U=()=>{j.value=!0},K=()=>{j.value=!1};We("VCSelectContainerEvent",{focus:L,blur:G});const Y=[];Ve(()=>{Y.forEach(W=>clearTimeout(W)),Y.splice(0,Y.length)}),Ze(()=>{Y.forEach(W=>clearTimeout(W)),Y.splice(0,Y.length)});const Q=function(W){var X,re;const{target:ae}=W,pe=(X=d.value)===null||X===void 0?void 0:X.getPopupElement();if(pe&&pe.contains(ae)){const ie=setTimeout(()=>{var se;const be=Y.indexOf(ie);be!==-1&&Y.splice(be,1),b(),!i.value&&!pe.contains(document.activeElement)&&((se=p.value)===null||se===void 0||se.focus())});Y.push(ie)}for(var ye=arguments.length,de=new Array(ye>1?ye-1:0),me=1;me{};return Ve(()=>{ue(M,()=>{var W;if(M.value){const X=Math.ceil((W=u.value)===null||W===void 0?void 0:W.offsetWidth);J.value!==X&&!Number.isNaN(X)&&(J.value=X)}},{immediate:!0,flush:"post"})}),BA([u,d],M,_),FA(zs(g(g({},Nr(e)),{open:x,triggerOpen:M,showSearch:a,multiple:l,toggleOpen:_}))),()=>{const W=g(g({},e),n),{prefixCls:X,id:re,open:ae,defaultOpen:pe,mode:ye,showSearch:de,searchValue:me,onSearch:ie,allowClear:se,clearIcon:be,showArrow:we,inputIcon:ve,disabled:Ce,loading:Te,getInputElement:le,getPopupContainer:oe,placement:fe,animation:Oe,transitionName:Ie,dropdownStyle:Ae,dropdownClassName:ge,dropdownMatchSelectWidth:he,dropdownRender:$e,dropdownAlign:Ee,showAction:Re,direction:_e,tokenSeparators:Be,tagRender:Ye,optionLabelRender:at,onPopupScroll:nt,onDropdownVisibleChange:it,onFocus:ct,onBlur:Dt,onKeyup:Bt,onKeydown:zt,onMousedown:Et,onClear:en,omitDomProps:dn,getRawInputElement:Nn,displayValues:Zn,onDisplayValuesChange:fn,emptyOptions:hr,activeDescendantId:Pe,activeValue:ze,OptionList:Fe}=W,ht=kA(W,["prefixCls","id","open","defaultOpen","mode","showSearch","searchValue","onSearch","allowClear","clearIcon","showArrow","inputIcon","disabled","loading","getInputElement","getPopupContainer","placement","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","showAction","direction","tokenSeparators","tagRender","optionLabelRender","onPopupScroll","onDropdownVisibleChange","onFocus","onBlur","onKeyup","onKeydown","onMousedown","onClear","omitDomProps","getRawInputElement","displayValues","onDisplayValuesChange","emptyOptions","activeDescendantId","activeValue","OptionList"]),Nt=ye==="combobox"&&le&&le()||null,Mt=typeof Nn=="function"&&Nn(),pn=g({},ht);let Ut;Mt&&(Ut=eo=>{_(eo)}),LA.forEach(eo=>{delete pn[eo]}),dn==null||dn.forEach(eo=>{delete pn[eo]});const uo=we!==void 0?we:Te||!l.value&&ye!=="combobox";let Pn;uo&&(Pn=f(ks,{class:ne(`${X}-arrow`,{[`${X}-arrow-loading`]:Te}),customizeIcon:ve,customizeIconProps:{loading:Te,searchValue:w.value,open:x.value,focused:m.value,showSearch:a.value}},null));let Fn;const St=()=>{en==null||en(),fn([],{type:"clear",values:Zn}),R("",!1,!1)};!Ce&&se&&(Zn.length||w.value)&&(Fn=f(ks,{class:`${X}-clear`,onMousedown:St,customizeIcon:be},{default:()=>[ko("×")]}));const Jn=f(Fe,{ref:v},g(g({},s.customSlots),{option:r.option})),kn=ne(X,n.class,{[`${X}-focused`]:m.value,[`${X}-multiple`]:l.value,[`${X}-single`]:!l.value,[`${X}-allow-clear`]:se,[`${X}-show-arrow`]:uo,[`${X}-disabled`]:Ce,[`${X}-loading`]:Te,[`${X}-open`]:x.value,[`${X}-customize-input`]:Nt,[`${X}-show-search`]:a.value}),Uo=f(lA,{ref:d,disabled:Ce,prefixCls:X,visible:M.value,popupElement:Jn,containerWidth:J.value,animation:Oe,transitionName:Ie,dropdownStyle:Ae,dropdownClassName:ge,direction:_e,dropdownMatchSelectWidth:he,dropdownRender:$e,dropdownAlign:Ee,placement:fe,getPopupContainer:oe,empty:hr,getTriggerDOMNode:()=>c.current,onPopupVisibleChange:Ut,onPopupMouseEnter:Z,onPopupFocusin:U,onPopupFocusout:K},{default:()=>Mt?Rt(Mt)&>(Mt,{ref:c},!1,!0):f(RA,F(F({},e),{},{domRef:c,prefixCls:X,inputElement:Nt,ref:p,id:re,showSearch:a.value,mode:ye,activeDescendantId:Pe,tagRender:Ye,optionLabelRender:at,values:Zn,open:x.value,onToggleOpen:_,activeValue:ze,searchValue:w.value,onSearch:R,onSearchSubmit:H,onRemove:N,tokenWithEnter:z.value}),null)});let Yo;return Mt?Yo=Uo:Yo=f("div",F(F({},pn),{},{class:kn,ref:u,onMousedown:Q,onKeydown:A,onKeyup:B}),[m.value&&!x.value&&f("span",{style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0},"aria-live":"polite"},[`${Zn.map(eo=>{let{label:nl,value:to}=eo;return["number","string"].includes(typeof nl)?nl:to}).join(", ")}`]),Uo,Pn,Fn]),Yo}}}),Bc=(e,t)=>{let{height:n,offset:o,prefixCls:r,onInnerResize:l}=e,{slots:a}=t;var i;let s={},u={display:"flex",flexDirection:"column"};return o!==void 0&&(s={height:`${n}px`,position:"relative",overflow:"hidden"},u=g(g({},u),{transform:`translateY(${o}px)`,position:"absolute",left:0,right:0,top:0})),f("div",{style:s},[f(io,{onResize:c=>{let{offsetHeight:d}=c;d&&l&&l()}},{default:()=>[f("div",{style:u,class:ne({[`${r}-holder-inner`]:r})},[(i=a.default)===null||i===void 0?void 0:i.call(a)])]})])};Bc.displayName="Filter";Bc.inheritAttrs=!1;Bc.props={prefixCls:String,height:Number,offset:Number,onInnerResize:Function};const jA=Bc,E2=(e,t)=>{let{setRef:n}=e,{slots:o}=t;var r;const l=bt((r=o.default)===null||r===void 0?void 0:r.call(o));return l&&l.length?bo(l[0],{ref:n}):l};E2.props={setRef:{type:Function,default:()=>{}}};const VA=E2,WA=20;function Mb(e){return"touches"in e?e.touches[0].pageY:e.pageY}const KA=te({compatConfig:{MODE:3},name:"ScrollBar",inheritAttrs:!1,props:{prefixCls:String,scrollTop:Number,scrollHeight:Number,height:Number,count:Number,onScroll:{type:Function},onStartMove:{type:Function},onStopMove:{type:Function}},setup(){return{moveRaf:null,scrollbarRef:Ja(),thumbRef:Ja(),visibleTimeout:null,state:vt({dragging:!1,pageY:null,startTop:null,visible:!1})}},watch:{scrollTop:{handler(){this.delayHidden()},flush:"post"}},mounted(){var e,t;(e=this.scrollbarRef.current)===null||e===void 0||e.addEventListener("touchstart",this.onScrollbarTouchStart,qt?{passive:!1}:!1),(t=this.thumbRef.current)===null||t===void 0||t.addEventListener("touchstart",this.onMouseDown,qt?{passive:!1}:!1)},beforeUnmount(){this.removeEvents(),clearTimeout(this.visibleTimeout)},methods:{delayHidden(){clearTimeout(this.visibleTimeout),this.state.visible=!0,this.visibleTimeout=setTimeout(()=>{this.state.visible=!1},2e3)},onScrollbarTouchStart(e){e.preventDefault()},onContainerMouseDown(e){e.stopPropagation(),e.preventDefault()},patchEvents(){window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.onMouseUp),this.thumbRef.current.addEventListener("touchmove",this.onMouseMove,qt?{passive:!1}:!1),this.thumbRef.current.addEventListener("touchend",this.onMouseUp)},removeEvents(){window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.onMouseUp),this.scrollbarRef.current.removeEventListener("touchstart",this.onScrollbarTouchStart,qt?{passive:!1}:!1),this.thumbRef.current&&(this.thumbRef.current.removeEventListener("touchstart",this.onMouseDown,qt?{passive:!1}:!1),this.thumbRef.current.removeEventListener("touchmove",this.onMouseMove,qt?{passive:!1}:!1),this.thumbRef.current.removeEventListener("touchend",this.onMouseUp)),He.cancel(this.moveRaf)},onMouseDown(e){const{onStartMove:t}=this.$props;g(this.state,{dragging:!0,pageY:Mb(e),startTop:this.getTop()}),t(),this.patchEvents(),e.stopPropagation(),e.preventDefault()},onMouseMove(e){const{dragging:t,pageY:n,startTop:o}=this.state,{onScroll:r}=this.$props;if(He.cancel(this.moveRaf),t){const l=Mb(e)-n,a=o+l,i=this.getEnableScrollRange(),s=this.getEnableHeightRange(),u=s?a/s:0,c=Math.ceil(u*i);this.moveRaf=He(()=>{r(c)})}},onMouseUp(){const{onStopMove:e}=this.$props;this.state.dragging=!1,e(),this.removeEvents()},getSpinHeight(){const{height:e,scrollHeight:t}=this.$props;let n=e/t*100;return n=Math.max(n,WA),n=Math.min(n,e/2),Math.floor(n)},getEnableScrollRange(){const{scrollHeight:e,height:t}=this.$props;return e-t||0},getEnableHeightRange(){const{height:e}=this.$props,t=this.getSpinHeight();return e-t||0},getTop(){const{scrollTop:e}=this.$props,t=this.getEnableScrollRange(),n=this.getEnableHeightRange();return e===0||t===0?0:e/t*n},showScroll(){const{height:e,scrollHeight:t}=this.$props;return t>e}},render(){const{dragging:e,visible:t}=this.state,{prefixCls:n}=this.$props,o=this.getSpinHeight()+"px",r=this.getTop()+"px",l=this.showScroll(),a=l&&t;return f("div",{ref:this.scrollbarRef,class:ne(`${n}-scrollbar`,{[`${n}-scrollbar-show`]:l}),style:{width:"8px",top:0,bottom:0,right:0,position:"absolute",display:a?void 0:"none"},onMousedown:this.onContainerMouseDown,onMousemove:this.delayHidden},[f("div",{ref:this.thumbRef,class:ne(`${n}-scrollbar-thumb`,{[`${n}-scrollbar-thumb-moving`]:e}),style:{width:"100%",height:o,top:r,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:"99px",cursor:"pointer",userSelect:"none"},onMousedown:this.onMouseDown},null)])}});function GA(e,t,n,o){const r=new Map,l=new Map,a=ee(Symbol("update"));ue(e,()=>{a.value=Symbol("update")});let i;function s(){He.cancel(i)}function u(){s(),i=He(()=>{r.forEach((d,p)=>{if(d&&d.offsetParent){const{offsetHeight:v}=d;l.get(p)!==v&&(a.value=Symbol("update"),l.set(p,d.offsetHeight))}})})}function c(d,p){const v=t(d),y=r.get(v);p?(r.set(v,p.$el||p),u()):r.delete(v),!y!=!p&&(p?n==null||n(d):o==null||o(d))}return Bn(()=>{s()}),[c,u,l,a]}function XA(e,t,n,o,r,l,a,i){let s;return u=>{if(u==null){i();return}He.cancel(s);const c=t.value,d=o.itemHeight;if(typeof u=="number")a(u);else if(u&&typeof u=="object"){let p;const{align:v}=u;"index"in u?{index:p}=u:p=c.findIndex(h=>r(h)===u.key);const{offset:y=0}=u,m=(h,b)=>{if(h<0||!e.value)return;const $=e.value.clientHeight;let C=!1,w=b;if($){const S=b||v;let O=0,x=0,I=0;const E=Math.min(c.length,p);for(let z=0;z<=E;z+=1){const R=r(c[z]);x=O;const H=n.get(R);I=x+(H===void 0?d:H),O=I,z===p&&H===void 0&&(C=!0)}const M=e.value.scrollTop;let _=null;switch(S){case"top":_=x-y;break;case"bottom":_=I-$+y;break;default:{const z=M+$;xz&&(w="bottom")}}_!==null&&_!==M&&a(_)}s=He(()=>{C&&l(),m(h-1,w)},2)};m(5)}}}const UA=typeof navigator=="object"&&/Firefox/i.test(navigator.userAgent),YA=UA,M2=(e,t)=>{let n=!1,o=null;function r(){clearTimeout(o),n=!0,o=setTimeout(()=>{n=!1},50)}return function(l){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=l<0&&e.value||l>0&&t.value;return a&&i?(clearTimeout(o),n=!1):(!i||n)&&r(),!n&&i}};function qA(e,t,n,o){let r=0,l=null,a=null,i=!1;const s=M2(t,n);function u(d){if(!e.value)return;He.cancel(l);const{deltaY:p}=d;r+=p,a=p,!s(p)&&(YA||d.preventDefault(),l=He(()=>{o(r*(i?10:1)),r=0}))}function c(d){e.value&&(i=d.detail===a)}return[u,c]}const QA=14/15;function ZA(e,t,n){let o=!1,r=0,l=null,a=null;const i=()=>{l&&(l.removeEventListener("touchmove",s),l.removeEventListener("touchend",u))},s=p=>{if(o){const v=Math.ceil(p.touches[0].pageY);let y=r-v;r=v,n(y)&&p.preventDefault(),clearInterval(a),a=setInterval(()=>{y*=QA,(!n(y,!0)||Math.abs(y)<=.1)&&clearInterval(a)},16)}},u=()=>{o=!1,i()},c=p=>{i(),p.touches.length===1&&!o&&(o=!0,r=Math.ceil(p.touches[0].pageY),l=p.target,l.addEventListener("touchmove",s,{passive:!1}),l.addEventListener("touchend",u))},d=()=>{};Ve(()=>{document.addEventListener("touchmove",d,{passive:!1}),ue(e,p=>{t.value.removeEventListener("touchstart",c),i(),clearInterval(a),p&&t.value.addEventListener("touchstart",c,{passive:!1})},{immediate:!0})}),Ze(()=>{document.removeEventListener("touchmove",d)})}var JA=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{const u=t+s,c=r(i,u,{}),d=a(i);return f(VA,{key:d,setRef:p=>o(i,p)},{default:()=>[c]})})}const oR=te({compatConfig:{MODE:3},name:"List",inheritAttrs:!1,props:{prefixCls:String,data:V.array,height:Number,itemHeight:Number,fullHeight:{type:Boolean,default:void 0},itemKey:{type:[String,Number,Function],required:!0},component:{type:[String,Object]},virtual:{type:Boolean,default:void 0},children:Function,onScroll:Function,onMousedown:Function,onMouseenter:Function,onVisibleChange:Function},setup(e,t){let{expose:n}=t;const o=P(()=>{const{height:N,itemHeight:k,virtual:L}=e;return!!(L!==!1&&N&&k)}),r=P(()=>{const{height:N,itemHeight:k,data:L}=e;return o.value&&L&&k*L.length>N}),l=vt({scrollTop:0,scrollMoving:!1}),a=P(()=>e.data||eR),i=q([]);ue(a,()=>{i.value=Tt(a.value).slice()},{immediate:!0});const s=q(N=>{});ue(()=>e.itemKey,N=>{typeof N=="function"?s.value=N:s.value=k=>k==null?void 0:k[N]},{immediate:!0});const u=q(),c=q(),d=q(),p=N=>s.value(N),v={getKey:p};function y(N){let k;typeof N=="function"?k=N(l.scrollTop):k=N;const L=O(k);u.value&&(u.value.scrollTop=L),l.scrollTop=L}const[m,h,b,$]=GA(i,p,null,null),C=vt({scrollHeight:void 0,start:0,end:0,offset:void 0}),w=q(0);Ve(()=>{ot(()=>{var N;w.value=((N=c.value)===null||N===void 0?void 0:N.offsetHeight)||0})}),Co(()=>{ot(()=>{var N;w.value=((N=c.value)===null||N===void 0?void 0:N.offsetHeight)||0})}),ue([o,i],()=>{o.value||g(C,{scrollHeight:void 0,start:0,end:i.value.length-1,offset:void 0})},{immediate:!0}),ue([o,i,w,r],()=>{o.value&&!r.value&&g(C,{scrollHeight:w.value,start:0,end:i.value.length-1,offset:void 0}),u.value&&(l.scrollTop=u.value.scrollTop)},{immediate:!0}),ue([r,o,()=>l.scrollTop,i,$,()=>e.height,w],()=>{if(!o.value||!r.value)return;let N=0,k,L,j;const G=i.value.length,U=i.value,K=l.scrollTop,{itemHeight:Y,height:Q}=e,J=K+Q;for(let Z=0;Z=K&&(k=Z,L=N),j===void 0&&ae>J&&(j=Z),N=ae}k===void 0&&(k=0,L=0,j=Math.ceil(Q/Y)),j===void 0&&(j=G-1),j=Math.min(j+1,G),g(C,{scrollHeight:N,start:k,end:j,offset:L})},{immediate:!0});const S=P(()=>C.scrollHeight-e.height);function O(N){let k=N;return Number.isNaN(S.value)||(k=Math.min(k,S.value)),k=Math.max(k,0),k}const x=P(()=>l.scrollTop<=0),I=P(()=>l.scrollTop>=S.value),E=M2(x,I);function M(N){y(N)}function _(N){var k;const{scrollTop:L}=N.currentTarget;L!==l.scrollTop&&y(L),(k=e.onScroll)===null||k===void 0||k.call(e,N)}const[z,R]=qA(o,x,I,N=>{y(k=>k+N)});ZA(o,u,(N,k)=>E(N,k)?!1:(z({preventDefault(){},deltaY:N}),!0));function H(N){o.value&&N.preventDefault()}const T=()=>{u.value&&(u.value.removeEventListener("wheel",z,qt?{passive:!1}:!1),u.value.removeEventListener("DOMMouseScroll",R),u.value.removeEventListener("MozMousePixelScroll",H))};ke(()=>{ot(()=>{u.value&&(T(),u.value.addEventListener("wheel",z,qt?{passive:!1}:!1),u.value.addEventListener("DOMMouseScroll",R),u.value.addEventListener("MozMousePixelScroll",H))})}),Ze(()=>{T()});const D=XA(u,i,b,e,p,h,y,()=>{var N;(N=d.value)===null||N===void 0||N.delayHidden()});n({scrollTo:D});const A=P(()=>{let N=null;return e.height&&(N=g({[e.fullHeight?"height":"maxHeight"]:e.height+"px"},tR),o.value&&(N.overflowY="hidden",l.scrollMoving&&(N.pointerEvents="none"))),N});return ue([()=>C.start,()=>C.end,i],()=>{if(e.onVisibleChange){const N=i.value.slice(C.start,C.end+1);e.onVisibleChange(N,i.value)}},{flush:"post"}),{state:l,mergedData:i,componentStyle:A,onFallbackScroll:_,onScrollBar:M,componentRef:u,useVirtual:o,calRes:C,collectHeight:h,setInstance:m,sharedConfig:v,scrollBarRef:d,fillerInnerRef:c,delayHideScrollBar:()=>{var N;(N=d.value)===null||N===void 0||N.delayHidden()}}},render(){const e=g(g({},this.$props),this.$attrs),{prefixCls:t="rc-virtual-list",height:n,itemHeight:o,fullHeight:r,data:l,itemKey:a,virtual:i,component:s="div",onScroll:u,children:c=this.$slots.default,style:d,class:p}=e,v=JA(e,["prefixCls","height","itemHeight","fullHeight","data","itemKey","virtual","component","onScroll","children","style","class"]),y=ne(t,p),{scrollTop:m}=this.state,{scrollHeight:h,offset:b,start:$,end:C}=this.calRes,{componentStyle:w,onFallbackScroll:S,onScrollBar:O,useVirtual:x,collectHeight:I,sharedConfig:E,setInstance:M,mergedData:_,delayHideScrollBar:z}=this;return f("div",F({style:g(g({},d),{position:"relative"}),class:y},v),[f(s,{class:`${t}-holder`,style:w,ref:"componentRef",onScroll:S,onMouseenter:z},{default:()=>[f(jA,{prefixCls:t,height:h,offset:b,onInnerResize:I,ref:"fillerInnerRef"},{default:()=>nR(_,$,C,M,c,E)})]}),x&&f(KA,{ref:"scrollBarRef",prefixCls:t,scrollTop:m,height:n,scrollHeight:h,count:_.length,onScroll:O,onStartMove:()=>{this.state.scrollMoving=!0},onStopMove:()=>{this.state.scrollMoving=!1}},null)])}}),_2=oR;function Lv(e,t,n){const o=ee(e());return ue(t,(r,l)=>{n?n(r,l)&&(o.value=e()):o.value=e()}),o}function rR(){return/(mac\sos|macintosh)/i.test(navigator.appVersion)}const D2=Symbol("SelectContextKey");function lR(e){return We(D2,e)}function aR(){return Ke(D2,{})}var iR=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r`${r.prefixCls}-item`),i=Lv(()=>l.flattenOptions,[()=>r.open,()=>l.flattenOptions],S=>S[0]),s=Ja(),u=S=>{S.preventDefault()},c=S=>{s.current&&s.current.scrollTo(typeof S=="number"?{index:S}:S)},d=function(S){let O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const x=i.value.length;for(let I=0;I1&&arguments[1]!==void 0?arguments[1]:!1;p.activeIndex=S;const x={source:O?"keyboard":"mouse"},I=i.value[S];if(!I){l.onActiveValue(null,-1,x);return}l.onActiveValue(I.value,S,x)};ue([()=>i.value.length,()=>r.searchValue],()=>{v(l.defaultActiveFirstOption!==!1?d(0):-1)},{immediate:!0});const y=S=>l.rawValues.has(S)&&r.mode!=="combobox";ue([()=>r.open,()=>r.searchValue],()=>{if(!r.multiple&&r.open&&l.rawValues.size===1){const S=Array.from(l.rawValues)[0],O=Tt(i.value).findIndex(x=>{let{data:I}=x;return I[l.fieldNames.value]===S});O!==-1&&(v(O),ot(()=>{c(O)}))}r.open&&ot(()=>{var S;(S=s.current)===null||S===void 0||S.scrollTo(void 0)})},{immediate:!0,flush:"post"});const m=S=>{S!==void 0&&l.onSelect(S,{selected:!l.rawValues.has(S)}),r.multiple||r.toggleOpen(!1)},h=S=>typeof S.label=="function"?S.label():S.label;function b(S){const O=i.value[S];if(!O)return null;const x=O.data||{},{value:I}=x,{group:E}=O,M=fr(x,!0),_=h(O);return O?f("div",F(F({"aria-label":typeof _=="string"&&!E?_:null},M),{},{key:S,role:E?"presentation":"option",id:`${r.id}_list_${S}`,"aria-selected":y(I)}),[I]):null}return n({onKeydown:S=>{const{which:O,ctrlKey:x}=S;switch(O){case Se.N:case Se.P:case Se.UP:case Se.DOWN:{let I=0;if(O===Se.UP?I=-1:O===Se.DOWN?I=1:rR()&&x&&(O===Se.N?I=1:O===Se.P&&(I=-1)),I!==0){const E=d(p.activeIndex+I,I);c(E),v(E,!0)}break}case Se.ENTER:{const I=i.value[p.activeIndex];I&&!I.data.disabled?m(I.value):m(void 0),r.open&&S.preventDefault();break}case Se.ESC:r.toggleOpen(!1),r.open&&S.stopPropagation()}},onKeyup:()=>{},scrollTo:S=>{c(S)}}),()=>{const{id:S,notFoundContent:O,onPopupScroll:x}=r,{menuItemSelectedIcon:I,fieldNames:E,virtual:M,listHeight:_,listItemHeight:z}=l,R=o.option,{activeIndex:H}=p,T=Object.keys(E).map(D=>E[D]);return i.value.length===0?f("div",{role:"listbox",id:`${S}_list`,class:`${a.value}-empty`,onMousedown:u},[O]):f(qe,null,[f("div",{role:"listbox",id:`${S}_list`,style:{height:0,width:0,overflow:"hidden"}},[b(H-1),b(H),b(H+1)]),f(_2,{itemKey:"key",ref:s,data:i.value,height:_,itemHeight:z,fullHeight:!1,onMousedown:u,onScroll:x,virtual:M},{default:(D,A)=>{var B;const{group:N,groupOption:k,data:L,value:j}=D,{key:G}=L,U=typeof D.label=="function"?D.label():D.label;if(N){const be=(B=L.title)!==null&&B!==void 0?B:_b(U)&&U;return f("div",{class:ne(a.value,`${a.value}-group`),title:be},[R?R(L):U!==void 0?U:G])}const{disabled:K,title:Y,children:Q,style:J,class:Z,className:W}=L,X=iR(L,["disabled","title","children","style","class","className"]),re=tt(X,T),ae=y(j),pe=`${a.value}-option`,ye=ne(a.value,pe,Z,W,{[`${pe}-grouped`]:k,[`${pe}-active`]:H===A&&!K,[`${pe}-disabled`]:K,[`${pe}-selected`]:ae}),de=h(D),me=!I||typeof I=="function"||ae,ie=typeof de=="number"?de:de||j;let se=_b(ie)?ie.toString():void 0;return Y!==void 0&&(se=Y),f("div",F(F({},re),{},{"aria-selected":ae,class:ye,title:se,onMousemove:be=>{X.onMousemove&&X.onMousemove(be),!(H===A||K)&&v(A)},onClick:be=>{K||m(j),X.onClick&&X.onClick(be)},style:J}),[f("div",{class:`${pe}-content`},[R?R(L):ie]),Rt(I)||ae,me&&f(ks,{class:`${a.value}-option-state`,customizeIcon:I,customizeIconProps:{isSelected:ae}},{default:()=>[ae?"✓":null]})])}})])}}}),cR=sR;var uR=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r1&&arguments[1]!==void 0?arguments[1]:!1;return bt(e).map((o,r)=>{var l;if(!Rt(o)||!o.type)return null;const{type:{isSelectOptGroup:a},key:i,children:s,props:u}=o;if(t||!a)return dR(o);const c=s&&s.default?s.default():void 0,d=(u==null?void 0:u.label)||((l=s.label)===null||l===void 0?void 0:l.call(s))||i;return g(g({key:`__RC_SELECT_GRP__${i===null?r:String(i)}__`},u),{label:d,options:A2(c||[])})}).filter(o=>o)}function fR(e,t,n){const o=q(),r=q(),l=q(),a=q([]);return ue([e,t],()=>{e.value?a.value=Tt(e.value).slice():a.value=A2(t.value)},{immediate:!0,deep:!0}),ke(()=>{const i=a.value,s=new Map,u=new Map,c=n.value;function d(p){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;for(let y=0;y0&&arguments[0]!==void 0?arguments[0]:ee("");const t=`rc_select_${vR()}`;return e.value||t}function R2(e){return Array.isArray(e)?e:e!==void 0?[e]:[]}function Uu(e,t){return R2(e).join("").toUpperCase().includes(t)}const gR=(e,t,n,o,r)=>P(()=>{const l=n.value,a=r==null?void 0:r.value,i=o==null?void 0:o.value;if(!l||i===!1)return e.value;const{options:s,label:u,value:c}=t.value,d=[],p=typeof i=="function",v=l.toUpperCase(),y=p?i:(h,b)=>a?Uu(b[a],v):b[s]?Uu(b[u!=="children"?u:"label"],v):Uu(b[c],v),m=p?h=>$f(h):h=>h;return e.value.forEach(h=>{if(h[s]){if(y(l,m(h)))d.push(h);else{const $=h[s].filter(C=>y(l,m(C)));$.length&&d.push(g(g({},h),{[s]:$}))}return}y(l,m(h))&&d.push(h)}),d}),mR=(e,t)=>{const n=q({values:new Map,options:new Map});return[P(()=>{const{values:l,options:a}=n.value,i=e.value.map(c=>{var d;return c.label===void 0?g(g({},c),{label:(d=l.get(c.value))===null||d===void 0?void 0:d.label}):c}),s=new Map,u=new Map;return i.forEach(c=>{s.set(c.value,c),u.set(c.value,t.value.get(c.value)||a.get(c.value))}),n.value.values=s,n.value.options=u,i}),l=>t.value.get(l)||n.value.options.get(l)]};function wt(e,t){const{defaultValue:n,value:o=ee()}=t||{};let r=typeof e=="function"?e():e;o.value!==void 0&&(r=Vt(o)),n!==void 0&&(r=typeof n=="function"?n():n);const l=ee(r),a=ee(r);ke(()=>{let s=o.value!==void 0?o.value:l.value;t.postState&&(s=t.postState(s)),a.value=s});function i(s){const u=a.value;l.value=s,Tt(a.value)!==s&&t.onChange&&t.onChange(s,u)}return ue(o,()=>{l.value=o.value}),[a,i]}function pt(e){const t=typeof e=="function"?e():e,n=ee(t);function o(r){n.value=r}return[n,o]}const hR=["inputValue"];function B2(){return g(g({},Rc()),{prefixCls:String,id:String,backfill:{type:Boolean,default:void 0},fieldNames:Object,inputValue:String,searchValue:String,onSearch:Function,autoClearSearchValue:{type:Boolean,default:void 0},onSelect:Function,onDeselect:Function,filterOption:{type:[Boolean,Function],default:void 0},filterSort:Function,optionFilterProp:String,optionLabelProp:String,options:Array,defaultActiveFirstOption:{type:Boolean,default:void 0},virtual:{type:Boolean,default:void 0},listHeight:Number,listItemHeight:Number,menuItemSelectedIcon:V.any,mode:String,labelInValue:{type:Boolean,default:void 0},value:V.any,defaultValue:V.any,onChange:Function,children:Array})}function bR(e){return!e||typeof e!="object"}const yR=te({compatConfig:{MODE:3},name:"VcSelect",inheritAttrs:!1,props:rt(B2(),{prefixCls:"vc-select",autoClearSearchValue:!0,listHeight:200,listItemHeight:20,dropdownMatchSelectWidth:!0}),setup(e,t){let{expose:n,attrs:o,slots:r}=t;const l=zv(Ne(e,"id")),a=P(()=>T2(e.mode)),i=P(()=>!!(!e.options&&e.children)),s=P(()=>e.filterOption===void 0&&e.mode==="combobox"?!1:e.filterOption),u=P(()=>i2(e.fieldNames,i.value)),[c,d]=wt("",{value:P(()=>e.searchValue!==void 0?e.searchValue:e.inputValue),postState:Z=>Z||""}),p=fR(Ne(e,"options"),Ne(e,"children"),u),{valueOptions:v,labelOptions:y,options:m}=p,h=Z=>R2(Z).map(X=>{var re,ae;let pe,ye,de,me;bR(X)?pe=X:(de=X.key,ye=X.label,pe=(re=X.value)!==null&&re!==void 0?re:de);const ie=v.value.get(pe);return ie&&(ye===void 0&&(ye=ie==null?void 0:ie[e.optionLabelProp||u.value.label]),de===void 0&&(de=(ae=ie==null?void 0:ie.key)!==null&&ae!==void 0?ae:pe),me=ie==null?void 0:ie.disabled),{label:ye,value:pe,key:de,disabled:me,option:ie}}),[b,$]=wt(e.defaultValue,{value:Ne(e,"value")}),C=P(()=>{var Z;const W=h(b.value);return e.mode==="combobox"&&!(!((Z=W[0])===null||Z===void 0)&&Z.value)?[]:W}),[w,S]=mR(C,v),O=P(()=>{if(!e.mode&&w.value.length===1){const Z=w.value[0];if(Z.value===null&&(Z.label===null||Z.label===void 0))return[]}return w.value.map(Z=>{var W;return g(g({},Z),{label:(W=typeof Z.label=="function"?Z.label():Z.label)!==null&&W!==void 0?W:Z.value})})}),x=P(()=>new Set(w.value.map(Z=>Z.value)));ke(()=>{var Z;if(e.mode==="combobox"){const W=(Z=w.value[0])===null||Z===void 0?void 0:Z.value;W!=null&&d(String(W))}},{flush:"post"});const I=(Z,W)=>{const X=W!=null?W:Z;return{[u.value.value]:Z,[u.value.label]:X}},E=q();ke(()=>{if(e.mode!=="tags"){E.value=m.value;return}const Z=m.value.slice(),W=X=>v.value.has(X);[...w.value].sort((X,re)=>X.value{const re=X.value;W(re)||Z.push(I(re,X.label))}),E.value=Z});const M=gR(E,u,c,s,Ne(e,"optionFilterProp")),_=P(()=>e.mode!=="tags"||!c.value||M.value.some(Z=>Z[e.optionFilterProp||"value"]===c.value)?M.value:[I(c.value),...M.value]),z=P(()=>e.filterSort?[..._.value].sort((Z,W)=>e.filterSort(Z,W)):_.value),R=P(()=>tD(z.value,{fieldNames:u.value,childrenAsData:i.value})),H=Z=>{const W=h(Z);if($(W),e.onChange&&(W.length!==w.value.length||W.some((X,re)=>{var ae;return((ae=w.value[re])===null||ae===void 0?void 0:ae.value)!==(X==null?void 0:X.value)}))){const X=e.labelInValue?W.map(ae=>g(g({},ae),{originLabel:ae.label,label:typeof ae.label=="function"?ae.label():ae.label})):W.map(ae=>ae.value),re=W.map(ae=>$f(S(ae.value)));e.onChange(a.value?X:X[0],a.value?re:re[0])}},[T,D]=pt(null),[A,B]=pt(0),N=P(()=>e.defaultActiveFirstOption!==void 0?e.defaultActiveFirstOption:e.mode!=="combobox"),k=function(Z,W){let{source:X="keyboard"}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};B(W),e.backfill&&e.mode==="combobox"&&Z!==null&&X==="keyboard"&&D(String(Z))},L=(Z,W)=>{const X=()=>{var re;const ae=S(Z),pe=ae==null?void 0:ae[u.value.label];return[e.labelInValue?{label:typeof pe=="function"?pe():pe,originLabel:pe,value:Z,key:(re=ae==null?void 0:ae.key)!==null&&re!==void 0?re:Z}:Z,$f(ae)]};if(W&&e.onSelect){const[re,ae]=X();e.onSelect(re,ae)}else if(!W&&e.onDeselect){const[re,ae]=X();e.onDeselect(re,ae)}},j=(Z,W)=>{let X;const re=a.value?W.selected:!0;re?X=a.value?[...w.value,Z]:[Z]:X=w.value.filter(ae=>ae.value!==Z),H(X),L(Z,re),e.mode==="combobox"?D(""):(!a.value||e.autoClearSearchValue)&&(d(""),D(""))},G=(Z,W)=>{H(Z),(W.type==="remove"||W.type==="clear")&&W.values.forEach(X=>{L(X.value,!1)})},U=(Z,W)=>{var X;if(d(Z),D(null),W.source==="submit"){const re=(Z||"").trim();if(re){const ae=Array.from(new Set([...x.value,re]));H(ae),L(re,!0),d("")}return}W.source!=="blur"&&(e.mode==="combobox"&&H(Z),(X=e.onSearch)===null||X===void 0||X.call(e,Z))},K=Z=>{let W=Z;e.mode!=="tags"&&(W=Z.map(re=>{const ae=y.value.get(re);return ae==null?void 0:ae.value}).filter(re=>re!==void 0));const X=Array.from(new Set([...x.value,...W]));H(X),X.forEach(re=>{L(re,!0)})},Y=P(()=>e.virtual!==!1&&e.dropdownMatchSelectWidth!==!1);lR(zs(g(g({},p),{flattenOptions:R,onActiveValue:k,defaultActiveFirstOption:N,onSelect:j,menuItemSelectedIcon:Ne(e,"menuItemSelectedIcon"),rawValues:x,fieldNames:u,virtual:Y,listHeight:Ne(e,"listHeight"),listItemHeight:Ne(e,"listItemHeight"),childrenAsData:i})));const Q=ee();n({focus(){var Z;(Z=Q.value)===null||Z===void 0||Z.focus()},blur(){var Z;(Z=Q.value)===null||Z===void 0||Z.blur()},scrollTo(Z){var W;(W=Q.value)===null||W===void 0||W.scrollTo(Z)}});const J=P(()=>tt(e,["id","mode","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","autoClearSearchValue","onSelect","onDeselect","dropdownMatchSelectWidth","filterOption","filterSort","optionFilterProp","optionLabelProp","options","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","listHeight","listItemHeight","value","defaultValue","labelInValue","onChange"]));return()=>f(kv,F(F(F({},J.value),o),{},{id:l,prefixCls:e.prefixCls,ref:Q,omitDomProps:hR,mode:e.mode,displayValues:O.value,onDisplayValuesChange:G,searchValue:c.value,onSearch:U,onSearchSplit:K,dropdownMatchSelectWidth:e.dropdownMatchSelectWidth,OptionList:cR,emptyOptions:!R.value.length,activeValue:T.value,activeDescendantId:`${l}_list_${A.value}`}),r)}}),Hv=()=>null;Hv.isSelectOption=!0;Hv.displayName="ASelectOption";const $R=Hv,jv=()=>null;jv.isSelectOptGroup=!0;jv.displayName="ASelectOptGroup";const SR=jv;var CR={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"};const xR=CR;var wR=Symbol("iconContext"),N2=function(){return Ke(wR,{prefixCls:ee("anticon"),rootClassName:ee(""),csp:ee()})};function Vv(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}function OR(e,t){return e&&e.contains?e.contains(t):!1}var Ab="data-vc-order",PR="vc-icon-key",Pf=new Map;function F2(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.mark;return t?t.startsWith("data-")?t:"data-".concat(t):PR}function Wv(e){if(e.attachTo)return e.attachTo;var t=document.querySelector("head");return t||document.body}function IR(e){return e==="queue"?"prependQueue":e?"prepend":"append"}function k2(e){return Array.from((Pf.get(e)||e).children).filter(function(t){return t.tagName==="STYLE"})}function L2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Vv())return null;var n=t.csp,o=t.prepend,r=document.createElement("style");r.setAttribute(Ab,IR(o)),n&&n.nonce&&(r.nonce=n.nonce),r.innerHTML=e;var l=Wv(t),a=l.firstChild;if(o){if(o==="queue"){var i=k2(l).filter(function(s){return["prepend","prependQueue"].includes(s.getAttribute(Ab))});if(i.length)return l.insertBefore(r,i[i.length-1].nextSibling),r}l.insertBefore(r,a)}else l.appendChild(r);return r}function TR(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=Wv(t);return k2(n).find(function(o){return o.getAttribute(F2(t))===e})}function ER(e,t){var n=Pf.get(e);if(!n||!OR(document,n)){var o=L2("",t),r=o.parentNode;Pf.set(e,r),e.removeChild(o)}}function MR(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=Wv(n);ER(o,n);var r=TR(t,n);if(r)return n.csp&&n.csp.nonce&&r.nonce!==n.csp.nonce&&(r.nonce=n.csp.nonce),r.innerHTML!==e&&(r.innerHTML=e),r;var l=L2(e,n);return l.setAttribute(F2(n),t),l}function Rb(e){for(var t=1;t * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`;function j2(e){return e&&e.getRootNode&&e.getRootNode()}function AR(e){return Vv()?j2(e)instanceof ShadowRoot:!1}function RR(e){return AR(e)?j2(e):null}var BR=function(){var t=N2(),n=t.prefixCls,o=t.csp,r=wn(),l=DR;n&&(l=l.replace(/anticon/g,n.value)),ot(function(){if(Vv()){var a=r.vnode.el,i=RR(a);MR(l,"@ant-design-vue-icons",{prepend:!0,csp:o.value,attachTo:i})}})},NR=["icon","primaryColor","secondaryColor"];function FR(e,t){if(e==null)return{};var n=kR(e,t),o,r;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function kR(e,t){if(e==null)return{};var n={},o=Object.keys(e),r,l;for(l=0;l=0)&&(n[r]=e[r]);return n}function ds(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,o=new Array(t);ne.length)&&(t=e.length);for(var n=0,o=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function nB(e,t){if(e==null)return{};var n={},o=Object.keys(e),r,l;for(l=0;l=0)&&(n[r]=e[r]);return n}V2(t_.primary);var na=function(t,n){var o,r=kb({},t,n.attrs),l=r.class,a=r.icon,i=r.spin,s=r.rotate,u=r.tabindex,c=r.twoToneColor,d=r.onClick,p=tB(r,YR),v=N2(),y=v.prefixCls,m=v.rootClassName,h=(o={},Sa(o,m.value,!!m.value),Sa(o,y.value,!0),Sa(o,"".concat(y.value,"-").concat(a.name),!!a.name),Sa(o,"".concat(y.value,"-spin"),!!i||a.name==="loading"),o),b=u;b===void 0&&d&&(b=-1);var $=s?{msTransform:"rotate(".concat(s,"deg)"),transform:"rotate(".concat(s,"deg)")}:void 0,C=H2(c),w=qR(C,2),S=w[0],O=w[1];return f("span",kb({role:"img","aria-label":a.name},p,{onClick:d,class:[h,l],tabindex:b}),[f(Kv,{icon:a,primaryColor:S,secondaryColor:O,style:$},null),f(UR,null,null)])};na.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:[String,Array]};na.displayName="AntdIcon";na.inheritAttrs=!1;na.getTwoToneColor=XR;na.setTwoToneColor=V2;const Ge=na;function Lb(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};const{loading:n,multiple:o,prefixCls:r,hasFeedback:l,feedbackIcon:a,showArrow:i}=e,s=e.suffixIcon||t.suffixIcon&&t.suffixIcon(),u=e.clearIcon||t.clearIcon&&t.clearIcon(),c=e.menuItemSelectedIcon||t.menuItemSelectedIcon&&t.menuItemSelectedIcon(),d=e.removeIcon||t.removeIcon&&t.removeIcon(),p=u!=null?u:f(On,null,null),v=b=>f(qe,null,[i!==!1&&b,l&&a]);let y=null;if(s!==void 0)y=v(s);else if(n)y=v(f(qn,{spin:!0},null));else{const b=`${r}-suffix`;y=$=>{let{open:C,showSearch:w}=$;return v(C&&w?f(Nc,{class:b},null):f(vi,{class:b},null))}}let m=null;c!==void 0?m=c:o?m=f(Yv,null,null):m=null;let h=null;return d!==void 0?h=d:h=f(Qn,null,null),{clearIcon:p,suffixIcon:y,itemIcon:m,removeIcon:h}}function eg(e){const t=Symbol("contextKey");return{useProvide:(r,l)=>{const a=vt({});return We(t,a),ke(()=>{g(a,r,l||{})}),a},useInject:()=>Ke(t,e)||{}}}const Hs=Symbol("ContextProps"),js=Symbol("InternalContextProps"),vB=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:P(()=>!0);const n=ee(new Map),o=(l,a)=>{n.value.set(l,a),n.value=new Map(n.value)},r=l=>{n.value.delete(l),n.value=new Map(n.value)};wn(),ue([t,n],()=>{}),We(Hs,e),We(js,{addFormItemField:o,removeFormItemField:r})},Tf={id:P(()=>{}),onFieldBlur:()=>{},onFieldChange:()=>{},clearValidate:()=>{}},Ef={addFormItemField:()=>{},removeFormItemField:()=>{}},Lt=()=>{const e=Ke(js,Ef),t=Symbol("FormItemFieldKey"),n=wn();return e.addFormItemField(t,n.type),Ze(()=>{e.removeFormItemField(t)}),We(js,Ef),We(Hs,Tf),Ke(Hs,Tf)},Mf=te({compatConfig:{MODE:3},name:"AFormItemRest",setup(e,t){let{slots:n}=t;return We(js,Ef),We(Hs,Tf),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),rn=eg({}),Vs=te({name:"NoFormStatus",setup(e,t){let{slots:n}=t;return rn.useProvide({}),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}});function bn(e,t,n){return ne({[`${e}-status-success`]:t==="success",[`${e}-status-warning`]:t==="warning",[`${e}-status-error`]:t==="error",[`${e}-status-validating`]:t==="validating",[`${e}-has-feedback`]:n})}const wo=(e,t)=>t||e,gB=e=>{const{componentCls:t}=e;return{[t]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},mB=gB,hB=e=>{const{componentCls:t}=e;return{[t]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${t}-item`]:{"&:empty":{display:"none"}}}}},Y2=Je("Space",e=>[hB(e),mB(e)]),bB=()=>({compactSize:String,compactDirection:V.oneOf(Sn("horizontal","vertical")).def("horizontal"),isFirstItem:xe(),isLastItem:xe()}),Fc=eg(null),pr=(e,t)=>{const n=Fc.useInject(),o=P(()=>{if(!n||XC(n))return"";const{compactDirection:r,isFirstItem:l,isLastItem:a}=n,i=r==="vertical"?"-vertical-":"-";return ne({[`${e.value}-compact${i}item`]:!0,[`${e.value}-compact${i}first-item`]:l,[`${e.value}-compact${i}last-item`]:a,[`${e.value}-compact${i}item-rtl`]:t.value==="rtl"})});return{compactSize:P(()=>n==null?void 0:n.compactSize),compactDirection:P(()=>n==null?void 0:n.compactDirection),compactItemClassnames:o}},ei=te({name:"NoCompactStyle",setup(e,t){let{slots:n}=t;return Fc.useProvide(null),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),yB=()=>({prefixCls:String,size:{type:String},direction:V.oneOf(Sn("horizontal","vertical")).def("horizontal"),align:V.oneOf(Sn("start","end","center","baseline")),block:{type:Boolean,default:void 0}}),$B=te({name:"CompactItem",props:bB(),setup(e,t){let{slots:n}=t;return Fc.useProvide(e),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),_f=te({name:"ASpaceCompact",inheritAttrs:!1,props:yB(),setup(e,t){let{attrs:n,slots:o}=t;const{prefixCls:r,direction:l}=Me("space-compact",e),a=Fc.useInject(),[i,s]=Y2(r),u=P(()=>ne(r.value,s.value,{[`${r.value}-rtl`]:l.value==="rtl",[`${r.value}-block`]:e.block,[`${r.value}-vertical`]:e.direction==="vertical"}));return()=>{var c;const d=bt(((c=o.default)===null||c===void 0?void 0:c.call(o))||[]);return d.length===0?null:i(f("div",F(F({},n),{},{class:[u.value,n.class]}),[d.map((p,v)=>{var y;const m=p&&p.key||`${r.value}-item-${v}`,h=!a||XC(a);return f($B,{key:m,compactSize:(y=e.size)!==null&&y!==void 0?y:"middle",compactDirection:e.direction,isFirstItem:v===0&&(h||(a==null?void 0:a.isFirstItem)),isLastItem:v===d.length-1&&(h||(a==null?void 0:a.isLastItem))},{default:()=>[p]})})]))}}}),SB=e=>({animationDuration:e,animationFillMode:"both"}),CB=e=>({animationDuration:e,animationFillMode:"both"}),gi=function(e,t,n,o){const l=(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1)?"&":"";return{[` + ${l}${e}-enter, + ${l}${e}-appear + `]:g(g({},SB(o)),{animationPlayState:"paused"}),[`${l}${e}-leave`]:g(g({},CB(o)),{animationPlayState:"paused"}),[` + ${l}${e}-enter${e}-enter-active, + ${l}${e}-appear${e}-appear-active + `]:{animationName:t,animationPlayState:"running"},[`${l}${e}-leave${e}-leave-active`]:{animationName:n,animationPlayState:"running",pointerEvents:"none"}}},xB=new Ue("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),wB=new Ue("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),tg=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const{antCls:n}=e,o=`${n}-fade`,r=t?"&":"";return[gi(o,xB,wB,e.motionDurationMid,t),{[` + ${r}${o}-enter, + ${r}${o}-appear + `]:{opacity:0,animationTimingFunction:"linear"},[`${r}${o}-leave`]:{animationTimingFunction:"linear"}}]},OB=new Ue("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),PB=new Ue("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),IB=new Ue("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),TB=new Ue("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),EB=new Ue("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),MB=new Ue("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),_B=new Ue("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),DB=new Ue("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),AB={"move-up":{inKeyframes:_B,outKeyframes:DB},"move-down":{inKeyframes:OB,outKeyframes:PB},"move-left":{inKeyframes:IB,outKeyframes:TB},"move-right":{inKeyframes:EB,outKeyframes:MB}},zl=(e,t)=>{const{antCls:n}=e,o=`${n}-${t}`,{inKeyframes:r,outKeyframes:l}=AB[t];return[gi(o,r,l,e.motionDurationMid),{[` + ${o}-enter, + ${o}-appear + `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${o}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},kc=new Ue("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),Lc=new Ue("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),zc=new Ue("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),Hc=new Ue("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),RB=new Ue("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),BB=new Ue("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),NB=new Ue("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),FB=new Ue("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),kB={"slide-up":{inKeyframes:kc,outKeyframes:Lc},"slide-down":{inKeyframes:zc,outKeyframes:Hc},"slide-left":{inKeyframes:RB,outKeyframes:BB},"slide-right":{inKeyframes:NB,outKeyframes:FB}},$o=(e,t)=>{const{antCls:n}=e,o=`${n}-${t}`,{inKeyframes:r,outKeyframes:l}=kB[t];return[gi(o,r,l,e.motionDurationMid),{[` + ${o}-enter, + ${o}-appear + `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:e.motionEaseOutQuint},[`${o}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},ng=new Ue("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),LB=new Ue("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),Kb=new Ue("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),Gb=new Ue("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),zB=new Ue("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),HB=new Ue("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),jB=new Ue("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),VB=new Ue("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),WB=new Ue("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),KB=new Ue("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),GB=new Ue("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),XB=new Ue("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),UB={zoom:{inKeyframes:ng,outKeyframes:LB},"zoom-big":{inKeyframes:Kb,outKeyframes:Gb},"zoom-big-fast":{inKeyframes:Kb,outKeyframes:Gb},"zoom-left":{inKeyframes:jB,outKeyframes:VB},"zoom-right":{inKeyframes:WB,outKeyframes:KB},"zoom-up":{inKeyframes:zB,outKeyframes:HB},"zoom-down":{inKeyframes:GB,outKeyframes:XB}},oa=(e,t)=>{const{antCls:n}=e,o=`${n}-${t}`,{inKeyframes:r,outKeyframes:l}=UB[t];return[gi(o,r,l,t==="zoom-big-fast"?e.motionDurationFast:e.motionDurationMid),{[` + ${o}-enter, + ${o}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${o}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},YB=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}}),jc=YB,Xb=e=>{const{controlPaddingHorizontal:t}=e;return{position:"relative",display:"block",minHeight:e.controlHeight,padding:`${(e.controlHeight-e.fontSize*e.lineHeight)/2}px ${t}px`,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,lineHeight:e.lineHeight,boxSizing:"border-box"}},qB=e=>{const{antCls:t,componentCls:n}=e,o=`${n}-item`;return[{[`${n}-dropdown`]:g(g({},Qe(e)),{position:"absolute",top:-9999,zIndex:e.zIndexPopup,boxSizing:"border-box",padding:e.paddingXXS,overflow:"hidden",fontSize:e.fontSize,fontVariant:"initial",backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,[` + &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-bottomLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-bottomLeft + `]:{animationName:kc},[` + &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-topLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-topLeft + `]:{animationName:zc},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-bottomLeft`]:{animationName:Lc},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-topLeft`]:{animationName:Hc},"&-hidden":{display:"none"},"&-empty":{color:e.colorTextDisabled},[`${o}-empty`]:g(g({},Xb(e)),{color:e.colorTextDisabled}),[`${o}`]:g(g({},Xb(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":g({flex:"auto"},Xt),"&-state":{flex:"none"},[`&-active:not(${o}-option-disabled)`]:{backgroundColor:e.controlItemBgHover},[`&-selected:not(${o}-option-disabled)`]:{color:e.colorText,fontWeight:e.fontWeightStrong,backgroundColor:e.controlItemBgActive,[`${o}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${o}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.controlPaddingHorizontal*2}}}),"&-rtl":{direction:"rtl"}})},$o(e,"slide-up"),$o(e,"slide-down"),zl(e,"move-up"),zl(e,"move-down")]},QB=qB,rl=2;function q2(e){let{controlHeightSM:t,controlHeight:n,lineWidth:o}=e;const r=(n-t)/2-o,l=Math.ceil(r/2);return[r,l]}function Yu(e,t){const{componentCls:n,iconCls:o}=e,r=`${n}-selection-overflow`,l=e.controlHeightSM,[a]=q2(e),i=t?`${n}-${t}`:"";return{[`${n}-multiple${i}`]:{fontSize:e.fontSize,[r]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"100%",display:"inline-flex"}},[`${n}-selector`]:{display:"flex",flexWrap:"wrap",alignItems:"center",padding:`${a-rl}px ${rl*2}px`,borderRadius:e.borderRadius,[`${n}-show-search&`]:{cursor:"text"},[`${n}-disabled&`]:{background:e.colorBgContainerDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${rl}px 0`,lineHeight:`${l}px`,content:'"\\a0"'}},[` + &${n}-show-arrow ${n}-selector, + &${n}-allow-clear ${n}-selector + `]:{paddingInlineEnd:e.fontSizeIcon+e.controlPaddingHorizontal},[`${n}-selection-item`]:{position:"relative",display:"flex",flex:"none",boxSizing:"border-box",maxWidth:"100%",height:l,marginTop:rl,marginBottom:rl,lineHeight:`${l-e.lineWidth*2}px`,background:e.colorFillSecondary,border:`${e.lineWidth}px solid ${e.colorSplit}`,borderRadius:e.borderRadiusSM,cursor:"default",transition:`font-size ${e.motionDurationSlow}, line-height ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,userSelect:"none",marginInlineEnd:rl*2,paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS/2,[`${n}-disabled&`]:{color:e.colorTextDisabled,borderColor:e.colorBorder,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:e.paddingXS/2,overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":g(g({},Jl()),{display:"inline-block",color:e.colorIcon,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${o}`]:{verticalAlign:"-0.2em"},"&:hover":{color:e.colorIconHover}})},[`${r}-item + ${r}-item`]:{[`${n}-selection-search`]:{marginInlineStart:0}},[`${n}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:e.inputPaddingHorizontalBase-a,"\n &-input,\n &-mirror\n ":{height:l,fontFamily:e.fontFamily,lineHeight:`${l}px`,transition:`all ${e.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${n}-selection-placeholder `]:{position:"absolute",top:"50%",insetInlineStart:e.inputPaddingHorizontalBase,insetInlineEnd:e.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${e.motionDurationSlow}`}}}}function ZB(e){const{componentCls:t}=e,n=Le(e,{controlHeight:e.controlHeightSM,controlHeightSM:e.controlHeightXS,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),[,o]=q2(e);return[Yu(e),Yu(n,"sm"),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInlineStart:e.controlPaddingHorizontalSM-e.lineWidth,insetInlineEnd:"auto"},[`${t}-selection-search`]:{marginInlineStart:o}}},Yu(Le(e,{fontSize:e.fontSizeLG,controlHeight:e.controlHeightLG,controlHeightSM:e.controlHeight,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius}),"lg")]}function qu(e,t){const{componentCls:n,inputPaddingHorizontalBase:o,borderRadius:r}=e,l=e.controlHeight-e.lineWidth*2,a=Math.ceil(e.fontSize*1.25),i=t?`${n}-${t}`:"";return{[`${n}-single${i}`]:{fontSize:e.fontSize,[`${n}-selector`]:g(g({},Qe(e)),{display:"flex",borderRadius:r,[`${n}-selection-search`]:{position:"absolute",top:0,insetInlineStart:o,insetInlineEnd:o,bottom:0,"&-input":{width:"100%"}},[` + ${n}-selection-item, + ${n}-selection-placeholder + `]:{padding:0,lineHeight:`${l}px`,transition:`all ${e.motionDurationSlow}`,"@supports (-moz-appearance: meterbar)":{lineHeight:`${l}px`}},[`${n}-selection-item`]:{position:"relative",userSelect:"none"},[`${n}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[["&:after",`${n}-selection-item:after`,`${n}-selection-placeholder:after`].join(",")]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${n}-show-arrow ${n}-selection-item, + &${n}-show-arrow ${n}-selection-placeholder + `]:{paddingInlineEnd:a},[`&${n}-open ${n}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${n}-customize-input)`]:{[`${n}-selector`]:{width:"100%",height:e.controlHeight,padding:`0 ${o}px`,[`${n}-selection-search-input`]:{height:l},"&:after":{lineHeight:`${l}px`}}},[`&${n}-customize-input`]:{[`${n}-selector`]:{"&:after":{display:"none"},[`${n}-selection-search`]:{position:"static",width:"100%"},[`${n}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${o}px`,"&:after":{display:"none"}}}}}}}function JB(e){const{componentCls:t}=e,n=e.controlPaddingHorizontalSM-e.lineWidth;return[qu(e),qu(Le(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),"sm"),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selection-search`]:{insetInlineStart:n,insetInlineEnd:n},[`${t}-selector`]:{padding:`0 ${n}px`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:n+e.fontSize*1.5},[` + &${t}-show-arrow ${t}-selection-item, + &${t}-show-arrow ${t}-selection-placeholder + `]:{paddingInlineEnd:e.fontSize*1.5}}}},qu(Le(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),"lg")]}function eN(e,t,n){const{focusElCls:o,focus:r,borderElCls:l}=n,a=l?"> *":"",i=["hover",r?"focus":null,"active"].filter(Boolean).map(s=>`&:${s} ${a}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-e.lineWidth},"&-item":g(g({[i]:{zIndex:2}},o?{[`&${o}`]:{zIndex:2}}:{}),{[`&[disabled] ${a}`]:{zIndex:0}})}}function tN(e,t,n){const{borderElCls:o}=n,r=o?`> ${o}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${r}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${r}, &${e}-sm ${r}, &${e}-lg ${r}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${r}, &${e}-sm ${r}, &${e}-lg ${r}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function ra(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:n}=e,o=`${n}-compact`;return{[o]:g(g({},eN(e,o,t)),tN(n,o,t))}}const nN=e=>{const{componentCls:t}=e;return{position:"relative",backgroundColor:e.colorBgContainer,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:"pointer"},[`${t}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit"}},[`${t}-disabled&`]:{color:e.colorTextDisabled,background:e.colorBgContainerDisabled,cursor:"not-allowed",[`${t}-multiple&`]:{background:e.colorBgContainerDisabled},input:{cursor:"not-allowed"}}}},Qu=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const{componentCls:o,borderHoverColor:r,outlineColor:l,antCls:a}=t,i=n?{[`${o}-selector`]:{borderColor:r}}:{};return{[e]:{[`&:not(${o}-disabled):not(${o}-customize-input):not(${a}-pagination-size-changer)`]:g(g({},i),{[`${o}-focused& ${o}-selector`]:{borderColor:r,boxShadow:`0 0 0 ${t.controlOutlineWidth}px ${l}`,borderInlineEndWidth:`${t.controlLineWidth}px !important`,outline:0},[`&:hover ${o}-selector`]:{borderColor:r,borderInlineEndWidth:`${t.controlLineWidth}px !important`}})}}},oN=e=>{const{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none","&::-webkit-search-cancel-button":{display:"none","-webkit-appearance":"none"}}}},rN=e=>{const{componentCls:t,inputPaddingHorizontalBase:n,iconCls:o}=e;return{[t]:g(g({},Qe(e)),{position:"relative",display:"inline-block",cursor:"pointer",[`&:not(${t}-customize-input) ${t}-selector`]:g(g({},nN(e)),oN(e)),[`${t}-selection-item`]:g({flex:1,fontWeight:"normal"},Xt),[`${t}-selection-placeholder`]:g(g({},Xt),{flex:1,color:e.colorTextPlaceholder,pointerEvents:"none"}),[`${t}-arrow`]:g(g({},Jl()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",[o]:{verticalAlign:"top",transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${t}-suffix)`]:{pointerEvents:"auto"}},[`${t}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${t}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,zIndex:1,display:"inline-block",width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",background:e.colorBgContainer,cursor:"pointer",opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:"auto","&:before":{display:"block"},"&:hover":{color:e.colorTextTertiary}},"&:hover":{[`${t}-clear`]:{opacity:1}}}),[`${t}-has-feedback`]:{[`${t}-clear`]:{insetInlineEnd:n+e.fontSize+e.paddingXXS}}}},lN=e=>{const{componentCls:t}=e;return[{[t]:{[`&-borderless ${t}-selector`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`&${t}-in-form-item`]:{width:"100%"}}},rN(e),JB(e),ZB(e),QB(e),{[`${t}-rtl`]:{direction:"rtl"}},Qu(t,Le(e,{borderHoverColor:e.colorPrimaryHover,outlineColor:e.controlOutline})),Qu(`${t}-status-error`,Le(e,{borderHoverColor:e.colorErrorHover,outlineColor:e.colorErrorOutline}),!0),Qu(`${t}-status-warning`,Le(e,{borderHoverColor:e.colorWarningHover,outlineColor:e.colorWarningOutline}),!0),ra(e,{borderElCls:`${t}-selector`,focusElCls:`${t}-focused`})]},og=Je("Select",(e,t)=>{let{rootPrefixCls:n}=t;const o=Le(e,{rootPrefixCls:n,inputPaddingHorizontalBase:e.paddingSM-1});return[lN(o)]},e=>({zIndexPopup:e.zIndexPopupBase+50})),Vc=()=>g(g({},tt(B2(),["inputIcon","mode","getInputElement","getRawInputElement","backfill"])),{value:Xe([Array,Object,String,Number]),defaultValue:Xe([Array,Object,String,Number]),notFoundContent:V.any,suffixIcon:V.any,itemIcon:V.any,size:je(),mode:je(),bordered:xe(!0),transitionName:String,choiceTransitionName:je(""),popupClassName:String,dropdownClassName:String,placement:je(),status:je(),"onUpdate:value":ce()}),Ub="SECRET_COMBOBOX_MODE_DO_NOT_USE",mo=te({compatConfig:{MODE:3},name:"ASelect",Option:$R,OptGroup:SR,inheritAttrs:!1,props:rt(Vc(),{listHeight:256,listItemHeight:24}),SECRET_COMBOBOX_MODE_DO_NOT_USE:Ub,slots:Object,setup(e,t){let{attrs:n,emit:o,slots:r,expose:l}=t;const a=ee(),i=Lt(),s=rn.useInject(),u=P(()=>wo(s.status,e.status)),c=()=>{var j;(j=a.value)===null||j===void 0||j.focus()},d=()=>{var j;(j=a.value)===null||j===void 0||j.blur()},p=j=>{var G;(G=a.value)===null||G===void 0||G.scrollTo(j)},v=P(()=>{const{mode:j}=e;if(j!=="combobox")return j===Ub?"combobox":j}),{prefixCls:y,direction:m,configProvider:h,renderEmpty:b,size:$,getPrefixCls:C,getPopupContainer:w,disabled:S,select:O}=Me("select",e),{compactSize:x,compactItemClassnames:I}=pr(y,m),E=P(()=>x.value||$.value),M=Cn(),_=P(()=>{var j;return(j=S.value)!==null&&j!==void 0?j:M.value}),[z,R]=og(y),H=P(()=>C()),T=P(()=>e.placement!==void 0?e.placement:m.value==="rtl"?"bottomRight":"bottomLeft"),D=P(()=>on(H.value,Av(T.value),e.transitionName)),A=P(()=>ne({[`${y.value}-lg`]:E.value==="large",[`${y.value}-sm`]:E.value==="small",[`${y.value}-rtl`]:m.value==="rtl",[`${y.value}-borderless`]:!e.bordered,[`${y.value}-in-form-item`]:s.isFormItemInput},bn(y.value,u.value,s.hasFeedback),I.value,R.value)),B=function(){for(var j=arguments.length,G=new Array(j),U=0;U{o("blur",j),i.onFieldBlur()};l({blur:d,focus:c,scrollTo:p});const k=P(()=>v.value==="multiple"||v.value==="tags"),L=P(()=>e.showArrow!==void 0?e.showArrow:e.loading||!(k.value||v.value==="combobox"));return()=>{var j,G,U,K;const{notFoundContent:Y,listHeight:Q=256,listItemHeight:J=24,popupClassName:Z,dropdownClassName:W,virtual:X,dropdownMatchSelectWidth:re,id:ae=i.id.value,placeholder:pe=(j=r.placeholder)===null||j===void 0?void 0:j.call(r),showArrow:ye}=e,{hasFeedback:de,feedbackIcon:me}=s;let ie;Y!==void 0?ie=Y:r.notFoundContent?ie=r.notFoundContent():v.value==="combobox"?ie=null:ie=(b==null?void 0:b("Select"))||f(wv,{componentName:"Select"},null);const{suffixIcon:se,itemIcon:be,removeIcon:we,clearIcon:ve}=Jv(g(g({},e),{multiple:k.value,prefixCls:y.value,hasFeedback:de,feedbackIcon:me,showArrow:L.value}),r),Ce=tt(e,["prefixCls","suffixIcon","itemIcon","removeIcon","clearIcon","size","bordered","status"]),Te=ne(Z||W,{[`${y.value}-dropdown-${m.value}`]:m.value==="rtl"},R.value);return z(f(yR,F(F(F({ref:a,virtual:X,dropdownMatchSelectWidth:re},Ce),n),{},{showSearch:(G=e.showSearch)!==null&&G!==void 0?G:(U=O==null?void 0:O.value)===null||U===void 0?void 0:U.showSearch,placeholder:pe,listHeight:Q,listItemHeight:J,mode:v.value,prefixCls:y.value,direction:m.value,inputIcon:se,menuItemSelectedIcon:be,removeIcon:we,clearIcon:ve,notFoundContent:ie,class:[A.value,n.class],getPopupContainer:w==null?void 0:w.value,dropdownClassName:Te,onChange:B,onBlur:N,id:ae,dropdownRender:Ce.dropdownRender||r.dropdownRender,transitionName:D.value,children:(K=r.default)===null||K===void 0?void 0:K.call(r),tagRender:e.tagRender||r.tagRender,optionLabelRender:r.optionLabel,maxTagPlaceholder:e.maxTagPlaceholder||r.maxTagPlaceholder,showArrow:de||ye,disabled:_.value}),{option:r.option}))}}});mo.install=function(e){return e.component(mo.name,mo),e.component(mo.Option.displayName,mo.Option),e.component(mo.OptGroup.displayName,mo.OptGroup),e};mo.Option;mo.OptGroup;const Hl=mo,rg=()=>null;rg.isSelectOption=!0;rg.displayName="AAutoCompleteOption";const Ea=rg,lg=()=>null;lg.isSelectOptGroup=!0;lg.displayName="AAutoCompleteOptGroup";const Zu=lg;function aN(e){var t,n;return((t=e==null?void 0:e.type)===null||t===void 0?void 0:t.isSelectOption)||((n=e==null?void 0:e.type)===null||n===void 0?void 0:n.isSelectOptGroup)}const iN=()=>g(g({},tt(Vc(),["loading","mode","optionLabelProp","labelInValue"])),{dataSource:Array,dropdownMenuStyle:{type:Object,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},prefixCls:String,showSearch:{type:Boolean,default:void 0},transitionName:String,choiceTransitionName:{type:String,default:"zoom"},autofocus:{type:Boolean,default:void 0},backfill:{type:Boolean,default:void 0},filterOption:{type:[Boolean,Function],default:!1},defaultActiveFirstOption:{type:Boolean,default:!0},status:String}),Ju=te({compatConfig:{MODE:3},name:"AAutoComplete",inheritAttrs:!1,props:iN(),slots:Object,setup(e,t){let{slots:n,attrs:o,expose:r}=t;$t(),$t(),$t(!e.dropdownClassName);const l=ee(),a=()=>{var c;const d=bt((c=n.default)===null||c===void 0?void 0:c.call(n));return d.length?d[0]:void 0};r({focus:()=>{var c;(c=l.value)===null||c===void 0||c.focus()},blur:()=>{var c;(c=l.value)===null||c===void 0||c.blur()}});const{prefixCls:u}=Me("select",e);return()=>{var c,d,p;const{size:v,dataSource:y,notFoundContent:m=(c=n.notFoundContent)===null||c===void 0?void 0:c.call(n)}=e;let h;const{class:b}=o,$={[b]:!!b,[`${u.value}-lg`]:v==="large",[`${u.value}-sm`]:v==="small",[`${u.value}-show-search`]:!0,[`${u.value}-auto-complete`]:!0};if(e.options===void 0){const w=((d=n.dataSource)===null||d===void 0?void 0:d.call(n))||((p=n.options)===null||p===void 0?void 0:p.call(n))||[];w.length&&aN(w[0])?h=w:h=y?y.map(S=>{if(Rt(S))return S;switch(typeof S){case"string":return f(Ea,{key:S,value:S},{default:()=>[S]});case"object":return f(Ea,{key:S.value,value:S.value},{default:()=>[S.text]});default:throw new Error("AutoComplete[dataSource] only supports type `string[] | Object[]`.")}}):[]}const C=tt(g(g(g({},e),o),{mode:Hl.SECRET_COMBOBOX_MODE_DO_NOT_USE,getInputElement:a,notFoundContent:m,class:$,popupClassName:e.popupClassName||e.dropdownClassName,ref:l}),["dataSource","loading"]);return f(Hl,C,F({default:()=>[h]},tt(n,["default","dataSource","options"])))}}}),Cle=g(Ju,{Option:Ea,OptGroup:Zu,install(e){return e.component(Ju.name,Ju),e.component(Ea.displayName,Ea),e.component(Zu.displayName,Zu),e}});var sN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};const cN=sN;function Yb(e){for(var t=1;t({backgroundColor:e,border:`${o.lineWidth}px ${o.lineType} ${t}`,[`${r}-icon`]:{color:n}}),PN=e=>{const{componentCls:t,motionDurationSlow:n,marginXS:o,marginSM:r,fontSize:l,fontSizeLG:a,lineHeight:i,borderRadiusLG:s,motionEaseInOutCirc:u,alertIconSizeLG:c,colorText:d,paddingContentVerticalSM:p,alertPaddingHorizontal:v,paddingMD:y,paddingContentHorizontalLG:m}=e;return{[t]:g(g({},Qe(e)),{position:"relative",display:"flex",alignItems:"center",padding:`${p}px ${v}px`,wordWrap:"break-word",borderRadius:s,[`&${t}-rtl`]:{direction:"rtl"},[`${t}-content`]:{flex:1,minWidth:0},[`${t}-icon`]:{marginInlineEnd:o,lineHeight:0},"&-description":{display:"none",fontSize:l,lineHeight:i},"&-message":{color:d},[`&${t}-motion-leave`]:{overflow:"hidden",opacity:1,transition:`max-height ${n} ${u}, opacity ${n} ${u}, + padding-top ${n} ${u}, padding-bottom ${n} ${u}, + margin-bottom ${n} ${u}`},[`&${t}-motion-leave-active`]:{maxHeight:0,marginBottom:"0 !important",paddingTop:0,paddingBottom:0,opacity:0}}),[`${t}-with-description`]:{alignItems:"flex-start",paddingInline:m,paddingBlock:y,[`${t}-icon`]:{marginInlineEnd:r,fontSize:c,lineHeight:0},[`${t}-message`]:{display:"block",marginBottom:o,color:d,fontSize:a},[`${t}-description`]:{display:"block"}},[`${t}-banner`]:{marginBottom:0,border:"0 !important",borderRadius:0}}},IN=e=>{const{componentCls:t,colorSuccess:n,colorSuccessBorder:o,colorSuccessBg:r,colorWarning:l,colorWarningBorder:a,colorWarningBg:i,colorError:s,colorErrorBorder:u,colorErrorBg:c,colorInfo:d,colorInfoBorder:p,colorInfoBg:v}=e;return{[t]:{"&-success":zi(r,o,n,e,t),"&-info":zi(v,p,d,e,t),"&-warning":zi(i,a,l,e,t),"&-error":g(g({},zi(c,u,s,e,t)),{[`${t}-description > pre`]:{margin:0,padding:0}})}}},TN=e=>{const{componentCls:t,iconCls:n,motionDurationMid:o,marginXS:r,fontSizeIcon:l,colorIcon:a,colorIconHover:i}=e;return{[t]:{"&-action":{marginInlineStart:r},[`${t}-close-icon`]:{marginInlineStart:r,padding:0,overflow:"hidden",fontSize:l,lineHeight:`${l}px`,backgroundColor:"transparent",border:"none",outline:"none",cursor:"pointer",[`${n}-close`]:{color:a,transition:`color ${o}`,"&:hover":{color:i}}},"&-close-text":{color:a,transition:`color ${o}`,"&:hover":{color:i}}}}},EN=e=>[PN(e),IN(e),TN(e)],MN=Je("Alert",e=>{const{fontSizeHeading3:t}=e,n=Le(e,{alertIconSizeLG:t,alertPaddingHorizontal:12});return[EN(n)]}),_N={success:Ko,info:la,error:On,warning:Go},DN={success:Q2,info:ew,error:tw,warning:Z2},AN=Sn("success","info","warning","error"),RN=()=>({type:V.oneOf(AN),closable:{type:Boolean,default:void 0},closeText:V.any,message:V.any,description:V.any,afterClose:Function,showIcon:{type:Boolean,default:void 0},prefixCls:String,banner:{type:Boolean,default:void 0},icon:V.any,closeIcon:V.any,onClose:Function}),BN=te({compatConfig:{MODE:3},name:"AAlert",inheritAttrs:!1,props:RN(),setup(e,t){let{slots:n,emit:o,attrs:r,expose:l}=t;const{prefixCls:a,direction:i}=Me("alert",e),[s,u]=MN(a),c=q(!1),d=q(!1),p=q(),v=b=>{b.preventDefault();const $=p.value;$.style.height=`${$.offsetHeight}px`,$.style.height=`${$.offsetHeight}px`,c.value=!0,o("close",b)},y=()=>{var b;c.value=!1,d.value=!0,(b=e.afterClose)===null||b===void 0||b.call(e)},m=P(()=>{const{type:b}=e;return b!==void 0?b:e.banner?"warning":"info"});l({animationEnd:y});const h=q({});return()=>{var b,$,C,w,S,O,x,I,E,M;const{banner:_,closeIcon:z=(b=n.closeIcon)===null||b===void 0?void 0:b.call(n)}=e;let{closable:R,showIcon:H}=e;const T=($=e.closeText)!==null&&$!==void 0?$:(C=n.closeText)===null||C===void 0?void 0:C.call(n),D=(w=e.description)!==null&&w!==void 0?w:(S=n.description)===null||S===void 0?void 0:S.call(n),A=(O=e.message)!==null&&O!==void 0?O:(x=n.message)===null||x===void 0?void 0:x.call(n),B=(I=e.icon)!==null&&I!==void 0?I:(E=n.icon)===null||E===void 0?void 0:E.call(n),N=(M=n.action)===null||M===void 0?void 0:M.call(n);H=_&&H===void 0?!0:H;const k=(D?DN:_N)[m.value]||null;T&&(R=!0);const L=a.value,j=ne(L,{[`${L}-${m.value}`]:!0,[`${L}-closing`]:c.value,[`${L}-with-description`]:!!D,[`${L}-no-icon`]:!H,[`${L}-banner`]:!!_,[`${L}-closable`]:R,[`${L}-rtl`]:i.value==="rtl",[u.value]:!0}),G=R?f("button",{type:"button",onClick:v,class:`${L}-close-icon`,tabindex:0},[T?f("span",{class:`${L}-close-text`},[T]):z===void 0?f(Qn,null,null):z]):null,U=B&&(Rt(B)?gt(B,{class:`${L}-icon`}):f("span",{class:`${L}-icon`},[B]))||f(k,{class:`${L}-icon`},null),K=Yn(`${L}-motion`,{appear:!1,css:!0,onAfterLeave:y,onBeforeLeave:Y=>{Y.style.maxHeight=`${Y.offsetHeight}px`},onLeave:Y=>{Y.style.maxHeight="0px"}});return s(d.value?null:f(Jt,K,{default:()=>[cn(f("div",F(F({role:"alert"},r),{},{style:[r.style,h.value],class:[r.class,j],"data-show":!c.value,ref:p}),[H?U:null,f("div",{class:`${L}-content`},[A?f("div",{class:`${L}-message`},[A]):null,D?f("div",{class:`${L}-description`},[D]):null]),N?f("div",{class:`${L}-action`},[N]):null,G]),[[yn,!c.value]])]}))}}}),xle=Gt(BN),Ro=["xxxl","xxl","xl","lg","md","sm","xs"],NN=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`{min-width: ${e.screenXXXL}px}`});function pg(){const[,e]=ea();return P(()=>{const t=NN(e.value),n=new Map;let o=-1,r={};return{matchHandlers:{},dispatch(l){return r=l,n.forEach(a=>a(r)),n.size>=1},subscribe(l){return n.size||this.register(),o+=1,n.set(o,l),l(r),o},unsubscribe(l){n.delete(l),n.size||this.unregister()},unregister(){Object.keys(t).forEach(l=>{const a=t[l],i=this.matchHandlers[a];i==null||i.mql.removeListener(i==null?void 0:i.listener)}),n.clear()},register(){Object.keys(t).forEach(l=>{const a=t[l],i=u=>{let{matches:c}=u;this.dispatch(g(g({},r),{[l]:c}))},s=window.matchMedia(a);s.addListener(i),this.matchHandlers[a]={mql:s,listener:i},i(s)})},responsiveMap:t}})}function Wc(){const e=q({});let t=null;const n=pg();return Ve(()=>{t=n.value.subscribe(o=>{e.value=o})}),Bn(()=>{n.value.unsubscribe(t)}),e}function Mn(e){const t=q();return ke(()=>{t.value=e()},{flush:"sync"}),t}const FN=e=>{const{antCls:t,componentCls:n,iconCls:o,avatarBg:r,avatarColor:l,containerSize:a,containerSizeLG:i,containerSizeSM:s,textFontSize:u,textFontSizeLG:c,textFontSizeSM:d,borderRadius:p,borderRadiusLG:v,borderRadiusSM:y,lineWidth:m,lineType:h}=e,b=($,C,w)=>({width:$,height:$,lineHeight:`${$-m*2}px`,borderRadius:"50%",[`&${n}-square`]:{borderRadius:w},[`${n}-string`]:{position:"absolute",left:{_skip_check_:!0,value:"50%"},transformOrigin:"0 center"},[`&${n}-icon`]:{fontSize:C,[`> ${o}`]:{margin:0}}});return{[n]:g(g(g(g({},Qe(e)),{position:"relative",display:"inline-block",overflow:"hidden",color:l,whiteSpace:"nowrap",textAlign:"center",verticalAlign:"middle",background:r,border:`${m}px ${h} transparent`,"&-image":{background:"transparent"},[`${t}-image-img`]:{display:"block"}}),b(a,u,p)),{"&-lg":g({},b(i,c,v)),"&-sm":g({},b(s,d,y)),"> img":{display:"block",width:"100%",height:"100%",objectFit:"cover"}})}},kN=e=>{const{componentCls:t,groupBorderColor:n,groupOverlapping:o,groupSpace:r}=e;return{[`${t}-group`]:{display:"inline-flex",[`${t}`]:{borderColor:n},"> *:not(:first-child)":{marginInlineStart:o}},[`${t}-group-popover`]:{[`${t} + ${t}`]:{marginInlineStart:r}}}},rw=Je("Avatar",e=>{const{colorTextLightSolid:t,colorTextPlaceholder:n}=e,o=Le(e,{avatarBg:n,avatarColor:t});return[FN(o),kN(o)]},e=>{const{controlHeight:t,controlHeightLG:n,controlHeightSM:o,fontSize:r,fontSizeLG:l,fontSizeXL:a,fontSizeHeading3:i,marginXS:s,marginXXS:u,colorBorderBg:c}=e;return{containerSize:t,containerSizeLG:n,containerSizeSM:o,textFontSize:Math.round((l+a)/2),textFontSizeLG:i,textFontSizeSM:r,groupSpace:u,groupOverlapping:-s,groupBorderColor:c}}),lw=Symbol("AvatarContextKey"),LN=()=>Ke(lw,{}),zN=e=>We(lw,e),HN=()=>({prefixCls:String,shape:{type:String,default:"circle"},size:{type:[Number,String,Object],default:()=>"default"},src:String,srcset:String,icon:V.any,alt:String,gap:Number,draggable:{type:Boolean,default:void 0},crossOrigin:String,loadError:{type:Function}}),jN=te({compatConfig:{MODE:3},name:"AAvatar",inheritAttrs:!1,props:HN(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const r=q(!0),l=q(!1),a=q(1),i=q(null),s=q(null),{prefixCls:u}=Me("avatar",e),[c,d]=rw(u),p=LN(),v=P(()=>e.size==="default"?p.size:e.size),y=Wc(),m=Mn(()=>{if(typeof e.size!="object")return;const C=Ro.find(S=>y.value[S]);return e.size[C]}),h=C=>m.value?{width:`${m.value}px`,height:`${m.value}px`,lineHeight:`${m.value}px`,fontSize:`${C?m.value/2:18}px`}:{},b=()=>{if(!i.value||!s.value)return;const C=i.value.offsetWidth,w=s.value.offsetWidth;if(C!==0&&w!==0){const{gap:S=4}=e;S*2{const{loadError:C}=e;(C==null?void 0:C())!==!1&&(r.value=!1)};return ue(()=>e.src,()=>{ot(()=>{r.value=!0,a.value=1})}),ue(()=>e.gap,()=>{ot(()=>{b()})}),Ve(()=>{ot(()=>{b(),l.value=!0})}),()=>{var C,w;const{shape:S,src:O,alt:x,srcset:I,draggable:E,crossOrigin:M}=e,_=(C=p.shape)!==null&&C!==void 0?C:S,z=At(n,e,"icon"),R=u.value,H={[`${o.class}`]:!!o.class,[R]:!0,[`${R}-lg`]:v.value==="large",[`${R}-sm`]:v.value==="small",[`${R}-${_}`]:!0,[`${R}-image`]:O&&r.value,[`${R}-icon`]:z,[d.value]:!0},T=typeof v.value=="number"?{width:`${v.value}px`,height:`${v.value}px`,lineHeight:`${v.value}px`,fontSize:z?`${v.value/2}px`:"18px"}:{},D=(w=n.default)===null||w===void 0?void 0:w.call(n);let A;if(O&&r.value)A=f("img",{draggable:E,src:O,srcset:I,onError:$,alt:x,crossorigin:M},null);else if(z)A=z;else if(l.value||a.value!==1){const B=`scale(${a.value}) translateX(-50%)`,N={msTransform:B,WebkitTransform:B,transform:B},k=typeof v.value=="number"?{lineHeight:`${v.value}px`}:{};A=f(io,{onResize:b},{default:()=>[f("span",{class:`${R}-string`,ref:i,style:g(g({},k),N)},[D])]})}else A=f("span",{class:`${R}-string`,ref:i,style:{opacity:0}},[D]);return c(f("span",F(F({},o),{},{ref:s,class:H,style:[T,h(!!z),o.style]}),[A]))}}}),Cl=jN,Ln={adjustX:1,adjustY:1},zn=[0,0],aw={left:{points:["cr","cl"],overflow:Ln,offset:[-4,0],targetOffset:zn},right:{points:["cl","cr"],overflow:Ln,offset:[4,0],targetOffset:zn},top:{points:["bc","tc"],overflow:Ln,offset:[0,-4],targetOffset:zn},bottom:{points:["tc","bc"],overflow:Ln,offset:[0,4],targetOffset:zn},topLeft:{points:["bl","tl"],overflow:Ln,offset:[0,-4],targetOffset:zn},leftTop:{points:["tr","tl"],overflow:Ln,offset:[-4,0],targetOffset:zn},topRight:{points:["br","tr"],overflow:Ln,offset:[0,-4],targetOffset:zn},rightTop:{points:["tl","tr"],overflow:Ln,offset:[4,0],targetOffset:zn},bottomRight:{points:["tr","br"],overflow:Ln,offset:[0,4],targetOffset:zn},rightBottom:{points:["bl","br"],overflow:Ln,offset:[4,0],targetOffset:zn},bottomLeft:{points:["tl","bl"],overflow:Ln,offset:[0,4],targetOffset:zn},leftBottom:{points:["br","bl"],overflow:Ln,offset:[-4,0],targetOffset:zn}},VN={prefixCls:String,id:String,overlayInnerStyle:V.any},WN=te({compatConfig:{MODE:3},name:"TooltipContent",props:VN,setup(e,t){let{slots:n}=t;return()=>{var o;return f("div",{class:`${e.prefixCls}-inner`,id:e.id,role:"tooltip",style:e.overlayInnerStyle},[(o=n.overlay)===null||o===void 0?void 0:o.call(n)])}}});var KN=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{}),overlayStyle:{type:Object,default:void 0},overlayClassName:String,prefixCls:V.string.def("rc-tooltip"),mouseEnterDelay:V.number.def(.1),mouseLeaveDelay:V.number.def(.1),getPopupContainer:Function,destroyTooltipOnHide:{type:Boolean,default:!1},align:V.object.def(()=>({})),arrowContent:V.any.def(null),tipId:String,builtinPlacements:V.object,overlayInnerStyle:{type:Object,default:void 0},popupVisible:{type:Boolean,default:void 0},onVisibleChange:Function,onPopupAlign:Function,arrow:{type:Boolean,default:!0}},setup(e,t){let{slots:n,attrs:o,expose:r}=t;const l=q(),a=()=>{const{prefixCls:c,tipId:d,overlayInnerStyle:p}=e;return[e.arrow?f("div",{class:`${c}-arrow`,key:"arrow"},[At(n,e,"arrowContent")]):null,f(WN,{key:"content",prefixCls:c,id:d,overlayInnerStyle:p},{overlay:n.overlay})]};r({getPopupDomNode:()=>l.value.getPopupDomNode(),triggerDOM:l,forcePopupAlign:()=>{var c;return(c=l.value)===null||c===void 0?void 0:c.forcePopupAlign()}});const s=q(!1),u=q(!1);return ke(()=>{const{destroyTooltipOnHide:c}=e;if(typeof c=="boolean")s.value=c;else if(c&&typeof c=="object"){const{keepParent:d}=c;s.value=d===!0,u.value=d===!1}}),()=>{const{overlayClassName:c,trigger:d,mouseEnterDelay:p,mouseLeaveDelay:v,overlayStyle:y,prefixCls:m,afterVisibleChange:h,transitionName:b,animation:$,placement:C,align:w,destroyTooltipOnHide:S,defaultVisible:O}=e,x=KN(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible"]),I=g({},x);e.visible!==void 0&&(I.popupVisible=e.visible);const E=g(g(g({popupClassName:c,prefixCls:m,action:d,builtinPlacements:aw,popupPlacement:C,popupAlign:w,afterPopupVisibleChange:h,popupTransitionName:b,popupAnimation:$,defaultPopupVisible:O,destroyPopupOnHide:s.value,autoDestroy:u.value,mouseLeaveDelay:v,popupStyle:y,mouseEnterDelay:p},I),o),{onPopupVisibleChange:e.onVisibleChange||ny,onPopupAlign:e.onPopupAlign||ny,ref:l,arrow:!!e.arrow,popup:a()});return f(di,E,{default:n.default})}}}),vg=()=>({trigger:[String,Array],open:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},placement:String,color:String,transitionName:String,overlayStyle:De(),overlayInnerStyle:De(),overlayClassName:String,openClassName:String,prefixCls:String,mouseEnterDelay:Number,mouseLeaveDelay:Number,getPopupContainer:Function,arrowPointAtCenter:{type:Boolean,default:void 0},arrow:{type:[Boolean,Object],default:!0},autoAdjustOverflow:{type:[Boolean,Object],default:void 0},destroyTooltipOnHide:{type:Boolean,default:void 0},align:De(),builtinPlacements:De(),children:Array,onVisibleChange:Function,"onUpdate:visible":Function,onOpenChange:Function,"onUpdate:open":Function}),XN={adjustX:1,adjustY:1},oy={adjustX:0,adjustY:0},UN=[0,0];function ry(e){return typeof e=="boolean"?e?XN:oy:g(g({},oy),e)}function iw(e){const{arrowWidth:t=4,horizontalArrowShift:n=16,verticalArrowShift:o=8,autoAdjustOverflow:r,arrowPointAtCenter:l}=e,a={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(n+t),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(o+t)]},topRight:{points:["br","tc"],offset:[n+t,-4]},rightTop:{points:["tl","cr"],offset:[4,-(o+t)]},bottomRight:{points:["tr","bc"],offset:[n+t,4]},rightBottom:{points:["bl","cr"],offset:[4,o+t]},bottomLeft:{points:["tl","bc"],offset:[-(n+t),4]},leftBottom:{points:["br","cl"],offset:[-4,o+t]}};return Object.keys(a).forEach(i=>{a[i]=l?g(g({},a[i]),{overflow:ry(r),targetOffset:UN}):g(g({},aw[i]),{overflow:ry(r)}),a[i].ignoreShake=!0}),a}function Df(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let t=0,n=e.length;t`${e}-inverse`),qN=["success","processing","error","default","warning"];function Kc(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[...YN,...qa].includes(e):qa.includes(e)}function QN(e){return qN.includes(e)}function ZN(e,t){const n=Kc(t),o=ne({[`${e}-${t}`]:t&&n}),r={},l={};return t&&!n&&(r.background=t,l["--antd-arrow-background-color"]=t),{className:o,overlayStyle:r,arrowStyle:l}}function Hi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return e.map(n=>`${t}${n}`).join(",")}const sw=8;function cw(e){const t=sw,{sizePopupArrow:n,contentRadius:o,borderRadiusOuter:r,limitVerticalRadius:l}=e,a=n/2-Math.ceil(r*(Math.sqrt(2)-1)),i=(o>12?o+2:12)-a,s=l?t-a:i;return{dropdownArrowOffset:i,dropdownArrowOffsetVertical:s}}function uw(e,t){const{componentCls:n,sizePopupArrow:o,marginXXS:r,borderRadiusXS:l,borderRadiusOuter:a,boxShadowPopoverArrow:i}=e,{colorBg:s,showArrowCls:u,contentRadius:c=e.borderRadiusLG,limitVerticalRadius:d}=t,{dropdownArrowOffsetVertical:p,dropdownArrowOffset:v}=cw({sizePopupArrow:o,contentRadius:c,borderRadiusOuter:a,limitVerticalRadius:d}),y=o/2+r;return{[n]:{[`${n}-arrow`]:[g(g({position:"absolute",zIndex:1,display:"block"},Cv(o,l,a,s,i)),{"&:before":{background:s}})],[[`&-placement-top ${n}-arrow`,`&-placement-topLeft ${n}-arrow`,`&-placement-topRight ${n}-arrow`].join(",")]:{bottom:0,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${n}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:v}},[`&-placement-topRight ${n}-arrow`]:{right:{_skip_check_:!0,value:v}},[[`&-placement-bottom ${n}-arrow`,`&-placement-bottomLeft ${n}-arrow`,`&-placement-bottomRight ${n}-arrow`].join(",")]:{top:0,transform:"translateY(-100%)"},[`&-placement-bottom ${n}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:v}},[`&-placement-bottomRight ${n}-arrow`]:{right:{_skip_check_:!0,value:v}},[[`&-placement-left ${n}-arrow`,`&-placement-leftTop ${n}-arrow`,`&-placement-leftBottom ${n}-arrow`].join(",")]:{right:{_skip_check_:!0,value:0},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${n}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${n}-arrow`]:{top:p},[`&-placement-leftBottom ${n}-arrow`]:{bottom:p},[[`&-placement-right ${n}-arrow`,`&-placement-rightTop ${n}-arrow`,`&-placement-rightBottom ${n}-arrow`].join(",")]:{left:{_skip_check_:!0,value:0},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${n}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${n}-arrow`]:{top:p},[`&-placement-rightBottom ${n}-arrow`]:{bottom:p},[Hi(["&-placement-topLeft","&-placement-top","&-placement-topRight"].map(m=>m+=":not(&-arrow-hidden)"),u)]:{paddingBottom:y},[Hi(["&-placement-bottomLeft","&-placement-bottom","&-placement-bottomRight"].map(m=>m+=":not(&-arrow-hidden)"),u)]:{paddingTop:y},[Hi(["&-placement-leftTop","&-placement-left","&-placement-leftBottom"].map(m=>m+=":not(&-arrow-hidden)"),u)]:{paddingRight:{_skip_check_:!0,value:y}},[Hi(["&-placement-rightTop","&-placement-right","&-placement-rightBottom"].map(m=>m+=":not(&-arrow-hidden)"),u)]:{paddingLeft:{_skip_check_:!0,value:y}}}}}const JN=e=>{const{componentCls:t,tooltipMaxWidth:n,tooltipColor:o,tooltipBg:r,tooltipBorderRadius:l,zIndexPopup:a,controlHeight:i,boxShadowSecondary:s,paddingSM:u,paddingXS:c,tooltipRadiusOuter:d}=e;return[{[t]:g(g(g(g({},Qe(e)),{position:"absolute",zIndex:a,display:"block","&":[{width:"max-content"},{width:"intrinsic"}],maxWidth:n,visibility:"visible","&-hidden":{display:"none"},"--antd-arrow-background-color":r,[`${t}-inner`]:{minWidth:i,minHeight:i,padding:`${u/2}px ${c}px`,color:o,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:r,borderRadius:l,boxShadow:s},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${t}-inner`]:{borderRadius:Math.min(l,sw)}},[`${t}-content`]:{position:"relative"}}),Rs(e,(p,v)=>{let{darkColor:y}=v;return{[`&${t}-${p}`]:{[`${t}-inner`]:{backgroundColor:y},[`${t}-arrow`]:{"--antd-arrow-background-color":y}}}})),{"&-rtl":{direction:"rtl"}})},uw(Le(e,{borderRadiusOuter:d}),{colorBg:"var(--antd-arrow-background-color)",showArrowCls:"",contentRadius:l,limitVerticalRadius:!0}),{[`${t}-pure`]:{position:"relative",maxWidth:"none"}}]},eF=(e,t)=>Je("Tooltip",o=>{if((t==null?void 0:t.value)===!1)return[];const{borderRadius:r,colorTextLightSolid:l,colorBgDefault:a,borderRadiusOuter:i}=o,s=Le(o,{tooltipMaxWidth:250,tooltipColor:l,tooltipBorderRadius:r,tooltipBg:a,tooltipRadiusOuter:i>4?4:i});return[JN(s),oa(o,"zoom-big-fast")]},o=>{let{zIndexPopupBase:r,colorBgSpotlight:l}=o;return{zIndexPopup:r+70,colorBgDefault:l}})(e),tF=(e,t)=>{const n={},o=g({},e);return t.forEach(r=>{e&&r in e&&(n[r]=e[r],delete o[r])}),{picked:n,omitted:o}},dw=()=>g(g({},vg()),{title:V.any}),fw=()=>({trigger:"hover",align:{},placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),nF=te({compatConfig:{MODE:3},name:"ATooltip",inheritAttrs:!1,props:rt(dw(),{trigger:"hover",align:{},placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),slots:Object,setup(e,t){let{slots:n,emit:o,attrs:r,expose:l}=t;const{prefixCls:a,getPopupContainer:i,direction:s,rootPrefixCls:u}=Me("tooltip",e),c=P(()=>{var M;return(M=e.open)!==null&&M!==void 0?M:e.visible}),d=ee(Df([e.open,e.visible])),p=ee();let v;ue(c,M=>{He.cancel(v),v=He(()=>{d.value=!!M})});const y=()=>{var M;const _=(M=e.title)!==null&&M!==void 0?M:n.title;return!_&&_!==0},m=M=>{const _=y();c.value===void 0&&(d.value=_?!1:M),_||(o("update:visible",M),o("visibleChange",M),o("update:open",M),o("openChange",M))};l({getPopupDomNode:()=>p.value.getPopupDomNode(),open:d,forcePopupAlign:()=>{var M;return(M=p.value)===null||M===void 0?void 0:M.forcePopupAlign()}});const b=P(()=>{var M;const{builtinPlacements:_,autoAdjustOverflow:z,arrow:R,arrowPointAtCenter:H}=e;let T=H;return typeof R=="object"&&(T=(M=R.pointAtCenter)!==null&&M!==void 0?M:H),_||iw({arrowPointAtCenter:T,autoAdjustOverflow:z})}),$=M=>M||M==="",C=M=>{const _=M.type;if(typeof _=="object"&&M.props&&((_.__ANT_BUTTON===!0||_==="button")&&$(M.props.disabled)||_.__ANT_SWITCH===!0&&($(M.props.disabled)||$(M.props.loading))||_.__ANT_RADIO===!0&&$(M.props.disabled))){const{picked:z,omitted:R}=tF(lx(M),["position","left","right","top","bottom","float","display","zIndex"]),H=g(g({display:"inline-block"},z),{cursor:"not-allowed",lineHeight:1,width:M.props&&M.props.block?"100%":void 0}),T=g(g({},R),{pointerEvents:"none"}),D=gt(M,{style:T},!0);return f("span",{style:H,class:`${a.value}-disabled-compatible-wrapper`},[D])}return M},w=()=>{var M,_;return(M=e.title)!==null&&M!==void 0?M:(_=n.title)===null||_===void 0?void 0:_.call(n)},S=(M,_)=>{const z=b.value,R=Object.keys(z).find(H=>{var T,D;return z[H].points[0]===((T=_.points)===null||T===void 0?void 0:T[0])&&z[H].points[1]===((D=_.points)===null||D===void 0?void 0:D[1])});if(R){const H=M.getBoundingClientRect(),T={top:"50%",left:"50%"};R.indexOf("top")>=0||R.indexOf("Bottom")>=0?T.top=`${H.height-_.offset[1]}px`:(R.indexOf("Top")>=0||R.indexOf("bottom")>=0)&&(T.top=`${-_.offset[1]}px`),R.indexOf("left")>=0||R.indexOf("Right")>=0?T.left=`${H.width-_.offset[0]}px`:(R.indexOf("right")>=0||R.indexOf("Left")>=0)&&(T.left=`${-_.offset[0]}px`),M.style.transformOrigin=`${T.left} ${T.top}`}},O=P(()=>ZN(a.value,e.color)),x=P(()=>r["data-popover-inject"]),[I,E]=eF(a,P(()=>!x.value));return()=>{var M,_;const{openClassName:z,overlayClassName:R,overlayStyle:H,overlayInnerStyle:T}=e;let D=(_=Ot((M=n.default)===null||M===void 0?void 0:M.call(n)))!==null&&_!==void 0?_:null;D=D.length===1?D[0]:D;let A=d.value;if(c.value===void 0&&y()&&(A=!1),!D)return null;const B=C(Rt(D)&&!O9(D)?D:f("span",null,[D])),N=ne({[z||`${a.value}-open`]:!0,[B.props&&B.props.class]:B.props&&B.props.class}),k=ne(R,{[`${a.value}-rtl`]:s.value==="rtl"},O.value.className,E.value),L=g(g({},O.value.overlayStyle),T),j=O.value.arrowStyle,G=g(g(g({},r),e),{prefixCls:a.value,arrow:!!e.arrow,getPopupContainer:i==null?void 0:i.value,builtinPlacements:b.value,visible:A,ref:p,overlayClassName:k,overlayStyle:g(g({},j),H),overlayInnerStyle:L,onVisibleChange:m,onPopupAlign:S,transitionName:on(u.value,"zoom-big-fast",e.transitionName)});return I(f(GN,G,{default:()=>[d.value?gt(B,{class:N}):B],arrowContent:()=>f("span",{class:`${a.value}-arrow-content`},null),overlay:w}))}}}),Vn=Gt(nF),oF=e=>{const{componentCls:t,popoverBg:n,popoverColor:o,width:r,fontWeightStrong:l,popoverPadding:a,boxShadowSecondary:i,colorTextHeading:s,borderRadiusLG:u,zIndexPopup:c,marginXS:d,colorBgElevated:p}=e;return[{[t]:g(g({},Qe(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--antd-arrow-background-color":p,"&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:n,backgroundClip:"padding-box",borderRadius:u,boxShadow:i,padding:a},[`${t}-title`]:{minWidth:r,marginBottom:d,color:s,fontWeight:l},[`${t}-inner-content`]:{color:o}})},uw(e,{colorBg:"var(--antd-arrow-background-color)"}),{[`${t}-pure`]:{position:"relative",maxWidth:"none",[`${t}-content`]:{display:"inline-block"}}}]},rF=e=>{const{componentCls:t}=e;return{[t]:qa.map(n=>{const o=e[`${n}-6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":o,[`${t}-inner`]:{backgroundColor:o},[`${t}-arrow`]:{background:"transparent"}}}})}},lF=e=>{const{componentCls:t,lineWidth:n,lineType:o,colorSplit:r,paddingSM:l,controlHeight:a,fontSize:i,lineHeight:s,padding:u}=e,c=a-Math.round(i*s),d=c/2,p=c/2-n,v=u;return{[t]:{[`${t}-inner`]:{padding:0},[`${t}-title`]:{margin:0,padding:`${d}px ${v}px ${p}px`,borderBottom:`${n}px ${o} ${r}`},[`${t}-inner-content`]:{padding:`${l}px ${v}px`}}}},aF=Je("Popover",e=>{const{colorBgElevated:t,colorText:n,wireframe:o}=e,r=Le(e,{popoverBg:t,popoverColor:n,popoverPadding:12});return[oF(r),rF(r),o&&lF(r),oa(r,"zoom-big")]},e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+30,width:177}}),iF=()=>g(g({},vg()),{content:It(),title:It()}),sF=te({compatConfig:{MODE:3},name:"APopover",inheritAttrs:!1,props:rt(iF(),g(g({},fw()),{trigger:"hover",placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1})),setup(e,t){let{expose:n,slots:o,attrs:r}=t;const l=ee();$t(e.visible===void 0),n({getPopupDomNode:()=>{var p,v;return(v=(p=l.value)===null||p===void 0?void 0:p.getPopupDomNode)===null||v===void 0?void 0:v.call(p)}});const{prefixCls:a,configProvider:i}=Me("popover",e),[s,u]=aF(a),c=P(()=>i.getPrefixCls()),d=()=>{var p,v;const{title:y=Ot((p=o.title)===null||p===void 0?void 0:p.call(o)),content:m=Ot((v=o.content)===null||v===void 0?void 0:v.call(o))}=e,h=!!(Array.isArray(y)?y.length:y),b=!!(Array.isArray(m)?m.length:y);return!h&&!b?null:f(qe,null,[h&&f("div",{class:`${a.value}-title`},[y]),f("div",{class:`${a.value}-inner-content`},[m])])};return()=>{const p=ne(e.overlayClassName,u.value);return s(f(Vn,F(F(F({},tt(e,["title","content"])),r),{},{prefixCls:a.value,ref:l,overlayClassName:p,transitionName:on(c.value,"zoom-big",e.transitionName),"data-popover-inject":!0}),{title:d,default:o.default}))}}}),pw=Gt(sF),cF=()=>({prefixCls:String,maxCount:Number,maxStyle:{type:Object,default:void 0},maxPopoverPlacement:{type:String,default:"top"},maxPopoverTrigger:String,size:{type:[Number,String,Object],default:"default"},shape:{type:String,default:"circle"}}),uF=te({compatConfig:{MODE:3},name:"AAvatarGroup",inheritAttrs:!1,props:cF(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("avatar",e),a=P(()=>`${r.value}-group`),[i,s]=rw(r);return ke(()=>{const u={size:e.size,shape:e.shape};zN(u)}),()=>{const{maxPopoverPlacement:u="top",maxCount:c,maxStyle:d,maxPopoverTrigger:p="hover",shape:v}=e,y={[a.value]:!0,[`${a.value}-rtl`]:l.value==="rtl",[`${o.class}`]:!!o.class,[s.value]:!0},m=At(n,e),h=bt(m).map(($,C)=>gt($,{key:`avatar-key-${C}`})),b=h.length;if(c&&c[f(Cl,{style:d,shape:v},{default:()=>[`+${b-c}`]})]})),i(f("div",F(F({},o),{},{class:y,style:o.style}),[$]))}return i(f("div",F(F({},o),{},{class:y,style:o.style}),[h]))}}}),Af=uF;Cl.Group=Af;Cl.install=function(e){return e.component(Cl.name,Cl),e.component(Af.name,Af),e};function ly(e){let{prefixCls:t,value:n,current:o,offset:r=0}=e,l;return r&&(l={position:"absolute",top:`${r}00%`,left:0}),f("p",{style:l,class:ne(`${t}-only-unit`,{current:o})},[n])}function dF(e,t,n){let o=e,r=0;for(;(o+10)%10!==t;)o+=n,r+=n;return r}const fF=te({compatConfig:{MODE:3},name:"SingleNumber",props:{prefixCls:String,value:String,count:Number},setup(e){const t=P(()=>Number(e.value)),n=P(()=>Math.abs(e.count)),o=vt({prevValue:t.value,prevCount:n.value}),r=()=>{o.prevValue=t.value,o.prevCount=n.value},l=ee();return ue(t,()=>{clearTimeout(l.value),l.value=setTimeout(()=>{r()},1e3)},{flush:"post"}),Bn(()=>{clearTimeout(l.value)}),()=>{let a,i={};const s=t.value;if(o.prevValue===s||Number.isNaN(s)||Number.isNaN(o.prevValue))a=[ly(g(g({},e),{current:!0}))],i={transition:"none"};else{a=[];const u=s+10,c=[];for(let v=s;v<=u;v+=1)c.push(v);const d=c.findIndex(v=>v%10===o.prevValue);a=c.map((v,y)=>{const m=v%10;return ly(g(g({},e),{value:m,offset:y-d,current:y===d}))});const p=o.prevCountr()},[a])}}});var pF=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{var l;const a=g(g({},e),n),{prefixCls:i,count:s,title:u,show:c,component:d="sup",class:p,style:v}=a,y=pF(a,["prefixCls","count","title","show","component","class","style"]),m=g(g({},y),{style:v,"data-show":e.show,class:ne(r.value,p),title:u});let h=s;if(s&&Number(s)%1===0){const $=String(s).split("");h=$.map((C,w)=>f(fF,{prefixCls:r.value,count:Number(s),value:C,key:$.length-w},null))}v&&v.borderColor&&(m.style=g(g({},v),{boxShadow:`0 0 0 1px ${v.borderColor} inset`}));const b=Ot((l=o.default)===null||l===void 0?void 0:l.call(o));return b&&b.length?gt(b,{class:ne(`${r.value}-custom-component`)},!1):f(d,m,{default:()=>[h]})}}}),mF=new Ue("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),hF=new Ue("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),bF=new Ue("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),yF=new Ue("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),$F=new Ue("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),SF=new Ue("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),CF=e=>{const{componentCls:t,iconCls:n,antCls:o,badgeFontHeight:r,badgeShadowSize:l,badgeHeightSm:a,motionDurationSlow:i,badgeStatusSize:s,marginXS:u,badgeRibbonOffset:c}=e,d=`${o}-scroll-number`,p=`${o}-ribbon`,v=`${o}-ribbon-wrapper`,y=Rs(e,(h,b)=>{let{darkColor:$}=b;return{[`&${t} ${t}-color-${h}`]:{background:$,[`&:not(${t}-count)`]:{color:$}}}}),m=Rs(e,(h,b)=>{let{darkColor:$}=b;return{[`&${p}-color-${h}`]:{background:$,color:$}}});return{[t]:g(g(g(g({},Qe(e)),{position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${l}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:a,height:a,fontSize:e.badgeFontSizeSm,lineHeight:`${a}px`,borderRadius:a/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${l}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${i}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${n}-spin`]:{animationName:SF,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:s,height:s,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:l,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:mF,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:u,color:e.colorText,fontSize:e.fontSize}}}),y),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:hF,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:bF,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:yF,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:$F,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${d}-custom-component, ${t}-count`]:{transform:"none"},[`${d}-custom-component, ${d}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[`${d}`]:{overflow:"hidden",[`${d}-only`]:{position:"relative",display:"inline-block",height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${d}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:"translate(-50%, -50%)"}}}),[`${v}`]:{position:"relative"},[`${p}`]:g(g(g(g({},Qe(e)),{position:"absolute",top:u,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${r}px`,whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${p}-text`]:{color:e.colorTextLightSolid},[`${p}-corner`]:{position:"absolute",top:"100%",width:c,height:c,color:"currentcolor",border:`${c/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter}}),m),{[`&${p}-placement-end`]:{insetInlineEnd:-c,borderEndEndRadius:0,[`${p}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${p}-placement-start`]:{insetInlineStart:-c,borderEndStartRadius:0,[`${p}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}})}},vw=Je("Badge",e=>{const{fontSize:t,lineHeight:n,fontSizeSM:o,lineWidth:r,marginXS:l,colorBorderBg:a}=e,i=Math.round(t*n),s=r,u="auto",c=i-2*s,d=e.colorBgContainer,p="normal",v=o,y=e.colorError,m=e.colorErrorHover,h=t,b=o/2,$=o,C=o/2,w=Le(e,{badgeFontHeight:i,badgeShadowSize:s,badgeZIndex:u,badgeHeight:c,badgeTextColor:d,badgeFontWeight:p,badgeFontSize:v,badgeColor:y,badgeColorHover:m,badgeShadowColor:a,badgeHeightSm:h,badgeDotSize:b,badgeFontSizeSm:$,badgeStatusSize:C,badgeProcessingDuration:"1.2s",badgeRibbonOffset:l,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"});return[CF(w)]});var xF=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefix:String,color:{type:String},text:V.any,placement:{type:String,default:"end"}}),Rf=te({compatConfig:{MODE:3},name:"ABadgeRibbon",inheritAttrs:!1,props:wF(),slots:Object,setup(e,t){let{attrs:n,slots:o}=t;const{prefixCls:r,direction:l}=Me("ribbon",e),[a,i]=vw(r),s=P(()=>Kc(e.color,!1)),u=P(()=>[r.value,`${r.value}-placement-${e.placement}`,{[`${r.value}-rtl`]:l.value==="rtl",[`${r.value}-color-${e.color}`]:s.value}]);return()=>{var c,d;const{class:p,style:v}=n,y=xF(n,["class","style"]),m={},h={};return e.color&&!s.value&&(m.background=e.color,h.color=e.color),a(f("div",F({class:`${r.value}-wrapper ${i.value}`},y),[(c=o.default)===null||c===void 0?void 0:c.call(o),f("div",{class:[u.value,p,i.value],style:g(g({},m),v)},[f("span",{class:`${r.value}-text`},[e.text||((d=o.text)===null||d===void 0?void 0:d.call(o))]),f("div",{class:`${r.value}-corner`,style:h},null)])]))}}}),OF=e=>!isNaN(parseFloat(e))&&isFinite(e),Ws=OF,PF=()=>({count:V.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:"default"},color:String,text:V.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String}),fs=te({compatConfig:{MODE:3},name:"ABadge",Ribbon:Rf,inheritAttrs:!1,props:PF(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("badge",e),[a,i]=vw(r),s=P(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),u=P(()=>s.value==="0"||s.value===0),c=P(()=>e.count===null||u.value&&!e.showZero),d=P(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&c.value),p=P(()=>e.dot&&!u.value),v=P(()=>p.value?"":s.value),y=P(()=>(v.value===null||v.value===void 0||v.value===""||u.value&&!e.showZero)&&!p.value),m=ee(e.count),h=ee(v.value),b=ee(p.value);ue([()=>e.count,v,p],()=>{y.value||(m.value=e.count,h.value=v.value,b.value=p.value)},{immediate:!0});const $=P(()=>Kc(e.color,!1)),C=P(()=>({[`${r.value}-status-dot`]:d.value,[`${r.value}-status-${e.status}`]:!!e.status,[`${r.value}-color-${e.color}`]:$.value})),w=P(()=>e.color&&!$.value?{background:e.color,color:e.color}:{}),S=P(()=>({[`${r.value}-dot`]:b.value,[`${r.value}-count`]:!b.value,[`${r.value}-count-sm`]:e.size==="small",[`${r.value}-multiple-words`]:!b.value&&h.value&&h.value.toString().length>1,[`${r.value}-status-${e.status}`]:!!e.status,[`${r.value}-color-${e.color}`]:$.value}));return()=>{var O,x;const{offset:I,title:E,color:M}=e,_=o.style,z=At(n,e,"text"),R=r.value,H=m.value;let T=bt((O=n.default)===null||O===void 0?void 0:O.call(n));T=T.length?T:null;const D=!!(!y.value||n.count),A=(()=>{if(!I)return g({},_);const U={marginTop:Ws(I[1])?`${I[1]}px`:I[1]};return l.value==="rtl"?U.left=`${parseInt(I[0],10)}px`:U.right=`${-parseInt(I[0],10)}px`,g(g({},U),_)})(),B=E!=null?E:typeof H=="string"||typeof H=="number"?H:void 0,N=D||!z?null:f("span",{class:`${R}-status-text`},[z]),k=typeof H=="object"||H===void 0&&n.count?gt(H!=null?H:(x=n.count)===null||x===void 0?void 0:x.call(n),{style:A},!1):null,L=ne(R,{[`${R}-status`]:d.value,[`${R}-not-a-wrapper`]:!T,[`${R}-rtl`]:l.value==="rtl"},o.class,i.value);if(!T&&d.value){const U=A.color;return a(f("span",F(F({},o),{},{class:L,style:A}),[f("span",{class:C.value,style:w.value},null),f("span",{style:{color:U},class:`${R}-status-text`},[z])]))}const j=Yn(T?`${R}-zoom`:"",{appear:!1});let G=g(g({},A),e.numberStyle);return M&&!$.value&&(G=G||{},G.background=M),a(f("span",F(F({},o),{},{class:L}),[T,f(Jt,j,{default:()=>[cn(f(gF,{prefixCls:e.scrollNumberPrefixCls,show:D,class:S.value,count:h.value,title:B,style:G,key:"scrollNumber"},{default:()=>[k]}),[[yn,D]])]}),N]))}}});fs.install=function(e){return e.component(fs.name,fs),e.component(Rf.name,Rf),e};const ll={adjustX:1,adjustY:1},al=[0,0],IF={topLeft:{points:["bl","tl"],overflow:ll,offset:[0,-4],targetOffset:al},topCenter:{points:["bc","tc"],overflow:ll,offset:[0,-4],targetOffset:al},topRight:{points:["br","tr"],overflow:ll,offset:[0,-4],targetOffset:al},bottomLeft:{points:["tl","bl"],overflow:ll,offset:[0,4],targetOffset:al},bottomCenter:{points:["tc","bc"],overflow:ll,offset:[0,4],targetOffset:al},bottomRight:{points:["tr","br"],overflow:ll,offset:[0,4],targetOffset:al}},TF=IF;var EF=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.visible,v=>{v!==void 0&&(l.value=v)});const a=ee();r({triggerRef:a});const i=v=>{e.visible===void 0&&(l.value=!1),o("overlayClick",v)},s=v=>{e.visible===void 0&&(l.value=v),o("visibleChange",v)},u=()=>{var v;const y=(v=n.overlay)===null||v===void 0?void 0:v.call(n),m={prefixCls:`${e.prefixCls}-menu`,onClick:i};return f(qe,{key:ox},[e.arrow&&f("div",{class:`${e.prefixCls}-arrow`},null),gt(y,m,!1)])},c=P(()=>{const{minOverlayWidthMatchTrigger:v=!e.alignPoint}=e;return v}),d=()=>{var v;const y=(v=n.default)===null||v===void 0?void 0:v.call(n);return l.value&&y?gt(y[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):y},p=P(()=>!e.hideAction&&e.trigger.indexOf("contextmenu")!==-1?["click"]:e.hideAction);return()=>{const{prefixCls:v,arrow:y,showAction:m,overlayStyle:h,trigger:b,placement:$,align:C,getPopupContainer:w,transitionName:S,animation:O,overlayClassName:x}=e,I=EF(e,["prefixCls","arrow","showAction","overlayStyle","trigger","placement","align","getPopupContainer","transitionName","animation","overlayClassName"]);return f(di,F(F({},I),{},{prefixCls:v,ref:a,popupClassName:ne(x,{[`${v}-show-arrow`]:y}),popupStyle:h,builtinPlacements:TF,action:b,showAction:m,hideAction:p.value||[],popupPlacement:$,popupAlign:C,popupTransitionName:S,popupAnimation:O,popupVisible:l.value,stretch:c.value?"minWidth":"",onPopupVisibleChange:s,getPopupContainer:w}),{popup:u,default:d})}}}),MF=e=>{const{componentCls:t,colorPrimary:n}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${n})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0}}}}},_F=Je("Wave",e=>[MF(e)]);function DF(e){const t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return t&&t[1]&&t[2]&&t[3]?!(t[1]===t[2]&&t[2]===t[3]):!0}function ed(e){return e&&e!=="#fff"&&e!=="#ffffff"&&e!=="rgb(255, 255, 255)"&&e!=="rgba(255, 255, 255, 1)"&&DF(e)&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&e!=="transparent"}function AF(e){const{borderTopColor:t,borderColor:n,backgroundColor:o}=getComputedStyle(e);return ed(t)?t:ed(n)?n:ed(o)?o:null}function td(e){return Number.isNaN(e)?0:e}const RF=te({props:{target:De(),className:String},setup(e){const t=q(null),[n,o]=pt(null),[r,l]=pt([]),[a,i]=pt(0),[s,u]=pt(0),[c,d]=pt(0),[p,v]=pt(0),[y,m]=pt(!1);function h(){const{target:x}=e,I=getComputedStyle(x);o(AF(x));const E=I.position==="static",{borderLeftWidth:M,borderTopWidth:_}=I;i(E?x.offsetLeft:td(-parseFloat(M))),u(E?x.offsetTop:td(-parseFloat(_))),d(x.offsetWidth),v(x.offsetHeight);const{borderTopLeftRadius:z,borderTopRightRadius:R,borderBottomLeftRadius:H,borderBottomRightRadius:T}=I;l([z,R,T,H].map(D=>td(parseFloat(D))))}let b,$,C;const w=()=>{clearTimeout(C),He.cancel($),b==null||b.disconnect()},S=()=>{var x;const I=(x=t.value)===null||x===void 0?void 0:x.parentElement;I&&(cr(null,I),I.parentElement&&I.parentElement.removeChild(I))};Ve(()=>{w(),C=setTimeout(()=>{S()},5e3);const{target:x}=e;x&&($=He(()=>{h(),m(!0)}),typeof ResizeObserver!="undefined"&&(b=new ResizeObserver(h),b.observe(x)))}),Ze(()=>{w()});const O=x=>{x.propertyName==="opacity"&&S()};return()=>{if(!y.value)return null;const x={left:`${a.value}px`,top:`${s.value}px`,width:`${c.value}px`,height:`${p.value}px`,borderRadius:r.value.map(I=>`${I}px`).join(" ")};return n&&(x["--wave-color"]=n.value),f(Jt,{appear:!0,name:"wave-motion",appearFromClass:"wave-motion-appear",appearActiveClass:"wave-motion-appear",appearToClass:"wave-motion-appear wave-motion-appear-active"},{default:()=>[f("div",{ref:t,class:e.className,style:x,onTransitionend:O},null)]})}}});function BF(e,t){const n=document.createElement("div");return n.style.position="absolute",n.style.left="0px",n.style.top="0px",e==null||e.insertBefore(n,e==null?void 0:e.firstChild),cr(f(RF,{target:e,className:t},null),n),()=>{cr(null,n),n.parentElement&&n.parentElement.removeChild(n)}}function NF(e,t){const n=wn();let o;function r(){var l;const a=sn(n);o==null||o(),!(!((l=t==null?void 0:t.value)===null||l===void 0)&&l.disabled||!a)&&(o=BF(a,e.value))}return Ze(()=>{o==null||o()}),r}const gg=te({compatConfig:{MODE:3},name:"Wave",props:{disabled:Boolean},setup(e,t){let{slots:n}=t;const o=wn(),{prefixCls:r,wave:l}=Me("wave",e),[,a]=_F(r),i=NF(P(()=>ne(r.value,a.value)),l);let s;const u=()=>{sn(o).removeEventListener("click",s,!0)};return Ve(()=>{ue(()=>e.disabled,()=>{u(),ot(()=>{const c=sn(o);c==null||c.removeEventListener("click",s,!0),!(!c||c.nodeType!==1||e.disabled)&&(s=d=>{d.target.tagName==="INPUT"||!Ec(d.target)||!c.getAttribute||c.getAttribute("disabled")||c.disabled||c.className.includes("disabled")||c.className.includes("-leave")||i()},c.addEventListener("click",s,!0))})},{immediate:!0,flush:"post"})}),Ze(()=>{u()}),()=>{var c;return(c=n.default)===null||c===void 0?void 0:c.call(n)[0]}}});function Ks(e){return e==="danger"?{danger:!0}:{type:e}}const FF=()=>({prefixCls:String,type:String,htmlType:{type:String,default:"button"},shape:{type:String},size:{type:String},loading:{type:[Boolean,Object],default:()=>!1},disabled:{type:Boolean,default:void 0},ghost:{type:Boolean,default:void 0},block:{type:Boolean,default:void 0},danger:{type:Boolean,default:void 0},icon:V.any,href:String,target:String,title:String,onClick:Wr(),onMousedown:Wr()}),mw=FF,ay=e=>{e&&(e.style.width="0px",e.style.opacity="0",e.style.transform="scale(0)")},iy=e=>{ot(()=>{e&&(e.style.width=`${e.scrollWidth}px`,e.style.opacity="1",e.style.transform="scale(1)")})},sy=e=>{e&&e.style&&(e.style.width=null,e.style.opacity=null,e.style.transform=null)},kF=te({compatConfig:{MODE:3},name:"LoadingIcon",props:{prefixCls:String,loading:[Boolean,Object],existIcon:Boolean},setup(e){return()=>{const{existIcon:t,prefixCls:n,loading:o}=e;if(t)return f("span",{class:`${n}-loading-icon`},[f(qn,null,null)]);const r=!!o;return f(Jt,{name:`${n}-loading-icon-motion`,onBeforeEnter:ay,onEnter:iy,onAfterEnter:sy,onBeforeLeave:iy,onLeave:l=>{setTimeout(()=>{ay(l)})},onAfterLeave:sy},{default:()=>[r?f("span",{class:`${n}-loading-icon`},[f(qn,null,null)]):null]})}}}),cy=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}}),LF=e=>{const{componentCls:t,fontSize:n,lineWidth:o,colorPrimaryHover:r,colorErrorHover:l}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-o,[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover,\n &:focus,\n &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:n}},cy(`${t}-primary`,r),cy(`${t}-danger`,l)]}},zF=LF;function HF(e,t){return{[`&-item:not(${t}-last-item)`]:{marginBottom:-e.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function jF(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function VF(e){const t=`${e.componentCls}-compact-vertical`;return{[t]:g(g({},HF(e,t)),jF(e.componentCls,t))}}const WF=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:{outline:"none",position:"relative",display:"inline-block",fontWeight:400,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",backgroundColor:"transparent",border:`${e.lineWidth}px ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",lineHeight:e.lineHeight,color:e.colorText,"> span":{display:"inline-block"},[`> ${n} + span, > span + ${n}`]:{marginInlineStart:e.marginXS},"> a":{color:"currentColor"},"&:not(:disabled)":g({},zo(e)),[`&-icon-only${t}-compact-item`]:{flex:"none"},[`&-compact-item${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-item${t}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:"inline-block",width:e.lineWidth,height:`calc(100% + ${e.lineWidth*2}px)`,backgroundColor:e.colorPrimaryHover,content:'""'}}},"&-compact-vertical-item":{[`&${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-vertical-item${t}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:"inline-block",width:`calc(100% + ${e.lineWidth*2}px)`,height:e.lineWidth,backgroundColor:e.colorPrimaryHover,content:'""'}}}}}}},Ho=(e,t)=>({"&:not(:disabled)":{"&:hover":e,"&:active":t}}),KF=e=>({minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}),GF=e=>({borderRadius:e.controlHeight,paddingInlineStart:e.controlHeight/2,paddingInlineEnd:e.controlHeight/2}),Bf=e=>({cursor:"not-allowed",borderColor:e.colorBorder,color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,boxShadow:"none"}),Gs=(e,t,n,o,r,l,a)=>({[`&${e}-background-ghost`]:g(g({color:t||void 0,backgroundColor:"transparent",borderColor:n||void 0,boxShadow:"none"},Ho(g({backgroundColor:"transparent"},l),g({backgroundColor:"transparent"},a))),{"&:disabled":{cursor:"not-allowed",color:o||void 0,borderColor:r||void 0}})}),mg=e=>({"&:disabled":g({},Bf(e))}),hw=e=>g({},mg(e)),Xs=e=>({"&:disabled":{cursor:"not-allowed",color:e.colorTextDisabled}}),bw=e=>g(g(g(g(g({},hw(e)),{backgroundColor:e.colorBgContainer,borderColor:e.colorBorder,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`}),Ho({color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),Gs(e.componentCls,e.colorBgContainer,e.colorBgContainer,e.colorTextDisabled,e.colorBorder)),{[`&${e.componentCls}-dangerous`]:g(g(g({color:e.colorError,borderColor:e.colorError},Ho({color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Gs(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder)),mg(e))}),XF=e=>g(g(g(g(g({},hw(e)),{color:e.colorTextLightSolid,backgroundColor:e.colorPrimary,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`}),Ho({color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryHover},{color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryActive})),Gs(e.componentCls,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),{[`&${e.componentCls}-dangerous`]:g(g(g({backgroundColor:e.colorError,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`},Ho({backgroundColor:e.colorErrorHover},{backgroundColor:e.colorErrorActive})),Gs(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),mg(e))}),UF=e=>g(g({},bw(e)),{borderStyle:"dashed"}),YF=e=>g(g(g({color:e.colorLink},Ho({color:e.colorLinkHover},{color:e.colorLinkActive})),Xs(e)),{[`&${e.componentCls}-dangerous`]:g(g({color:e.colorError},Ho({color:e.colorErrorHover},{color:e.colorErrorActive})),Xs(e))}),qF=e=>g(g(g({},Ho({color:e.colorText,backgroundColor:e.colorBgTextHover},{color:e.colorText,backgroundColor:e.colorBgTextActive})),Xs(e)),{[`&${e.componentCls}-dangerous`]:g(g({color:e.colorError},Xs(e)),Ho({color:e.colorErrorHover,backgroundColor:e.colorErrorBg},{color:e.colorErrorHover,backgroundColor:e.colorErrorBg}))}),QF=e=>g(g({},Bf(e)),{[`&${e.componentCls}:hover`]:g({},Bf(e))}),ZF=e=>{const{componentCls:t}=e;return{[`${t}-default`]:bw(e),[`${t}-primary`]:XF(e),[`${t}-dashed`]:UF(e),[`${t}-link`]:YF(e),[`${t}-text`]:qF(e),[`${t}-disabled`]:QF(e)}},hg=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{componentCls:n,iconCls:o,controlHeight:r,fontSize:l,lineHeight:a,lineWidth:i,borderRadius:s,buttonPaddingHorizontal:u}=e,c=Math.max(0,(r-l*a)/2-i),d=u-i,p=`${n}-icon-only`;return[{[`${n}${t}`]:{fontSize:l,height:r,padding:`${c}px ${d}px`,borderRadius:s,[`&${p}`]:{width:r,paddingInlineStart:0,paddingInlineEnd:0,[`&${n}-round`]:{width:"auto"},"> span":{transform:"scale(1.143)"}},[`&${n}-loading`]:{opacity:e.opacityLoading,cursor:"default"},[`${n}-loading-icon`]:{transition:`width ${e.motionDurationSlow} ${e.motionEaseInOut}, opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`&:not(${p}) ${n}-loading-icon > ${o}`]:{marginInlineEnd:e.marginXS}}},{[`${n}${n}-circle${t}`]:KF(e)},{[`${n}${n}-round${t}`]:GF(e)}]},JF=e=>hg(e),ek=e=>{const t=Le(e,{controlHeight:e.controlHeightSM,padding:e.paddingXS,buttonPaddingHorizontal:8,borderRadius:e.borderRadiusSM});return hg(t,`${e.componentCls}-sm`)},tk=e=>{const t=Le(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG});return hg(t,`${e.componentCls}-lg`)},nk=e=>{const{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}},ok=Je("Button",e=>{const{controlTmpOutline:t,paddingContentHorizontal:n}=e,o=Le(e,{colorOutlineDefault:t,buttonPaddingHorizontal:n});return[WF(o),ek(o),JF(o),tk(o),nk(o),ZF(o),zF(o),ra(e,{focus:!1}),VF(e)]}),rk=()=>({prefixCls:String,size:{type:String}}),yw=eg(),Nf=te({compatConfig:{MODE:3},name:"AButtonGroup",props:rk(),setup(e,t){let{slots:n}=t;const{prefixCls:o,direction:r}=Me("btn-group",e),[,,l]=ea();yw.useProvide(vt({size:P(()=>e.size)}));const a=P(()=>{const{size:i}=e;let s="";switch(i){case"large":s="lg";break;case"small":s="sm";break;case"middle":case void 0:break;default:yt(!i,"Button.Group","Invalid prop `size`.")}return{[`${o.value}`]:!0,[`${o.value}-${s}`]:s,[`${o.value}-rtl`]:r.value==="rtl",[l.value]:!0}});return()=>{var i;return f("div",{class:a.value},[bt((i=n.default)===null||i===void 0?void 0:i.call(n))])}}}),uy=/^[\u4e00-\u9fa5]{2}$/,dy=uy.test.bind(uy);function ji(e){return e==="text"||e==="link"}const Wt=te({compatConfig:{MODE:3},name:"AButton",inheritAttrs:!1,__ANT_BUTTON:!0,props:rt(mw(),{type:"default"}),slots:Object,setup(e,t){let{slots:n,attrs:o,emit:r,expose:l}=t;const{prefixCls:a,autoInsertSpaceInButton:i,direction:s,size:u}=Me("btn",e),[c,d]=ok(a),p=yw.useInject(),v=Cn(),y=P(()=>{var T;return(T=e.disabled)!==null&&T!==void 0?T:v.value}),m=q(null),h=q(void 0);let b=!1;const $=q(!1),C=q(!1),w=P(()=>i.value!==!1),{compactSize:S,compactItemClassnames:O}=pr(a,s),x=P(()=>typeof e.loading=="object"&&e.loading.delay?e.loading.delay||!0:!!e.loading);ue(x,T=>{clearTimeout(h.value),typeof x.value=="number"?h.value=setTimeout(()=>{$.value=T},x.value):$.value=T},{immediate:!0});const I=P(()=>{const{type:T,shape:D="default",ghost:A,block:B,danger:N}=e,k=a.value,L={large:"lg",small:"sm",middle:void 0},j=S.value||(p==null?void 0:p.size)||u.value,G=j&&L[j]||"";return[O.value,{[d.value]:!0,[`${k}`]:!0,[`${k}-${D}`]:D!=="default"&&D,[`${k}-${T}`]:T,[`${k}-${G}`]:G,[`${k}-loading`]:$.value,[`${k}-background-ghost`]:A&&!ji(T),[`${k}-two-chinese-chars`]:C.value&&w.value,[`${k}-block`]:B,[`${k}-dangerous`]:!!N,[`${k}-rtl`]:s.value==="rtl"}]}),E=()=>{const T=m.value;if(!T||i.value===!1)return;const D=T.textContent;b&&dy(D)?C.value||(C.value=!0):C.value&&(C.value=!1)},M=T=>{if($.value||y.value){T.preventDefault();return}r("click",T)},_=T=>{r("mousedown",T)},z=(T,D)=>{const A=D?" ":"";if(T.type===lc){let B=T.children.trim();return dy(B)&&(B=B.split("").join(A)),f("span",null,[B])}return T};return ke(()=>{yt(!(e.ghost&&ji(e.type)),"Button","`link` or `text` button can't be a `ghost` button.")}),Ve(E),Co(E),Ze(()=>{h.value&&clearTimeout(h.value)}),l({focus:()=>{var T;(T=m.value)===null||T===void 0||T.focus()},blur:()=>{var T;(T=m.value)===null||T===void 0||T.blur()}}),()=>{var T,D;const{icon:A=(T=n.icon)===null||T===void 0?void 0:T.call(n)}=e,B=bt((D=n.default)===null||D===void 0?void 0:D.call(n));b=B.length===1&&!A&&!ji(e.type);const{type:N,htmlType:k,href:L,title:j,target:G}=e,U=$.value?"loading":A,K=g(g({},o),{title:j,disabled:y.value,class:[I.value,o.class,{[`${a.value}-icon-only`]:B.length===0&&!!U}],onClick:M,onMousedown:_});y.value||delete K.disabled;const Y=A&&!$.value?A:f(kF,{existIcon:!!A,prefixCls:a.value,loading:!!$.value},null),Q=B.map(Z=>z(Z,b&&w.value));if(L!==void 0)return c(f("a",F(F({},K),{},{href:L,target:G,ref:m}),[Y,Q]));let J=f("button",F(F({},K),{},{ref:m,type:k}),[Y,Q]);if(!ji(N)){const Z=function(){return J}();J=f(gg,{ref:"wave",disabled:!!$.value},{default:()=>[Z]})}return c(J)}}});Wt.Group=Nf;Wt.install=function(e){return e.component(Wt.name,Wt),e.component(Nf.name,Nf),e};const $w=()=>({arrow:Xe([Boolean,Object]),trigger:{type:[Array,String]},menu:De(),overlay:V.any,visible:xe(),open:xe(),disabled:xe(),danger:xe(),autofocus:xe(),align:De(),getPopupContainer:Function,prefixCls:String,transitionName:String,placement:String,overlayClassName:String,overlayStyle:De(),forceRender:xe(),mouseEnterDelay:Number,mouseLeaveDelay:Number,openClassName:String,minOverlayWidthMatchTrigger:xe(),destroyPopupOnHide:xe(),onVisibleChange:{type:Function},"onUpdate:visible":{type:Function},onOpenChange:{type:Function},"onUpdate:open":{type:Function}}),nd=mw(),lk=()=>g(g({},$w()),{type:nd.type,size:String,htmlType:nd.htmlType,href:String,disabled:xe(),prefixCls:String,icon:V.any,title:String,loading:nd.loading,onClick:Wr()});var ak={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"};const ik=ak;function fy(e){for(var t=1;t{const{componentCls:t,antCls:n,paddingXS:o,opacityLoading:r}=e;return{[`${t}-button`]:{whiteSpace:"nowrap",[`&${n}-btn-group > ${n}-btn`]:{[`&-loading, &-loading + ${n}-btn`]:{cursor:"default",pointerEvents:"none",opacity:r},[`&:last-child:not(:first-child):not(${n}-btn-icon-only)`]:{paddingInline:o}}}}},uk=ck,dk=e=>{const{componentCls:t,menuCls:n,colorError:o,colorTextLightSolid:r}=e,l=`${n}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${n} ${l}`]:{[`&${l}-danger:not(${l}-disabled)`]:{color:o,"&:hover":{color:r,backgroundColor:o}}}}}},fk=dk,pk=e=>{const{componentCls:t,menuCls:n,zIndexPopup:o,dropdownArrowDistance:r,dropdownArrowOffset:l,sizePopupArrow:a,antCls:i,iconCls:s,motionDurationMid:u,dropdownPaddingVertical:c,fontSize:d,dropdownEdgeChildPadding:p,colorTextDisabled:v,fontSizeIcon:y,controlPaddingHorizontal:m,colorBgElevated:h,boxShadowPopoverArrow:b}=e;return[{[t]:g(g({},Qe(e)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:o,display:"block","&::before":{position:"absolute",insetBlock:-r+a/2,zIndex:-9999,opacity:1e-4,content:'""'},[`${t}-wrap`]:{position:"relative",[`${i}-btn > ${s}-down`]:{fontSize:y},[`${s}-down::before`]:{transition:`transform ${u}`}},[`${t}-wrap-open`]:{[`${s}-down::before`]:{transform:"rotate(180deg)"}},"\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n ":{display:"none"},[` + &-show-arrow${t}-placement-topLeft, + &-show-arrow${t}-placement-top, + &-show-arrow${t}-placement-topRight + `]:{paddingBottom:r},[` + &-show-arrow${t}-placement-bottomLeft, + &-show-arrow${t}-placement-bottom, + &-show-arrow${t}-placement-bottomRight + `]:{paddingTop:r},[`${t}-arrow`]:g({position:"absolute",zIndex:1,display:"block"},Cv(a,e.borderRadiusXS,e.borderRadiusOuter,h,b)),[` + &-placement-top > ${t}-arrow, + &-placement-topLeft > ${t}-arrow, + &-placement-topRight > ${t}-arrow + `]:{bottom:r,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:l}},[`&-placement-topRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:l}},[` + &-placement-bottom > ${t}-arrow, + &-placement-bottomLeft > ${t}-arrow, + &-placement-bottomRight > ${t}-arrow + `]:{top:r,transform:"translateY(-100%)"},[`&-placement-bottom > ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateY(-100%) translateX(-50%)"},[`&-placement-bottomLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:l}},[`&-placement-bottomRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:l}},[`&${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottomLeft, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottomLeft, + &${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottom, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottom, + &${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottomRight, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:kc},[`&${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-topLeft, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-topLeft, + &${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-top, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-top, + &${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-topRight, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-topRight`]:{animationName:zc},[`&${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottomLeft, + &${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottom, + &${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:Lc},[`&${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-topLeft, + &${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-top, + &${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-topRight`]:{animationName:Hc}})},{[`${t} ${n}`]:{position:"relative",margin:0},[`${n}-submenu-popup`]:{position:"absolute",zIndex:o,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul,li":{listStyle:"none"},ul:{marginInline:"0.3em"}},[`${t}, ${t}-menu-submenu`]:{[n]:g(g({padding:p,listStyleType:"none",backgroundColor:h,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary},zo(e)),{[`${n}-item-group-title`]:{padding:`${c}px ${m}px`,color:e.colorTextDescription,transition:`all ${u}`},[`${n}-item`]:{position:"relative",display:"flex",alignItems:"center",borderRadius:e.borderRadiusSM},[`${n}-item-icon`]:{minWidth:d,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${n}-title-content`]:{flex:"auto","> a":{color:"inherit",transition:`all ${u}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}}},[`${n}-item, ${n}-submenu-title`]:g(g({clear:"both",margin:0,padding:`${c}px ${m}px`,color:e.colorText,fontWeight:"normal",fontSize:d,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${u}`,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},zo(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:v,cursor:"not-allowed","&:hover":{color:v,backgroundColor:h,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${e.marginXXS}px 0`,overflow:"hidden",lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:e.colorTextDescription,fontSize:y,fontStyle:"normal"}}}),[`${n}-item-group-list`]:{margin:`0 ${e.marginXS}px`,padding:0,listStyle:"none"},[`${n}-submenu-title`]:{paddingInlineEnd:m+e.fontSizeSM},[`${n}-submenu-vertical`]:{position:"relative"},[`${n}-submenu${n}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:v,backgroundColor:h,cursor:"not-allowed"}},[`${n}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})}},[$o(e,"slide-up"),$o(e,"slide-down"),zl(e,"move-up"),zl(e,"move-down"),oa(e,"zoom-big")]]},Sw=Je("Dropdown",(e,t)=>{let{rootPrefixCls:n}=t;const{marginXXS:o,sizePopupArrow:r,controlHeight:l,fontSize:a,lineHeight:i,paddingXXS:s,componentCls:u,borderRadiusOuter:c,borderRadiusLG:d}=e,p=(l-a*i)/2,{dropdownArrowOffset:v}=cw({sizePopupArrow:r,contentRadius:d,borderRadiusOuter:c}),y=Le(e,{menuCls:`${u}-menu`,rootPrefixCls:n,dropdownArrowDistance:r/2+o,dropdownArrowOffset:v,dropdownPaddingVertical:p,dropdownEdgeChildPadding:s});return[pk(y),uk(y),fk(y)]},e=>({zIndexPopup:e.zIndexPopupBase+50}));var vk=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{r("update:visible",p),r("visibleChange",p),r("update:open",p),r("openChange",p)},{prefixCls:a,direction:i,getPopupContainer:s}=Me("dropdown",e),u=P(()=>`${a.value}-button`),[c,d]=Sw(a);return()=>{var p,v;const y=g(g({},e),o),{type:m="default",disabled:h,danger:b,loading:$,htmlType:C,class:w="",overlay:S=(p=n.overlay)===null||p===void 0?void 0:p.call(n),trigger:O,align:x,open:I,visible:E,onVisibleChange:M,placement:_=i.value==="rtl"?"bottomLeft":"bottomRight",href:z,title:R,icon:H=((v=n.icon)===null||v===void 0?void 0:v.call(n))||f(yg,null,null),mouseEnterDelay:T,mouseLeaveDelay:D,overlayClassName:A,overlayStyle:B,destroyPopupOnHide:N,onClick:k,"onUpdate:open":L}=y,j=vk(y,["type","disabled","danger","loading","htmlType","class","overlay","trigger","align","open","visible","onVisibleChange","placement","href","title","icon","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","onClick","onUpdate:open"]),G={align:x,disabled:h,trigger:h?[]:O,placement:_,getPopupContainer:s==null?void 0:s.value,onOpenChange:l,mouseEnterDelay:T,mouseLeaveDelay:D,open:I!=null?I:E,overlayClassName:A,overlayStyle:B,destroyPopupOnHide:N},U=f(Wt,{danger:b,type:m,disabled:h,loading:$,onClick:k,htmlType:C,href:z,title:R},{default:n.default}),K=f(Wt,{danger:b,type:m,icon:H},null);return c(f(gk,F(F({},j),{},{class:ne(u.value,w,d.value)}),{default:()=>[n.leftButton?n.leftButton({button:U}):U,f(Fo,G,{default:()=>[n.rightButton?n.rightButton({button:K}):K],overlay:()=>S})]}))}}});var mk={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};const Cw=mk;function py(e){for(var t=1;tKe(xw,void 0),Ow=e=>{var t,n,o;const{prefixCls:r,mode:l,selectable:a,validator:i,onClick:s,expandIcon:u}=ww()||{};We(xw,{prefixCls:P(()=>{var c,d;return(d=(c=e.prefixCls)===null||c===void 0?void 0:c.value)!==null&&d!==void 0?d:r==null?void 0:r.value}),mode:P(()=>{var c,d;return(d=(c=e.mode)===null||c===void 0?void 0:c.value)!==null&&d!==void 0?d:l==null?void 0:l.value}),selectable:P(()=>{var c,d;return(d=(c=e.selectable)===null||c===void 0?void 0:c.value)!==null&&d!==void 0?d:a==null?void 0:a.value}),validator:(t=e.validator)!==null&&t!==void 0?t:i,onClick:(n=e.onClick)!==null&&n!==void 0?n:s,expandIcon:(o=e.expandIcon)!==null&&o!==void 0?o:u==null?void 0:u.value})},Pw=te({compatConfig:{MODE:3},name:"ADropdown",inheritAttrs:!1,props:rt($w(),{mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:"bottomLeft",trigger:"hover"}),slots:Object,setup(e,t){let{slots:n,attrs:o,emit:r}=t;const{prefixCls:l,rootPrefixCls:a,direction:i,getPopupContainer:s}=Me("dropdown",e),[u,c]=Sw(l),d=P(()=>{const{placement:h="",transitionName:b}=e;return b!==void 0?b:h.includes("top")?`${a.value}-slide-down`:`${a.value}-slide-up`});Ow({prefixCls:P(()=>`${l.value}-menu`),expandIcon:P(()=>f("span",{class:`${l.value}-menu-submenu-arrow`},[f(So,{class:`${l.value}-menu-submenu-arrow-icon`},null)])),mode:P(()=>"vertical"),selectable:P(()=>!1),onClick:()=>{},validator:h=>{$t()}});const p=()=>{var h,b,$;const C=e.overlay||((h=n.overlay)===null||h===void 0?void 0:h.call(n)),w=Array.isArray(C)?C[0]:C;if(!w)return null;const S=w.props||{};yt(!S.mode||S.mode==="vertical","Dropdown",`mode="${S.mode}" is not supported for Dropdown's Menu.`);const{selectable:O=!1,expandIcon:x=($=(b=w.children)===null||b===void 0?void 0:b.expandIcon)===null||$===void 0?void 0:$.call(b)}=S,I=typeof x!="undefined"&&Rt(x)?x:f("span",{class:`${l.value}-menu-submenu-arrow`},[f(So,{class:`${l.value}-menu-submenu-arrow-icon`},null)]);return Rt(w)?gt(w,{mode:"vertical",selectable:O,expandIcon:()=>I}):w},v=P(()=>{const h=e.placement;if(!h)return i.value==="rtl"?"bottomRight":"bottomLeft";if(h.includes("Center")){const b=h.slice(0,h.indexOf("Center"));return yt(!h.includes("Center"),"Dropdown",`You are using '${h}' placement in Dropdown, which is deprecated. Try to use '${b}' instead.`),b}return h}),y=P(()=>typeof e.visible=="boolean"?e.visible:e.open),m=h=>{r("update:visible",h),r("visibleChange",h),r("update:open",h),r("openChange",h)};return()=>{var h,b;const{arrow:$,trigger:C,disabled:w,overlayClassName:S}=e,O=(h=n.default)===null||h===void 0?void 0:h.call(n)[0],x=gt(O,g({class:ne((b=O==null?void 0:O.props)===null||b===void 0?void 0:b.class,{[`${l.value}-rtl`]:i.value==="rtl"},`${l.value}-trigger`)},w?{disabled:w}:{})),I=ne(S,c.value,{[`${l.value}-rtl`]:i.value==="rtl"}),E=w?[]:C;let M;E&&E.includes("contextmenu")&&(M=!0);const _=iw({arrowPointAtCenter:typeof $=="object"&&$.pointAtCenter,autoAdjustOverflow:!0}),z=tt(g(g(g({},e),o),{visible:y.value,builtinPlacements:_,overlayClassName:I,arrow:!!$,alignPoint:M,prefixCls:l.value,getPopupContainer:s==null?void 0:s.value,transitionName:d.value,trigger:E,onVisibleChange:m,placement:v.value}),["overlay","onUpdate:visible"]);return u(f(gw,z,{default:()=>[x],overlay:p}))}}});Pw.Button=Us;const Fo=Pw;var bk=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,href:String,separator:V.any,dropdownProps:De(),overlay:V.any,onClick:Wr()}),Ys=te({compatConfig:{MODE:3},name:"ABreadcrumbItem",inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:yk(),slots:Object,setup(e,t){let{slots:n,attrs:o,emit:r}=t;const{prefixCls:l}=Me("breadcrumb",e),a=(s,u)=>{const c=At(n,e,"overlay");return c?f(Fo,F(F({},e.dropdownProps),{},{overlay:c,placement:"bottom"}),{default:()=>[f("span",{class:`${u}-overlay-link`},[s,f(vi,null,null)])]}):s},i=s=>{r("click",s)};return()=>{var s;const u=(s=At(n,e,"separator"))!==null&&s!==void 0?s:"/",c=At(n,e),{class:d,style:p}=o,v=bk(o,["class","style"]);let y;return e.href!==void 0?y=f("a",F({class:`${l.value}-link`,onClick:i},v),[c]):y=f("span",F({class:`${l.value}-link`,onClick:i},v),[c]),y=a(y,l.value),c!=null?f("li",{class:d,style:p},[y,u&&f("span",{class:`${l.value}-separator`},[u])]):null}}});function $k(e,t,n,o){let r=n?n.call(o,e,t):void 0;if(r!==void 0)return!!r;if(e===t)return!0;if(typeof e!="object"||!e||typeof t!="object"||!t)return!1;const l=Object.keys(e),a=Object.keys(t);if(l.length!==a.length)return!1;const i=Object.prototype.hasOwnProperty.bind(t);for(let s=0;s{We(Iw,e)},Xo=()=>Ke(Iw),Ew=Symbol("ForceRenderKey"),Sk=e=>{We(Ew,e)},Mw=()=>Ke(Ew,!1),_w=Symbol("menuFirstLevelContextKey"),Dw=e=>{We(_w,e)},Ck=()=>Ke(_w,!0),qs=te({compatConfig:{MODE:3},name:"MenuContextProvider",inheritAttrs:!1,props:{mode:{type:String,default:void 0},overflowDisabled:{type:Boolean,default:void 0}},setup(e,t){let{slots:n}=t;const o=Xo(),r=g({},o);return e.mode!==void 0&&(r.mode=Ne(e,"mode")),e.overflowDisabled!==void 0&&(r.overflowDisabled=Ne(e,"overflowDisabled")),Tw(r),()=>{var l;return(l=n.default)===null||l===void 0?void 0:l.call(n)}}}),xk=Tw,Aw=Symbol("siderCollapsed"),Rw=Symbol("siderHookProvider"),Vi="$$__vc-menu-more__key",Bw=Symbol("KeyPathContext"),Sg=()=>Ke(Bw,{parentEventKeys:P(()=>[]),parentKeys:P(()=>[]),parentInfo:{}}),wk=(e,t,n)=>{const{parentEventKeys:o,parentKeys:r}=Sg(),l=P(()=>[...o.value,e]),a=P(()=>[...r.value,t]);return We(Bw,{parentEventKeys:l,parentKeys:a,parentInfo:n}),a},Nw=Symbol("measure"),vy=te({compatConfig:{MODE:3},setup(e,t){let{slots:n}=t;return We(Nw,!0),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),Cg=()=>Ke(Nw,!1),Ok=wk;function Fw(e){const{mode:t,rtl:n,inlineIndent:o}=Xo();return P(()=>t.value!=="inline"?null:n.value?{paddingRight:`${e.value*o.value}px`}:{paddingLeft:`${e.value*o.value}px`})}let Pk=0;const Ik=()=>({id:String,role:String,disabled:Boolean,danger:Boolean,title:{type:[String,Boolean],default:void 0},icon:V.any,onMouseenter:Function,onMouseleave:Function,onClick:Function,onKeydown:Function,onFocus:Function,originItemValue:De()}),jl=te({compatConfig:{MODE:3},name:"AMenuItem",inheritAttrs:!1,props:Ik(),slots:Object,setup(e,t){let{slots:n,emit:o,attrs:r}=t;const l=wn(),a=Cg(),i=typeof l.vnode.key=="symbol"?String(l.vnode.key):l.vnode.key;yt(typeof l.vnode.key!="symbol","MenuItem",`MenuItem \`:key="${String(i)}"\` not support Symbol type`);const s=`menu_item_${++Pk}_$$_${i}`,{parentEventKeys:u,parentKeys:c}=Sg(),{prefixCls:d,activeKeys:p,disabled:v,changeActiveKeys:y,rtl:m,inlineCollapsed:h,siderCollapsed:b,onItemClick:$,selectedKeys:C,registerMenuInfo:w,unRegisterMenuInfo:S}=Xo(),O=Ck(),x=q(!1),I=P(()=>[...c.value,i]);w(s,{eventKey:s,key:i,parentEventKeys:u,parentKeys:c,isLeaf:!0}),Ze(()=>{S(s)}),ue(p,()=>{x.value=!!p.value.find(L=>L===i)},{immediate:!0});const M=P(()=>v.value||e.disabled),_=P(()=>C.value.includes(i)),z=P(()=>{const L=`${d.value}-item`;return{[`${L}`]:!0,[`${L}-danger`]:e.danger,[`${L}-active`]:x.value,[`${L}-selected`]:_.value,[`${L}-disabled`]:M.value}}),R=L=>({key:i,eventKey:s,keyPath:I.value,eventKeyPath:[...u.value,s],domEvent:L,item:g(g({},e),r)}),H=L=>{if(M.value)return;const j=R(L);o("click",L),$(j)},T=L=>{M.value||(y(I.value),o("mouseenter",L))},D=L=>{M.value||(y([]),o("mouseleave",L))},A=L=>{if(o("keydown",L),L.which===Se.ENTER){const j=R(L);o("click",L),$(j)}},B=L=>{y(I.value),o("focus",L)},N=(L,j)=>{const G=f("span",{class:`${d.value}-title-content`},[j]);return(!L||Rt(j)&&j.type==="span")&&j&&h.value&&O&&typeof j=="string"?f("div",{class:`${d.value}-inline-collapsed-noicon`},[j.charAt(0)]):G},k=Fw(P(()=>I.value.length));return()=>{var L,j,G,U,K;if(a)return null;const Y=(L=e.title)!==null&&L!==void 0?L:(j=n.title)===null||j===void 0?void 0:j.call(n),Q=bt((G=n.default)===null||G===void 0?void 0:G.call(n)),J=Q.length;let Z=Y;typeof Y=="undefined"?Z=O&&J?Q:"":Y===!1&&(Z="");const W={title:Z};!b.value&&!h.value&&(W.title=null,W.open=!1);const X={};e.role==="option"&&(X["aria-selected"]=_.value);const re=(U=e.icon)!==null&&U!==void 0?U:(K=n.icon)===null||K===void 0?void 0:K.call(n,e);return f(Vn,F(F({},W),{},{placement:m.value?"left":"right",overlayClassName:`${d.value}-inline-collapsed-tooltip`}),{default:()=>[f(Sl.Item,F(F(F({component:"li"},r),{},{id:e.id,style:g(g({},r.style||{}),k.value),class:[z.value,{[`${r.class}`]:!!r.class,[`${d.value}-item-only-child`]:(re?J+1:J)===1}],role:e.role||"menuitem",tabindex:e.disabled?null:-1,"data-menu-id":i,"aria-disabled":e.disabled},X),{},{onMouseenter:T,onMouseleave:D,onClick:H,onKeydown:A,onFocus:B,title:typeof Y=="string"?Y:void 0}),{default:()=>[gt(typeof re=="function"?re(e.originItemValue):re,{class:`${d.value}-item-icon`},!1),N(re,Q)]})]})}}}),rr={adjustX:1,adjustY:1},Tk={topLeft:{points:["bl","tl"],overflow:rr,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:rr,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:rr,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:rr,offset:[4,0]}},Ek={topLeft:{points:["bl","tl"],overflow:rr,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:rr,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:rr,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:rr,offset:[4,0]}},Mk={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},gy=te({compatConfig:{MODE:3},name:"PopupTrigger",inheritAttrs:!1,props:{prefixCls:String,mode:String,visible:Boolean,popupClassName:String,popupOffset:Array,disabled:Boolean,onVisibleChange:Function},slots:Object,emits:["visibleChange"],setup(e,t){let{slots:n,emit:o}=t;const r=q(!1),{getPopupContainer:l,rtl:a,subMenuOpenDelay:i,subMenuCloseDelay:s,builtinPlacements:u,triggerSubMenuAction:c,forceSubMenuRender:d,motion:p,defaultMotions:v,rootClassName:y}=Xo(),m=Mw(),h=P(()=>a.value?g(g({},Ek),u.value):g(g({},Tk),u.value)),b=P(()=>Mk[e.mode]),$=q();ue(()=>e.visible,S=>{He.cancel($.value),$.value=He(()=>{r.value=S})},{immediate:!0}),Ze(()=>{He.cancel($.value)});const C=S=>{o("visibleChange",S)},w=P(()=>{var S,O;const x=p.value||((S=v.value)===null||S===void 0?void 0:S[e.mode])||((O=v.value)===null||O===void 0?void 0:O.other),I=typeof x=="function"?x():x;return I?Yn(I.name,{css:!0}):void 0});return()=>{const{prefixCls:S,popupClassName:O,mode:x,popupOffset:I,disabled:E}=e;return f(di,{prefixCls:S,popupClassName:ne(`${S}-popup`,{[`${S}-rtl`]:a.value},O,y.value),stretch:x==="horizontal"?"minWidth":null,getPopupContainer:l.value,builtinPlacements:h.value,popupPlacement:b.value,popupVisible:r.value,popupAlign:I&&{offset:I},action:E?[]:[c.value],mouseEnterDelay:i.value,mouseLeaveDelay:s.value,onPopupVisibleChange:C,forceRender:m||d.value,popupAnimation:w.value},{popup:n.popup,default:n.default})}}}),kw=(e,t)=>{let{slots:n,attrs:o}=t;var r;const{prefixCls:l,mode:a}=Xo();return f("ul",F(F({},o),{},{class:ne(l.value,`${l.value}-sub`,`${l.value}-${a.value==="inline"?"inline":"vertical"}`),"data-menu-list":!0}),[(r=n.default)===null||r===void 0?void 0:r.call(n)])};kw.displayName="SubMenuList";const Lw=kw,_k=te({compatConfig:{MODE:3},name:"InlineSubMenuList",inheritAttrs:!1,props:{id:String,open:Boolean,keyPath:Array},setup(e,t){let{slots:n}=t;const o=P(()=>"inline"),{motion:r,mode:l,defaultMotions:a}=Xo(),i=P(()=>l.value===o.value),s=ee(!i.value),u=P(()=>i.value?e.open:!1);ue(l,()=>{i.value&&(s.value=!1)},{flush:"post"});const c=P(()=>{var d,p;const v=r.value||((d=a.value)===null||d===void 0?void 0:d[o.value])||((p=a.value)===null||p===void 0?void 0:p.other),y=typeof v=="function"?v():v;return g(g({},y),{appear:e.keyPath.length<=1})});return()=>{var d;return s.value?null:f(qs,{mode:o.value},{default:()=>[f(Jt,c.value,{default:()=>[cn(f(Lw,{id:e.id},{default:()=>[(d=n.default)===null||d===void 0?void 0:d.call(n)]}),[[yn,u.value]])]})]})}}});let my=0;const Dk=()=>({icon:V.any,title:V.any,disabled:Boolean,level:Number,popupClassName:String,popupOffset:Array,internalPopupClose:Boolean,eventKey:String,expandIcon:Function,theme:String,onMouseenter:Function,onMouseleave:Function,onTitleClick:Function,originItemValue:De()}),Vl=te({compatConfig:{MODE:3},name:"ASubMenu",inheritAttrs:!1,props:Dk(),slots:Object,setup(e,t){let{slots:n,attrs:o,emit:r}=t;var l,a;Dw(!1);const i=Cg(),s=wn(),u=typeof s.vnode.key=="symbol"?String(s.vnode.key):s.vnode.key;yt(typeof s.vnode.key!="symbol","SubMenu",`SubMenu \`:key="${String(u)}"\` not support Symbol type`);const c=sf(u)?u:`sub_menu_${++my}_$$_not_set_key`,d=(l=e.eventKey)!==null&&l!==void 0?l:sf(u)?`sub_menu_${++my}_$$_${u}`:c,{parentEventKeys:p,parentInfo:v,parentKeys:y}=Sg(),m=P(()=>[...y.value,c]),h=q([]),b={eventKey:d,key:c,parentEventKeys:p,childrenEventKeys:h,parentKeys:y};(a=v.childrenEventKeys)===null||a===void 0||a.value.push(d),Ze(()=>{var se;v.childrenEventKeys&&(v.childrenEventKeys.value=(se=v.childrenEventKeys)===null||se===void 0?void 0:se.value.filter(be=>be!=d))}),Ok(d,c,b);const{prefixCls:$,activeKeys:C,disabled:w,changeActiveKeys:S,mode:O,inlineCollapsed:x,openKeys:I,overflowDisabled:E,onOpenChange:M,registerMenuInfo:_,unRegisterMenuInfo:z,selectedSubMenuKeys:R,expandIcon:H,theme:T}=Xo(),D=u!=null,A=!i&&(Mw()||!D);Sk(A),(i&&D||!i&&!D||A)&&(_(d,b),Ze(()=>{z(d)}));const B=P(()=>`${$.value}-submenu`),N=P(()=>w.value||e.disabled),k=q(),L=q(),j=P(()=>I.value.includes(c)),G=P(()=>!E.value&&j.value),U=P(()=>R.value.includes(c)),K=q(!1);ue(C,()=>{K.value=!!C.value.find(se=>se===c)},{immediate:!0});const Y=se=>{N.value||(r("titleClick",se,c),O.value==="inline"&&M(c,!j.value))},Q=se=>{N.value||(S(m.value),r("mouseenter",se))},J=se=>{N.value||(S([]),r("mouseleave",se))},Z=Fw(P(()=>m.value.length)),W=se=>{O.value!=="inline"&&M(c,se)},X=()=>{S(m.value)},re=d&&`${d}-popup`,ae=P(()=>ne($.value,`${$.value}-${e.theme||T.value}`,e.popupClassName)),pe=(se,be)=>{if(!be)return x.value&&!y.value.length&&se&&typeof se=="string"?f("div",{class:`${$.value}-inline-collapsed-noicon`},[se.charAt(0)]):f("span",{class:`${$.value}-title-content`},[se]);const we=Rt(se)&&se.type==="span";return f(qe,null,[gt(typeof be=="function"?be(e.originItemValue):be,{class:`${$.value}-item-icon`},!1),we?se:f("span",{class:`${$.value}-title-content`},[se])])},ye=P(()=>O.value!=="inline"&&m.value.length>1?"vertical":O.value),de=P(()=>O.value==="horizontal"?"vertical":O.value),me=P(()=>ye.value==="horizontal"?"vertical":ye.value),ie=()=>{var se,be;const we=B.value,ve=(se=e.icon)!==null&&se!==void 0?se:(be=n.icon)===null||be===void 0?void 0:be.call(n,e),Ce=e.expandIcon||n.expandIcon||H.value,Te=pe(At(n,e,"title"),ve);return f("div",{style:Z.value,class:`${we}-title`,tabindex:N.value?null:-1,ref:k,title:typeof Te=="string"?Te:null,"data-menu-id":c,"aria-expanded":G.value,"aria-haspopup":!0,"aria-controls":re,"aria-disabled":N.value,onClick:Y,onFocus:X},[Te,O.value!=="horizontal"&&Ce?Ce(g(g({},e),{isOpen:G.value})):f("i",{class:`${we}-arrow`},null)])};return()=>{var se;if(i)return D?(se=n.default)===null||se===void 0?void 0:se.call(n):null;const be=B.value;let we=()=>null;if(!E.value&&O.value!=="inline"){const ve=O.value==="horizontal"?[0,8]:[10,0];we=()=>f(gy,{mode:ye.value,prefixCls:be,visible:!e.internalPopupClose&&G.value,popupClassName:ae.value,popupOffset:e.popupOffset||ve,disabled:N.value,onVisibleChange:W},{default:()=>[ie()],popup:()=>f(qs,{mode:me.value},{default:()=>[f(Lw,{id:re,ref:L},{default:n.default})]})})}else we=()=>f(gy,null,{default:ie});return f(qs,{mode:de.value},{default:()=>[f(Sl.Item,F(F({component:"li"},o),{},{role:"none",class:ne(be,`${be}-${O.value}`,o.class,{[`${be}-open`]:G.value,[`${be}-active`]:K.value,[`${be}-selected`]:U.value,[`${be}-disabled`]:N.value}),onMouseenter:Q,onMouseleave:J,"data-submenu-id":c}),{default:()=>f(qe,null,[we(),!E.value&&f(_k,{id:re,open:G.value,keyPath:m.value},{default:n.default})])})]})}}});function zw(e,t){return e.classList?e.classList.contains(t):` ${e.className} `.indexOf(` ${t} `)>-1}function Ff(e,t){e.classList?e.classList.add(t):zw(e,t)||(e.className=`${e.className} ${t}`)}function kf(e,t){if(e.classList)e.classList.remove(t);else if(zw(e,t)){const n=e.className;e.className=` ${n} `.replace(` ${t} `," ")}}const Ak=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"ant-motion-collapse",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return{name:e,appear:t,css:!0,onBeforeEnter:n=>{n.style.height="0px",n.style.opacity="0",Ff(n,e)},onEnter:n=>{ot(()=>{n.style.height=`${n.scrollHeight}px`,n.style.opacity="1"})},onAfterEnter:n=>{n&&(kf(n,e),n.style.height=null,n.style.opacity=null)},onBeforeLeave:n=>{Ff(n,e),n.style.height=`${n.offsetHeight}px`,n.style.opacity=null},onLeave:n=>{setTimeout(()=>{n.style.height="0px",n.style.opacity="0"})},onAfterLeave:n=>{n&&(kf(n,e),n.style&&(n.style.height=null,n.style.opacity=null))}}},Gc=Ak,Rk=()=>({title:V.any,originItemValue:De()}),Qs=te({compatConfig:{MODE:3},name:"AMenuItemGroup",inheritAttrs:!1,props:Rk(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r}=Xo(),l=P(()=>`${r.value}-item-group`),a=Cg();return()=>{var i,s;return a?(i=n.default)===null||i===void 0?void 0:i.call(n):f("li",F(F({},o),{},{onClick:u=>u.stopPropagation(),class:l.value}),[f("div",{title:typeof e.title=="string"?e.title:void 0,class:`${l.value}-title`},[At(n,e,"title")]),f("ul",{class:`${l.value}-list`},[(s=n.default)===null||s===void 0?void 0:s.call(n)])])}}}),Bk=()=>({prefixCls:String,dashed:Boolean}),Zs=te({compatConfig:{MODE:3},name:"AMenuDivider",props:Bk(),setup(e){const{prefixCls:t}=Xo(),n=P(()=>({[`${t.value}-item-divider`]:!0,[`${t.value}-item-divider-dashed`]:!!e.dashed}));return()=>f("li",{class:n.value},null)}});var Nk=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{if(o&&typeof o=="object"){const l=o,{label:a,children:i,key:s,type:u}=l,c=Nk(l,["label","children","key","type"]),d=s!=null?s:`tmp-${r}`,p=n?n.parentKeys.slice():[],v=[],y={eventKey:d,key:d,parentEventKeys:ee(p),parentKeys:ee(p),childrenEventKeys:ee(v),isLeaf:!1};if(i||u==="group"){if(u==="group"){const h=Lf(i,t,n);return f(Qs,F(F({key:d},c),{},{title:a,originItemValue:o}),{default:()=>[h]})}t.set(d,y),n&&n.childrenEventKeys.push(d);const m=Lf(i,t,{childrenEventKeys:v,parentKeys:[].concat(p,d)});return f(Vl,F(F({key:d},c),{},{title:a,originItemValue:o}),{default:()=>[m]})}return u==="divider"?f(Zs,F({key:d},c),null):(y.isLeaf=!0,t.set(d,y),f(jl,F(F({key:d},c),{},{originItemValue:o}),{default:()=>[a]}))}return null}).filter(o=>o)}function Fk(e){const t=q([]),n=q(!1),o=q(new Map);return ue(()=>e.items,()=>{const r=new Map;n.value=!1,e.items?(n.value=!0,t.value=Lf(e.items,r)):t.value=void 0,o.value=r},{immediate:!0,deep:!0}),{itemsNodes:t,store:o,hasItmes:n}}const kk=e=>{const{componentCls:t,motionDurationSlow:n,menuHorizontalHeight:o,colorSplit:r,lineWidth:l,lineType:a,menuItemPaddingInline:i}=e;return{[`${t}-horizontal`]:{lineHeight:`${o}px`,border:0,borderBottom:`${l}px ${a} ${r}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${t}-item, ${t}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:i},[`> ${t}-item:hover, + > ${t}-item-active, + > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${t}-item, ${t}-submenu-title`]:{transition:[`border-color ${n}`,`background ${n}`].join(",")},[`${t}-submenu-arrow`]:{display:"none"}}}},Lk=kk,zk=e=>{let{componentCls:t,menuArrowOffset:n}=e;return{[`${t}-rtl`]:{direction:"rtl"},[`${t}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${t}-rtl${t}-vertical, + ${t}-submenu-rtl ${t}-vertical`]:{[`${t}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(-${n})`},"&::after":{transform:`rotate(45deg) translateY(${n})`}}}}},Hk=zk,hy=e=>g({},Lo(e)),jk=(e,t)=>{const{componentCls:n,colorItemText:o,colorItemTextSelected:r,colorGroupTitle:l,colorItemBg:a,colorSubItemBg:i,colorItemBgSelected:s,colorActiveBarHeight:u,colorActiveBarWidth:c,colorActiveBarBorderSize:d,motionDurationSlow:p,motionEaseInOut:v,motionEaseOut:y,menuItemPaddingInline:m,motionDurationMid:h,colorItemTextHover:b,lineType:$,colorSplit:C,colorItemTextDisabled:w,colorDangerItemText:S,colorDangerItemTextHover:O,colorDangerItemTextSelected:x,colorDangerItemBgActive:I,colorDangerItemBgSelected:E,colorItemBgHover:M,menuSubMenuBg:_,colorItemTextSelectedHorizontal:z,colorItemBgSelectedHorizontal:R}=e;return{[`${n}-${t}`]:{color:o,background:a,[`&${n}-root:focus-visible`]:g({},hy(e)),[`${n}-item-group-title`]:{color:l},[`${n}-submenu-selected`]:{[`> ${n}-submenu-title`]:{color:r}},[`${n}-item-disabled, ${n}-submenu-disabled`]:{color:`${w} !important`},[`${n}-item:hover, ${n}-submenu-title:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:b}},[`&:not(${n}-horizontal)`]:{[`${n}-item:not(${n}-item-selected)`]:{"&:hover":{backgroundColor:M},"&:active":{backgroundColor:s}},[`${n}-submenu-title`]:{"&:hover":{backgroundColor:M},"&:active":{backgroundColor:s}}},[`${n}-item-danger`]:{color:S,[`&${n}-item:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:O}},[`&${n}-item:active`]:{background:I}},[`${n}-item a`]:{"&, &:hover":{color:"inherit"}},[`${n}-item-selected`]:{color:r,[`&${n}-item-danger`]:{color:x},"a, a:hover":{color:"inherit"}},[`& ${n}-item-selected`]:{backgroundColor:s,[`&${n}-item-danger`]:{backgroundColor:E}},[`${n}-item, ${n}-submenu-title`]:{[`&:not(${n}-item-disabled):focus-visible`]:g({},hy(e))},[`&${n}-submenu > ${n}`]:{backgroundColor:_},[`&${n}-popup > ${n}`]:{backgroundColor:a},[`&${n}-horizontal`]:g(g({},t==="dark"?{borderBottom:0}:{}),{[`> ${n}-item, > ${n}-submenu`]:{top:d,marginTop:-d,marginBottom:0,borderRadius:0,"&::after":{position:"absolute",insetInline:m,bottom:0,borderBottom:`${u}px solid transparent`,transition:`border-color ${p} ${v}`,content:'""'},"&:hover, &-active, &-open":{"&::after":{borderBottomWidth:u,borderBottomColor:z}},"&-selected":{color:z,backgroundColor:R,"&::after":{borderBottomWidth:u,borderBottomColor:z}}}}),[`&${n}-root`]:{[`&${n}-inline, &${n}-vertical`]:{borderInlineEnd:`${d}px ${$} ${C}`}},[`&${n}-inline`]:{[`${n}-sub${n}-inline`]:{background:i},[`${n}-item, ${n}-submenu-title`]:d&&c?{width:`calc(100% + ${d}px)`}:{},[`${n}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${c}px solid ${r}`,transform:"scaleY(0.0001)",opacity:0,transition:[`transform ${h} ${y}`,`opacity ${h} ${y}`].join(","),content:'""'},[`&${n}-item-danger`]:{"&::after":{borderInlineEndColor:x}}},[`${n}-selected, ${n}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:[`transform ${h} ${v}`,`opacity ${h} ${v}`].join(",")}}}}}},by=jk,yy=e=>{const{componentCls:t,menuItemHeight:n,itemMarginInline:o,padding:r,menuArrowSize:l,marginXS:a,marginXXS:i}=e,s=r+l+a;return{[`${t}-item`]:{position:"relative"},[`${t}-item, ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`,paddingInline:r,overflow:"hidden",textOverflow:"ellipsis",marginInline:o,marginBlock:i,width:`calc(100% - ${o*2}px)`},[`${t}-submenu`]:{paddingBottom:.02},[`> ${t}-item, + > ${t}-submenu > ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`},[`${t}-item-group-list ${t}-submenu-title, + ${t}-submenu-title`]:{paddingInlineEnd:s}}},Vk=e=>{const{componentCls:t,iconCls:n,menuItemHeight:o,colorTextLightSolid:r,dropdownWidth:l,controlHeightLG:a,motionDurationMid:i,motionEaseOut:s,paddingXL:u,fontSizeSM:c,fontSizeLG:d,motionDurationSlow:p,paddingXS:v,boxShadowSecondary:y}=e,m={height:o,lineHeight:`${o}px`,listStylePosition:"inside",listStyleType:"disc"};return[{[t]:{"&-inline, &-vertical":g({[`&${t}-root`]:{boxShadow:"none"}},yy(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:g(g({},yy(e)),{boxShadow:y})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:l,maxHeight:`calc(100vh - ${a*2.5}px)`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${t}-inline`]:{width:"100%",[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:"flex",alignItems:"center",transition:[`border-color ${p}`,`background ${p}`,`padding ${i} ${s}`].join(","),[`> ${t}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${t}-submenu > ${t}-submenu-title`]:m,[`& ${t}-item-group-title`]:{paddingInlineStart:u}},[`${t}-item`]:m}},{[`${t}-inline-collapsed`]:{width:o*2,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:d,textAlign:"center"}}},[`> ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title, + > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${c}px)`,textOverflow:"clip",[` + ${t}-submenu-arrow, + ${t}-submenu-expand-icon + `]:{opacity:0},[`${t}-item-icon, ${n}`]:{margin:0,fontSize:d,lineHeight:`${o}px`,"+ span":{display:"inline-block",opacity:0}}},[`${t}-item-icon, ${n}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${t}-item-icon, ${n}`]:{display:"none"},"a, a:hover":{color:r}},[`${t}-item-group-title`]:g(g({},Xt),{paddingInline:v})}}]},Wk=Vk,$y=e=>{const{componentCls:t,fontSize:n,motionDurationSlow:o,motionDurationMid:r,motionEaseInOut:l,motionEaseOut:a,iconCls:i,controlHeightSM:s}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:[`border-color ${o}`,`background ${o}`,`padding ${o} ${l}`].join(","),[`${t}-item-icon, ${i}`]:{minWidth:n,fontSize:n,transition:[`font-size ${r} ${a}`,`margin ${o} ${l}`,`color ${o}`].join(","),"+ span":{marginInlineStart:s-n,opacity:1,transition:[`opacity ${o} ${l}`,`margin ${o}`,`color ${o}`].join(",")}},[`${t}-item-icon`]:g({},Jl()),[`&${t}-item-only-child`]:{[`> ${i}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important"},[`> ${t}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},Sy=e=>{const{componentCls:t,motionDurationSlow:n,motionEaseInOut:o,borderRadius:r,menuArrowSize:l,menuArrowOffset:a}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:"absolute",top:"50%",insetInlineEnd:e.margin,width:l,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${n} ${o}, opacity ${n}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:l*.6,height:l*.15,backgroundColor:"currentcolor",borderRadius:r,transition:[`background ${n} ${o}`,`transform ${n} ${o}`,`top ${n} ${o}`,`color ${n} ${o}`].join(","),content:'""'},"&::before":{transform:`rotate(45deg) translateY(-${a})`},"&::after":{transform:`rotate(-45deg) translateY(${a})`}}}}},Kk=e=>{const{antCls:t,componentCls:n,fontSize:o,motionDurationSlow:r,motionDurationMid:l,motionEaseInOut:a,lineHeight:i,paddingXS:s,padding:u,colorSplit:c,lineWidth:d,zIndexPopup:p,borderRadiusLG:v,radiusSubMenuItem:y,menuArrowSize:m,menuArrowOffset:h,lineType:b,menuPanelMaskInset:$}=e;return[{"":{[`${n}`]:g(g({},so()),{"&-hidden":{display:"none"}})},[`${n}-submenu-hidden`]:{display:"none"}},{[n]:g(g(g(g(g(g(g({},Qe(e)),so()),{marginBottom:0,paddingInlineStart:0,fontSize:o,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${r} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:"none"},"&-overflow":{display:"flex",[`${n}-item`]:{flex:"none"}},[`${n}-item, ${n}-submenu, ${n}-submenu-title`]:{borderRadius:e.radiusItem},[`${n}-item-group-title`]:{padding:`${s}px ${u}px`,fontSize:o,lineHeight:i,transition:`all ${r}`},[`&-horizontal ${n}-submenu`]:{transition:[`border-color ${r} ${a}`,`background ${r} ${a}`].join(",")},[`${n}-submenu, ${n}-submenu-inline`]:{transition:[`border-color ${r} ${a}`,`background ${r} ${a}`,`padding ${l} ${a}`].join(",")},[`${n}-submenu ${n}-sub`]:{cursor:"initial",transition:[`background ${r} ${a}`,`padding ${r} ${a}`].join(",")},[`${n}-title-content`]:{transition:`color ${r}`},[`${n}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${n}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:c,borderStyle:b,borderWidth:0,borderTopWidth:d,marginBlock:d,padding:0,"&-dashed":{borderStyle:"dashed"}}}),$y(e)),{[`${n}-item-group`]:{[`${n}-item-group-list`]:{margin:0,padding:0,[`${n}-item, ${n}-submenu-title`]:{paddingInline:`${o*2}px ${u}px`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:p,background:"transparent",borderRadius:v,boxShadow:"none",transformOrigin:"0 0","&::before":{position:"absolute",inset:`${$}px 0 0`,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'}},"&-placement-rightTop::before":{top:0,insetInlineStart:$},[`> ${n}`]:g(g(g({borderRadius:v},$y(e)),Sy(e)),{[`${n}-item, ${n}-submenu > ${n}-submenu-title`]:{borderRadius:y},[`${n}-submenu-title::after`]:{transition:`transform ${r} ${a}`}})}}),Sy(e)),{[`&-inline-collapsed ${n}-submenu-arrow, + &-inline ${n}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${h})`},"&::after":{transform:`rotate(45deg) translateX(-${h})`}},[`${n}-submenu-open${n}-submenu-inline > ${n}-submenu-title > ${n}-submenu-arrow`]:{transform:`translateY(-${m*.2}px)`,"&::after":{transform:`rotate(-45deg) translateX(-${h})`},"&::before":{transform:`rotate(45deg) translateX(${h})`}}})},{[`${t}-layout-header`]:{[n]:{lineHeight:"inherit"}}}]},Gk=(e,t)=>Je("Menu",(o,r)=>{let{overrideComponentToken:l}=r;if((t==null?void 0:t.value)===!1)return[];const{colorBgElevated:a,colorPrimary:i,colorError:s,colorErrorHover:u,colorTextLightSolid:c}=o,{controlHeightLG:d,fontSize:p}=o,v=p/7*5,y=Le(o,{menuItemHeight:d,menuItemPaddingInline:o.margin,menuArrowSize:v,menuHorizontalHeight:d*1.15,menuArrowOffset:`${v*.25}px`,menuPanelMaskInset:-7,menuSubMenuBg:a}),m=new ut(c).setAlpha(.65).toRgbString(),h=Le(y,{colorItemText:m,colorItemTextHover:c,colorGroupTitle:m,colorItemTextSelected:c,colorItemBg:"#001529",colorSubItemBg:"#000c17",colorItemBgActive:"transparent",colorItemBgSelected:i,colorActiveBarWidth:0,colorActiveBarHeight:0,colorActiveBarBorderSize:0,colorItemTextDisabled:new ut(c).setAlpha(.25).toRgbString(),colorDangerItemText:s,colorDangerItemTextHover:u,colorDangerItemTextSelected:c,colorDangerItemBgActive:s,colorDangerItemBgSelected:s,menuSubMenuBg:"#001529",colorItemTextSelectedHorizontal:c,colorItemBgSelectedHorizontal:i},g({},l));return[Kk(y),Lk(y),Wk(y),by(y,"light"),by(h,"dark"),Hk(y),jc(y),$o(y,"slide-up"),$o(y,"slide-down"),oa(y,"zoom-big")]},o=>{const{colorPrimary:r,colorError:l,colorTextDisabled:a,colorErrorBg:i,colorText:s,colorTextDescription:u,colorBgContainer:c,colorFillAlter:d,colorFillContent:p,lineWidth:v,lineWidthBold:y,controlItemBgActive:m,colorBgTextHover:h}=o;return{dropdownWidth:160,zIndexPopup:o.zIndexPopupBase+50,radiusItem:o.borderRadiusLG,radiusSubMenuItem:o.borderRadiusSM,colorItemText:s,colorItemTextHover:s,colorItemTextHoverHorizontal:r,colorGroupTitle:u,colorItemTextSelected:r,colorItemTextSelectedHorizontal:r,colorItemBg:c,colorItemBgHover:h,colorItemBgActive:p,colorSubItemBg:d,colorItemBgSelected:m,colorItemBgSelectedHorizontal:"transparent",colorActiveBarWidth:0,colorActiveBarHeight:y,colorActiveBarBorderSize:v,colorItemTextDisabled:a,colorDangerItemText:l,colorDangerItemTextHover:l,colorDangerItemTextSelected:l,colorDangerItemBgActive:i,colorDangerItemBgSelected:i,itemMarginInline:o.marginXXS}})(e),Xk=()=>({id:String,prefixCls:String,items:Array,disabled:Boolean,inlineCollapsed:Boolean,disabledOverflow:Boolean,forceSubMenuRender:Boolean,openKeys:Array,selectedKeys:Array,activeKey:String,selectable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},tabindex:{type:[Number,String]},motion:Object,role:String,theme:{type:String,default:"light"},mode:{type:String,default:"vertical"},inlineIndent:{type:Number,default:24},subMenuOpenDelay:{type:Number,default:0},subMenuCloseDelay:{type:Number,default:.1},builtinPlacements:{type:Object},triggerSubMenuAction:{type:String,default:"hover"},getPopupContainer:Function,expandIcon:Function,onOpenChange:Function,onSelect:Function,onDeselect:Function,onClick:[Function,Array],onFocus:Function,onBlur:Function,onMousedown:Function,"onUpdate:openKeys":Function,"onUpdate:selectedKeys":Function,"onUpdate:activeKey":Function}),Cy=[],Ft=te({compatConfig:{MODE:3},name:"AMenu",inheritAttrs:!1,props:Xk(),slots:Object,setup(e,t){let{slots:n,emit:o,attrs:r}=t;const{direction:l,getPrefixCls:a}=Me("menu",e),i=ww(),s=P(()=>{var Q;return a("menu",e.prefixCls||((Q=i==null?void 0:i.prefixCls)===null||Q===void 0?void 0:Q.value))}),[u,c]=Gk(s,P(()=>!i)),d=q(new Map),p=Ke(Aw,ee(void 0)),v=P(()=>p.value!==void 0?p.value:e.inlineCollapsed),{itemsNodes:y}=Fk(e),m=q(!1);Ve(()=>{m.value=!0}),ke(()=>{yt(!(e.inlineCollapsed===!0&&e.mode!=="inline"),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),yt(!(p.value!==void 0&&e.inlineCollapsed===!0),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.")});const h=ee([]),b=ee([]),$=ee({});ue(d,()=>{const Q={};for(const J of d.value.values())Q[J.key]=J;$.value=Q},{flush:"post"}),ke(()=>{if(e.activeKey!==void 0){let Q=[];const J=e.activeKey?$.value[e.activeKey]:void 0;J&&e.activeKey!==void 0?Q=Du([].concat(Vt(J.parentKeys),e.activeKey)):Q=[],ul(h.value,Q)||(h.value=Q)}}),ue(()=>e.selectedKeys,Q=>{Q&&(b.value=Q.slice())},{immediate:!0,deep:!0});const C=ee([]);ue([$,b],()=>{let Q=[];b.value.forEach(J=>{const Z=$.value[J];Z&&(Q=Q.concat(Vt(Z.parentKeys)))}),Q=Du(Q),ul(C.value,Q)||(C.value=Q)},{immediate:!0});const w=Q=>{if(e.selectable){const{key:J}=Q,Z=b.value.includes(J);let W;e.multiple?Z?W=b.value.filter(re=>re!==J):W=[...b.value,J]:W=[J];const X=g(g({},Q),{selectedKeys:W});ul(W,b.value)||(e.selectedKeys===void 0&&(b.value=W),o("update:selectedKeys",W),Z&&e.multiple?o("deselect",X):o("select",X))}M.value!=="inline"&&!e.multiple&&S.value.length&&R(Cy)},S=ee([]);ue(()=>e.openKeys,function(){let Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:S.value;ul(S.value,Q)||(S.value=Q.slice())},{immediate:!0,deep:!0});let O;const x=Q=>{clearTimeout(O),O=setTimeout(()=>{e.activeKey===void 0&&(h.value=Q),o("update:activeKey",Q[Q.length-1])})},I=P(()=>!!e.disabled),E=P(()=>l.value==="rtl"),M=ee("vertical"),_=q(!1);ke(()=>{var Q;(e.mode==="inline"||e.mode==="vertical")&&v.value?(M.value="vertical",_.value=v.value):(M.value=e.mode,_.value=!1),!((Q=i==null?void 0:i.mode)===null||Q===void 0)&&Q.value&&(M.value=i.mode.value)});const z=P(()=>M.value==="inline"),R=Q=>{S.value=Q,o("update:openKeys",Q),o("openChange",Q)},H=ee(S.value),T=q(!1);ue(S,()=>{z.value&&(H.value=S.value)},{immediate:!0}),ue(z,()=>{if(!T.value){T.value=!0;return}z.value?S.value=H.value:R(Cy)},{immediate:!0});const D=P(()=>({[`${s.value}`]:!0,[`${s.value}-root`]:!0,[`${s.value}-${M.value}`]:!0,[`${s.value}-inline-collapsed`]:_.value,[`${s.value}-rtl`]:E.value,[`${s.value}-${e.theme}`]:!0})),A=P(()=>a()),B=P(()=>({horizontal:{name:`${A.value}-slide-up`},inline:Gc(`${A.value}-motion-collapse`),other:{name:`${A.value}-zoom-big`}}));Dw(!0);const N=function(){let Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const J=[],Z=d.value;return Q.forEach(W=>{const{key:X,childrenEventKeys:re}=Z.get(W);J.push(X,...N(Vt(re)))}),J},k=Q=>{var J;o("click",Q),w(Q),(J=i==null?void 0:i.onClick)===null||J===void 0||J.call(i)},L=(Q,J)=>{var Z;const W=((Z=$.value[Q])===null||Z===void 0?void 0:Z.childrenEventKeys)||[];let X=S.value.filter(re=>re!==Q);if(J)X.push(Q);else if(M.value!=="inline"){const re=N(Vt(W));X=Du(X.filter(ae=>!re.includes(ae)))}ul(S,X)||R(X)},j=(Q,J)=>{d.value.set(Q,J),d.value=new Map(d.value)},G=Q=>{d.value.delete(Q),d.value=new Map(d.value)},U=ee(0),K=P(()=>{var Q;return e.expandIcon||n.expandIcon||!((Q=i==null?void 0:i.expandIcon)===null||Q===void 0)&&Q.value?J=>{let Z=e.expandIcon||n.expandIcon;return Z=typeof Z=="function"?Z(J):Z,gt(Z,{class:`${s.value}-submenu-expand-icon`},!1)}:null});xk({prefixCls:s,activeKeys:h,openKeys:S,selectedKeys:b,changeActiveKeys:x,disabled:I,rtl:E,mode:M,inlineIndent:P(()=>e.inlineIndent),subMenuCloseDelay:P(()=>e.subMenuCloseDelay),subMenuOpenDelay:P(()=>e.subMenuOpenDelay),builtinPlacements:P(()=>e.builtinPlacements),triggerSubMenuAction:P(()=>e.triggerSubMenuAction),getPopupContainer:P(()=>e.getPopupContainer),inlineCollapsed:_,theme:P(()=>e.theme),siderCollapsed:p,defaultMotions:P(()=>m.value?B.value:null),motion:P(()=>m.value?e.motion:null),overflowDisabled:q(void 0),onOpenChange:L,onItemClick:k,registerMenuInfo:j,unRegisterMenuInfo:G,selectedSubMenuKeys:C,expandIcon:K,forceSubMenuRender:P(()=>e.forceSubMenuRender),rootClassName:c});const Y=()=>{var Q;return y.value||bt((Q=n.default)===null||Q===void 0?void 0:Q.call(n))};return()=>{var Q;const J=Y(),Z=U.value>=J.length-1||M.value!=="horizontal"||e.disabledOverflow,W=re=>M.value!=="horizontal"||e.disabledOverflow?re:re.map((ae,pe)=>f(qs,{key:ae.key,overflowDisabled:pe>U.value},{default:()=>ae})),X=((Q=n.overflowedIndicator)===null||Q===void 0?void 0:Q.call(n))||f(yg,null,null);return u(f(Sl,F(F({},r),{},{onMousedown:e.onMousedown,prefixCls:`${s.value}-overflow`,component:"ul",itemComponent:jl,class:[D.value,r.class,c.value],role:"menu",id:e.id,data:W(J),renderRawItem:re=>re,renderRawRest:re=>{const ae=re.length,pe=ae?J.slice(-ae):null;return f(qe,null,[f(Vl,{eventKey:Vi,key:Vi,title:X,disabled:Z,internalPopupClose:ae===0},{default:()=>pe}),f(vy,null,{default:()=>[f(Vl,{eventKey:Vi,key:Vi,title:X,disabled:Z,internalPopupClose:ae===0},{default:()=>pe})]})])},maxCount:M.value!=="horizontal"||e.disabledOverflow?Sl.INVALIDATE:Sl.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:re=>{U.value=re}}),{default:()=>[f(Wp,{to:"body"},{default:()=>[f("div",{style:{display:"none"},"aria-hidden":!0},[f(vy,null,{default:()=>[W(Y())]})])]})]}))}}});Ft.install=function(e){return e.component(Ft.name,Ft),e.component(jl.name,jl),e.component(Vl.name,Vl),e.component(Zs.name,Zs),e.component(Qs.name,Qs),e};Ft.Item=jl;Ft.Divider=Zs;Ft.SubMenu=Vl;Ft.ItemGroup=Qs;const Uk=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:g(g({},Qe(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:"flex",flexWrap:"wrap",margin:0,padding:0,listStyle:"none"},a:g({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:"inline-block",marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},zo(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:"none"}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[` + > ${n} + span, + > ${n} + a + `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:"inline-block",padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:"transparent"}}},[`&${e.componentCls}-rtl`]:{direction:"rtl"}})}},Yk=Je("Breadcrumb",e=>{const t=Le(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription});return[Uk(t)]}),qk=()=>({prefixCls:String,routes:{type:Array},params:V.any,separator:V.any,itemRender:{type:Function}});function Qk(e,t){if(!e.breadcrumbName)return null;const n=Object.keys(t).join("|");return e.breadcrumbName.replace(new RegExp(`:(${n})`,"g"),(r,l)=>t[l]||r)}function xy(e){const{route:t,params:n,routes:o,paths:r}=e,l=o.indexOf(t)===o.length-1,a=Qk(t,n);return l?f("span",null,[a]):f("a",{href:`#/${r.join("/")}`},[a])}const xl=te({compatConfig:{MODE:3},name:"ABreadcrumb",inheritAttrs:!1,props:qk(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("breadcrumb",e),[a,i]=Yk(r),s=(d,p)=>(d=(d||"").replace(/^\//,""),Object.keys(p).forEach(v=>{d=d.replace(`:${v}`,p[v])}),d),u=(d,p,v)=>{const y=[...d],m=s(p||"",v);return m&&y.push(m),y},c=d=>{let{routes:p=[],params:v={},separator:y,itemRender:m=xy}=d;const h=[];return p.map(b=>{const $=s(b.path,v);$&&h.push($);const C=[...h];let w=null;b.children&&b.children.length&&(w=f(Ft,{items:b.children.map(O=>({key:O.path||O.breadcrumbName,label:m({route:O,params:v,routes:p,paths:u(C,O.path,v)})}))},null));const S={separator:y};return w&&(S.overlay=w),f(Ys,F(F({},S),{},{key:$||b.breadcrumbName}),{default:()=>[m({route:b,params:v,routes:p,paths:C})]})})};return()=>{var d;let p;const{routes:v,params:y={}}=e,m=bt(At(n,e)),h=(d=At(n,e,"separator"))!==null&&d!==void 0?d:"/",b=e.itemRender||n.itemRender||xy;v&&v.length>0?p=c({routes:v,params:y,separator:h,itemRender:b}):m.length&&(p=m.map((C,w)=>($t(typeof C.type=="object"&&(C.type.__ANT_BREADCRUMB_ITEM||C.type.__ANT_BREADCRUMB_SEPARATOR)),bo(C,{separator:h,key:w}))));const $={[r.value]:!0,[`${r.value}-rtl`]:l.value==="rtl",[`${o.class}`]:!!o.class,[i.value]:!0};return a(f("nav",F(F({},o),{},{class:$}),[f("ol",null,[p])]))}}});var Zk=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String}),zf=te({compatConfig:{MODE:3},name:"ABreadcrumbSeparator",__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:Jk(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r}=Me("breadcrumb",e);return()=>{var l;const{separator:a,class:i}=o,s=Zk(o,["separator","class"]),u=bt((l=n.default)===null||l===void 0?void 0:l.call(n));return f("span",F({class:[`${r.value}-separator`,i]},s),[u.length>0?u:"/"])}}});xl.Item=Ys;xl.Separator=zf;xl.install=function(e){return e.component(xl.name,xl),e.component(Ys.name,Ys),e.component(zf.name,zf),e};var vr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wle(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,r.get?r:{enumerable:!0,get:function(){return e[o]}})}),n}var od={exports:{}},wy;function eL(){return wy||(wy=1,function(e,t){(function(n,o){e.exports=o()})(vr,function(){var n=1e3,o=6e4,r=36e5,l="millisecond",a="second",i="minute",s="hour",u="day",c="week",d="month",p="quarter",v="year",y="date",m="Invalid Date",h=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(H){var T=["th","st","nd","rd"],D=H%100;return"["+H+(T[(D-20)%10]||T[D]||T[0])+"]"}},C=function(H,T,D){var A=String(H);return!A||A.length>=T?H:""+Array(T+1-A.length).join(D)+H},w={s:C,z:function(H){var T=-H.utcOffset(),D=Math.abs(T),A=Math.floor(D/60),B=D%60;return(T<=0?"+":"-")+C(A,2,"0")+":"+C(B,2,"0")},m:function H(T,D){if(T.date()1)return H(k[0])}else{var L=T.name;O[L]=T,B=L}return!A&&B&&(S=B),B||!A&&S},M=function(H,T){if(I(H))return H.clone();var D=typeof T=="object"?T:{};return D.date=H,D.args=arguments,new z(D)},_=w;_.l=E,_.i=I,_.w=function(H,T){return M(H,{locale:T.$L,utc:T.$u,x:T.$x,$offset:T.$offset})};var z=function(){function H(D){this.$L=E(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[x]=!0}var T=H.prototype;return T.parse=function(D){this.$d=function(A){var B=A.date,N=A.utc;if(B===null)return new Date(NaN);if(_.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var k=B.match(h);if(k){var L=k[2]-1||0,j=(k[7]||"0").substring(0,3);return N?new Date(Date.UTC(k[1],L,k[3]||1,k[4]||0,k[5]||0,k[6]||0,j)):new Date(k[1],L,k[3]||1,k[4]||0,k[5]||0,k[6]||0,j)}}return new Date(B)}(D),this.init()},T.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},T.$utils=function(){return _},T.isValid=function(){return this.$d.toString()!==m},T.isSame=function(D,A){var B=M(D);return this.startOf(A)<=B&&B<=this.endOf(A)},T.isAfter=function(D,A){return M(D)25){var c=a(this).startOf(o).add(1,o).date(u),d=a(this).endOf(n);if(c.isBefore(d))return 1}var p=a(this).startOf(o).date(u).startOf(n).subtract(1,"millisecond"),v=this.diff(p,n,!0);return v<0?a(this).startOf("week").week():Math.ceil(v)},i.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}})})(Vw);var aL=Vw.exports;const iL=gr(aL);var Ww={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(vr,function(){return function(n,o){o.prototype.weekYear=function(){var r=this.month(),l=this.week(),a=this.year();return l===1&&r===11?a+1:r===0&&l>=52?a-1:a}}})})(Ww);var sL=Ww.exports;const cL=gr(sL);var Kw={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(vr,function(){var n="month",o="quarter";return function(r,l){var a=l.prototype;a.quarter=function(u){return this.$utils().u(u)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(u-1))};var i=a.add;a.add=function(u,c){return u=Number(u),this.$utils().p(c)===o?this.add(3*u,n):i.bind(this)(u,c)};var s=a.startOf;a.startOf=function(u,c){var d=this.$utils(),p=!!d.u(c)||c;if(d.p(u)===o){var v=this.quarter()-1;return p?this.month(3*v).startOf(n).startOf("day"):this.month(3*v+2).endOf(n).endOf("day")}return s.bind(this)(u,c)}}})})(Kw);var uL=Kw.exports;const dL=gr(uL);var Gw={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(vr,function(){return function(n,o){var r=o.prototype,l=r.format;r.format=function(a){var i=this,s=this.$locale();if(!this.isValid())return l.bind(this)(a);var u=this.$utils(),c=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((i.$M+1)/3);case"Do":return s.ordinal(i.$D);case"gggg":return i.weekYear();case"GGGG":return i.isoWeekYear();case"wo":return s.ordinal(i.week(),"W");case"w":case"ww":return u.s(i.week(),d==="w"?1:2,"0");case"W":case"WW":return u.s(i.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return u.s(String(i.$H===0?24:i.$H),d==="k"?1:2,"0");case"X":return Math.floor(i.$d.getTime()/1e3);case"x":return i.$d.getTime();case"z":return"["+i.offsetName()+"]";case"zzz":return"["+i.offsetName("long")+"]";default:return d}});return l.bind(this)(c)}}})})(Gw);var fL=Gw.exports;const pL=gr(fL);var Xw={exports:{}};(function(e,t){(function(n,o){e.exports=o()})(vr,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},o=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,l=/\d\d/,a=/\d\d?/,i=/\d*[^-_:/,()\s\d]+/,s={},u=function(h){return(h=+h)+(h>68?1900:2e3)},c=function(h){return function(b){this[h]=+b}},d=[/[+-]\d\d:?(\d\d)?|Z/,function(h){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var $=b.match(/([+-]|\d\d)/g),C=60*$[1]+(+$[2]||0);return C===0?0:$[0]==="+"?-C:C}(h)}],p=function(h){var b=s[h];return b&&(b.indexOf?b:b.s.concat(b.f))},v=function(h,b){var $,C=s.meridiem;if(C){for(var w=1;w<=24;w+=1)if(h.indexOf(C(w,0,b))>-1){$=w>12;break}}else $=h===(b?"pm":"PM");return $},y={A:[i,function(h){this.afternoon=v(h,!1)}],a:[i,function(h){this.afternoon=v(h,!0)}],Q:[r,function(h){this.month=3*(h-1)+1}],S:[r,function(h){this.milliseconds=100*+h}],SS:[l,function(h){this.milliseconds=10*+h}],SSS:[/\d{3}/,function(h){this.milliseconds=+h}],s:[a,c("seconds")],ss:[a,c("seconds")],m:[a,c("minutes")],mm:[a,c("minutes")],H:[a,c("hours")],h:[a,c("hours")],HH:[a,c("hours")],hh:[a,c("hours")],D:[a,c("day")],DD:[l,c("day")],Do:[i,function(h){var b=s.ordinal,$=h.match(/\d+/);if(this.day=$[0],b)for(var C=1;C<=31;C+=1)b(C).replace(/\[|\]/g,"")===h&&(this.day=C)}],w:[a,c("week")],ww:[l,c("week")],M:[a,c("month")],MM:[l,c("month")],MMM:[i,function(h){var b=p("months"),$=(p("monthsShort")||b.map(function(C){return C.slice(0,3)})).indexOf(h)+1;if($<1)throw new Error;this.month=$%12||$}],MMMM:[i,function(h){var b=p("months").indexOf(h)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,c("year")],YY:[l,function(h){this.year=u(h)}],YYYY:[/\d{4}/,c("year")],Z:d,ZZ:d};function m(h){var b,$;b=h,$=s&&s.formats;for(var C=(h=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(M,_,z){var R=z&&z.toUpperCase();return _||$[z]||n[z]||$[R].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(H,T,D){return T||D.slice(1)})})).match(o),w=C.length,S=0;S-1)return new Date((B==="X"?1e3:1)*A);var L=m(B)(A),j=L.year,G=L.month,U=L.day,K=L.hours,Y=L.minutes,Q=L.seconds,J=L.milliseconds,Z=L.zone,W=L.week,X=new Date,re=U||(j||G?1:X.getDate()),ae=j||X.getFullYear(),pe=0;j&&!G||(pe=G>0?G-1:X.getMonth());var ye,de=K||0,me=Y||0,ie=Q||0,se=J||0;return Z?new Date(Date.UTC(ae,pe,re,de,me,ie,se+60*Z.offset*1e3)):N?new Date(Date.UTC(ae,pe,re,de,me,ie,se)):(ye=new Date(ae,pe,re,de,me,ie,se),W&&(ye=k(ye).week(W).toDate()),ye)}catch(be){return new Date("")}}(O,E,x,$),this.init(),R&&R!==!0&&(this.$L=this.locale(R).$L),z&&O!=this.format(E)&&(this.$d=new Date("")),s={}}else if(E instanceof Array)for(var H=E.length,T=1;T<=H;T+=1){I[1]=E[T-1];var D=$.apply(this,I);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}T===H&&(this.$d=new Date(""))}else w.call(this,S)}}})})(Xw);var vL=Xw.exports;const gL=gr(vL);jt.extend(gL);jt.extend(pL);jt.extend(oL);jt.extend(lL);jt.extend(iL);jt.extend(cL);jt.extend(dL);jt.extend((e,t)=>{const n=t.prototype,o=n.format;n.format=function(l){const a=(l||"").replace("Wo","wo");return o.bind(this)(a)}});const mL={bn_BD:"bn-bd",by_BY:"be",en_GB:"en-gb",en_US:"en",fr_BE:"fr",fr_CA:"fr-ca",hy_AM:"hy-am",kmr_IQ:"ku",nl_BE:"nl-be",pt_BR:"pt-br",zh_CN:"zh-cn",zh_HK:"zh-hk",zh_TW:"zh-tw"},$r=e=>mL[e]||e.split("_")[0],Oy=()=>{q9(!1,"Not match any format. Please help to fire a issue about this.")},hL=/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|k{1,2}|S/g;function Py(e,t,n){const o=[...new Set(e.split(n))];let r=0;for(let l=0;lt)return a;r+=n.length}}const Iy=(e,t)=>{if(!e)return null;if(jt.isDayjs(e))return e;const n=t.matchAll(hL);let o=jt(e,t);if(n===null)return o;for(const r of n){const l=r[0],a=r.index;if(l==="Q"){const i=e.slice(a-1,a),s=Py(e,a,i).match(/\d+/)[0];o=o.quarter(parseInt(s))}if(l.toLowerCase()==="wo"){const i=e.slice(a-1,a),s=Py(e,a,i).match(/\d+/)[0];o=o.week(parseInt(s))}l.toLowerCase()==="ww"&&(o=o.week(parseInt(e.slice(a,a+l.length)))),l.toLowerCase()==="w"&&(o=o.week(parseInt(e.slice(a,a+l.length+1))))}return o},bL={getNow:()=>jt(),getFixedDate:e=>jt(e,["YYYY-M-DD","YYYY-MM-DD"]),getEndDate:e=>e.endOf("month"),getWeekDay:e=>{const t=e.locale("en");return t.weekday()+t.localeData().firstDayOfWeek()},getYear:e=>e.year(),getMonth:e=>e.month(),getDate:e=>e.date(),getHour:e=>e.hour(),getMinute:e=>e.minute(),getSecond:e=>e.second(),addYear:(e,t)=>e.add(t,"year"),addMonth:(e,t)=>e.add(t,"month"),addDate:(e,t)=>e.add(t,"day"),setYear:(e,t)=>e.year(t),setMonth:(e,t)=>e.month(t),setDate:(e,t)=>e.date(t),setHour:(e,t)=>e.hour(t),setMinute:(e,t)=>e.minute(t),setSecond:(e,t)=>e.second(t),isAfter:(e,t)=>e.isAfter(t),isValidate:e=>e.isValid(),locale:{getWeekFirstDay:e=>jt().locale($r(e)).localeData().firstDayOfWeek(),getWeekFirstDate:(e,t)=>t.locale($r(e)).weekday(0),getWeek:(e,t)=>t.locale($r(e)).week(),getShortWeekDays:e=>jt().locale($r(e)).localeData().weekdaysMin(),getShortMonths:e=>jt().locale($r(e)).localeData().monthsShort(),format:(e,t,n)=>t.locale($r(e)).format(n),parse:(e,t,n)=>{const o=$r(e);for(let r=0;rArray.isArray(e)?e.map(n=>Iy(n,t)):Iy(e,t),toString:(e,t)=>Array.isArray(e)?e.map(n=>jt.isDayjs(n)?n.format(t):n):jt.isDayjs(e)?e.format(t):e},Uw=bL;function _t(e){const t=j6();return g(g({},e),t)}const Yw=Symbol("PanelContextProps"),xg=e=>{We(Yw,e)},Oo=()=>Ke(Yw,{}),Wi={visibility:"hidden"};function mr(e,t){let{slots:n}=t;var o;const r=_t(e),{prefixCls:l,prevIcon:a="‹",nextIcon:i="›",superPrevIcon:s="«",superNextIcon:u="»",onSuperPrev:c,onSuperNext:d,onPrev:p,onNext:v}=r,{hideNextBtn:y,hidePrevBtn:m}=Oo();return f("div",{class:l},[c&&f("button",{type:"button",onClick:c,tabindex:-1,class:`${l}-super-prev-btn`,style:m.value?Wi:{}},[s]),p&&f("button",{type:"button",onClick:p,tabindex:-1,class:`${l}-prev-btn`,style:m.value?Wi:{}},[a]),f("div",{class:`${l}-view`},[(o=n.default)===null||o===void 0?void 0:o.call(n)]),v&&f("button",{type:"button",onClick:v,tabindex:-1,class:`${l}-next-btn`,style:y.value?Wi:{}},[i]),d&&f("button",{type:"button",onClick:d,tabindex:-1,class:`${l}-super-next-btn`,style:y.value?Wi:{}},[u])])}mr.displayName="Header";mr.inheritAttrs=!1;function wg(e){const t=_t(e),{prefixCls:n,generateConfig:o,viewDate:r,onPrevDecades:l,onNextDecades:a}=t,{hideHeader:i}=Oo();if(i)return null;const s=`${n}-header`,u=o.getYear(r),c=Math.floor(u/Bo)*Bo,d=c+Bo-1;return f(mr,F(F({},t),{},{prefixCls:s,onSuperPrev:l,onSuperNext:a}),{default:()=>[c,ko("-"),d]})}wg.displayName="DecadeHeader";wg.inheritAttrs=!1;function qw(e,t,n,o,r){let l=e.setHour(t,n);return l=e.setMinute(l,o),l=e.setSecond(l,r),l}function ps(e,t,n){if(!n)return t;let o=t;return o=e.setHour(o,e.getHour(n)),o=e.setMinute(o,e.getMinute(n)),o=e.setSecond(o,e.getSecond(n)),o}function yL(e,t,n,o,r,l){const a=Math.floor(e/o)*o;if(a{H.stopPropagation(),z||o(_)},onMouseenter:()=>{!z&&b&&b(_)},onMouseleave:()=>{!z&&$&&$(_)}},[p?p(_):f("div",{class:`${w}-inner`},[d(_)])]))}S.push(f("tr",{key:O,class:s&&s(I)},[x]))}return f("div",{class:`${t}-body`},[f("table",{class:`${t}-content`},[h&&f("thead",null,[f("tr",null,[h])]),f("tbody",null,[S])])])}el.displayName="PanelBody";el.inheritAttrs=!1;const Hf=3,Ty=4;function Og(e){const t=_t(e),n=oo-1,{prefixCls:o,viewDate:r,generateConfig:l}=t,a=`${o}-cell`,i=l.getYear(r),s=Math.floor(i/oo)*oo,u=Math.floor(i/Bo)*Bo,c=u+Bo-1,d=l.setYear(r,u-Math.ceil((Hf*Ty*oo-Bo)/2)),p=v=>{const y=l.getYear(v),m=y+n;return{[`${a}-in-view`]:u<=y&&m<=c,[`${a}-selected`]:y===s}};return f(el,F(F({},t),{},{rowNum:Ty,colNum:Hf,baseDate:d,getCellText:v=>{const y=l.getYear(v);return`${y}-${y+n}`},getCellClassName:p,getCellDate:(v,y)=>l.addYear(v,y*oo)}),null)}Og.displayName="DecadeBody";Og.inheritAttrs=!1;const Ki=new Map;function SL(e,t){let n;function o(){Ec(e)?t():n=He(()=>{o()})}return o(),()=>{He.cancel(n)}}function jf(e,t,n){if(Ki.get(e)&&He.cancel(Ki.get(e)),n<=0){Ki.set(e,He(()=>{e.scrollTop=t}));return}const r=(t-e.scrollTop)/n*10;Ki.set(e,He(()=>{e.scrollTop+=r,e.scrollTop!==t&&jf(e,t,n-10)}))}function aa(e,t){let{onLeftRight:n,onCtrlLeftRight:o,onUpDown:r,onPageUpDown:l,onEnter:a}=t;const{which:i,ctrlKey:s,metaKey:u}=e;switch(i){case Se.LEFT:if(s||u){if(o)return o(-1),!0}else if(n)return n(-1),!0;break;case Se.RIGHT:if(s||u){if(o)return o(1),!0}else if(n)return n(1),!0;break;case Se.UP:if(r)return r(-1),!0;break;case Se.DOWN:if(r)return r(1),!0;break;case Se.PAGE_UP:if(l)return l(-1),!0;break;case Se.PAGE_DOWN:if(l)return l(1),!0;break;case Se.ENTER:if(a)return a(),!0;break}return!1}function Qw(e,t,n,o){let r=e;if(!r)switch(t){case"time":r=o?"hh:mm:ss a":"HH:mm:ss";break;case"week":r="gggg-wo";break;case"month":r="YYYY-MM";break;case"quarter":r="YYYY-[Q]Q";break;case"year":r="YYYY";break;default:r=n?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD"}return r}function Zw(e,t,n){const o=e==="time"?8:10,r=typeof t=="function"?t(n.getNow()).length:t.length;return Math.max(o,r)+2}let ma=null;const Gi=new Set;function CL(e){return!ma&&typeof window!="undefined"&&window.addEventListener&&(ma=t=>{[...Gi].forEach(n=>{n(t)})},window.addEventListener("mousedown",ma)),Gi.add(e),()=>{Gi.delete(e),Gi.size===0&&(window.removeEventListener("mousedown",ma),ma=null)}}function xL(e){var t;const n=e.target;return e.composed&&n.shadowRoot&&((t=e.composedPath)===null||t===void 0?void 0:t.call(e)[0])||n}const wL=e=>e==="month"||e==="date"?"year":e,OL=e=>e==="date"?"month":e,PL=e=>e==="month"||e==="date"?"quarter":e,IL=e=>e==="date"?"week":e,TL={year:wL,month:OL,quarter:PL,week:IL,time:null,date:null};function Jw(e,t){return e.some(n=>n&&n.contains(t))}const oo=10,Bo=oo*10;function Pg(e){const t=_t(e),{prefixCls:n,onViewDateChange:o,generateConfig:r,viewDate:l,operationRef:a,onSelect:i,onPanelChange:s}=t,u=`${n}-decade-panel`;a.value={onKeydown:p=>aa(p,{onLeftRight:v=>{i(r.addYear(l,v*oo),"key")},onCtrlLeftRight:v=>{i(r.addYear(l,v*Bo),"key")},onUpDown:v=>{i(r.addYear(l,v*oo*Hf),"key")},onEnter:()=>{s("year",l)}})};const c=p=>{const v=r.addYear(l,p*Bo);o(v),s(null,v)},d=p=>{i(p,"mouse"),s("year",p)};return f("div",{class:u},[f(wg,F(F({},t),{},{prefixCls:n,onPrevDecades:()=>{c(-1)},onNextDecades:()=>{c(1)}}),null),f(Og,F(F({},t),{},{prefixCls:n,onSelect:d}),null)])}Pg.displayName="DecadePanel";Pg.inheritAttrs=!1;const vs=7;function tl(e,t){if(!e&&!t)return!0;if(!e||!t)return!1}function EL(e,t,n){const o=tl(t,n);if(typeof o=="boolean")return o;const r=Math.floor(e.getYear(t)/10),l=Math.floor(e.getYear(n)/10);return r===l}function Xc(e,t,n){const o=tl(t,n);return typeof o=="boolean"?o:e.getYear(t)===e.getYear(n)}function Vf(e,t){return Math.floor(e.getMonth(t)/3)+1}function e4(e,t,n){const o=tl(t,n);return typeof o=="boolean"?o:Xc(e,t,n)&&Vf(e,t)===Vf(e,n)}function Ig(e,t,n){const o=tl(t,n);return typeof o=="boolean"?o:Xc(e,t,n)&&e.getMonth(t)===e.getMonth(n)}function No(e,t,n){const o=tl(t,n);return typeof o=="boolean"?o:e.getYear(t)===e.getYear(n)&&e.getMonth(t)===e.getMonth(n)&&e.getDate(t)===e.getDate(n)}function ML(e,t,n){const o=tl(t,n);return typeof o=="boolean"?o:e.getHour(t)===e.getHour(n)&&e.getMinute(t)===e.getMinute(n)&&e.getSecond(t)===e.getSecond(n)}function t4(e,t,n,o){const r=tl(n,o);return typeof r=="boolean"?r:e.locale.getWeek(t,n)===e.locale.getWeek(t,o)}function wl(e,t,n){return No(e,t,n)&&ML(e,t,n)}function Xi(e,t,n,o){return!t||!n||!o?!1:!No(e,t,o)&&!No(e,n,o)&&e.isAfter(o,t)&&e.isAfter(n,o)}function _L(e,t,n){const o=t.locale.getWeekFirstDay(e),r=t.setDate(n,1),l=t.getWeekDay(r);let a=t.addDate(r,o-l);return t.getMonth(a)===t.getMonth(n)&&t.getDate(a)>1&&(a=t.addDate(a,-7)),a}function Ma(e,t,n){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;switch(t){case"year":return n.addYear(e,o*10);case"quarter":case"month":return n.addYear(e,o);default:return n.addMonth(e,o)}}function Qt(e,t){let{generateConfig:n,locale:o,format:r}=t;return typeof r=="function"?r(e):n.locale.format(o.locale,e,r)}function n4(e,t){let{generateConfig:n,locale:o,formatList:r}=t;return!e||typeof r[0]=="function"?null:n.locale.parse(o.locale,e,r)}function Wf(e){let{cellDate:t,mode:n,disabledDate:o,generateConfig:r}=e;if(!o)return!1;const l=(a,i,s)=>{let u=i;for(;u<=s;){let c;switch(a){case"date":{if(c=r.setDate(t,u),!o(c))return!1;break}case"month":{if(c=r.setMonth(t,u),!Wf({cellDate:c,mode:"month",generateConfig:r,disabledDate:o}))return!1;break}case"year":{if(c=r.setYear(t,u),!Wf({cellDate:c,mode:"year",generateConfig:r,disabledDate:o}))return!1;break}}u+=1}return!0};switch(n){case"date":case"week":return o(t);case"month":{const i=r.getDate(r.getEndDate(t));return l("date",1,i)}case"quarter":{const a=Math.floor(r.getMonth(t)/3)*3,i=a+2;return l("month",a,i)}case"year":return l("month",0,11);case"decade":{const a=r.getYear(t),i=Math.floor(a/oo)*oo,s=i+oo-1;return l("year",i,s)}}}function Tg(e){const t=_t(e),{hideHeader:n}=Oo();if(n.value)return null;const{prefixCls:o,generateConfig:r,locale:l,value:a,format:i}=t,s=`${o}-header`;return f(mr,{prefixCls:s},{default:()=>[a?Qt(a,{locale:l,format:i,generateConfig:r}):" "]})}Tg.displayName="TimeHeader";Tg.inheritAttrs=!1;const Ui=te({name:"TimeUnitColumn",props:["prefixCls","units","onSelect","value","active","hideDisabledOptions"],setup(e){const{open:t}=Oo(),n=q(null),o=ee(new Map),r=ee();return ue(()=>e.value,()=>{const l=o.value.get(e.value);l&&t.value!==!1&&jf(n.value,l.offsetTop,120)}),Ze(()=>{var l;(l=r.value)===null||l===void 0||l.call(r)}),ue(t,()=>{var l;(l=r.value)===null||l===void 0||l.call(r),ot(()=>{if(t.value){const a=o.value.get(e.value);a&&(r.value=SL(a,()=>{jf(n.value,a.offsetTop,0)}))}})},{immediate:!0,flush:"post"}),()=>{const{prefixCls:l,units:a,onSelect:i,value:s,active:u,hideDisabledOptions:c}=e,d=`${l}-cell`;return f("ul",{class:ne(`${l}-column`,{[`${l}-column-active`]:u}),ref:n,style:{position:"relative"}},[a.map(p=>c&&p.disabled?null:f("li",{key:p.value,ref:v=>{o.value.set(p.value,v)},class:ne(d,{[`${d}-disabled`]:p.disabled,[`${d}-selected`]:s===p.value}),onClick:()=>{p.disabled||i(p.value)}},[f("div",{class:`${d}-inner`},[p.label])]))])}}});function o4(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0",o=String(e);for(;o.length{(n.startsWith("data-")||n.startsWith("aria-")||n==="role"||n==="name")&&!n.startsWith("data-__")&&(t[n]=e[n])}),t}function dt(e,t){return e?e[t]:null}function jn(e,t,n){const o=[dt(e,0),dt(e,1)];return o[n]=typeof t=="function"?t(o[n]):t,!o[0]&&!o[1]?null:o}function rd(e,t,n,o){const r=[];for(let l=e;l<=t;l+=n)r.push({label:o4(l,2),value:l,disabled:(o||[]).includes(l)});return r}const AL=te({compatConfig:{MODE:3},name:"TimeBody",inheritAttrs:!1,props:["generateConfig","prefixCls","operationRef","activeColumnIndex","value","showHour","showMinute","showSecond","use12Hours","hourStep","minuteStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","disabledTime","hideDisabledOptions","onSelect"],setup(e){const t=P(()=>e.value?e.generateConfig.getHour(e.value):-1),n=P(()=>e.use12Hours?t.value>=12:!1),o=P(()=>e.use12Hours?t.value%12:t.value),r=P(()=>e.value?e.generateConfig.getMinute(e.value):-1),l=P(()=>e.value?e.generateConfig.getSecond(e.value):-1),a=ee(e.generateConfig.getNow()),i=ee(),s=ee(),u=ee();Kp(()=>{a.value=e.generateConfig.getNow()}),ke(()=>{if(e.disabledTime){const h=e.disabledTime(a);[i.value,s.value,u.value]=[h.disabledHours,h.disabledMinutes,h.disabledSeconds]}else[i.value,s.value,u.value]=[e.disabledHours,e.disabledMinutes,e.disabledSeconds]});const c=(h,b,$,C)=>{let w=e.value||e.generateConfig.getNow();const S=Math.max(0,b),O=Math.max(0,$),x=Math.max(0,C);return w=qw(e.generateConfig,w,!e.use12Hours||!h?S:S+12,O,x),w},d=P(()=>{var h;return rd(0,23,(h=e.hourStep)!==null&&h!==void 0?h:1,i.value&&i.value())}),p=P(()=>{if(!e.use12Hours)return[!1,!1];const h=[!0,!0];return d.value.forEach(b=>{let{disabled:$,value:C}=b;$||(C>=12?h[1]=!1:h[0]=!1)}),h}),v=P(()=>e.use12Hours?d.value.filter(n.value?h=>h.value>=12:h=>h.value<12).map(h=>{const b=h.value%12,$=b===0?"12":o4(b,2);return g(g({},h),{label:$,value:b})}):d.value),y=P(()=>{var h;return rd(0,59,(h=e.minuteStep)!==null&&h!==void 0?h:1,s.value&&s.value(t.value))}),m=P(()=>{var h;return rd(0,59,(h=e.secondStep)!==null&&h!==void 0?h:1,u.value&&u.value(t.value,r.value))});return()=>{const{prefixCls:h,operationRef:b,activeColumnIndex:$,showHour:C,showMinute:w,showSecond:S,use12Hours:O,hideDisabledOptions:x,onSelect:I}=e,E=[],M=`${h}-content`,_=`${h}-time-panel`;b.value={onUpDown:H=>{const T=E[$];if(T){const D=T.units.findIndex(B=>B.value===T.value),A=T.units.length;for(let B=1;B{I(c(n.value,H,r.value,l.value),"mouse")}),z(w,f(Ui,{key:"minute"},null),r.value,y.value,H=>{I(c(n.value,o.value,H,l.value),"mouse")}),z(S,f(Ui,{key:"second"},null),l.value,m.value,H=>{I(c(n.value,o.value,r.value,H),"mouse")});let R=-1;return typeof n.value=="boolean"&&(R=n.value?1:0),z(O===!0,f(Ui,{key:"12hours"},null),R,[{label:"AM",value:0,disabled:p.value[0]},{label:"PM",value:1,disabled:p.value[1]}],H=>{I(c(!!H,o.value,r.value,l.value),"mouse")}),f("div",{class:M},[E.map(H=>{let{node:T}=H;return T})])}}}),RL=AL,BL=e=>e.filter(t=>t!==!1).length;function Uc(e){const t=_t(e),{generateConfig:n,format:o="HH:mm:ss",prefixCls:r,active:l,operationRef:a,showHour:i,showMinute:s,showSecond:u,use12Hours:c=!1,onSelect:d,value:p}=t,v=`${r}-time-panel`,y=ee(),m=ee(-1),h=BL([i,s,u,c]);return a.value={onKeydown:b=>aa(b,{onLeftRight:$=>{m.value=(m.value+$+h)%h},onUpDown:$=>{m.value===-1?m.value=0:y.value&&y.value.onUpDown($)},onEnter:()=>{d(p||n.getNow(),"key"),m.value=-1}}),onBlur:()=>{m.value=-1}},f("div",{class:ne(v,{[`${v}-active`]:l})},[f(Tg,F(F({},t),{},{format:o,prefixCls:r}),null),f(RL,F(F({},t),{},{prefixCls:r,activeColumnIndex:m.value,operationRef:y}),null)])}Uc.displayName="TimePanel";Uc.inheritAttrs=!1;function Yc(e){let{cellPrefixCls:t,generateConfig:n,rangedValue:o,hoverRangedValue:r,isInView:l,isSameCell:a,offsetCell:i,today:s,value:u}=e;function c(d){const p=i(d,-1),v=i(d,1),y=dt(o,0),m=dt(o,1),h=dt(r,0),b=dt(r,1),$=Xi(n,h,b,d);function C(E){return a(y,E)}function w(E){return a(m,E)}const S=a(h,d),O=a(b,d),x=($||O)&&(!l(p)||w(p)),I=($||S)&&(!l(v)||C(v));return{[`${t}-in-view`]:l(d),[`${t}-in-range`]:Xi(n,y,m,d),[`${t}-range-start`]:C(d),[`${t}-range-end`]:w(d),[`${t}-range-start-single`]:C(d)&&!m,[`${t}-range-end-single`]:w(d)&&!y,[`${t}-range-start-near-hover`]:C(d)&&(a(p,h)||Xi(n,h,b,p)),[`${t}-range-end-near-hover`]:w(d)&&(a(v,b)||Xi(n,h,b,v)),[`${t}-range-hover`]:$,[`${t}-range-hover-start`]:S,[`${t}-range-hover-end`]:O,[`${t}-range-hover-edge-start`]:x,[`${t}-range-hover-edge-end`]:I,[`${t}-range-hover-edge-start-near-range`]:x&&a(p,m),[`${t}-range-hover-edge-end-near-range`]:I&&a(v,y),[`${t}-today`]:a(s,d),[`${t}-selected`]:a(u,d)}}return c}const a4=Symbol("RangeContextProps"),NL=e=>{We(a4,e)},mi=()=>Ke(a4,{rangedValue:ee(),hoverRangedValue:ee(),inRange:ee(),panelPosition:ee()}),FL=te({compatConfig:{MODE:3},name:"PanelContextProvider",inheritAttrs:!1,props:{value:{type:Object,default:()=>({})}},setup(e,t){let{slots:n}=t;const o={rangedValue:ee(e.value.rangedValue),hoverRangedValue:ee(e.value.hoverRangedValue),inRange:ee(e.value.inRange),panelPosition:ee(e.value.panelPosition)};return NL(o),ue(()=>e.value,()=>{Object.keys(e.value).forEach(r=>{o[r]&&(o[r].value=e.value[r])})}),()=>{var r;return(r=n.default)===null||r===void 0?void 0:r.call(n)}}});function qc(e){const t=_t(e),{prefixCls:n,generateConfig:o,prefixColumn:r,locale:l,rowCount:a,viewDate:i,value:s,dateRender:u}=t,{rangedValue:c,hoverRangedValue:d}=mi(),p=_L(l.locale,o,i),v=`${n}-cell`,y=o.locale.getWeekFirstDay(l.locale),m=o.getNow(),h=[],b=l.shortWeekDays||(o.locale.getShortWeekDays?o.locale.getShortWeekDays(l.locale):[]);r&&h.push(f("th",{key:"empty","aria-label":"empty cell"},null));for(let w=0;wNo(o,w,S),isInView:w=>Ig(o,w,i),offsetCell:(w,S)=>o.addDate(w,S)}),C=u?w=>u({current:w,today:m}):void 0;return f(el,F(F({},t),{},{rowNum:a,colNum:vs,baseDate:p,getCellNode:C,getCellText:o.getDate,getCellClassName:$,getCellDate:o.addDate,titleCell:w=>Qt(w,{locale:l,format:"YYYY-MM-DD",generateConfig:o}),headerCells:h}),null)}qc.displayName="DateBody";qc.inheritAttrs=!1;qc.props=["prefixCls","generateConfig","value?","viewDate","locale","rowCount","onSelect","dateRender?","disabledDate?","prefixColumn?","rowClassName?"];function Eg(e){const t=_t(e),{prefixCls:n,generateConfig:o,locale:r,viewDate:l,onNextMonth:a,onPrevMonth:i,onNextYear:s,onPrevYear:u,onYearClick:c,onMonthClick:d}=t,{hideHeader:p}=Oo();if(p.value)return null;const v=`${n}-header`,y=r.shortMonths||(o.locale.getShortMonths?o.locale.getShortMonths(r.locale):[]),m=o.getMonth(l),h=f("button",{type:"button",key:"year",onClick:c,tabindex:-1,class:`${n}-year-btn`},[Qt(l,{locale:r,format:r.yearFormat,generateConfig:o})]),b=f("button",{type:"button",key:"month",onClick:d,tabindex:-1,class:`${n}-month-btn`},[r.monthFormat?Qt(l,{locale:r,format:r.monthFormat,generateConfig:o}):y[m]]),$=r.monthBeforeYear?[b,h]:[h,b];return f(mr,F(F({},t),{},{prefixCls:v,onSuperPrev:u,onPrev:i,onNext:a,onSuperNext:s}),{default:()=>[$]})}Eg.displayName="DateHeader";Eg.inheritAttrs=!1;const kL=6;function hi(e){const t=_t(e),{prefixCls:n,panelName:o="date",keyboardConfig:r,active:l,operationRef:a,generateConfig:i,value:s,viewDate:u,onViewDateChange:c,onPanelChange:d,onSelect:p}=t,v=`${n}-${o}-panel`;a.value={onKeydown:h=>aa(h,g({onLeftRight:b=>{p(i.addDate(s||u,b),"key")},onCtrlLeftRight:b=>{p(i.addYear(s||u,b),"key")},onUpDown:b=>{p(i.addDate(s||u,b*vs),"key")},onPageUpDown:b=>{p(i.addMonth(s||u,b),"key")}},r))};const y=h=>{const b=i.addYear(u,h);c(b),d(null,b)},m=h=>{const b=i.addMonth(u,h);c(b),d(null,b)};return f("div",{class:ne(v,{[`${v}-active`]:l})},[f(Eg,F(F({},t),{},{prefixCls:n,value:s,viewDate:u,onPrevYear:()=>{y(-1)},onNextYear:()=>{y(1)},onPrevMonth:()=>{m(-1)},onNextMonth:()=>{m(1)},onMonthClick:()=>{d("month",u)},onYearClick:()=>{d("year",u)}}),null),f(qc,F(F({},t),{},{onSelect:h=>p(h,"mouse"),prefixCls:n,value:s,viewDate:u,rowCount:kL}),null)])}hi.displayName="DatePanel";hi.inheritAttrs=!1;const Ey=DL("date","time");function Mg(e){const t=_t(e),{prefixCls:n,operationRef:o,generateConfig:r,value:l,defaultValue:a,disabledTime:i,showTime:s,onSelect:u}=t,c=`${n}-datetime-panel`,d=ee(null),p=ee({}),v=ee({}),y=typeof s=="object"?g({},s):{};function m(C){const w=Ey.indexOf(d.value)+C;return Ey[w]||null}const h=C=>{v.value.onBlur&&v.value.onBlur(C),d.value=null};o.value={onKeydown:C=>{if(C.which===Se.TAB){const w=m(C.shiftKey?-1:1);return d.value=w,w&&C.preventDefault(),!0}if(d.value){const w=d.value==="date"?p:v;return w.value&&w.value.onKeydown&&w.value.onKeydown(C),!0}return[Se.LEFT,Se.RIGHT,Se.UP,Se.DOWN].includes(C.which)?(d.value="date",!0):!1},onBlur:h,onClose:h};const b=(C,w)=>{let S=C;w==="date"&&!l&&y.defaultValue?(S=r.setHour(S,r.getHour(y.defaultValue)),S=r.setMinute(S,r.getMinute(y.defaultValue)),S=r.setSecond(S,r.getSecond(y.defaultValue))):w==="time"&&!l&&a&&(S=r.setYear(S,r.getYear(a)),S=r.setMonth(S,r.getMonth(a)),S=r.setDate(S,r.getDate(a))),u&&u(S,"mouse")},$=i?i(l||null):{};return f("div",{class:ne(c,{[`${c}-active`]:d.value})},[f(hi,F(F({},t),{},{operationRef:p,active:d.value==="date",onSelect:C=>{b(ps(r,C,!l&&typeof s=="object"?s.defaultValue:null),"date")}}),null),f(Uc,F(F(F(F({},t),{},{format:void 0},y),$),{},{disabledTime:null,defaultValue:void 0,operationRef:v,active:d.value==="time",onSelect:C=>{b(C,"time")}}),null)])}Mg.displayName="DatetimePanel";Mg.inheritAttrs=!1;function _g(e){const t=_t(e),{prefixCls:n,generateConfig:o,locale:r,value:l}=t,a=`${n}-cell`,i=c=>f("td",{key:"week",class:ne(a,`${a}-week`)},[o.locale.getWeek(r.locale,c)]),s=`${n}-week-panel-row`,u=c=>ne(s,{[`${s}-selected`]:t4(o,r.locale,l,c)});return f(hi,F(F({},t),{},{panelName:"week",prefixColumn:i,rowClassName:u,keyboardConfig:{onLeftRight:null}}),null)}_g.displayName="WeekPanel";_g.inheritAttrs=!1;function Dg(e){const t=_t(e),{prefixCls:n,generateConfig:o,locale:r,viewDate:l,onNextYear:a,onPrevYear:i,onYearClick:s}=t,{hideHeader:u}=Oo();if(u.value)return null;const c=`${n}-header`;return f(mr,F(F({},t),{},{prefixCls:c,onSuperPrev:i,onSuperNext:a}),{default:()=>[f("button",{type:"button",onClick:s,class:`${n}-year-btn`},[Qt(l,{locale:r,format:r.yearFormat,generateConfig:o})])]})}Dg.displayName="MonthHeader";Dg.inheritAttrs=!1;const i4=3,LL=4;function Ag(e){const t=_t(e),{prefixCls:n,locale:o,value:r,viewDate:l,generateConfig:a,monthCellRender:i}=t,{rangedValue:s,hoverRangedValue:u}=mi(),c=`${n}-cell`,d=Yc({cellPrefixCls:c,value:r,generateConfig:a,rangedValue:s.value,hoverRangedValue:u.value,isSameCell:(m,h)=>Ig(a,m,h),isInView:()=>!0,offsetCell:(m,h)=>a.addMonth(m,h)}),p=o.shortMonths||(a.locale.getShortMonths?a.locale.getShortMonths(o.locale):[]),v=a.setMonth(l,0),y=i?m=>i({current:m,locale:o}):void 0;return f(el,F(F({},t),{},{rowNum:LL,colNum:i4,baseDate:v,getCellNode:y,getCellText:m=>o.monthFormat?Qt(m,{locale:o,format:o.monthFormat,generateConfig:a}):p[a.getMonth(m)],getCellClassName:d,getCellDate:a.addMonth,titleCell:m=>Qt(m,{locale:o,format:"YYYY-MM",generateConfig:a})}),null)}Ag.displayName="MonthBody";Ag.inheritAttrs=!1;function Rg(e){const t=_t(e),{prefixCls:n,operationRef:o,onViewDateChange:r,generateConfig:l,value:a,viewDate:i,onPanelChange:s,onSelect:u}=t,c=`${n}-month-panel`;o.value={onKeydown:p=>aa(p,{onLeftRight:v=>{u(l.addMonth(a||i,v),"key")},onCtrlLeftRight:v=>{u(l.addYear(a||i,v),"key")},onUpDown:v=>{u(l.addMonth(a||i,v*i4),"key")},onEnter:()=>{s("date",a||i)}})};const d=p=>{const v=l.addYear(i,p);r(v),s(null,v)};return f("div",{class:c},[f(Dg,F(F({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{s("year",i)}}),null),f(Ag,F(F({},t),{},{prefixCls:n,onSelect:p=>{u(p,"mouse"),s("date",p)}}),null)])}Rg.displayName="MonthPanel";Rg.inheritAttrs=!1;function Bg(e){const t=_t(e),{prefixCls:n,generateConfig:o,locale:r,viewDate:l,onNextYear:a,onPrevYear:i,onYearClick:s}=t,{hideHeader:u}=Oo();if(u.value)return null;const c=`${n}-header`;return f(mr,F(F({},t),{},{prefixCls:c,onSuperPrev:i,onSuperNext:a}),{default:()=>[f("button",{type:"button",onClick:s,class:`${n}-year-btn`},[Qt(l,{locale:r,format:r.yearFormat,generateConfig:o})])]})}Bg.displayName="QuarterHeader";Bg.inheritAttrs=!1;const zL=4,HL=1;function Ng(e){const t=_t(e),{prefixCls:n,locale:o,value:r,viewDate:l,generateConfig:a}=t,{rangedValue:i,hoverRangedValue:s}=mi(),u=`${n}-cell`,c=Yc({cellPrefixCls:u,value:r,generateConfig:a,rangedValue:i.value,hoverRangedValue:s.value,isSameCell:(p,v)=>e4(a,p,v),isInView:()=>!0,offsetCell:(p,v)=>a.addMonth(p,v*3)}),d=a.setDate(a.setMonth(l,0),1);return f(el,F(F({},t),{},{rowNum:HL,colNum:zL,baseDate:d,getCellText:p=>Qt(p,{locale:o,format:o.quarterFormat||"[Q]Q",generateConfig:a}),getCellClassName:c,getCellDate:(p,v)=>a.addMonth(p,v*3),titleCell:p=>Qt(p,{locale:o,format:"YYYY-[Q]Q",generateConfig:a})}),null)}Ng.displayName="QuarterBody";Ng.inheritAttrs=!1;function Fg(e){const t=_t(e),{prefixCls:n,operationRef:o,onViewDateChange:r,generateConfig:l,value:a,viewDate:i,onPanelChange:s,onSelect:u}=t,c=`${n}-quarter-panel`;o.value={onKeydown:p=>aa(p,{onLeftRight:v=>{u(l.addMonth(a||i,v*3),"key")},onCtrlLeftRight:v=>{u(l.addYear(a||i,v),"key")},onUpDown:v=>{u(l.addYear(a||i,v),"key")}})};const d=p=>{const v=l.addYear(i,p);r(v),s(null,v)};return f("div",{class:c},[f(Bg,F(F({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{s("year",i)}}),null),f(Ng,F(F({},t),{},{prefixCls:n,onSelect:p=>{u(p,"mouse")}}),null)])}Fg.displayName="QuarterPanel";Fg.inheritAttrs=!1;function kg(e){const t=_t(e),{prefixCls:n,generateConfig:o,viewDate:r,onPrevDecade:l,onNextDecade:a,onDecadeClick:i}=t,{hideHeader:s}=Oo();if(s.value)return null;const u=`${n}-header`,c=o.getYear(r),d=Math.floor(c/lr)*lr,p=d+lr-1;return f(mr,F(F({},t),{},{prefixCls:u,onSuperPrev:l,onSuperNext:a}),{default:()=>[f("button",{type:"button",onClick:i,class:`${n}-decade-btn`},[d,ko("-"),p])]})}kg.displayName="YearHeader";kg.inheritAttrs=!1;const Kf=3,My=4;function Lg(e){const t=_t(e),{prefixCls:n,value:o,viewDate:r,locale:l,generateConfig:a}=t,{rangedValue:i,hoverRangedValue:s}=mi(),u=`${n}-cell`,c=a.getYear(r),d=Math.floor(c/lr)*lr,p=d+lr-1,v=a.setYear(r,d-Math.ceil((Kf*My-lr)/2)),y=h=>{const b=a.getYear(h);return d<=b&&b<=p},m=Yc({cellPrefixCls:u,value:o,generateConfig:a,rangedValue:i.value,hoverRangedValue:s.value,isSameCell:(h,b)=>Xc(a,h,b),isInView:y,offsetCell:(h,b)=>a.addYear(h,b)});return f(el,F(F({},t),{},{rowNum:My,colNum:Kf,baseDate:v,getCellText:a.getYear,getCellClassName:m,getCellDate:a.addYear,titleCell:h=>Qt(h,{locale:l,format:"YYYY",generateConfig:a})}),null)}Lg.displayName="YearBody";Lg.inheritAttrs=!1;const lr=10;function zg(e){const t=_t(e),{prefixCls:n,operationRef:o,onViewDateChange:r,generateConfig:l,value:a,viewDate:i,sourceMode:s,onSelect:u,onPanelChange:c}=t,d=`${n}-year-panel`;o.value={onKeydown:v=>aa(v,{onLeftRight:y=>{u(l.addYear(a||i,y),"key")},onCtrlLeftRight:y=>{u(l.addYear(a||i,y*lr),"key")},onUpDown:y=>{u(l.addYear(a||i,y*Kf),"key")},onEnter:()=>{c(s==="date"?"date":"month",a||i)}})};const p=v=>{const y=l.addYear(i,v*10);r(y),c(null,y)};return f("div",{class:d},[f(kg,F(F({},t),{},{prefixCls:n,onPrevDecade:()=>{p(-1)},onNextDecade:()=>{p(1)},onDecadeClick:()=>{c("decade",i)}}),null),f(Lg,F(F({},t),{},{prefixCls:n,onSelect:v=>{c(s==="date"?"date":"month",v),u(v,"mouse")}}),null)])}zg.displayName="YearPanel";zg.inheritAttrs=!1;function s4(e,t,n){return n?f("div",{class:`${e}-footer-extra`},[n(t)]):null}function c4(e){let{prefixCls:t,components:n={},needConfirmButton:o,onNow:r,onOk:l,okDisabled:a,showNow:i,locale:s}=e,u,c;if(o){const d=n.button||"button";r&&i!==!1&&(u=f("li",{class:`${t}-now`},[f("a",{class:`${t}-now-btn`,onClick:r},[s.now])])),c=o&&f("li",{class:`${t}-ok`},[f(d,{disabled:a,onClick:p=>{p.stopPropagation(),l&&l()}},{default:()=>[s.ok]})])}return!u&&!c?null:f("ul",{class:`${t}-ranges`},[u,c])}function jL(){return te({name:"PickerPanel",inheritAttrs:!1,props:{prefixCls:String,locale:Object,generateConfig:Object,value:Object,defaultValue:Object,pickerValue:Object,defaultPickerValue:Object,disabledDate:Function,mode:String,picker:{type:String,default:"date"},tabindex:{type:[Number,String],default:0},showNow:{type:Boolean,default:void 0},showTime:[Boolean,Object],showToday:Boolean,renderExtraFooter:Function,dateRender:Function,hideHeader:{type:Boolean,default:void 0},onSelect:Function,onChange:Function,onPanelChange:Function,onMousedown:Function,onPickerValueChange:Function,onOk:Function,components:Object,direction:String,hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},secondStep:{type:Number,default:1}},setup(e,t){let{attrs:n}=t;const o=P(()=>e.picker==="date"&&!!e.showTime||e.picker==="time"),r=P(()=>24%e.hourStep===0),l=P(()=>60%e.minuteStep===0),a=P(()=>60%e.secondStep===0),i=Oo(),{operationRef:s,onSelect:u,hideRanges:c,defaultOpenValue:d}=i,{inRange:p,panelPosition:v,rangedValue:y,hoverRangedValue:m}=mi(),h=ee({}),[b,$]=wt(null,{value:Ne(e,"value"),defaultValue:e.defaultValue,postState:A=>!A&&(d!=null&&d.value)&&e.picker==="time"?d.value:A}),[C,w]=wt(null,{value:Ne(e,"pickerValue"),defaultValue:e.defaultPickerValue||b.value,postState:A=>{const{generateConfig:B,showTime:N,defaultValue:k}=e,L=B.getNow();return A?!b.value&&e.showTime?typeof N=="object"?ps(B,Array.isArray(A)?A[0]:A,N.defaultValue||L):k?ps(B,Array.isArray(A)?A[0]:A,k):ps(B,Array.isArray(A)?A[0]:A,L):A:L}}),S=A=>{w(A),e.onPickerValueChange&&e.onPickerValueChange(A)},O=A=>{const B=TL[e.picker];return B?B(A):A},[x,I]=wt(()=>e.picker==="time"?"time":O("date"),{value:Ne(e,"mode")});ue(()=>e.picker,()=>{I(e.picker)});const E=ee(x.value),M=A=>{E.value=A},_=(A,B)=>{const{onPanelChange:N,generateConfig:k}=e,L=O(A||x.value);M(x.value),I(L),N&&(x.value!==L||wl(k,C.value,C.value))&&N(B,L)},z=function(A,B){let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const{picker:k,generateConfig:L,onSelect:j,onChange:G,disabledDate:U}=e;(x.value===k||N)&&($(A),j&&j(A),u&&u(A,B),G&&!wl(L,A,b.value)&&!(U!=null&&U(A))&&G(A))},R=A=>h.value&&h.value.onKeydown?([Se.LEFT,Se.RIGHT,Se.UP,Se.DOWN,Se.PAGE_UP,Se.PAGE_DOWN,Se.ENTER].includes(A.which)&&A.preventDefault(),h.value.onKeydown(A)):!1,H=A=>{h.value&&h.value.onBlur&&h.value.onBlur(A)},T=()=>{const{generateConfig:A,hourStep:B,minuteStep:N,secondStep:k}=e,L=A.getNow(),j=yL(A.getHour(L),A.getMinute(L),A.getSecond(L),r.value?B:1,l.value?N:1,a.value?k:1),G=qw(A,L,j[0],j[1],j[2]);z(G,"submit")},D=P(()=>{const{prefixCls:A,direction:B}=e;return ne(`${A}-panel`,{[`${A}-panel-has-range`]:y&&y.value&&y.value[0]&&y.value[1],[`${A}-panel-has-range-hover`]:m&&m.value&&m.value[0]&&m.value[1],[`${A}-panel-rtl`]:B==="rtl"})});return xg(g(g({},i),{mode:x,hideHeader:P(()=>{var A;return e.hideHeader!==void 0?e.hideHeader:(A=i.hideHeader)===null||A===void 0?void 0:A.value}),hidePrevBtn:P(()=>p.value&&v.value==="right"),hideNextBtn:P(()=>p.value&&v.value==="left")})),ue(()=>e.value,()=>{e.value&&w(e.value)}),()=>{const{prefixCls:A="ant-picker",locale:B,generateConfig:N,disabledDate:k,picker:L="date",tabindex:j=0,showNow:G,showTime:U,showToday:K,renderExtraFooter:Y,onMousedown:Q,onOk:J,components:Z}=e;s&&v.value!=="right"&&(s.value={onKeydown:R,onClose:()=>{h.value&&h.value.onClose&&h.value.onClose()}});let W;const X=g(g(g({},n),e),{operationRef:h,prefixCls:A,viewDate:C.value,value:b.value,onViewDateChange:S,sourceMode:E.value,onPanelChange:_,disabledDate:k});switch(delete X.onChange,delete X.onSelect,x.value){case"decade":W=f(Pg,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;case"year":W=f(zg,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;case"month":W=f(Rg,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;case"quarter":W=f(Fg,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;case"week":W=f(_g,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;case"time":delete X.showTime,W=f(Uc,F(F(F({},X),typeof U=="object"?U:null),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null);break;default:U?W=f(Mg,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null):W=f(hi,F(F({},X),{},{onSelect:(ye,de)=>{S(ye),z(ye,de)}}),null)}let re,ae;c!=null&&c.value||(re=s4(A,x.value,Y),ae=c4({prefixCls:A,components:Z,needConfirmButton:o.value,okDisabled:!b.value||k&&k(b.value),locale:B,showNow:G,onNow:o.value&&T,onOk:()=>{b.value&&(z(b.value,"submit",!0),J&&J(b.value))}}));let pe;if(K&&x.value==="date"&&L==="date"&&!U){const ye=N.getNow(),de=`${A}-today-btn`,me=k&&k(ye);pe=f("a",{class:ne(de,me&&`${de}-disabled`),"aria-disabled":me,onClick:()=>{me||z(ye,"mouse",!0)}},[B.today])}return f("div",{tabindex:j,class:ne(D.value,n.class),style:n.style,onKeydown:R,onBlur:H,onMousedown:Q},[W,re||ae||pe?f("div",{class:`${A}-footer`},[re,ae,pe]):null])}}})}const VL=jL(),u4=e=>f(VL,e),WL={bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function d4(e,t){let{slots:n}=t;const{prefixCls:o,popupStyle:r,visible:l,dropdownClassName:a,dropdownAlign:i,transitionName:s,getPopupContainer:u,range:c,popupPlacement:d,direction:p}=_t(e),v=`${o}-dropdown`;return f(di,{showAction:[],hideAction:[],popupPlacement:(()=>d!==void 0?d:p==="rtl"?"bottomRight":"bottomLeft")(),builtinPlacements:WL,prefixCls:v,popupTransitionName:s,popupAlign:i,popupVisible:l,popupClassName:ne(a,{[`${v}-range`]:c,[`${v}-rtl`]:p==="rtl"}),popupStyle:r,getPopupContainer:u},{default:n.default,popup:n.popupElement})}const f4=te({name:"PresetPanel",props:{prefixCls:String,presets:{type:Array,default:()=>[]},onClick:Function,onHover:Function},setup(e){return()=>e.presets.length?f("div",{class:`${e.prefixCls}-presets`},[f("ul",null,[e.presets.map((t,n)=>{let{label:o,value:r}=t;return f("li",{key:n,onClick:l=>{l.stopPropagation(),e.onClick(r)},onMouseenter:()=>{var l;(l=e.onHover)===null||l===void 0||l.call(e,r)},onMouseleave:()=>{var l;(l=e.onHover)===null||l===void 0||l.call(e,null)}},[o])})])]):null}});function Gf(e){let{open:t,value:n,isClickOutside:o,triggerOpen:r,forwardKeydown:l,onKeydown:a,blurToCancel:i,onSubmit:s,onCancel:u,onFocus:c,onBlur:d}=e;const p=q(!1),v=q(!1),y=q(!1),m=q(!1),h=q(!1),b=P(()=>({onMousedown:()=>{p.value=!0,r(!0)},onKeydown:C=>{if(a(C,()=>{h.value=!0}),!h.value){switch(C.which){case Se.ENTER:{t.value?s()!==!1&&(p.value=!0):r(!0),C.preventDefault();return}case Se.TAB:{p.value&&t.value&&!C.shiftKey?(p.value=!1,C.preventDefault()):!p.value&&t.value&&!l(C)&&C.shiftKey&&(p.value=!0,C.preventDefault());return}case Se.ESC:{p.value=!0,u();return}}!t.value&&![Se.SHIFT].includes(C.which)?r(!0):p.value||l(C)}},onFocus:C=>{p.value=!0,v.value=!0,c&&c(C)},onBlur:C=>{if(y.value||!o(document.activeElement)){y.value=!1;return}i.value?setTimeout(()=>{let{activeElement:w}=document;for(;w&&w.shadowRoot;)w=w.shadowRoot.activeElement;o(w)&&u()},0):t.value&&(r(!1),m.value&&s()),v.value=!1,d&&d(C)}}));ue(t,()=>{m.value=!1}),ue(n,()=>{m.value=!0});const $=q();return Ve(()=>{$.value=CL(C=>{const w=xL(C);if(t.value){const S=o(w);S?(!v.value||S)&&r(!1):(y.value=!0,He(()=>{y.value=!1}))}})}),Ze(()=>{$.value&&$.value()}),[b,{focused:v,typing:p}]}function Xf(e){let{valueTexts:t,onTextChange:n}=e;const o=ee("");function r(a){o.value=a,n(a)}function l(){o.value=t.value[0]}return ue(()=>[...t.value],function(a){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];a.join("||")!==i.join("||")&&t.value.every(s=>s!==o.value)&&l()},{immediate:!0}),[o,r,l]}function Js(e,t){let{formatList:n,generateConfig:o,locale:r}=t;const l=Lv(()=>{if(!e.value)return[[""],""];let s="";const u=[];for(let c=0;cu[0]!==s[0]||!ul(u[1],s[1])),a=P(()=>l.value[0]),i=P(()=>l.value[1]);return[a,i]}function Uf(e,t){let{formatList:n,generateConfig:o,locale:r}=t;const l=ee(null);let a;function i(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(He.cancel(a),p){l.value=d;return}a=He(()=>{l.value=d})}const[,s]=Js(l,{formatList:n,generateConfig:o,locale:r});function u(d){i(d)}function c(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;i(null,d)}return ue(e,()=>{c(!0)}),Ze(()=>{He.cancel(a)}),[s,u,c]}function p4(e,t){return P(()=>e!=null&&e.value?e.value:t!=null&&t.value?(yv(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.keys(t.value).map(o=>{const r=t.value[o],l=typeof r=="function"?r():r;return{label:o,value:l}})):[])}function KL(){return te({name:"Picker",inheritAttrs:!1,props:["prefixCls","id","tabindex","dropdownClassName","dropdownAlign","popupStyle","transitionName","generateConfig","locale","inputReadOnly","allowClear","autofocus","showTime","showNow","showHour","showMinute","showSecond","picker","format","use12Hours","value","defaultValue","open","defaultOpen","defaultOpenValue","suffixIcon","presets","clearIcon","disabled","disabledDate","placeholder","getPopupContainer","panelRender","inputRender","onChange","onOpenChange","onPanelChange","onFocus","onBlur","onMousedown","onMouseup","onMouseenter","onMouseleave","onContextmenu","onClick","onKeydown","onSelect","direction","autocomplete","showToday","renderExtraFooter","dateRender","minuteStep","hourStep","secondStep","hideDisabledOptions"],setup(e,t){let{attrs:n,expose:o}=t;const r=ee(null),l=P(()=>e.presets),a=p4(l),i=P(()=>{var k;return(k=e.picker)!==null&&k!==void 0?k:"date"}),s=P(()=>i.value==="date"&&!!e.showTime||i.value==="time"),u=P(()=>r4(Qw(e.format,i.value,e.showTime,e.use12Hours))),c=ee(null),d=ee(null),p=ee(null),[v,y]=wt(null,{value:Ne(e,"value"),defaultValue:e.defaultValue}),m=ee(v.value),h=k=>{m.value=k},b=ee(null),[$,C]=wt(!1,{value:Ne(e,"open"),defaultValue:e.defaultOpen,postState:k=>e.disabled?!1:k,onChange:k=>{e.onOpenChange&&e.onOpenChange(k),!k&&b.value&&b.value.onClose&&b.value.onClose()}}),[w,S]=Js(m,{formatList:u,generateConfig:Ne(e,"generateConfig"),locale:Ne(e,"locale")}),[O,x,I]=Xf({valueTexts:w,onTextChange:k=>{const L=n4(k,{locale:e.locale,formatList:u.value,generateConfig:e.generateConfig});L&&(!e.disabledDate||!e.disabledDate(L))&&h(L)}}),E=k=>{const{onChange:L,generateConfig:j,locale:G}=e;h(k),y(k),L&&!wl(j,v.value,k)&&L(k,k?Qt(k,{generateConfig:j,locale:G,format:u.value[0]}):"")},M=k=>{e.disabled&&k||C(k)},_=k=>$.value&&b.value&&b.value.onKeydown?b.value.onKeydown(k):!1,z=function(){e.onMouseup&&e.onMouseup(...arguments),r.value&&(r.value.focus(),M(!0))},[R,{focused:H,typing:T}]=Gf({blurToCancel:s,open:$,value:O,triggerOpen:M,forwardKeydown:_,isClickOutside:k=>!Jw([c.value,d.value,p.value],k),onSubmit:()=>!m.value||e.disabledDate&&e.disabledDate(m.value)?!1:(E(m.value),M(!1),I(),!0),onCancel:()=>{M(!1),h(v.value),I()},onKeydown:(k,L)=>{var j;(j=e.onKeydown)===null||j===void 0||j.call(e,k,L)},onFocus:k=>{var L;(L=e.onFocus)===null||L===void 0||L.call(e,k)},onBlur:k=>{var L;(L=e.onBlur)===null||L===void 0||L.call(e,k)}});ue([$,w],()=>{$.value||(h(v.value),!w.value.length||w.value[0]===""?x(""):S.value!==O.value&&I())}),ue(i,()=>{$.value||I()}),ue(v,()=>{h(v.value)});const[D,A,B]=Uf(O,{formatList:u,generateConfig:Ne(e,"generateConfig"),locale:Ne(e,"locale")}),N=(k,L)=>{(L==="submit"||L!=="key"&&!s.value)&&(E(k),M(!1))};return xg({operationRef:b,hideHeader:P(()=>i.value==="time"),onSelect:N,open:$,defaultOpenValue:Ne(e,"defaultOpenValue"),onDateMouseenter:A,onDateMouseleave:B}),o({focus:()=>{r.value&&r.value.focus()},blur:()=>{r.value&&r.value.blur()}}),()=>{const{prefixCls:k="rc-picker",id:L,tabindex:j,dropdownClassName:G,dropdownAlign:U,popupStyle:K,transitionName:Y,generateConfig:Q,locale:J,inputReadOnly:Z,allowClear:W,autofocus:X,picker:re="date",defaultOpenValue:ae,suffixIcon:pe,clearIcon:ye,disabled:de,placeholder:me,getPopupContainer:ie,panelRender:se,onMousedown:be,onMouseenter:we,onMouseleave:ve,onContextmenu:Ce,onClick:Te,onSelect:le,direction:oe,autocomplete:fe="off"}=e,Oe=g(g(g({},e),n),{class:ne({[`${k}-panel-focused`]:!T.value}),style:void 0,pickerValue:void 0,onPickerValueChange:void 0,onChange:null});let Ie=f("div",{class:`${k}-panel-layout`},[f(f4,{prefixCls:k,presets:a.value,onClick:_e=>{E(_e),M(!1)}},null),f(u4,F(F({},Oe),{},{generateConfig:Q,value:m.value,locale:J,tabindex:-1,onSelect:_e=>{le==null||le(_e),h(_e)},direction:oe,onPanelChange:(_e,Be)=>{const{onPanelChange:Ye}=e;B(!0),Ye==null||Ye(_e,Be)}}),null)]);se&&(Ie=se(Ie));const Ae=f("div",{class:`${k}-panel-container`,ref:c,onMousedown:_e=>{_e.preventDefault()}},[Ie]);let ge;pe&&(ge=f("span",{class:`${k}-suffix`},[pe]));let he;W&&v.value&&!de&&(he=f("span",{onMousedown:_e=>{_e.preventDefault(),_e.stopPropagation()},onMouseup:_e=>{_e.preventDefault(),_e.stopPropagation(),E(null),M(!1)},class:`${k}-clear`,role:"button"},[ye||f("span",{class:`${k}-clear-btn`},null)]));const $e=g(g(g(g({id:L,tabindex:j,disabled:de,readonly:Z||typeof u.value[0]=="function"||!T.value,value:D.value||O.value,onInput:_e=>{x(_e.target.value)},autofocus:X,placeholder:me,ref:r,title:O.value},R.value),{size:Zw(re,u.value[0],Q)}),l4(e)),{autocomplete:fe}),Ee=e.inputRender?e.inputRender($e):f("input",$e,null),Re=oe==="rtl"?"bottomRight":"bottomLeft";return f("div",{ref:p,class:ne(k,n.class,{[`${k}-disabled`]:de,[`${k}-focused`]:H.value,[`${k}-rtl`]:oe==="rtl"}),style:n.style,onMousedown:be,onMouseup:z,onMouseenter:we,onMouseleave:ve,onContextmenu:Ce,onClick:Te},[f("div",{class:ne(`${k}-input`,{[`${k}-input-placeholder`]:!!D.value}),ref:d},[Ee,ge,he]),f(d4,{visible:$.value,popupStyle:K,prefixCls:k,dropdownClassName:G,dropdownAlign:U,getPopupContainer:ie,transitionName:Y,popupPlacement:Re,direction:oe},{default:()=>[f("div",{style:{pointerEvents:"none",position:"absolute",top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>Ae})])}}})}const GL=KL();function XL(e,t){let{picker:n,locale:o,selectedValue:r,disabledDate:l,disabled:a,generateConfig:i}=e;const s=P(()=>dt(r.value,0)),u=P(()=>dt(r.value,1));function c(m){return i.value.locale.getWeekFirstDate(o.value.locale,m)}function d(m){const h=i.value.getYear(m),b=i.value.getMonth(m);return h*100+b}function p(m){const h=i.value.getYear(m),b=Vf(i.value,m);return h*10+b}return[m=>{var h;if(l&&(!((h=l==null?void 0:l.value)===null||h===void 0)&&h.call(l,m)))return!0;if(a[1]&&u)return!No(i.value,m,u.value)&&i.value.isAfter(m,u.value);if(t.value[1]&&u.value)switch(n.value){case"quarter":return p(m)>p(u.value);case"month":return d(m)>d(u.value);case"week":return c(m)>c(u.value);default:return!No(i.value,m,u.value)&&i.value.isAfter(m,u.value)}return!1},m=>{var h;if(!((h=l.value)===null||h===void 0)&&h.call(l,m))return!0;if(a[0]&&s)return!No(i.value,m,u.value)&&i.value.isAfter(s.value,m);if(t.value[0]&&s.value)switch(n.value){case"quarter":return p(m)EL(o,a,i));case"quarter":case"month":return l((a,i)=>Xc(o,a,i));default:return l((a,i)=>Ig(o,a,i))}}function YL(e,t,n,o){const r=dt(e,0),l=dt(e,1);if(t===0)return r;if(r&&l)switch(UL(r,l,n,o)){case"same":return r;case"closing":return r;default:return Ma(l,n,o,-1)}return r}function qL(e){let{values:t,picker:n,defaultDates:o,generateConfig:r}=e;const l=ee([dt(o,0),dt(o,1)]),a=ee(null),i=P(()=>dt(t.value,0)),s=P(()=>dt(t.value,1)),u=v=>l.value[v]?l.value[v]:dt(a.value,v)||YL(t.value,v,n.value,r.value)||i.value||s.value||r.value.getNow(),c=ee(null),d=ee(null);ke(()=>{c.value=u(0),d.value=u(1)});function p(v,y){if(v){let m=jn(a.value,v,y);l.value=jn(l.value,null,y)||[null,null];const h=(y+1)%2;dt(t.value,h)||(m=jn(m,v,h)),a.value=m}else(i.value||s.value)&&(a.value=null)}return[c,d,p]}function QL(e){return V6()?(W6(e),!0):!1}function ZL(e){return typeof e=="function"?e():Vt(e)}function v4(e){var t;const n=ZL(e);return(t=n==null?void 0:n.$el)!==null&&t!==void 0?t:n}function JL(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;wn()?Ve(e):t?e():ot(e)}function ez(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=q(),o=()=>n.value=!!e();return o(),JL(o,t),n}var ld;const g4=typeof window!="undefined";g4&&(!((ld=window==null?void 0:window.navigator)===null||ld===void 0)&&ld.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);const tz=g4?window:void 0;var nz=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r2&&arguments[2]!==void 0?arguments[2]:{};const{window:o=tz}=n,r=nz(n,["window"]);let l;const a=ez(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},s=ue(()=>v4(e),c=>{i(),a.value&&o&&c&&(l=new ResizeObserver(t),l.observe(c,r))},{immediate:!0,flush:"post"}),u=()=>{i(),s()};return QL(u),{isSupported:a,stop:u}}function ha(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{width:0,height:0},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{box:o="content-box"}=n,r=q(t.width),l=q(t.height);return oz(e,a=>{let[i]=a;const s=o==="border-box"?i.borderBoxSize:o==="content-box"?i.contentBoxSize:i.devicePixelContentBoxSize;s?(r.value=s.reduce((u,c)=>{let{inlineSize:d}=c;return u+d},0),l.value=s.reduce((u,c)=>{let{blockSize:d}=c;return u+d},0)):(r.value=i.contentRect.width,l.value=i.contentRect.height)},n),ue(()=>v4(e),a=>{r.value=a?t.width:0,l.value=a?t.height:0}),{width:r,height:l}}function _y(e,t){return e&&e[0]&&e[1]&&t.isAfter(e[0],e[1])?[e[1],e[0]]:e}function Dy(e,t,n,o){return!!(e||o&&o[t]||n[(t+1)%2])}function rz(){return te({name:"RangerPicker",inheritAttrs:!1,props:["prefixCls","id","popupStyle","dropdownClassName","transitionName","dropdownAlign","getPopupContainer","generateConfig","locale","placeholder","autofocus","disabled","format","picker","showTime","showNow","showHour","showMinute","showSecond","use12Hours","separator","value","defaultValue","defaultPickerValue","open","defaultOpen","disabledDate","disabledTime","dateRender","panelRender","ranges","allowEmpty","allowClear","suffixIcon","clearIcon","pickerRef","inputReadOnly","mode","renderExtraFooter","onChange","onOpenChange","onPanelChange","onCalendarChange","onFocus","onBlur","onMousedown","onMouseup","onMouseenter","onMouseleave","onClick","onOk","onKeydown","components","order","direction","activePickerIndex","autocomplete","minuteStep","hourStep","secondStep","hideDisabledOptions","disabledMinutes","presets","prevIcon","nextIcon","superPrevIcon","superNextIcon"],setup(e,t){let{attrs:n,expose:o}=t;const r=P(()=>e.picker==="date"&&!!e.showTime||e.picker==="time"),l=P(()=>e.presets),a=P(()=>e.ranges),i=p4(l,a),s=ee({}),u=ee(null),c=ee(null),d=ee(null),p=ee(null),v=ee(null),y=ee(null),m=ee(null),h=ee(null),b=P(()=>r4(Qw(e.format,e.picker,e.showTime,e.use12Hours))),[$,C]=wt(0,{value:Ne(e,"activePickerIndex")}),w=ee(null),S=P(()=>{const{disabled:Pe}=e;return Array.isArray(Pe)?Pe:[Pe||!1,Pe||!1]}),[O,x]=wt(null,{value:Ne(e,"value"),defaultValue:e.defaultValue,postState:Pe=>e.picker==="time"&&!e.order?Pe:_y(Pe,e.generateConfig)}),[I,E,M]=qL({values:O,picker:Ne(e,"picker"),defaultDates:e.defaultPickerValue,generateConfig:Ne(e,"generateConfig")}),[_,z]=wt(O.value,{postState:Pe=>{let ze=Pe;if(S.value[0]&&S.value[1])return ze;for(let Fe=0;Fe<2;Fe+=1)S.value[Fe]&&!dt(ze,Fe)&&!dt(e.allowEmpty,Fe)&&(ze=jn(ze,e.generateConfig.getNow(),Fe));return ze}}),[R,H]=wt([e.picker,e.picker],{value:Ne(e,"mode")});ue(()=>e.picker,()=>{H([e.picker,e.picker])});const T=(Pe,ze)=>{var Fe;H(Pe),(Fe=e.onPanelChange)===null||Fe===void 0||Fe.call(e,ze,Pe)},[D,A]=XL({picker:Ne(e,"picker"),selectedValue:_,locale:Ne(e,"locale"),disabled:S,disabledDate:Ne(e,"disabledDate"),generateConfig:Ne(e,"generateConfig")},s),[B,N]=wt(!1,{value:Ne(e,"open"),defaultValue:e.defaultOpen,postState:Pe=>S.value[$.value]?!1:Pe,onChange:Pe=>{var ze;(ze=e.onOpenChange)===null||ze===void 0||ze.call(e,Pe),!Pe&&w.value&&w.value.onClose&&w.value.onClose()}}),k=P(()=>B.value&&$.value===0),L=P(()=>B.value&&$.value===1),j=ee(0),G=ee(0),U=ee(0),{width:K}=ha(u);ue([B,K],()=>{!B.value&&u.value&&(U.value=K.value)});const{width:Y}=ha(c),{width:Q}=ha(h),{width:J}=ha(d),{width:Z}=ha(v);ue([$,B,Y,Q,J,Z,()=>e.direction],()=>{G.value=0,$.value?d.value&&v.value&&(G.value=J.value+Z.value,Y.value&&Q.value&&G.value>Y.value-Q.value-(e.direction==="rtl"||h.value.offsetLeft>G.value?0:h.value.offsetLeft)&&(j.value=G.value)):$.value===0&&(j.value=0)},{immediate:!0});const W=ee();function X(Pe,ze){if(Pe)clearTimeout(W.value),s.value[ze]=!0,C(ze),N(Pe),B.value||M(null,ze);else if($.value===ze){N(Pe);const Fe=s.value;W.value=setTimeout(()=>{Fe===s.value&&(s.value={})})}}function re(Pe){X(!0,Pe),setTimeout(()=>{const ze=[y,m][Pe];ze.value&&ze.value.focus()},0)}function ae(Pe,ze){let Fe=Pe,ht=dt(Fe,0),Nt=dt(Fe,1);const{generateConfig:Mt,locale:pn,picker:Ut,order:uo,onCalendarChange:Pn,allowEmpty:Fn,onChange:St,showTime:Jn}=e;ht&&Nt&&Mt.isAfter(ht,Nt)&&(Ut==="week"&&!t4(Mt,pn.locale,ht,Nt)||Ut==="quarter"&&!e4(Mt,ht,Nt)||Ut!=="week"&&Ut!=="quarter"&&Ut!=="time"&&!(Jn?wl(Mt,ht,Nt):No(Mt,ht,Nt))?(ze===0?(Fe=[ht,null],Nt=null):(ht=null,Fe=[null,Nt]),s.value={[ze]:!0}):(Ut!=="time"||uo!==!1)&&(Fe=_y(Fe,Mt))),z(Fe);const kn=Fe&&Fe[0]?Qt(Fe[0],{generateConfig:Mt,locale:pn,format:b.value[0]}):"",Uo=Fe&&Fe[1]?Qt(Fe[1],{generateConfig:Mt,locale:pn,format:b.value[0]}):"";Pn&&Pn(Fe,[kn,Uo],{range:ze===0?"start":"end"});const Yo=Dy(ht,0,S.value,Fn),eo=Dy(Nt,1,S.value,Fn);(Fe===null||Yo&&eo)&&(x(Fe),St&&(!wl(Mt,dt(O.value,0),ht)||!wl(Mt,dt(O.value,1),Nt))&&St(Fe,[kn,Uo]));let to=null;ze===0&&!S.value[1]?to=1:ze===1&&!S.value[0]&&(to=0),to!==null&&to!==$.value&&(!s.value[to]||!dt(Fe,to))&&dt(Fe,ze)?re(to):X(!1,ze)}const pe=Pe=>B&&w.value&&w.value.onKeydown?w.value.onKeydown(Pe):!1,ye={formatList:b,generateConfig:Ne(e,"generateConfig"),locale:Ne(e,"locale")},[de,me]=Js(P(()=>dt(_.value,0)),ye),[ie,se]=Js(P(()=>dt(_.value,1)),ye),be=(Pe,ze)=>{const Fe=n4(Pe,{locale:e.locale,formatList:b.value,generateConfig:e.generateConfig});Fe&&!(ze===0?D:A)(Fe)&&(z(jn(_.value,Fe,ze)),M(Fe,ze))},[we,ve,Ce]=Xf({valueTexts:de,onTextChange:Pe=>be(Pe,0)}),[Te,le,oe]=Xf({valueTexts:ie,onTextChange:Pe=>be(Pe,1)}),[fe,Oe]=pt(null),[Ie,Ae]=pt(null),[ge,he,$e]=Uf(we,ye),[Ee,Re,_e]=Uf(Te,ye),Be=Pe=>{Ae(jn(_.value,Pe,$.value)),$.value===0?he(Pe):Re(Pe)},Ye=()=>{Ae(jn(_.value,null,$.value)),$.value===0?$e():_e()},at=(Pe,ze)=>({forwardKeydown:pe,onBlur:Fe=>{var ht;(ht=e.onBlur)===null||ht===void 0||ht.call(e,Fe)},isClickOutside:Fe=>!Jw([c.value,d.value,p.value,u.value],Fe),onFocus:Fe=>{var ht;C(Pe),(ht=e.onFocus)===null||ht===void 0||ht.call(e,Fe)},triggerOpen:Fe=>{X(Fe,Pe)},onSubmit:()=>{if(!_.value||e.disabledDate&&e.disabledDate(_.value[Pe]))return!1;ae(_.value,Pe),ze()},onCancel:()=>{X(!1,Pe),z(O.value),ze()}}),[nt,{focused:it,typing:ct}]=Gf(g(g({},at(0,Ce)),{blurToCancel:r,open:k,value:we,onKeydown:(Pe,ze)=>{var Fe;(Fe=e.onKeydown)===null||Fe===void 0||Fe.call(e,Pe,ze)}})),[Dt,{focused:Bt,typing:zt}]=Gf(g(g({},at(1,oe)),{blurToCancel:r,open:L,value:Te,onKeydown:(Pe,ze)=>{var Fe;(Fe=e.onKeydown)===null||Fe===void 0||Fe.call(e,Pe,ze)}})),Et=Pe=>{var ze;(ze=e.onClick)===null||ze===void 0||ze.call(e,Pe),!B.value&&!y.value.contains(Pe.target)&&!m.value.contains(Pe.target)&&(S.value[0]?S.value[1]||re(1):re(0))},en=Pe=>{var ze;(ze=e.onMousedown)===null||ze===void 0||ze.call(e,Pe),B.value&&(it.value||Bt.value)&&!y.value.contains(Pe.target)&&!m.value.contains(Pe.target)&&Pe.preventDefault()},dn=P(()=>{var Pe;return!((Pe=O.value)===null||Pe===void 0)&&Pe[0]?Qt(O.value[0],{locale:e.locale,format:"YYYYMMDDHHmmss",generateConfig:e.generateConfig}):""}),Nn=P(()=>{var Pe;return!((Pe=O.value)===null||Pe===void 0)&&Pe[1]?Qt(O.value[1],{locale:e.locale,format:"YYYYMMDDHHmmss",generateConfig:e.generateConfig}):""});ue([B,de,ie],()=>{B.value||(z(O.value),!de.value.length||de.value[0]===""?ve(""):me.value!==we.value&&Ce(),!ie.value.length||ie.value[0]===""?le(""):se.value!==Te.value&&oe())}),ue([dn,Nn],()=>{z(O.value)}),o({focus:()=>{y.value&&y.value.focus()},blur:()=>{y.value&&y.value.blur(),m.value&&m.value.blur()}});const Zn=P(()=>B.value&&Ie.value&&Ie.value[0]&&Ie.value[1]&&e.generateConfig.isAfter(Ie.value[1],Ie.value[0])?Ie.value:null);function fn(){let Pe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{generateConfig:Fe,showTime:ht,dateRender:Nt,direction:Mt,disabledTime:pn,prefixCls:Ut,locale:uo}=e;let Pn=ht;if(ht&&typeof ht=="object"&&ht.defaultValue){const St=ht.defaultValue;Pn=g(g({},ht),{defaultValue:dt(St,$.value)||void 0})}let Fn=null;return Nt&&(Fn=St=>{let{current:Jn,today:kn}=St;return Nt({current:Jn,today:kn,info:{range:$.value?"end":"start"}})}),f(FL,{value:{inRange:!0,panelPosition:Pe,rangedValue:fe.value||_.value,hoverRangedValue:Zn.value}},{default:()=>[f(u4,F(F(F({},e),ze),{},{dateRender:Fn,showTime:Pn,mode:R.value[$.value],generateConfig:Fe,style:void 0,direction:Mt,disabledDate:$.value===0?D:A,disabledTime:St=>pn?pn(St,$.value===0?"start":"end"):!1,class:ne({[`${Ut}-panel-focused`]:$.value===0?!ct.value:!zt.value}),value:dt(_.value,$.value),locale:uo,tabIndex:-1,onPanelChange:(St,Jn)=>{$.value===0&&$e(!0),$.value===1&&_e(!0),T(jn(R.value,Jn,$.value),jn(_.value,St,$.value));let kn=St;Pe==="right"&&R.value[$.value]===Jn&&(kn=Ma(kn,Jn,Fe,-1)),M(kn,$.value)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:$.value===0?dt(_.value,1):dt(_.value,0)}),null)]})}const hr=(Pe,ze)=>{const Fe=jn(_.value,Pe,$.value);ze==="submit"||ze!=="key"&&!r.value?(ae(Fe,$.value),$.value===0?$e():_e()):z(Fe)};return xg({operationRef:w,hideHeader:P(()=>e.picker==="time"),onDateMouseenter:Be,onDateMouseleave:Ye,hideRanges:P(()=>!0),onSelect:hr,open:B}),()=>{const{prefixCls:Pe="rc-picker",id:ze,popupStyle:Fe,dropdownClassName:ht,transitionName:Nt,dropdownAlign:Mt,getPopupContainer:pn,generateConfig:Ut,locale:uo,placeholder:Pn,autofocus:Fn,picker:St="date",showTime:Jn,separator:kn="~",disabledDate:Uo,panelRender:Yo,allowClear:eo,suffixIcon:nl,clearIcon:to,inputReadOnly:Cu,renderExtraFooter:_6,onMouseenter:D6,onMouseleave:A6,onMouseup:R6,onOk:jh,components:B6,direction:da,autocomplete:Vh="off"}=e,N6=da==="rtl"?{right:`${G.value}px`}:{left:`${G.value}px`};function F6(){let vn;const qo=s4(Pe,R.value[$.value],_6),Xh=c4({prefixCls:Pe,components:B6,needConfirmButton:r.value,okDisabled:!dt(_.value,$.value)||Uo&&Uo(_.value[$.value]),locale:uo,onOk:()=>{dt(_.value,$.value)&&(ae(_.value,$.value),jh&&jh(_.value))}});if(St!=="time"&&!Jn){const Qo=$.value===0?I.value:E.value,z6=Ma(Qo,St,Ut),Pu=R.value[$.value]===St,Uh=fn(Pu?"left":!1,{pickerValue:Qo,onPickerValueChange:Iu=>{M(Iu,$.value)}}),Yh=fn("right",{pickerValue:z6,onPickerValueChange:Iu=>{M(Ma(Iu,St,Ut,-1),$.value)}});da==="rtl"?vn=f(qe,null,[Yh,Pu&&Uh]):vn=f(qe,null,[Uh,Pu&&Yh])}else vn=fn();let Ou=f("div",{class:`${Pe}-panel-layout`},[f(f4,{prefixCls:Pe,presets:i.value,onClick:Qo=>{ae(Qo,null),X(!1,$.value)},onHover:Qo=>{Oe(Qo)}},null),f("div",null,[f("div",{class:`${Pe}-panels`},[vn]),(qo||Xh)&&f("div",{class:`${Pe}-footer`},[qo,Xh])])]);return Yo&&(Ou=Yo(Ou)),f("div",{class:`${Pe}-panel-container`,style:{marginLeft:`${j.value}px`},ref:c,onMousedown:Qo=>{Qo.preventDefault()}},[Ou])}const k6=f("div",{class:ne(`${Pe}-range-wrapper`,`${Pe}-${St}-range-wrapper`),style:{minWidth:`${U.value}px`}},[f("div",{ref:h,class:`${Pe}-range-arrow`,style:N6},null),F6()]);let Wh;nl&&(Wh=f("span",{class:`${Pe}-suffix`},[nl]));let Kh;eo&&(dt(O.value,0)&&!S.value[0]||dt(O.value,1)&&!S.value[1])&&(Kh=f("span",{onMousedown:vn=>{vn.preventDefault(),vn.stopPropagation()},onMouseup:vn=>{vn.preventDefault(),vn.stopPropagation();let qo=O.value;S.value[0]||(qo=jn(qo,null,0)),S.value[1]||(qo=jn(qo,null,1)),ae(qo,null),X(!1,$.value)},class:`${Pe}-clear`},[to||f("span",{class:`${Pe}-clear-btn`},null)]));const Gh={size:Zw(St,b.value[0],Ut)};let xu=0,wu=0;d.value&&p.value&&v.value&&($.value===0?wu=d.value.offsetWidth:(xu=G.value,wu=p.value.offsetWidth));const L6=da==="rtl"?{right:`${xu}px`}:{left:`${xu}px`};return f("div",F({ref:u,class:ne(Pe,`${Pe}-range`,n.class,{[`${Pe}-disabled`]:S.value[0]&&S.value[1],[`${Pe}-focused`]:$.value===0?it.value:Bt.value,[`${Pe}-rtl`]:da==="rtl"}),style:n.style,onClick:Et,onMouseenter:D6,onMouseleave:A6,onMousedown:en,onMouseup:R6},l4(e)),[f("div",{class:ne(`${Pe}-input`,{[`${Pe}-input-active`]:$.value===0,[`${Pe}-input-placeholder`]:!!ge.value}),ref:d},[f("input",F(F(F({id:ze,disabled:S.value[0],readonly:Cu||typeof b.value[0]=="function"||!ct.value,value:ge.value||we.value,onInput:vn=>{ve(vn.target.value)},autofocus:Fn,placeholder:dt(Pn,0)||"",ref:y},nt.value),Gh),{},{autocomplete:Vh}),null)]),f("div",{class:`${Pe}-range-separator`,ref:v},[kn]),f("div",{class:ne(`${Pe}-input`,{[`${Pe}-input-active`]:$.value===1,[`${Pe}-input-placeholder`]:!!Ee.value}),ref:p},[f("input",F(F(F({disabled:S.value[1],readonly:Cu||typeof b.value[0]=="function"||!zt.value,value:Ee.value||Te.value,onInput:vn=>{le(vn.target.value)},placeholder:dt(Pn,1)||"",ref:m},Dt.value),Gh),{},{autocomplete:Vh}),null)]),f("div",{class:`${Pe}-active-bar`,style:g(g({},L6),{width:`${wu}px`,position:"absolute"})},null),Wh,Kh,f(d4,{visible:B.value,popupStyle:Fe,prefixCls:Pe,dropdownClassName:ht,dropdownAlign:Mt,getPopupContainer:pn,transitionName:Nt,range:!0,direction:da},{default:()=>[f("div",{style:{pointerEvents:"none",position:"absolute",top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>k6})])}}})}const lz=rz(),az=lz;var iz=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.checked,()=>{l.value=e.checked}),r({focus(){var c;(c=a.value)===null||c===void 0||c.focus()},blur(){var c;(c=a.value)===null||c===void 0||c.blur()}});const i=ee(),s=c=>{if(e.disabled)return;e.checked===void 0&&(l.value=c.target.checked),c.shiftKey=i.value;const d={target:g(g({},e),{checked:c.target.checked}),stopPropagation(){c.stopPropagation()},preventDefault(){c.preventDefault()},nativeEvent:c};e.checked!==void 0&&(a.value.checked=!!e.checked),o("change",d),i.value=!1},u=c=>{o("click",c),i.value=c.shiftKey};return()=>{const{prefixCls:c,name:d,id:p,type:v,disabled:y,readonly:m,tabindex:h,autofocus:b,value:$,required:C}=e,w=iz(e,["prefixCls","name","id","type","disabled","readonly","tabindex","autofocus","value","required"]),{class:S,onFocus:O,onBlur:x,onKeydown:I,onKeypress:E,onKeyup:M}=n,_=g(g({},w),n),z=Object.keys(_).reduce((T,D)=>((D.startsWith("data-")||D.startsWith("aria-")||D==="role")&&(T[D]=_[D]),T),{}),R=ne(c,S,{[`${c}-checked`]:l.value,[`${c}-disabled`]:y}),H=g(g({name:d,id:p,type:v,readonly:m,disabled:y,tabindex:h,class:`${c}-input`,checked:!!l.value,autofocus:b,value:$},z),{onChange:s,onClick:u,onFocus:O,onBlur:x,onKeydown:I,onKeypress:E,onKeyup:M,required:C});return f("span",{class:R},[f("input",F({ref:a},H),null),f("span",{class:`${c}-inner`},null)])}}}),h4=Symbol("radioGroupContextKey"),cz=e=>{We(h4,e)},uz=()=>Ke(h4,void 0),b4=Symbol("radioOptionTypeContextKey"),dz=e=>{We(b4,e)},fz=()=>Ke(b4,void 0),pz=new Ue("antRadioEffect",{"0%":{transform:"scale(1)",opacity:.5},"100%":{transform:"scale(1.6)",opacity:0}}),vz=e=>{const{componentCls:t,antCls:n}=e,o=`${t}-group`;return{[o]:g(g({},Qe(e)),{display:"inline-block",fontSize:0,[`&${o}-rtl`]:{direction:"rtl"},[`${n}-badge ${n}-badge-count`]:{zIndex:1},[`> ${n}-badge:not(:first-child) > ${n}-button-wrapper`]:{borderInlineStart:"none"}})}},gz=e=>{const{componentCls:t,radioWrapperMarginRight:n,radioCheckedColor:o,radioSize:r,motionDurationSlow:l,motionDurationMid:a,motionEaseInOut:i,motionEaseInOutCirc:s,radioButtonBg:u,colorBorder:c,lineWidth:d,radioDotSize:p,colorBgContainerDisabled:v,colorTextDisabled:y,paddingXS:m,radioDotDisabledColor:h,lineType:b,radioDotDisabledSize:$,wireframe:C,colorWhite:w}=e,S=`${t}-inner`;return{[`${t}-wrapper`]:g(g({},Qe(e)),{position:"relative",display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:n,cursor:"pointer",[`&${t}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:e.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},[`${t}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${d}px ${b} ${o}`,borderRadius:"50%",visibility:"hidden",animationName:pz,animationDuration:l,animationTimingFunction:i,animationFillMode:"both",content:'""'},[t]:g(g({},Qe(e)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center"}),[`${t}-wrapper:hover &, + &:hover ${S}`]:{borderColor:o},[`${t}-input:focus-visible + ${S}`]:g({},Lo(e)),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:"visible"},[`${t}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:r,height:r,marginBlockStart:r/-2,marginInlineStart:r/-2,backgroundColor:C?o:w,borderBlockStart:0,borderInlineStart:0,borderRadius:r,transform:"scale(0)",opacity:0,transition:`all ${l} ${s}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:r,height:r,backgroundColor:u,borderColor:c,borderStyle:"solid",borderWidth:d,borderRadius:"50%",transition:`all ${a}`},[`${t}-input`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,insetBlockEnd:0,insetInlineStart:0,zIndex:1,cursor:"pointer",opacity:0},[`${t}-checked`]:{[S]:{borderColor:o,backgroundColor:C?u:o,"&::after":{transform:`scale(${p/r})`,opacity:1,transition:`all ${l} ${s}`}}},[`${t}-disabled`]:{cursor:"not-allowed",[S]:{backgroundColor:v,borderColor:c,cursor:"not-allowed","&::after":{backgroundColor:h}},[`${t}-input`]:{cursor:"not-allowed"},[`${t}-disabled + span`]:{color:y,cursor:"not-allowed"},[`&${t}-checked`]:{[S]:{"&::after":{transform:`scale(${$/r})`}}}},[`span${t} + *`]:{paddingInlineStart:m,paddingInlineEnd:m}})}},mz=e=>{const{radioButtonColor:t,controlHeight:n,componentCls:o,lineWidth:r,lineType:l,colorBorder:a,motionDurationSlow:i,motionDurationMid:s,radioButtonPaddingHorizontal:u,fontSize:c,radioButtonBg:d,fontSizeLG:p,controlHeightLG:v,controlHeightSM:y,paddingXS:m,borderRadius:h,borderRadiusSM:b,borderRadiusLG:$,radioCheckedColor:C,radioButtonCheckedBg:w,radioButtonHoverColor:S,radioButtonActiveColor:O,radioSolidCheckedColor:x,colorTextDisabled:I,colorBgContainerDisabled:E,radioDisabledButtonCheckedColor:M,radioDisabledButtonCheckedBg:_}=e;return{[`${o}-button-wrapper`]:{position:"relative",display:"inline-block",height:n,margin:0,paddingInline:u,paddingBlock:0,color:t,fontSize:c,lineHeight:`${n-r*2}px`,background:d,border:`${r}px ${l} ${a}`,borderBlockStartWidth:r+.02,borderInlineStartWidth:0,borderInlineEndWidth:r,cursor:"pointer",transition:[`color ${s}`,`background ${s}`,`border-color ${s}`,`box-shadow ${s}`].join(","),a:{color:t},[`> ${o}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:-r,insetInlineStart:-r,display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:r,paddingInline:0,backgroundColor:a,transition:`background-color ${i}`,content:'""'}},"&:first-child":{borderInlineStart:`${r}px ${l} ${a}`,borderStartStartRadius:h,borderEndStartRadius:h},"&:last-child":{borderStartEndRadius:h,borderEndEndRadius:h},"&:first-child:last-child":{borderRadius:h},[`${o}-group-large &`]:{height:v,fontSize:p,lineHeight:`${v-r*2}px`,"&:first-child":{borderStartStartRadius:$,borderEndStartRadius:$},"&:last-child":{borderStartEndRadius:$,borderEndEndRadius:$}},[`${o}-group-small &`]:{height:y,paddingInline:m-r,paddingBlock:0,lineHeight:`${y-r*2}px`,"&:first-child":{borderStartStartRadius:b,borderEndStartRadius:b},"&:last-child":{borderStartEndRadius:b,borderEndEndRadius:b}},"&:hover":{position:"relative",color:C},"&:has(:focus-visible)":g({},Lo(e)),[`${o}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${o}-button-wrapper-disabled)`]:{zIndex:1,color:C,background:w,borderColor:C,"&::before":{backgroundColor:C},"&:first-child":{borderColor:C},"&:hover":{color:S,borderColor:S,"&::before":{backgroundColor:S}},"&:active":{color:O,borderColor:O,"&::before":{backgroundColor:O}}},[`${o}-group-solid &-checked:not(${o}-button-wrapper-disabled)`]:{color:x,background:C,borderColor:C,"&:hover":{color:x,background:S,borderColor:S},"&:active":{color:x,background:O,borderColor:O}},"&-disabled":{color:I,backgroundColor:E,borderColor:a,cursor:"not-allowed","&:first-child, &:hover":{color:I,backgroundColor:E,borderColor:a}},[`&-disabled${o}-button-wrapper-checked`]:{color:M,backgroundColor:_,borderColor:a,boxShadow:"none"}}}},y4=Je("Radio",e=>{const{padding:t,lineWidth:n,controlItemBgActiveDisabled:o,colorTextDisabled:r,colorBgContainer:l,fontSizeLG:a,controlOutline:i,colorPrimaryHover:s,colorPrimaryActive:u,colorText:c,colorPrimary:d,marginXS:p,controlOutlineWidth:v,colorTextLightSolid:y,wireframe:m}=e,h=`0 0 0 ${v}px ${i}`,b=h,$=a,C=4,w=$-C*2,S=m?w:$-(C+n)*2,O=d,x=c,I=s,E=u,M=t-n,R=Le(e,{radioFocusShadow:h,radioButtonFocusShadow:b,radioSize:$,radioDotSize:S,radioDotDisabledSize:w,radioCheckedColor:O,radioDotDisabledColor:r,radioSolidCheckedColor:y,radioButtonBg:l,radioButtonCheckedBg:l,radioButtonColor:x,radioButtonHoverColor:I,radioButtonActiveColor:E,radioButtonPaddingHorizontal:M,radioDisabledButtonCheckedBg:o,radioDisabledButtonCheckedColor:r,radioWrapperMarginRight:p});return[vz(R),gz(R),mz(R)]});var hz=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,checked:xe(),disabled:xe(),isGroup:xe(),value:V.any,name:String,id:String,autofocus:xe(),onChange:ce(),onFocus:ce(),onBlur:ce(),onClick:ce(),"onUpdate:checked":ce(),"onUpdate:value":ce()}),hn=te({compatConfig:{MODE:3},name:"ARadio",inheritAttrs:!1,props:$4(),setup(e,t){let{emit:n,expose:o,slots:r,attrs:l}=t;const a=Lt(),i=rn.useInject(),s=fz(),u=uz(),c=Cn(),d=P(()=>{var I;return(I=m.value)!==null&&I!==void 0?I:c.value}),p=ee(),{prefixCls:v,direction:y,disabled:m}=Me("radio",e),h=P(()=>(u==null?void 0:u.optionType.value)==="button"||s==="button"?`${v.value}-button`:v.value),b=Cn(),[$,C]=y4(v);o({focus:()=>{p.value.focus()},blur:()=>{p.value.blur()}});const O=I=>{const E=I.target.checked;n("update:checked",E),n("update:value",E),n("change",I),a.onFieldChange()},x=I=>{n("change",I),u&&u.onChange&&u.onChange(I)};return()=>{var I;const E=u,{prefixCls:M,id:_=a.id.value}=e,z=hz(e,["prefixCls","id"]),R=g(g({prefixCls:h.value,id:_},tt(z,["onUpdate:checked","onUpdate:value"])),{disabled:(I=m.value)!==null&&I!==void 0?I:b.value});E?(R.name=E.name.value,R.onChange=x,R.checked=e.value===E.value.value,R.disabled=d.value||E.disabled.value):R.onChange=O;const H=ne({[`${h.value}-wrapper`]:!0,[`${h.value}-wrapper-checked`]:R.checked,[`${h.value}-wrapper-disabled`]:R.disabled,[`${h.value}-wrapper-rtl`]:y.value==="rtl",[`${h.value}-wrapper-in-form-item`]:i.isFormItemInput},l.class,C.value);return $(f("label",F(F({},l),{},{class:H}),[f(m4,F(F({},R),{},{type:"radio",ref:p}),null),r.default&&f("span",null,[r.default()])]))}}}),bz=()=>({prefixCls:String,value:V.any,size:je(),options:st(),disabled:xe(),name:String,buttonStyle:je("outline"),id:String,optionType:je("default"),onChange:ce(),"onUpdate:value":ce()}),yz=te({compatConfig:{MODE:3},name:"ARadioGroup",inheritAttrs:!1,props:bz(),setup(e,t){let{slots:n,emit:o,attrs:r}=t;const l=Lt(),{prefixCls:a,direction:i,size:s}=Me("radio",e),[u,c]=y4(a),d=ee(e.value),p=ee(!1);return ue(()=>e.value,y=>{d.value=y,p.value=!1}),cz({onChange:y=>{const m=d.value,{value:h}=y.target;"value"in e||(d.value=h),!p.value&&h!==m&&(p.value=!0,o("update:value",h),o("change",y),l.onFieldChange()),ot(()=>{p.value=!1})},value:d,disabled:P(()=>e.disabled),name:P(()=>e.name),optionType:P(()=>e.optionType)}),()=>{var y;const{options:m,buttonStyle:h,id:b=l.id.value}=e,$=`${a.value}-group`,C=ne($,`${$}-${h}`,{[`${$}-${s.value}`]:s.value,[`${$}-rtl`]:i.value==="rtl"},r.class,c.value);let w=null;return m&&m.length>0?w=m.map(S=>{if(typeof S=="string"||typeof S=="number")return f(hn,{key:S,prefixCls:a.value,disabled:e.disabled,value:S,checked:d.value===S},{default:()=>[S]});const{value:O,disabled:x,label:I}=S;return f(hn,{key:`radio-group-value-options-${O}`,prefixCls:a.value,disabled:x||e.disabled,value:O,checked:d.value===O},{default:()=>[I]})}):w=(y=n.default)===null||y===void 0?void 0:y.call(n),u(f("div",F(F({},r),{},{class:C,id:b}),[w]))}}}),$z=te({compatConfig:{MODE:3},name:"ARadioButton",inheritAttrs:!1,props:$4(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r}=Me("radio",e);return dz("button"),()=>{var l;return f(hn,F(F(F({},o),e),{},{prefixCls:r.value}),{default:()=>[(l=n.default)===null||l===void 0?void 0:l.call(n)]})}}});hn.Group=yz;hn.Button=$z;hn.install=function(e){return e.component(hn.name,hn),e.component(hn.Group.name,hn.Group),e.component(hn.Button.name,hn.Button),e};const S4=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),ia=e=>({borderColor:e.inputBorderHoverColor,borderInlineEndWidth:e.lineWidth}),Gr=e=>({borderColor:e.inputBorderHoverColor,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`,borderInlineEndWidth:e.lineWidth,outline:0}),C4=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"&:hover":g({},ia(Le(e,{inputBorderHoverColor:e.colorBorder})))}),x4=e=>{const{inputPaddingVerticalLG:t,fontSizeLG:n,lineHeightLG:o,borderRadiusLG:r,inputPaddingHorizontalLG:l}=e;return{padding:`${t}px ${l}px`,fontSize:n,lineHeight:o,borderRadius:r}},Hg=e=>({padding:`${e.inputPaddingVerticalSM}px ${e.controlPaddingHorizontalSM-1}px`,borderRadius:e.borderRadiusSM}),Qc=(e,t)=>{const{componentCls:n,colorError:o,colorWarning:r,colorErrorOutline:l,colorWarningOutline:a,colorErrorBorderHover:i,colorWarningBorderHover:s}=e;return{[`&-status-error:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:o,"&:hover":{borderColor:i},"&:focus, &-focused":g({},Gr(Le(e,{inputBorderActiveColor:o,inputBorderHoverColor:o,controlOutline:l}))),[`${n}-prefix`]:{color:o}},[`&-status-warning:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:r,"&:hover":{borderColor:s},"&:focus, &-focused":g({},Gr(Le(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:a}))),[`${n}-prefix`]:{color:r}}}},sa=e=>g(g({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${e.inputPaddingVertical}px ${e.inputPaddingHorizontal}px`,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,backgroundColor:e.colorBgContainer,backgroundImage:"none",borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:e.colorBorder,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},S4(e.colorTextPlaceholder)),{"&:hover":g({},ia(e)),"&:focus, &-focused":g({},Gr(e)),"&-disabled, &[disabled]":g({},C4(e)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:"transparent",border:"none",boxShadow:"none"}},"textarea&":{maxWidth:"100%",height:"auto",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:"bottom",transition:`all ${e.motionDurationSlow}, height 0s`,resize:"vertical"},"&-lg":g({},x4(e)),"&-sm":g({},Hg(e)),"&-rtl":{direction:"rtl"},"&-textarea-rtl":{direction:"rtl"}}),w4=e=>{const{componentCls:t,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:g({},x4(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:g({},Hg(e)),[`> ${t}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${t}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${e.inputPaddingHorizontal}px`,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,textAlign:"center",backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`-${e.inputPaddingVertical+1}px -${e.inputPaddingHorizontal}px`,[`&${n}-select-single:not(${n}-select-customize-input)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${e.lineWidth}px ${e.lineType} transparent`,boxShadow:"none"}},"&-open, &-focused":{[`${n}-select-selector`]:{color:e.colorPrimary}}},[`${n}-cascader-picker`]:{margin:`-9px -${e.inputPaddingHorizontal}px`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${t}`]:{float:"inline-start",width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:g(g({display:"block"},so()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:"inline-block",float:"none",verticalAlign:"top",borderRadius:0},[`& > ${t}-affix-wrapper`]:{display:"inline-flex"},[`& > ${n}-picker-range`]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:-e.lineWidth,borderInlineEndWidth:e.lineWidth},[`${t}`]:{float:"none"},[`& > ${n}-select > ${n}-select-selector, + & > ${n}-select-auto-complete ${t}, + & > ${n}-cascader-picker ${t}, + & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${n}-select:first-child > ${n}-select-selector, + & > ${n}-select-auto-complete:first-child ${t}, + & > ${n}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, + & > ${n}-select:last-child > ${n}-select-selector, + & > ${n}-cascader-picker:last-child ${t}, + & > ${n}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${t}`]:{verticalAlign:"top"},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:-e.lineWidth,[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}}),[`&&-sm ${n}-btn`]:{fontSize:e.fontSizeSM,height:e.controlHeightSM,lineHeight:"normal"},[`&&-lg ${n}-btn`]:{fontSize:e.fontSizeLG,height:e.controlHeightLG,lineHeight:"normal"},[`&&-lg ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightLG}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightLG-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightLG}px`}},[`&&-sm ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightSM}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightSM-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightSM}px`}}}},Sz=e=>{const{componentCls:t,controlHeightSM:n,lineWidth:o}=e,r=16,l=(n-o*2-r)/2;return{[t]:g(g(g(g({},Qe(e)),sa(e)),Qc(e,t)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:l,paddingBottom:l}}})}},Cz=e=>{const{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextTertiary},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${e.inputAffixPadding}px`}},"&-textarea-with-clear-btn":{padding:"0 !important",border:"0 !important",[`${t}-clear-icon`]:{position:"absolute",insetBlockStart:e.paddingXS,insetInlineEnd:e.paddingXS,zIndex:1}}}},xz=e=>{const{componentCls:t,inputAffixPadding:n,colorTextDescription:o,motionDurationSlow:r,colorIcon:l,colorIconHover:a,iconCls:i}=e;return{[`${t}-affix-wrapper`]:g(g(g(g(g({},sa(e)),{display:"inline-flex",[`&:not(${t}-affix-wrapper-disabled):hover`]:g(g({},ia(e)),{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:"transparent"}},[`> input${t}`]:{padding:0,fontSize:"inherit",border:"none",borderRadius:0,outline:"none","&:focus":{boxShadow:"none !important"}},"&::before":{width:0,visibility:"hidden",content:'"\\a0"'},[`${t}`]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:o},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),Cz(e)),{[`${i}${t}-password-icon`]:{color:l,cursor:"pointer",transition:`all ${r}`,"&:hover":{color:a}}}),Qc(e,`${t}-affix-wrapper`))}},wz=e=>{const{componentCls:t,colorError:n,colorSuccess:o,borderRadiusLG:r,borderRadiusSM:l}=e;return{[`${t}-group`]:g(g(g({},Qe(e)),w4(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":{display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:r}},"&-sm":{[`${t}-group-addon`]:{borderRadius:l}},"&-status-error":{[`${t}-group-addon`]:{color:n,borderColor:n}},"&-status-warning":{[`${t}-group-addon:last-child`]:{color:o,borderColor:o}}}})}},Oz=e=>{const{componentCls:t,antCls:n}=e,o=`${t}-search`;return{[o]:{[`${t}`]:{"&:hover, &:focus":{borderColor:e.colorPrimaryHover,[`+ ${t}-group-addon ${o}-button:not(${n}-btn-primary)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{borderRadius:0},[`${t}-lg`]:{lineHeight:e.lineHeightLG-2e-4},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${o}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius,borderEndStartRadius:0},[`${o}-button:not(${n}-btn-primary)`]:{color:e.colorTextDescription,"&:hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${n}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${o}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${o}-button`]:{height:e.controlHeightLG},[`&-small ${o}-button`]:{height:e.controlHeightSM},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:-e.lineWidth,borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + > ${t}, + ${t}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}};function bi(e){return Le(e,{inputAffixPadding:e.paddingXXS,inputPaddingVertical:Math.max(Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,3),inputPaddingVerticalLG:Math.ceil((e.controlHeightLG-e.fontSizeLG*e.lineHeightLG)/2*10)/10-e.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((e.controlHeightSM-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,0),inputPaddingHorizontal:e.paddingSM-e.lineWidth,inputPaddingHorizontalSM:e.paddingXS-e.lineWidth,inputPaddingHorizontalLG:e.controlPaddingHorizontal-e.lineWidth,inputBorderHoverColor:e.colorPrimaryHover,inputBorderActiveColor:e.colorPrimaryHover})}const Pz=e=>{const{componentCls:t,inputPaddingHorizontal:n,paddingLG:o}=e,r=`${t}-textarea`;return{[r]:{position:"relative",[`${r}-suffix`]:{position:"absolute",top:0,insetInlineEnd:n,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto"},"&-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating":{[`&${r}-has-feedback`]:{[`${t}`]:{paddingInlineEnd:o}}},"&-show-count":{[`> ${t}`]:{height:"100%"},"&::after":{color:e.colorTextDescription,whiteSpace:"nowrap",content:"attr(data-count)",pointerEvents:"none",float:"right"}},"&-rtl":{"&::after":{float:"left"}}}}},jg=Je("Input",e=>{const t=bi(e);return[Sz(t),Pz(t),xz(t),wz(t),Oz(t),ra(t)]}),ad=(e,t,n,o)=>{const{lineHeight:r}=e,l=Math.floor(n*r)+2,a=Math.max((t-l)/2,0),i=Math.max(t-l-a,0);return{padding:`${a}px ${o}px ${i}px`}},Iz=e=>{const{componentCls:t,pickerCellCls:n,pickerCellInnerCls:o,pickerPanelCellHeight:r,motionDurationSlow:l,borderRadiusSM:a,motionDurationMid:i,controlItemBgHover:s,lineWidth:u,lineType:c,colorPrimary:d,controlItemBgActive:p,colorTextLightSolid:v,controlHeightSM:y,pickerDateHoverRangeBorderColor:m,pickerCellBorderGap:h,pickerBasicCellHoverWithRangeColor:b,pickerPanelCellWidth:$,colorTextDisabled:C,colorBgContainerDisabled:w}=e;return{"&::before":{position:"absolute",top:"50%",insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:r,transform:"translateY(-50%)",transition:`all ${l}`,content:'""'},[o]:{position:"relative",zIndex:2,display:"inline-block",minWidth:r,height:r,lineHeight:`${r}px`,borderRadius:a,transition:`background ${i}, border ${i}`},[`&:hover:not(${n}-in-view), + &:hover:not(${n}-selected):not(${n}-range-start):not(${n}-range-end):not(${n}-range-hover-start):not(${n}-range-hover-end)`]:{[o]:{background:s}},[`&-in-view${n}-today ${o}`]:{"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${u}px ${c} ${d}`,borderRadius:a,content:'""'}},[`&-in-view${n}-in-range`]:{position:"relative","&::before":{background:p}},[`&-in-view${n}-selected ${o}, + &-in-view${n}-range-start ${o}, + &-in-view${n}-range-end ${o}`]:{color:v,background:d},[`&-in-view${n}-range-start:not(${n}-range-start-single), + &-in-view${n}-range-end:not(${n}-range-end-single)`]:{"&::before":{background:p}},[`&-in-view${n}-range-start::before`]:{insetInlineStart:"50%"},[`&-in-view${n}-range-end::before`]:{insetInlineEnd:"50%"},[`&-in-view${n}-range-hover-start:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end), + &-in-view${n}-range-hover-end:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end), + &-in-view${n}-range-hover-start${n}-range-start-single, + &-in-view${n}-range-hover-start${n}-range-start${n}-range-end${n}-range-end-near-hover, + &-in-view${n}-range-hover-end${n}-range-start${n}-range-end${n}-range-start-near-hover, + &-in-view${n}-range-hover-end${n}-range-end-single, + &-in-view${n}-range-hover:not(${n}-in-range)`]:{"&::after":{position:"absolute",top:"50%",zIndex:0,height:y,borderTop:`${u}px dashed ${m}`,borderBottom:`${u}px dashed ${m}`,transform:"translateY(-50%)",transition:`all ${l}`,content:'""'}},"&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after":{insetInlineEnd:0,insetInlineStart:h},[`&-in-view${n}-in-range${n}-range-hover::before, + &-in-view${n}-range-start${n}-range-hover::before, + &-in-view${n}-range-end${n}-range-hover::before, + &-in-view${n}-range-start:not(${n}-range-start-single)${n}-range-hover-start::before, + &-in-view${n}-range-end:not(${n}-range-end-single)${n}-range-hover-end::before, + ${t}-panel + > :not(${t}-date-panel) + &-in-view${n}-in-range${n}-range-hover-start::before, + ${t}-panel + > :not(${t}-date-panel) + &-in-view${n}-in-range${n}-range-hover-end::before`]:{background:b},[`&-in-view${n}-range-start:not(${n}-range-start-single):not(${n}-range-end) ${o}`]:{borderStartStartRadius:a,borderEndStartRadius:a,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${n}-range-end:not(${n}-range-end-single):not(${n}-range-start) ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a},[`&-range-hover${n}-range-end::after`]:{insetInlineStart:"50%"},[`tr > &-in-view${n}-range-hover:first-child::after, + tr > &-in-view${n}-range-hover-end:first-child::after, + &-in-view${n}-start${n}-range-hover-edge-start${n}-range-hover-edge-start-near-range::after, + &-in-view${n}-range-hover-edge-start:not(${n}-range-hover-edge-start-near-range)::after, + &-in-view${n}-range-hover-start::after`]:{insetInlineStart:($-r)/2,borderInlineStart:`${u}px dashed ${m}`,borderStartStartRadius:u,borderEndStartRadius:u},[`tr > &-in-view${n}-range-hover:last-child::after, + tr > &-in-view${n}-range-hover-start:last-child::after, + &-in-view${n}-end${n}-range-hover-edge-end${n}-range-hover-edge-end-near-range::after, + &-in-view${n}-range-hover-edge-end:not(${n}-range-hover-edge-end-near-range)::after, + &-in-view${n}-range-hover-end::after`]:{insetInlineEnd:($-r)/2,borderInlineEnd:`${u}px dashed ${m}`,borderStartEndRadius:u,borderEndEndRadius:u},"&-disabled":{color:C,pointerEvents:"none",[o]:{background:"transparent"},"&::before":{background:w}},[`&-disabled${n}-today ${o}::before`]:{borderColor:C}}},Tz=e=>{const{componentCls:t,pickerCellInnerCls:n,pickerYearMonthCellWidth:o,pickerControlIconSize:r,pickerPanelCellWidth:l,paddingSM:a,paddingXS:i,paddingXXS:s,colorBgContainer:u,lineWidth:c,lineType:d,borderRadiusLG:p,colorPrimary:v,colorTextHeading:y,colorSplit:m,pickerControlIconBorderWidth:h,colorIcon:b,pickerTextHeight:$,motionDurationMid:C,colorIconHover:w,fontWeightStrong:S,pickerPanelCellHeight:O,pickerCellPaddingVertical:x,colorTextDisabled:I,colorText:E,fontSize:M,pickerBasicCellHoverWithRangeColor:_,motionDurationSlow:z,pickerPanelWithoutTimeCellHeight:R,pickerQuarterPanelContentHeight:H,colorLink:T,colorLinkActive:D,colorLinkHover:A,pickerDateHoverRangeBorderColor:B,borderRadiusSM:N,colorTextLightSolid:k,borderRadius:L,controlItemBgHover:j,pickerTimePanelColumnHeight:G,pickerTimePanelColumnWidth:U,pickerTimePanelCellHeight:K,controlItemBgActive:Y,marginXXS:Q}=e,J=l*7+a*2+4,Z=(J-i*2)/3-o-a;return{[t]:{"&-panel":{display:"inline-flex",flexDirection:"column",textAlign:"center",background:u,border:`${c}px ${d} ${m}`,borderRadius:p,outline:"none","&-focused":{borderColor:v},"&-rtl":{direction:"rtl",[`${t}-prev-icon, + ${t}-super-prev-icon`]:{transform:"rotate(45deg)"},[`${t}-next-icon, + ${t}-super-next-icon`]:{transform:"rotate(-135deg)"}}},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel":{display:"flex",flexDirection:"column",width:J},"&-header":{display:"flex",padding:`0 ${i}px`,color:y,borderBottom:`${c}px ${d} ${m}`,"> *":{flex:"none"},button:{padding:0,color:b,lineHeight:`${$}px`,background:"transparent",border:0,cursor:"pointer",transition:`color ${C}`},"> button":{minWidth:"1.6em",fontSize:M,"&:hover":{color:w}},"&-view":{flex:"auto",fontWeight:S,lineHeight:`${$}px`,button:{color:"inherit",fontWeight:"inherit",verticalAlign:"top","&:not(:first-child)":{marginInlineStart:i},"&:hover":{color:v}}}},"&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon":{position:"relative",display:"inline-block",width:r,height:r,"&::before":{position:"absolute",top:0,insetInlineStart:0,display:"inline-block",width:r,height:r,border:"0 solid currentcolor",borderBlockStartWidth:h,borderBlockEndWidth:0,borderInlineStartWidth:h,borderInlineEndWidth:0,content:'""'}},"&-super-prev-icon,\n &-super-next-icon":{"&::after":{position:"absolute",top:Math.ceil(r/2),insetInlineStart:Math.ceil(r/2),display:"inline-block",width:r,height:r,border:"0 solid currentcolor",borderBlockStartWidth:h,borderBlockEndWidth:0,borderInlineStartWidth:h,borderInlineEndWidth:0,content:'""'}},"&-prev-icon,\n &-super-prev-icon":{transform:"rotate(-45deg)"},"&-next-icon,\n &-super-next-icon":{transform:"rotate(135deg)"},"&-content":{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","th, td":{position:"relative",minWidth:O,fontWeight:"normal"},th:{height:O+x*2,color:E,verticalAlign:"middle"}},"&-cell":g({padding:`${x}px 0`,color:I,cursor:"pointer","&-in-view":{color:E}},Iz(e)),[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start ${n}, + &-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}`]:{"&::after":{position:"absolute",top:0,bottom:0,zIndex:-1,background:_,transition:`all ${z}`,content:'""'}},[`&-date-panel + ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start + ${n}::after`]:{insetInlineEnd:-(l-O)/2,insetInlineStart:0},[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}::after`]:{insetInlineEnd:0,insetInlineStart:-(l-O)/2},[`&-range-hover${t}-range-start::after`]:{insetInlineEnd:"50%"},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-content`]:{height:R*4},[n]:{padding:`0 ${i}px`}},"&-quarter-panel":{[`${t}-content`]:{height:H}},[`&-panel ${t}-footer`]:{borderTop:`${c}px ${d} ${m}`},"&-footer":{width:"min-content",minWidth:"100%",lineHeight:`${$-2*c}px`,textAlign:"center","&-extra":{padding:`0 ${a}`,lineHeight:`${$-2*c}px`,textAlign:"start","&:not(:last-child)":{borderBottom:`${c}px ${d} ${m}`}}},"&-now":{textAlign:"start"},"&-today-btn":{color:T,"&:hover":{color:A},"&:active":{color:D},[`&${t}-today-btn-disabled`]:{color:I,cursor:"not-allowed"}},"&-decade-panel":{[n]:{padding:`0 ${i/2}px`},[`${t}-cell::before`]:{display:"none"}},"&-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-body`]:{padding:`0 ${i}px`},[n]:{width:o},[`${t}-cell-range-hover-start::after`]:{insetInlineStart:Z,borderInlineStart:`${c}px dashed ${B}`,borderStartStartRadius:N,borderBottomStartRadius:N,borderStartEndRadius:0,borderBottomEndRadius:0,[`${t}-panel-rtl &`]:{insetInlineEnd:Z,borderInlineEnd:`${c}px dashed ${B}`,borderStartStartRadius:0,borderBottomStartRadius:0,borderStartEndRadius:N,borderBottomEndRadius:N}},[`${t}-cell-range-hover-end::after`]:{insetInlineEnd:Z,borderInlineEnd:`${c}px dashed ${B}`,borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:L,borderEndEndRadius:L,[`${t}-panel-rtl &`]:{insetInlineStart:Z,borderInlineStart:`${c}px dashed ${B}`,borderStartStartRadius:L,borderEndStartRadius:L,borderStartEndRadius:0,borderEndEndRadius:0}}},"&-week-panel":{[`${t}-body`]:{padding:`${i}px ${a}px`},[`${t}-cell`]:{[`&:hover ${n}, + &-selected ${n}, + ${n}`]:{background:"transparent !important"}},"&-row":{td:{transition:`background ${C}`,"&:first-child":{borderStartStartRadius:N,borderEndStartRadius:N},"&:last-child":{borderStartEndRadius:N,borderEndEndRadius:N}},"&:hover td":{background:j},"&-selected td,\n &-selected:hover td":{background:v,[`&${t}-cell-week`]:{color:new ut(k).setAlpha(.5).toHexString()},[`&${t}-cell-today ${n}::before`]:{borderColor:k},[n]:{color:k}}}},"&-date-panel":{[`${t}-body`]:{padding:`${i}px ${a}px`},[`${t}-content`]:{width:l*7,th:{width:l}}},"&-datetime-panel":{display:"flex",[`${t}-time-panel`]:{borderInlineStart:`${c}px ${d} ${m}`},[`${t}-date-panel, + ${t}-time-panel`]:{transition:`opacity ${z}`},"&-active":{[`${t}-date-panel, + ${t}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:"auto",minWidth:"auto",direction:"ltr",[`${t}-content`]:{display:"flex",flex:"auto",height:G},"&-column":{flex:"1 0 auto",width:U,margin:`${s}px 0`,padding:0,overflowY:"hidden",textAlign:"start",listStyle:"none",transition:`background ${C}`,overflowX:"hidden","&::after":{display:"block",height:G-K,content:'""'},"&:not(:first-child)":{borderInlineStart:`${c}px ${d} ${m}`},"&-active":{background:new ut(Y).setAlpha(.2).toHexString()},"&:hover":{overflowY:"auto"},"> li":{margin:0,padding:0,[`&${t}-time-panel-cell`]:{marginInline:Q,[`${t}-time-panel-cell-inner`]:{display:"block",width:U-2*Q,height:K,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:(U-K)/2,color:E,lineHeight:`${K}px`,borderRadius:N,cursor:"pointer",transition:`background ${C}`,"&:hover":{background:j}},"&-selected":{[`${t}-time-panel-cell-inner`]:{background:Y}},"&-disabled":{[`${t}-time-panel-cell-inner`]:{color:I,background:"transparent",cursor:"not-allowed"}}}}}},[`&-datetime-panel ${t}-time-panel-column:after`]:{height:G-K+s*2}}}},Ez=e=>{const{componentCls:t,colorBgContainer:n,colorError:o,colorErrorOutline:r,colorWarning:l,colorWarningOutline:a}=e;return{[t]:{[`&-status-error${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:o},"&-focused, &:focus":g({},Gr(Le(e,{inputBorderActiveColor:o,inputBorderHoverColor:o,controlOutline:r}))),[`${t}-active-bar`]:{background:o}},[`&-status-warning${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:l},"&-focused, &:focus":g({},Gr(Le(e,{inputBorderActiveColor:l,inputBorderHoverColor:l,controlOutline:a}))),[`${t}-active-bar`]:{background:l}}}}},Mz=e=>{const{componentCls:t,antCls:n,boxShadowPopoverArrow:o,controlHeight:r,fontSize:l,inputPaddingHorizontal:a,colorBgContainer:i,lineWidth:s,lineType:u,colorBorder:c,borderRadius:d,motionDurationMid:p,colorBgContainerDisabled:v,colorTextDisabled:y,colorTextPlaceholder:m,controlHeightLG:h,fontSizeLG:b,controlHeightSM:$,inputPaddingHorizontalSM:C,paddingXS:w,marginXS:S,colorTextDescription:O,lineWidthBold:x,lineHeight:I,colorPrimary:E,motionDurationSlow:M,zIndexPopup:_,paddingXXS:z,paddingSM:R,pickerTextHeight:H,controlItemBgActive:T,colorPrimaryBorder:D,sizePopupArrow:A,borderRadiusXS:B,borderRadiusOuter:N,colorBgElevated:k,borderRadiusLG:L,boxShadowSecondary:j,borderRadiusSM:G,colorSplit:U,controlItemBgHover:K,presetsWidth:Y,presetsMaxWidth:Q}=e;return[{[t]:g(g(g({},Qe(e)),ad(e,r,l,a)),{position:"relative",display:"inline-flex",alignItems:"center",background:i,lineHeight:1,border:`${s}px ${u} ${c}`,borderRadius:d,transition:`border ${p}, box-shadow ${p}`,"&:hover, &-focused":g({},ia(e)),"&-focused":g({},Gr(e)),[`&${t}-disabled`]:{background:v,borderColor:c,cursor:"not-allowed",[`${t}-suffix`]:{color:y}},[`&${t}-borderless`]:{backgroundColor:"transparent !important",borderColor:"transparent !important",boxShadow:"none !important"},[`${t}-input`]:{position:"relative",display:"inline-flex",alignItems:"center",width:"100%","> input":g(g({},sa(e)),{flex:"auto",minWidth:1,height:"auto",padding:0,background:"transparent",border:0,"&:focus":{boxShadow:"none"},"&[disabled]":{background:"transparent"}}),"&:hover":{[`${t}-clear`]:{opacity:1}},"&-placeholder":{"> input":{color:m}}},"&-large":g(g({},ad(e,h,b,a)),{[`${t}-input > input`]:{fontSize:b}}),"&-small":g({},ad(e,$,l,C)),[`${t}-suffix`]:{display:"flex",flex:"none",alignSelf:"center",marginInlineStart:w/2,color:y,lineHeight:1,pointerEvents:"none","> *":{verticalAlign:"top","&:not(:last-child)":{marginInlineEnd:S}}},[`${t}-clear`]:{position:"absolute",top:"50%",insetInlineEnd:0,color:y,lineHeight:1,background:i,transform:"translateY(-50%)",cursor:"pointer",opacity:0,transition:`opacity ${p}, color ${p}`,"> *":{verticalAlign:"top"},"&:hover":{color:O}},[`${t}-separator`]:{position:"relative",display:"inline-block",width:"1em",height:b,color:y,fontSize:b,verticalAlign:"top",cursor:"default",[`${t}-focused &`]:{color:O},[`${t}-range-separator &`]:{[`${t}-disabled &`]:{cursor:"not-allowed"}}},"&-range":{position:"relative",display:"inline-flex",[`${t}-clear`]:{insetInlineEnd:a},"&:hover":{[`${t}-clear`]:{opacity:1}},[`${t}-active-bar`]:{bottom:-s,height:x,marginInlineStart:a,background:E,opacity:0,transition:`all ${M} ease-out`,pointerEvents:"none"},[`&${t}-focused`]:{[`${t}-active-bar`]:{opacity:1}},[`${t}-range-separator`]:{alignItems:"center",padding:`0 ${w}px`,lineHeight:1},[`&${t}-small`]:{[`${t}-clear`]:{insetInlineEnd:C},[`${t}-active-bar`]:{marginInlineStart:C}}},"&-dropdown":g(g(g({},Qe(e)),Tz(e)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:_,[`&${t}-dropdown-hidden`]:{display:"none"},[`&${t}-dropdown-placement-bottomLeft`]:{[`${t}-range-arrow`]:{top:0,display:"block",transform:"translateY(-100%)"}},[`&${t}-dropdown-placement-topLeft`]:{[`${t}-range-arrow`]:{bottom:0,display:"block",transform:"translateY(100%) rotate(180deg)"}},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topRight, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topRight`]:{animationName:zc},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomRight, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomRight`]:{animationName:kc},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topLeft, + &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topRight`]:{animationName:Hc},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomLeft, + &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomRight`]:{animationName:Lc},[`${t}-panel > ${t}-time-panel`]:{paddingTop:z},[`${t}-ranges`]:{marginBottom:0,padding:`${z}px ${R}px`,overflow:"hidden",lineHeight:`${H-2*s-w/2}px`,textAlign:"start",listStyle:"none",display:"flex",justifyContent:"space-between","> li":{display:"inline-block"},[`${t}-preset > ${n}-tag-blue`]:{color:E,background:T,borderColor:D,cursor:"pointer"},[`${t}-ok`]:{marginInlineStart:"auto"}},[`${t}-range-wrapper`]:{display:"flex",position:"relative"},[`${t}-range-arrow`]:g({position:"absolute",zIndex:1,display:"none",marginInlineStart:a*1.5,transition:`left ${M} ease-out`},Cv(A,B,N,k,o)),[`${t}-panel-container`]:{overflow:"hidden",verticalAlign:"top",background:k,borderRadius:L,boxShadow:j,transition:`margin ${M}`,[`${t}-panel-layout`]:{display:"flex",flexWrap:"nowrap",alignItems:"stretch"},[`${t}-presets`]:{display:"flex",flexDirection:"column",minWidth:Y,maxWidth:Q,ul:{height:0,flex:"auto",listStyle:"none",overflow:"auto",margin:0,padding:w,borderInlineEnd:`${s}px ${u} ${U}`,li:g(g({},Xt),{borderRadius:G,paddingInline:w,paddingBlock:($-Math.round(l*I))/2,cursor:"pointer",transition:`all ${M}`,"+ li":{marginTop:S},"&:hover":{background:K}})}},[`${t}-panels`]:{display:"inline-flex",flexWrap:"nowrap",direction:"ltr",[`${t}-panel`]:{borderWidth:`0 0 ${s}px`},"&:last-child":{[`${t}-panel`]:{borderWidth:0}}},[`${t}-panel`]:{verticalAlign:"top",background:"transparent",borderRadius:0,borderWidth:0,[`${t}-content, + table`]:{textAlign:"center"},"&-focused":{borderColor:c}}}}),"&-dropdown-range":{padding:`${A*2/3}px 0`,"&-hidden":{display:"none"}},"&-rtl":{direction:"rtl",[`${t}-separator`]:{transform:"rotate(180deg)"},[`${t}-footer`]:{"&-extra":{direction:"rtl"}}}})},$o(e,"slide-up"),$o(e,"slide-down"),zl(e,"move-up"),zl(e,"move-down")]},_z=e=>{const{componentCls:n,controlHeightLG:o,controlHeightSM:r,colorPrimary:l,paddingXXS:a}=e;return{pickerCellCls:`${n}-cell`,pickerCellInnerCls:`${n}-cell-inner`,pickerTextHeight:o,pickerPanelCellWidth:r*1.5,pickerPanelCellHeight:r,pickerDateHoverRangeBorderColor:new ut(l).lighten(20).toHexString(),pickerBasicCellHoverWithRangeColor:new ut(l).lighten(35).toHexString(),pickerPanelWithoutTimeCellHeight:o*1.65,pickerYearMonthCellWidth:o*1.5,pickerTimePanelColumnHeight:28*8,pickerTimePanelColumnWidth:o*1.4,pickerTimePanelCellHeight:28,pickerQuarterPanelContentHeight:o*1.4,pickerCellPaddingVertical:a,pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconBorderWidth:1.5}},O4=Je("DatePicker",e=>{const t=Le(bi(e),_z(e));return[Mz(t),Ez(t),ra(e,{focusElCls:`${e.componentCls}-focused`})]},e=>({presetsWidth:120,presetsMaxWidth:200,zIndexPopup:e.zIndexPopupBase+50}));function Dz(e){const t=q(),n=q(!1);function o(){for(var r=arguments.length,l=new Array(r),a=0;a{e(...l)}))}return Ze(()=>{n.value=!0,He.cancel(t.value)}),o}function Az(e){const t=q([]),n=q(typeof e=="function"?e():e),o=Dz(()=>{let l=n.value;t.value.forEach(a=>{l=a(l)}),t.value=[],n.value=l});function r(l){t.value.push(l),o()}return[n,r]}const Rz=te({compatConfig:{MODE:3},name:"TabNode",props:{id:{type:String},prefixCls:{type:String},tab:{type:Object},active:{type:Boolean},closable:{type:Boolean},editable:{type:Object},onClick:{type:Function},onResize:{type:Function},renderWrapper:{type:Function},removeAriaLabel:{type:String},onFocus:{type:Function}},emits:["click","resize","remove","focus"],setup(e,t){let{expose:n,attrs:o}=t;const r=ee();function l(s){var u;!((u=e.tab)===null||u===void 0)&&u.disabled||e.onClick(s)}n({domRef:r});function a(s){var u;s.preventDefault(),s.stopPropagation(),e.editable.onEdit("remove",{key:(u=e.tab)===null||u===void 0?void 0:u.key,event:s})}const i=P(()=>{var s;return e.editable&&e.closable!==!1&&!(!((s=e.tab)===null||s===void 0)&&s.disabled)});return()=>{var s;const{prefixCls:u,id:c,active:d,tab:{key:p,tab:v,disabled:y,closeIcon:m},renderWrapper:h,removeAriaLabel:b,editable:$,onFocus:C}=e,w=`${u}-tab`,S=f("div",{key:p,ref:r,class:ne(w,{[`${w}-with-remove`]:i.value,[`${w}-active`]:d,[`${w}-disabled`]:y}),style:o.style,onClick:l},[f("div",{role:"tab","aria-selected":d,id:c&&`${c}-tab-${p}`,class:`${w}-btn`,"aria-controls":c&&`${c}-panel-${p}`,"aria-disabled":y,tabindex:y?null:0,onClick:O=>{O.stopPropagation(),l(O)},onKeydown:O=>{[Se.SPACE,Se.ENTER].includes(O.which)&&(O.preventDefault(),l(O))},onFocus:C},[typeof v=="function"?v():v]),i.value&&f("button",{type:"button","aria-label":b||"remove",tabindex:0,class:`${w}-remove`,onClick:O=>{O.stopPropagation(),a(O)}},[(m==null?void 0:m())||((s=$.removeIcon)===null||s===void 0?void 0:s.call($))||"×"])]);return h?h(S):S}}}),Ay={width:0,height:0,left:0,top:0};function Bz(e,t){const n=ee(new Map);return ke(()=>{var o,r;const l=new Map,a=e.value,i=t.value.get((o=a[0])===null||o===void 0?void 0:o.key)||Ay,s=i.left+i.width;for(let u=0;u{const{prefixCls:l,editable:a,locale:i}=e;return!a||a.showAdd===!1?null:f("button",{ref:r,type:"button",class:`${l}-nav-add`,style:o.style,"aria-label":(i==null?void 0:i.addAriaLabel)||"Add tab",onClick:s=>{a.onEdit("add",{event:s})}},[a.addIcon?a.addIcon():"+"])}}}),Nz={prefixCls:{type:String},id:{type:String},tabs:{type:Object},rtl:{type:Boolean},tabBarGutter:{type:Number},activeKey:{type:[String,Number]},mobile:{type:Boolean},moreIcon:V.any,moreTransitionName:{type:String},editable:{type:Object},locale:{type:Object,default:void 0},removeAriaLabel:String,onTabClick:{type:Function},popupClassName:String,getPopupContainer:ce()},Fz=te({compatConfig:{MODE:3},name:"OperationNode",inheritAttrs:!1,props:Nz,emits:["tabClick"],slots:Object,setup(e,t){let{attrs:n,slots:o}=t;const[r,l]=pt(!1),[a,i]=pt(null),s=v=>{const y=e.tabs.filter(b=>!b.disabled);let m=y.findIndex(b=>b.key===a.value)||0;const h=y.length;for(let b=0;b{const{which:y}=v;if(!r.value){[Se.DOWN,Se.SPACE,Se.ENTER].includes(y)&&(l(!0),v.preventDefault());return}switch(y){case Se.UP:s(-1),v.preventDefault();break;case Se.DOWN:s(1),v.preventDefault();break;case Se.ESC:l(!1);break;case Se.SPACE:case Se.ENTER:a.value!==null&&e.onTabClick(a.value,v);break}},c=P(()=>`${e.id}-more-popup`),d=P(()=>a.value!==null?`${c.value}-${a.value}`:null),p=(v,y)=>{v.preventDefault(),v.stopPropagation(),e.editable.onEdit("remove",{key:y,event:v})};return Ve(()=>{ue(a,()=>{const v=document.getElementById(d.value);v&&v.scrollIntoView&&v.scrollIntoView(!1)},{flush:"post",immediate:!0})}),ue(r,()=>{r.value||i(null)}),Ow({}),()=>{var v;const{prefixCls:y,id:m,tabs:h,locale:b,mobile:$,moreIcon:C=((v=o.moreIcon)===null||v===void 0?void 0:v.call(o))||f(yg,null,null),moreTransitionName:w,editable:S,tabBarGutter:O,rtl:x,onTabClick:I,popupClassName:E}=e;if(!h.length)return null;const M=`${y}-dropdown`,_=b==null?void 0:b.dropdownAriaLabel,z={[x?"marginRight":"marginLeft"]:O};h.length||(z.visibility="hidden",z.order=1);const R=ne({[`${M}-rtl`]:x,[`${E}`]:!0}),H=$?null:f(gw,{prefixCls:M,trigger:["hover"],visible:r.value,transitionName:w,onVisibleChange:l,overlayClassName:R,mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:e.getPopupContainer},{overlay:()=>f(Ft,{onClick:T=>{let{key:D,domEvent:A}=T;I(D,A),l(!1)},id:c.value,tabindex:-1,role:"listbox","aria-activedescendant":d.value,selectedKeys:[a.value],"aria-label":_!==void 0?_:"expanded dropdown"},{default:()=>[h.map(T=>{var D,A;const B=S&&T.closable!==!1&&!T.disabled;return f(jl,{key:T.key,id:`${c.value}-${T.key}`,role:"option","aria-controls":m&&`${m}-panel-${T.key}`,disabled:T.disabled},{default:()=>[f("span",null,[typeof T.tab=="function"?T.tab():T.tab]),B&&f("button",{type:"button","aria-label":e.removeAriaLabel||"remove",tabindex:0,class:`${M}-menu-item-remove`,onClick:N=>{N.stopPropagation(),p(N,T.key)}},[((D=T.closeIcon)===null||D===void 0?void 0:D.call(T))||((A=S.removeIcon)===null||A===void 0?void 0:A.call(S))||"×"])]})})]}),default:()=>f("button",{type:"button",class:`${y}-nav-more`,style:z,tabindex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":c.value,id:`${m}-more`,"aria-expanded":r.value,onKeydown:u},[C])});return f("div",{class:ne(`${y}-nav-operations`,n.class),style:n.style},[H,f(P4,{prefixCls:y,locale:b,editable:S},null)])}}}),I4=Symbol("tabsContextKey"),kz=e=>{We(I4,e)},T4=()=>Ke(I4,{tabs:ee([]),prefixCls:ee()}),Lz=.1,Ry=.01,gs=20,By=Math.pow(.995,gs);function zz(e,t){const[n,o]=pt(),[r,l]=pt(0),[a,i]=pt(0),[s,u]=pt(),c=ee();function d(S){const{screenX:O,screenY:x}=S.touches[0];o({x:O,y:x}),clearInterval(c.value)}function p(S){if(!n.value)return;S.preventDefault();const{screenX:O,screenY:x}=S.touches[0],I=O-n.value.x,E=x-n.value.y;t(I,E),o({x:O,y:x});const M=Date.now();i(M-r.value),l(M),u({x:I,y:E})}function v(){if(!n.value)return;const S=s.value;if(o(null),u(null),S){const O=S.x/a.value,x=S.y/a.value,I=Math.abs(O),E=Math.abs(x);if(Math.max(I,E){if(Math.abs(M)M?(I=O,y.value="x"):(I=x,y.value="y"),t(-I,-I)&&S.preventDefault()}const h=ee({onTouchStart:d,onTouchMove:p,onTouchEnd:v,onWheel:m});function b(S){h.value.onTouchStart(S)}function $(S){h.value.onTouchMove(S)}function C(S){h.value.onTouchEnd(S)}function w(S){h.value.onWheel(S)}Ve(()=>{var S,O;document.addEventListener("touchmove",$,{passive:!1}),document.addEventListener("touchend",C,{passive:!1}),(S=e.value)===null||S===void 0||S.addEventListener("touchstart",b,{passive:!1}),(O=e.value)===null||O===void 0||O.addEventListener("wheel",w,{passive:!1})}),Ze(()=>{document.removeEventListener("touchmove",$),document.removeEventListener("touchend",C)})}function Ny(e,t){const n=ee(e);function o(r){const l=typeof r=="function"?r(n.value):r;l!==n.value&&t(l,n.value),n.value=l}return[n,o]}const Hz=()=>{const e=ee(new Map),t=n=>o=>{e.value.set(n,o)};return Kp(()=>{e.value=new Map}),[t,e]},Vg=Hz,Fy={width:0,height:0,left:0,top:0,right:0},jz=()=>({id:{type:String},tabPosition:{type:String},activeKey:{type:[String,Number]},rtl:{type:Boolean},animated:De(),editable:De(),moreIcon:V.any,moreTransitionName:{type:String},mobile:{type:Boolean},tabBarGutter:{type:Number},renderTabBar:{type:Function},locale:De(),popupClassName:String,getPopupContainer:ce(),onTabClick:{type:Function},onTabScroll:{type:Function}}),Vz=(e,t)=>{const{offsetWidth:n,offsetHeight:o,offsetTop:r,offsetLeft:l}=e,{width:a,height:i,x:s,y:u}=e.getBoundingClientRect();return Math.abs(a-n)<1?[a,i,s-t.x,u-t.y]:[n,o,l,r]},ky=te({compatConfig:{MODE:3},name:"TabNavList",inheritAttrs:!1,props:jz(),slots:Object,emits:["tabClick","tabScroll"],setup(e,t){let{attrs:n,slots:o}=t;const{tabs:r,prefixCls:l}=T4(),a=q(),i=q(),s=q(),u=q(),[c,d]=Vg(),p=P(()=>e.tabPosition==="top"||e.tabPosition==="bottom"),[v,y]=Ny(0,(ie,se)=>{p.value&&e.onTabScroll&&e.onTabScroll({direction:ie>se?"left":"right"})}),[m,h]=Ny(0,(ie,se)=>{!p.value&&e.onTabScroll&&e.onTabScroll({direction:ie>se?"top":"bottom"})}),[b,$]=pt(0),[C,w]=pt(0),[S,O]=pt(null),[x,I]=pt(null),[E,M]=pt(0),[_,z]=pt(0),[R,H]=Az(new Map),T=Bz(r,R),D=P(()=>`${l.value}-nav-operations-hidden`),A=q(0),B=q(0);ke(()=>{p.value?e.rtl?(A.value=0,B.value=Math.max(0,b.value-S.value)):(A.value=Math.min(0,S.value-b.value),B.value=0):(A.value=Math.min(0,x.value-C.value),B.value=0)});const N=ie=>ieB.value?B.value:ie,k=q(),[L,j]=pt(),G=()=>{j(Date.now())},U=()=>{clearTimeout(k.value)},K=(ie,se)=>{ie(be=>N(be+se))};zz(a,(ie,se)=>{if(p.value){if(S.value>=b.value)return!1;K(y,ie)}else{if(x.value>=C.value)return!1;K(h,se)}return U(),G(),!0}),ue(L,()=>{U(),L.value&&(k.value=setTimeout(()=>{j(0)},100))});const Y=function(){let ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activeKey;const se=T.value.get(ie)||{width:0,height:0,left:0,right:0,top:0};if(p.value){let be=v.value;e.rtl?se.rightv.value+S.value&&(be=se.right+se.width-S.value):se.left<-v.value?be=-se.left:se.left+se.width>-v.value+S.value&&(be=-(se.left+se.width-S.value)),h(0),y(N(be))}else{let be=m.value;se.top<-m.value?be=-se.top:se.top+se.height>-m.value+x.value&&(be=-(se.top+se.height-x.value)),y(0),h(N(be))}},Q=q(0),J=q(0);ke(()=>{let ie,se,be,we,ve,Ce;const Te=T.value;["top","bottom"].includes(e.tabPosition)?(ie="width",we=S.value,ve=b.value,Ce=E.value,se=e.rtl?"right":"left",be=Math.abs(v.value)):(ie="height",we=x.value,ve=b.value,Ce=_.value,se="top",be=-m.value);let le=we;ve+Ce>we&&vebe+le){Oe=Ae-1;break}}let Ie=0;for(let Ae=fe-1;Ae>=0;Ae-=1)if((Te.get(oe[Ae].key)||Fy)[se]{H(()=>{var ie;const se=new Map,be=(ie=i.value)===null||ie===void 0?void 0:ie.getBoundingClientRect();return r.value.forEach(we=>{let{key:ve}=we;const Ce=d.value.get(ve),Te=(Ce==null?void 0:Ce.$el)||Ce;if(Te){const[le,oe,fe,Oe]=Vz(Te,be);se.set(ve,{width:le,height:oe,left:fe,top:Oe})}}),se})};ue(()=>r.value.map(ie=>ie.key).join("%%"),()=>{Z()},{flush:"post"});const W=()=>{var ie,se,be,we,ve;const Ce=((ie=a.value)===null||ie===void 0?void 0:ie.offsetWidth)||0,Te=((se=a.value)===null||se===void 0?void 0:se.offsetHeight)||0,le=((be=u.value)===null||be===void 0?void 0:be.$el)||{},oe=le.offsetWidth||0,fe=le.offsetHeight||0;O(Ce),I(Te),M(oe),z(fe);const Oe=(((we=i.value)===null||we===void 0?void 0:we.offsetWidth)||0)-oe,Ie=(((ve=i.value)===null||ve===void 0?void 0:ve.offsetHeight)||0)-fe;$(Oe),w(Ie),Z()},X=P(()=>[...r.value.slice(0,Q.value),...r.value.slice(J.value+1)]),[re,ae]=pt(),pe=P(()=>T.value.get(e.activeKey)),ye=q(),de=()=>{He.cancel(ye.value)};ue([pe,p,()=>e.rtl],()=>{const ie={};pe.value&&(p.value?(e.rtl?ie.right=Pr(pe.value.right):ie.left=Pr(pe.value.left),ie.width=Pr(pe.value.width)):(ie.top=Pr(pe.value.top),ie.height=Pr(pe.value.height))),de(),ye.value=He(()=>{ae(ie)})}),ue([()=>e.activeKey,pe,T,p],()=>{Y()},{flush:"post"}),ue([()=>e.rtl,()=>e.tabBarGutter,()=>e.activeKey,()=>r.value],()=>{W()},{flush:"post"});const me=ie=>{let{position:se,prefixCls:be,extra:we}=ie;if(!we)return null;const ve=we==null?void 0:we({position:se});return ve?f("div",{class:`${be}-extra-content`},[ve]):null};return Ze(()=>{U(),de()}),()=>{const{id:ie,animated:se,activeKey:be,rtl:we,editable:ve,locale:Ce,tabPosition:Te,tabBarGutter:le,onTabClick:oe}=e,{class:fe,style:Oe}=n,Ie=l.value,Ae=!!X.value.length,ge=`${Ie}-nav-wrap`;let he,$e,Ee,Re;p.value?we?($e=v.value>0,he=v.value+S.value{const{key:nt}=Ye;return f(Rz,{id:ie,prefixCls:Ie,key:nt,tab:Ye,style:at===0?void 0:_e,closable:Ye.closable,editable:ve,active:nt===be,removeAriaLabel:Ce==null?void 0:Ce.removeAriaLabel,ref:c(nt),onClick:it=>{oe(nt,it)},onFocus:()=>{Y(nt),G(),a.value&&(we||(a.value.scrollLeft=0),a.value.scrollTop=0)}},o)});return f("div",{role:"tablist",class:ne(`${Ie}-nav`,fe),style:Oe,onKeydown:()=>{G()}},[f(me,{position:"left",prefixCls:Ie,extra:o.leftExtra},null),f(io,{onResize:W},{default:()=>[f("div",{class:ne(ge,{[`${ge}-ping-left`]:he,[`${ge}-ping-right`]:$e,[`${ge}-ping-top`]:Ee,[`${ge}-ping-bottom`]:Re}),ref:a},[f(io,{onResize:W},{default:()=>[f("div",{ref:i,class:`${Ie}-nav-list`,style:{transform:`translate(${v.value}px, ${m.value}px)`,transition:L.value?"none":void 0}},[Be,f(P4,{ref:u,prefixCls:Ie,locale:Ce,editable:ve,style:g(g({},Be.length===0?void 0:_e),{visibility:Ae?"hidden":null})},null),f("div",{class:ne(`${Ie}-ink-bar`,{[`${Ie}-ink-bar-animated`]:se.inkBar}),style:re.value},null)])]})])]}),f(Fz,F(F({},e),{},{removeAriaLabel:Ce==null?void 0:Ce.removeAriaLabel,ref:s,prefixCls:Ie,tabs:X.value,class:!Ae&&D.value}),qC(o,["moreIcon"])),f(me,{position:"right",prefixCls:Ie,extra:o.rightExtra},null),f(me,{position:"right",prefixCls:Ie,extra:o.tabBarExtraContent},null)])}}}),Wz=te({compatConfig:{MODE:3},name:"TabPanelList",inheritAttrs:!1,props:{activeKey:{type:[String,Number]},id:{type:String},rtl:{type:Boolean},animated:{type:Object,default:void 0},tabPosition:{type:String},destroyInactiveTabPane:{type:Boolean}},setup(e){const{tabs:t,prefixCls:n}=T4();return()=>{const{id:o,activeKey:r,animated:l,tabPosition:a,rtl:i,destroyInactiveTabPane:s}=e,u=l.tabPane,c=n.value,d=t.value.findIndex(p=>p.key===r);return f("div",{class:`${c}-content-holder`},[f("div",{class:[`${c}-content`,`${c}-content-${a}`,{[`${c}-content-animated`]:u}],style:d&&u?{[i?"marginRight":"marginLeft"]:`-${d}00%`}:null},[t.value.map(p=>gt(p.node,{key:p.key,prefixCls:c,tabKey:p.key,id:o,animated:u,active:p.key===r,destroyInactiveTabPane:s}))])])}}});var Kz={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};const E4=Kz;function Ly(e){for(var t=1;t{const{componentCls:t,motionDurationSlow:n}=e;return[{[t]:{[`${t}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${n}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${n}`}}}}},[$o(e,"slide-up"),$o(e,"slide-down")]]},Yz=Uz,qz=e=>{const{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeadBackground:o,tabsCardGutter:r,colorSplit:l}=e;return{[`${t}-card`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{margin:0,padding:n,background:o,border:`${e.lineWidth}px ${e.lineType} ${l}`,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`${t}-tab-active`]:{color:e.colorPrimary,background:e.colorBgContainer},[`${t}-ink-bar`]:{visibility:"hidden"}},[`&${t}-top, &${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginLeft:{_skip_check_:!0,value:`${r}px`}}}},[`&${t}-top`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},[`${t}-tab-active`]:{borderBottomColor:e.colorBgContainer}}},[`&${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},[`${t}-tab-active`]:{borderTopColor:e.colorBgContainer}}},[`&${t}-left, &${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginTop:`${r}px`}}},[`&${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadiusLG}px 0 0 ${e.borderRadiusLG}px`}},[`${t}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:e.colorBgContainer}}}},[`&${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px 0`}},[`${t}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:e.colorBgContainer}}}}}}},Qz=e=>{const{componentCls:t,tabsHoverColor:n,dropdownEdgeChildVerticalPadding:o}=e;return{[`${t}-dropdown`]:g(g({},Qe(e)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:e.zIndexPopup,display:"block","&-hidden":{display:"none"},[`${t}-dropdown-menu`]:{maxHeight:e.tabsDropdownHeight,margin:0,padding:`${o}px 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:e.colorBgContainer,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,"&-item":g(g({},Xt),{display:"flex",alignItems:"center",minWidth:e.tabsDropdownWidth,margin:0,padding:`${e.paddingXXS}px ${e.paddingSM}px`,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${e.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:e.marginSM},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:n}},"&:hover":{background:e.controlItemBgHover},"&-disabled":{"&, &:hover":{color:e.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}})}})}},Zz=e=>{const{componentCls:t,margin:n,colorSplit:o}=e;return{[`${t}-top, ${t}-bottom`]:{flexDirection:"column",[`> ${t}-nav, > div > ${t}-nav`]:{margin:`0 0 ${n}px 0`,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${e.lineWidth}px ${e.lineType} ${o}`,content:"''"},[`${t}-ink-bar`]:{height:e.lineWidthBold,"&-animated":{transition:`width ${e.motionDurationSlow}, left ${e.motionDurationSlow}, + right ${e.motionDurationSlow}`}},[`${t}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:e.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowRight},[`&${t}-nav-wrap-ping-left::before`]:{opacity:1},[`&${t}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${t}-top`]:{[`> ${t}-nav, + > div > ${t}-nav`]:{"&::before":{bottom:0},[`${t}-ink-bar`]:{bottom:0}}},[`${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,marginTop:`${n}px`,marginBottom:0,"&::before":{top:0},[`${t}-ink-bar`]:{top:0}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0}},[`${t}-left, ${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{flexDirection:"column",minWidth:e.controlHeight*1.25,[`${t}-tab`]:{padding:`${e.paddingXS}px ${e.paddingLG}px`,textAlign:"center"},[`${t}-tab + ${t}-tab`]:{margin:`${e.margin}px 0 0 0`},[`${t}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:e.controlHeight},"&::before":{top:0,boxShadow:e.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:e.boxShadowTabsOverflowBottom},[`&${t}-nav-wrap-ping-top::before`]:{opacity:1},[`&${t}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${t}-ink-bar`]:{width:e.lineWidthBold,"&-animated":{transition:`height ${e.motionDurationSlow}, top ${e.motionDurationSlow}`}},[`${t}-nav-list, ${t}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{marginLeft:{_skip_check_:!0,value:`-${e.lineWidth}px`},borderLeft:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:e.paddingLG}}}},[`${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,[`${t}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:-e.lineWidth},borderRight:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingRight:{_skip_check_:!0,value:e.paddingLG}}}}}},Jz=e=>{const{componentCls:t,padding:n}=e;return{[t]:{"&-small":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px 0`,fontSize:e.fontSize}}},"&-large":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${n}px 0`,fontSize:e.fontSizeLG}}}},[`${t}-card`]:{[`&${t}-small`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXXS*1.5}px ${n}px`}},[`&${t}-bottom`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`0 0 ${e.borderRadius}px ${e.borderRadius}px`}},[`&${t}-top`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`${e.borderRadius}px ${e.borderRadius}px 0 0`}},[`&${t}-right`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadius}px ${e.borderRadius}px 0`}}},[`&${t}-left`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadius}px 0 0 ${e.borderRadius}px`}}}},[`&${t}-large`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px ${n}px ${e.paddingXXS*1.5}px`}}}}}},eH=e=>{const{componentCls:t,tabsActiveColor:n,tabsHoverColor:o,iconCls:r,tabsHorizontalGutter:l}=e,a=`${t}-tab`;return{[a]:{position:"relative",display:"inline-flex",alignItems:"center",padding:`${e.paddingSM}px 0`,fontSize:`${e.fontSize}px`,background:"transparent",border:0,outline:"none",cursor:"pointer","&-btn, &-remove":g({"&:focus:not(:focus-visible), &:active":{color:n}},zo(e)),"&-btn":{outline:"none",transition:"all 0.3s"},"&-remove":{flex:"none",marginRight:{_skip_check_:!0,value:-e.marginXXS},marginLeft:{_skip_check_:!0,value:e.marginXS},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextHeading}},"&:hover":{color:o},[`&${a}-active ${a}-btn`]:{color:e.colorPrimary,textShadow:e.tabsActiveTextShadow},[`&${a}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${a}-disabled ${a}-btn, &${a}-disabled ${t}-remove`]:{"&:focus, &:active":{color:e.colorTextDisabled}},[`& ${a}-remove ${r}`]:{margin:0},[r]:{marginRight:{_skip_check_:!0,value:e.marginSM}}},[`${a} + ${a}`]:{margin:{_skip_check_:!0,value:`0 0 0 ${l}px`}}}},tH=e=>{const{componentCls:t,tabsHorizontalGutter:n,iconCls:o,tabsCardGutter:r}=e;return{[`${t}-rtl`]:{direction:"rtl",[`${t}-nav`]:{[`${t}-tab`]:{margin:{_skip_check_:!0,value:`0 0 0 ${n}px`},[`${t}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[o]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:`${e.marginSM}px`}},[`${t}-tab-remove`]:{marginRight:{_skip_check_:!0,value:`${e.marginXS}px`},marginLeft:{_skip_check_:!0,value:`-${e.marginXXS}px`},[o]:{margin:0}}}},[`&${t}-left`]:{[`> ${t}-nav`]:{order:1},[`> ${t}-content-holder`]:{order:0}},[`&${t}-right`]:{[`> ${t}-nav`]:{order:0},[`> ${t}-content-holder`]:{order:1}},[`&${t}-card${t}-top, &${t}-card${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginRight:{_skip_check_:!0,value:`${r}px`},marginLeft:{_skip_check_:!0,value:0}}}}},[`${t}-dropdown-rtl`]:{direction:"rtl"},[`${t}-menu-item`]:{[`${t}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},nH=e=>{const{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeight:o,tabsCardGutter:r,tabsHoverColor:l,tabsActiveColor:a,colorSplit:i}=e;return{[t]:g(g(g(g({},Qe(e)),{display:"flex",[`> ${t}-nav, > div > ${t}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${t}-nav-wrap`]:{position:"relative",display:"flex",flex:"auto",alignSelf:"stretch",overflow:"hidden",whiteSpace:"nowrap",transform:"translate(0)","&::before, &::after":{position:"absolute",zIndex:1,opacity:0,transition:`opacity ${e.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${t}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${e.motionDurationSlow}`},[`${t}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${t}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${t}-nav-more`]:{position:"relative",padding:n,background:"transparent",border:0,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:e.controlHeightLG/8,transform:"translateY(100%)",content:"''"}},[`${t}-nav-add`]:g({minWidth:`${o}px`,marginLeft:{_skip_check_:!0,value:`${r}px`},padding:`0 ${e.paddingXS}px`,background:"transparent",border:`${e.lineWidth}px ${e.lineType} ${i}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,outline:"none",cursor:"pointer",color:e.colorText,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&:hover":{color:l},"&:active, &:focus:not(:focus-visible)":{color:a}},zo(e))},[`${t}-extra-content`]:{flex:"none"},[`${t}-ink-bar`]:{position:"absolute",background:e.colorPrimary,pointerEvents:"none"}}),eH(e)),{[`${t}-content`]:{position:"relative",display:"flex",width:"100%","&-animated":{transition:"margin 0.3s"}},[`${t}-content-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${t}-tabpane`]:{outline:"none",flex:"none",width:"100%"}}),[`${t}-centered`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-nav-wrap`]:{[`&:not([class*='${t}-nav-wrap-ping'])`]:{justifyContent:"center"}}}}}},oH=Je("Tabs",e=>{const t=e.controlHeightLG,n=Le(e,{tabsHoverColor:e.colorPrimaryHover,tabsActiveColor:e.colorPrimaryActive,tabsCardHorizontalPadding:`${(t-Math.round(e.fontSize*e.lineHeight))/2-e.lineWidth}px ${e.padding}px`,tabsCardHeight:t,tabsCardGutter:e.marginXXS/2,tabsHorizontalGutter:32,tabsCardHeadBackground:e.colorFillAlter,dropdownEdgeChildVerticalPadding:e.paddingXXS,tabsActiveTextShadow:"0 0 0.25px currentcolor",tabsDropdownHeight:200,tabsDropdownWidth:120});return[Jz(n),tH(n),Zz(n),Qz(n),qz(n),nH(n),Yz(n)]},e=>({zIndexPopup:e.zIndexPopupBase+50}));let zy=0;const M4=()=>({prefixCls:{type:String},id:{type:String},popupClassName:String,getPopupContainer:ce(),activeKey:{type:[String,Number]},defaultActiveKey:{type:[String,Number]},direction:je(),animated:Xe([Boolean,Object]),renderTabBar:ce(),tabBarGutter:{type:Number},tabBarStyle:De(),tabPosition:je(),destroyInactiveTabPane:xe(),hideAdd:Boolean,type:je(),size:je(),centered:Boolean,onEdit:ce(),onChange:ce(),onTabClick:ce(),onTabScroll:ce(),"onUpdate:activeKey":ce(),locale:De(),onPrevClick:ce(),onNextClick:ce(),tabBarExtraContent:V.any});function rH(e){return e.map(t=>{if(Rt(t)){const n=g({},t.props||{});for(const[p,v]of Object.entries(n))delete n[p],n[Zr(p)]=v;const o=t.children||{},r=t.key!==void 0?t.key:void 0,{tab:l=o.tab,disabled:a,forceRender:i,closable:s,animated:u,active:c,destroyInactiveTabPane:d}=n;return g(g({key:r},n),{node:t,closeIcon:o.closeIcon,tab:l,disabled:a===""||a,forceRender:i===""||i,closable:s===""||s,animated:u===""||u,active:c===""||c,destroyInactiveTabPane:d===""||d})}return null}).filter(t=>t)}const lH=te({compatConfig:{MODE:3},name:"InternalTabs",inheritAttrs:!1,props:g(g({},rt(M4(),{tabPosition:"top",animated:{inkBar:!0,tabPane:!1}})),{tabs:st()}),slots:Object,setup(e,t){let{attrs:n,slots:o}=t;yt(e.onPrevClick===void 0&&e.onNextClick===void 0,"Tabs","`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead."),yt(e.tabBarExtraContent===void 0,"Tabs","`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead."),yt(o.tabBarExtraContent===void 0,"Tabs","`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.");const{prefixCls:r,direction:l,size:a,rootPrefixCls:i,getPopupContainer:s}=Me("tabs",e),[u,c]=oH(r),d=P(()=>l.value==="rtl"),p=P(()=>{const{animated:x,tabPosition:I}=e;return x===!1||["left","right"].includes(I)?{inkBar:!1,tabPane:!1}:x===!0?{inkBar:!0,tabPane:!0}:g({inkBar:!0,tabPane:!1},typeof x=="object"?x:{})}),[v,y]=pt(!1);Ve(()=>{y(Fv())});const[m,h]=wt(()=>{var x;return(x=e.tabs[0])===null||x===void 0?void 0:x.key},{value:P(()=>e.activeKey),defaultValue:e.defaultActiveKey}),[b,$]=pt(()=>e.tabs.findIndex(x=>x.key===m.value));ke(()=>{var x;let I=e.tabs.findIndex(E=>E.key===m.value);I===-1&&(I=Math.max(0,Math.min(b.value,e.tabs.length-1)),h((x=e.tabs[I])===null||x===void 0?void 0:x.key)),$(I)});const[C,w]=wt(null,{value:P(()=>e.id)}),S=P(()=>v.value&&!["left","right"].includes(e.tabPosition)?"top":e.tabPosition);Ve(()=>{e.id||(w(`rc-tabs-${zy}`),zy+=1)});const O=(x,I)=>{var E,M;(E=e.onTabClick)===null||E===void 0||E.call(e,x,I);const _=x!==m.value;h(x),_&&((M=e.onChange)===null||M===void 0||M.call(e,x))};return kz({tabs:P(()=>e.tabs),prefixCls:r}),()=>{const{id:x,type:I,tabBarGutter:E,tabBarStyle:M,locale:_,destroyInactiveTabPane:z,renderTabBar:R=o.renderTabBar,onTabScroll:H,hideAdd:T,centered:D}=e,A={id:C.value,activeKey:m.value,animated:p.value,tabPosition:S.value,rtl:d.value,mobile:v.value};let B;I==="editable-card"&&(B={onEdit:(j,G)=>{let{key:U,event:K}=G;var Y;(Y=e.onEdit)===null||Y===void 0||Y.call(e,j==="add"?K:U,j)},removeIcon:()=>f(Qn,null,null),addIcon:o.addIcon?o.addIcon:()=>f(Xz,null,null),showAdd:T!==!0});let N;const k=g(g({},A),{moreTransitionName:`${i.value}-slide-up`,editable:B,locale:_,tabBarGutter:E,onTabClick:O,onTabScroll:H,style:M,getPopupContainer:s.value,popupClassName:ne(e.popupClassName,c.value)});R?N=R(g(g({},k),{DefaultTabBar:ky})):N=f(ky,k,qC(o,["moreIcon","leftExtra","rightExtra","tabBarExtraContent"]));const L=r.value;return u(f("div",F(F({},n),{},{id:x,class:ne(L,`${L}-${S.value}`,{[c.value]:!0,[`${L}-${a.value}`]:a.value,[`${L}-card`]:["card","editable-card"].includes(I),[`${L}-editable-card`]:I==="editable-card",[`${L}-centered`]:D,[`${L}-mobile`]:v.value,[`${L}-editable`]:I==="editable-card",[`${L}-rtl`]:d.value},n.class)}),[N,f(Wz,F(F({destroyInactiveTabPane:z},A),{},{animated:p.value}),null)]))}}}),Ol=te({compatConfig:{MODE:3},name:"ATabs",inheritAttrs:!1,props:rt(M4(),{tabPosition:"top",animated:{inkBar:!0,tabPane:!1}}),slots:Object,setup(e,t){let{attrs:n,slots:o,emit:r}=t;const l=a=>{r("update:activeKey",a),r("change",a)};return()=>{var a;const i=rH(bt((a=o.default)===null||a===void 0?void 0:a.call(o)));return f(lH,F(F(F({},tt(e,["onUpdate:activeKey"])),n),{},{onChange:l,tabs:i}),o)}}}),aH=()=>({tab:V.any,disabled:{type:Boolean},forceRender:{type:Boolean},closable:{type:Boolean},animated:{type:Boolean},active:{type:Boolean},destroyInactiveTabPane:{type:Boolean},prefixCls:{type:String},tabKey:{type:[String,Number]},id:{type:String}}),Yf=te({compatConfig:{MODE:3},name:"ATabPane",inheritAttrs:!1,__ANT_TAB_PANE:!0,props:aH(),slots:Object,setup(e,t){let{attrs:n,slots:o}=t;const r=ee(e.forceRender);ue([()=>e.active,()=>e.destroyInactiveTabPane],()=>{e.active?r.value=!0:e.destroyInactiveTabPane&&(r.value=!1)},{immediate:!0});const l=P(()=>e.active?{}:e.animated?{visibility:"hidden",height:0,overflowY:"hidden"}:{display:"none"});return()=>{var a;const{prefixCls:i,forceRender:s,id:u,active:c,tabKey:d}=e;return f("div",{id:u&&`${u}-panel-${d}`,role:"tabpanel",tabindex:c?0:-1,"aria-labelledby":u&&`${u}-tab-${d}`,"aria-hidden":!c,style:[l.value,n.style],class:[`${i}-tabpane`,c&&`${i}-tabpane-active`,n.class]},[(c||r.value||s)&&((a=o.default)===null||a===void 0?void 0:a.call(o))])}}});Ol.TabPane=Yf;Ol.install=function(e){return e.component(Ol.name,Ol),e.component(Yf.name,Yf),e};const iH=e=>{const{antCls:t,componentCls:n,cardHeadHeight:o,cardPaddingBase:r,cardHeadTabsMarginBottom:l}=e;return g(g({display:"flex",justifyContent:"center",flexDirection:"column",minHeight:o,marginBottom:-1,padding:`0 ${r}px`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,background:"transparent",borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},so()),{"&-wrapper":{width:"100%",display:"flex",alignItems:"center"},"&-title":g(g({display:"inline-block",flex:1},Xt),{[` + > ${n}-typography, + > ${n}-typography-edit-content + `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${t}-tabs-top`]:{clear:"both",marginBottom:l,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,"&-bar":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`}}})},sH=e=>{const{cardPaddingBase:t,colorBorderSecondary:n,cardShadow:o,lineWidth:r}=e;return{width:"33.33%",padding:t,border:0,borderRadius:0,boxShadow:` + ${r}px 0 0 0 ${n}, + 0 ${r}px 0 0 ${n}, + ${r}px ${r}px 0 0 ${n}, + ${r}px 0 0 0 ${n} inset, + 0 ${r}px 0 0 ${n} inset; + `,transition:`all ${e.motionDurationMid}`,"&-hoverable:hover":{position:"relative",zIndex:1,boxShadow:o}}},cH=e=>{const{componentCls:t,iconCls:n,cardActionsLiMargin:o,cardActionsIconSize:r,colorBorderSecondary:l}=e;return g(g({margin:0,padding:0,listStyle:"none",background:e.colorBgContainer,borderTop:`${e.lineWidth}px ${e.lineType} ${l}`,display:"flex",borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px `},so()),{"& > li":{margin:o,color:e.colorTextDescription,textAlign:"center","> span":{position:"relative",display:"block",minWidth:e.cardActionsIconSize*2,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer","&:hover":{color:e.colorPrimary,transition:`color ${e.motionDurationMid}`},[`a:not(${t}-btn), > ${n}`]:{display:"inline-block",width:"100%",color:e.colorTextDescription,lineHeight:`${e.fontSize*e.lineHeight}px`,transition:`color ${e.motionDurationMid}`,"&:hover":{color:e.colorPrimary}},[`> ${n}`]:{fontSize:r,lineHeight:`${r*e.lineHeight}px`}},"&:not(:last-child)":{borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${l}`}}})},uH=e=>g(g({margin:`-${e.marginXXS}px 0`,display:"flex"},so()),{"&-avatar":{paddingInlineEnd:e.padding},"&-detail":{overflow:"hidden",flex:1,"> div:not(:last-child)":{marginBottom:e.marginXS}},"&-title":g({color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG},Xt),"&-description":{color:e.colorTextDescription}}),dH=e=>{const{componentCls:t,cardPaddingBase:n,colorFillAlter:o}=e;return{[`${t}-head`]:{padding:`0 ${n}px`,background:o,"&-title":{fontSize:e.fontSize}},[`${t}-body`]:{padding:`${e.padding}px ${n}px`}}},fH=e=>{const{componentCls:t}=e;return{overflow:"hidden",[`${t}-body`]:{userSelect:"none"}}},pH=e=>{const{componentCls:t,cardShadow:n,cardHeadPadding:o,colorBorderSecondary:r,boxShadow:l,cardPaddingBase:a}=e;return{[t]:g(g({},Qe(e)),{position:"relative",background:e.colorBgContainer,borderRadius:e.borderRadiusLG,[`&:not(${t}-bordered)`]:{boxShadow:l},[`${t}-head`]:iH(e),[`${t}-extra`]:{marginInlineStart:"auto",color:"",fontWeight:"normal",fontSize:e.fontSize},[`${t}-body`]:g({padding:a,borderRadius:` 0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},so()),[`${t}-grid`]:sH(e),[`${t}-cover`]:{"> *":{display:"block",width:"100%"},img:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`}},[`${t}-actions`]:cH(e),[`${t}-meta`]:uH(e)}),[`${t}-bordered`]:{border:`${e.lineWidth}px ${e.lineType} ${r}`,[`${t}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${t}-hoverable`]:{cursor:"pointer",transition:`box-shadow ${e.motionDurationMid}, border-color ${e.motionDurationMid}`,"&:hover":{borderColor:"transparent",boxShadow:n}},[`${t}-contain-grid`]:{[`${t}-body`]:{display:"flex",flexWrap:"wrap"},[`&:not(${t}-loading) ${t}-body`]:{marginBlockStart:-e.lineWidth,marginInlineStart:-e.lineWidth,padding:0}},[`${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{paddingTop:o}}},[`${t}-type-inner`]:dH(e),[`${t}-loading`]:fH(e),[`${t}-rtl`]:{direction:"rtl"}}},vH=e=>{const{componentCls:t,cardPaddingSM:n,cardHeadHeightSM:o}=e;return{[`${t}-small`]:{[`> ${t}-head`]:{minHeight:o,padding:`0 ${n}px`,fontSize:e.fontSize,[`> ${t}-head-wrapper`]:{[`> ${t}-extra`]:{fontSize:e.fontSize}}},[`> ${t}-body`]:{padding:n}},[`${t}-small${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{minHeight:o,paddingTop:0,display:"flex",alignItems:"center"}}}}},gH=Je("Card",e=>{const t=Le(e,{cardShadow:e.boxShadowCard,cardHeadHeight:e.fontSizeLG*e.lineHeightLG+e.padding*2,cardHeadHeightSM:e.fontSize*e.lineHeight+e.paddingXS*2,cardHeadPadding:e.padding,cardPaddingBase:e.paddingLG,cardHeadTabsMarginBottom:-e.padding-e.lineWidth,cardActionsLiMargin:`${e.paddingSM}px 0`,cardActionsIconSize:e.fontSize,cardPaddingSM:12});return[pH(t),vH(t)]}),mH=()=>({prefixCls:String,width:{type:[Number,String]}}),hH=te({compatConfig:{MODE:3},name:"SkeletonTitle",props:mH(),setup(e){return()=>{const{prefixCls:t,width:n}=e,o=typeof n=="number"?`${n}px`:n;return f("h3",{class:t,style:{width:o}},null)}}}),Kg=hH,bH=()=>({prefixCls:String,width:{type:[Number,String,Array]},rows:Number}),yH=te({compatConfig:{MODE:3},name:"SkeletonParagraph",props:bH(),setup(e){const t=n=>{const{width:o,rows:r=2}=e;if(Array.isArray(o))return o[n];if(r-1===n)return o};return()=>{const{prefixCls:n,rows:o}=e,r=[...Array(o)].map((l,a)=>{const i=t(a);return f("li",{key:a,style:{width:typeof i=="number"?`${i}px`:i}},null)});return f("ul",{class:n},[r])}}}),$H=yH,Zc=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),_4=e=>{const{prefixCls:t,size:n,shape:o}=e,r=ne({[`${t}-lg`]:n==="large",[`${t}-sm`]:n==="small"}),l=ne({[`${t}-circle`]:o==="circle",[`${t}-square`]:o==="square",[`${t}-round`]:o==="round"}),a=typeof n=="number"?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return f("span",{class:ne(t,r,l),style:a},null)};_4.displayName="SkeletonElement";const Jc=_4,SH=new Ue("ant-skeleton-loading",{"0%":{transform:"translateX(-37.5%)"},"100%":{transform:"translateX(37.5%)"}}),eu=e=>({height:e,lineHeight:`${e}px`}),Pl=e=>g({width:e},eu(e)),CH=e=>({position:"relative",zIndex:0,overflow:"hidden",background:"transparent","&::after":{position:"absolute",top:0,insetInlineEnd:"-150%",bottom:0,insetInlineStart:"-150%",background:e.skeletonLoadingBackground,animationName:SH,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite",content:'""'}}),id=e=>g({width:e*5,minWidth:e*5},eu(e)),xH=e=>{const{skeletonAvatarCls:t,color:n,controlHeight:o,controlHeightLG:r,controlHeightSM:l}=e;return{[`${t}`]:g({display:"inline-block",verticalAlign:"top",background:n},Pl(o)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:g({},Pl(r)),[`${t}${t}-sm`]:g({},Pl(l))}},wH=e=>{const{controlHeight:t,borderRadiusSM:n,skeletonInputCls:o,controlHeightLG:r,controlHeightSM:l,color:a}=e;return{[`${o}`]:g({display:"inline-block",verticalAlign:"top",background:a,borderRadius:n},id(t)),[`${o}-lg`]:g({},id(r)),[`${o}-sm`]:g({},id(l))}},Hy=e=>g({width:e},eu(e)),OH=e=>{const{skeletonImageCls:t,imageSizeBase:n,color:o,borderRadiusSM:r}=e;return{[`${t}`]:g(g({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:o,borderRadius:r},Hy(n*2)),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:g(g({},Hy(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}},sd=(e,t,n)=>{const{skeletonButtonCls:o}=e;return{[`${n}${o}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${o}-round`]:{borderRadius:t}}},cd=e=>g({width:e*2,minWidth:e*2},eu(e)),PH=e=>{const{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:o,controlHeightLG:r,controlHeightSM:l,color:a}=e;return g(g(g(g(g({[`${n}`]:g({display:"inline-block",verticalAlign:"top",background:a,borderRadius:t,width:o*2,minWidth:o*2},cd(o))},sd(e,o,n)),{[`${n}-lg`]:g({},cd(r))}),sd(e,r,`${n}-lg`)),{[`${n}-sm`]:g({},cd(l))}),sd(e,l,`${n}-sm`))},IH=e=>{const{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:o,skeletonParagraphCls:r,skeletonButtonCls:l,skeletonInputCls:a,skeletonImageCls:i,controlHeight:s,controlHeightLG:u,controlHeightSM:c,color:d,padding:p,marginSM:v,borderRadius:y,skeletonTitleHeight:m,skeletonBlockRadius:h,skeletonParagraphLineHeight:b,controlHeightXS:$,skeletonParagraphMarginTop:C}=e;return{[`${t}`]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:p,verticalAlign:"top",[`${n}`]:g({display:"inline-block",verticalAlign:"top",background:d},Pl(s)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:g({},Pl(u)),[`${n}-sm`]:g({},Pl(c))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${o}`]:{width:"100%",height:m,background:d,borderRadius:h,[`+ ${r}`]:{marginBlockStart:c}},[`${r}`]:{padding:0,"> li":{width:"100%",height:b,listStyle:"none",background:d,borderRadius:h,"+ li":{marginBlockStart:$}}},[`${r}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${o}, ${r} > li`]:{borderRadius:y}}},[`${t}-with-avatar ${t}-content`]:{[`${o}`]:{marginBlockStart:v,[`+ ${r}`]:{marginBlockStart:C}}},[`${t}${t}-element`]:g(g(g(g({display:"inline-block",width:"auto"},PH(e)),xH(e)),wH(e)),OH(e)),[`${t}${t}-block`]:{width:"100%",[`${l}`]:{width:"100%"},[`${a}`]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${o}, + ${r} > li, + ${n}, + ${l}, + ${a}, + ${i} + `]:g({},CH(e))}}},yi=Je("Skeleton",e=>{const{componentCls:t}=e,n=Le(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:e.controlHeight*1.5,skeletonTitleHeight:e.controlHeight/2,skeletonBlockRadius:e.borderRadiusSM,skeletonParagraphLineHeight:e.controlHeight/2,skeletonParagraphMarginTop:e.marginLG+e.marginXXS,borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.color} 25%, ${e.colorGradientEnd} 37%, ${e.color} 63%)`,skeletonLoadingMotionDuration:"1.4s"});return[IH(n)]},e=>{const{colorFillContent:t,colorFill:n}=e;return{color:t,colorGradientEnd:n}}),TH=()=>({active:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},prefixCls:String,avatar:{type:[Boolean,Object],default:void 0},title:{type:[Boolean,Object],default:void 0},paragraph:{type:[Boolean,Object],default:void 0},round:{type:Boolean,default:void 0}});function ud(e){return e&&typeof e=="object"?e:{}}function EH(e,t){return e&&!t?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function MH(e,t){return!e&&t?{width:"38%"}:e&&t?{width:"50%"}:{}}function _H(e,t){const n={};return(!e||!t)&&(n.width="61%"),!e&&t?n.rows=3:n.rows=2,n}const DH=te({compatConfig:{MODE:3},name:"ASkeleton",props:rt(TH(),{avatar:!1,title:!0,paragraph:!0}),setup(e,t){let{slots:n}=t;const{prefixCls:o,direction:r}=Me("skeleton",e),[l,a]=yi(o);return()=>{var i;const{loading:s,avatar:u,title:c,paragraph:d,active:p,round:v}=e,y=o.value;if(s||e.loading===void 0){const m=!!u||u==="",h=!!c||c==="",b=!!d||d==="";let $;if(m){const S=g(g({prefixCls:`${y}-avatar`},EH(h,b)),ud(u));$=f("div",{class:`${y}-header`},[f(Jc,S,null)])}let C;if(h||b){let S;if(h){const x=g(g({prefixCls:`${y}-title`},MH(m,b)),ud(c));S=f(Kg,x,null)}let O;if(b){const x=g(g({prefixCls:`${y}-paragraph`},_H(m,h)),ud(d));O=f($H,x,null)}C=f("div",{class:`${y}-content`},[S,O])}const w=ne(y,{[`${y}-with-avatar`]:m,[`${y}-active`]:p,[`${y}-rtl`]:r.value==="rtl",[`${y}-round`]:v,[a.value]:!0});return l(f("div",{class:w},[$,C]))}return(i=n.default)===null||i===void 0?void 0:i.call(n)}}}),mn=DH,AH=()=>g(g({},Zc()),{size:String,block:Boolean}),RH=te({compatConfig:{MODE:3},name:"ASkeletonButton",props:rt(AH(),{size:"default"}),setup(e){const{prefixCls:t}=Me("skeleton",e),[n,o]=yi(t),r=P(()=>ne(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},o.value));return()=>n(f("div",{class:r.value},[f(Jc,F(F({},e),{},{prefixCls:`${t.value}-button`}),null)]))}}),D4=RH,BH=te({compatConfig:{MODE:3},name:"ASkeletonInput",props:g(g({},tt(Zc(),["shape"])),{size:String,block:Boolean}),setup(e){const{prefixCls:t}=Me("skeleton",e),[n,o]=yi(t),r=P(()=>ne(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},o.value));return()=>n(f("div",{class:r.value},[f(Jc,F(F({},e),{},{prefixCls:`${t.value}-input`}),null)]))}}),A4=BH,NH="M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",FH=te({compatConfig:{MODE:3},name:"ASkeletonImage",props:tt(Zc(),["size","shape","active"]),setup(e){const{prefixCls:t}=Me("skeleton",e),[n,o]=yi(t),r=P(()=>ne(t.value,`${t.value}-element`,o.value));return()=>n(f("div",{class:r.value},[f("div",{class:`${t.value}-image`},[f("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",class:`${t.value}-image-svg`},[f("path",{d:NH,class:`${t.value}-image-path`},null)])])]))}}),R4=FH,kH=()=>g(g({},Zc()),{shape:String}),LH=te({compatConfig:{MODE:3},name:"ASkeletonAvatar",props:rt(kH(),{size:"default",shape:"circle"}),setup(e){const{prefixCls:t}=Me("skeleton",e),[n,o]=yi(t),r=P(()=>ne(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active},o.value));return()=>n(f("div",{class:r.value},[f(Jc,F(F({},e),{},{prefixCls:`${t.value}-avatar`}),null)]))}}),B4=LH;mn.Button=D4;mn.Avatar=B4;mn.Input=A4;mn.Image=R4;mn.Title=Kg;mn.install=function(e){return e.component(mn.name,mn),e.component(mn.Button.name,D4),e.component(mn.Avatar.name,B4),e.component(mn.Input.name,A4),e.component(mn.Image.name,R4),e.component(mn.Title.name,Kg),e};const{TabPane:zH}=Ol,HH=()=>({prefixCls:String,title:V.any,extra:V.any,bordered:{type:Boolean,default:!0},bodyStyle:{type:Object,default:void 0},headStyle:{type:Object,default:void 0},loading:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!1},type:{type:String},size:{type:String},actions:V.any,tabList:{type:Array},tabBarExtraContent:V.any,activeTabKey:String,defaultActiveTabKey:String,cover:V.any,onTabChange:{type:Function}}),jH=te({compatConfig:{MODE:3},name:"ACard",inheritAttrs:!1,props:HH(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l,size:a}=Me("card",e),[i,s]=gH(r),u=p=>p.map((y,m)=>tn(y)&&!yc(y)||!tn(y)?f("li",{style:{width:`${100/p.length}%`},key:`action-${m}`},[f("span",null,[y])]):null),c=p=>{var v;(v=e.onTabChange)===null||v===void 0||v.call(e,p)},d=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],v;return p.forEach(y=>{y&&gc(y.type)&&y.type.__ANT_CARD_GRID&&(v=!0)}),v};return()=>{var p,v,y,m,h,b;const{headStyle:$={},bodyStyle:C={},loading:w,bordered:S=!0,type:O,tabList:x,hoverable:I,activeTabKey:E,defaultActiveTabKey:M,tabBarExtraContent:_=pa((p=n.tabBarExtraContent)===null||p===void 0?void 0:p.call(n)),title:z=pa((v=n.title)===null||v===void 0?void 0:v.call(n)),extra:R=pa((y=n.extra)===null||y===void 0?void 0:y.call(n)),actions:H=pa((m=n.actions)===null||m===void 0?void 0:m.call(n)),cover:T=pa((h=n.cover)===null||h===void 0?void 0:h.call(n))}=e,D=bt((b=n.default)===null||b===void 0?void 0:b.call(n)),A=r.value,B={[`${A}`]:!0,[s.value]:!0,[`${A}-loading`]:w,[`${A}-bordered`]:S,[`${A}-hoverable`]:!!I,[`${A}-contain-grid`]:d(D),[`${A}-contain-tabs`]:x&&x.length,[`${A}-${a.value}`]:a.value,[`${A}-type-${O}`]:!!O,[`${A}-rtl`]:l.value==="rtl"},N=f(mn,{loading:!0,active:!0,paragraph:{rows:4},title:!1},{default:()=>[D]}),k=E!==void 0,L={size:"large",[k?"activeKey":"defaultActiveKey"]:k?E:M,onChange:c,class:`${A}-head-tabs`};let j;const G=x&&x.length?f(Ol,L,{default:()=>[x.map(Q=>{const{tab:J,slots:Z}=Q,W=Z==null?void 0:Z.tab;yt(!Z,"Card","tabList slots is deprecated, Please use `customTab` instead.");let X=J!==void 0?J:n[W]?n[W](Q):null;return X=Tc(n,"customTab",Q,()=>[X]),f(zH,{tab:X,key:Q.key,disabled:Q.disabled},null)})],rightExtra:_?()=>_:null}):null;(z||R||G)&&(j=f("div",{class:`${A}-head`,style:$},[f("div",{class:`${A}-head-wrapper`},[z&&f("div",{class:`${A}-head-title`},[z]),R&&f("div",{class:`${A}-extra`},[R])]),G]));const U=T?f("div",{class:`${A}-cover`},[T]):null,K=f("div",{class:`${A}-body`,style:C},[w?N:D]),Y=H&&H.length?f("ul",{class:`${A}-actions`},[u(H)]):null;return i(f("div",F(F({ref:"cardContainerRef"},o),{},{class:[B,o.class]}),[j,U,D&&D.length?K:null,Y]))}}}),_a=jH,VH=()=>({prefixCls:String,title:Dn(),description:Dn(),avatar:Dn()}),qf=te({compatConfig:{MODE:3},name:"ACardMeta",props:VH(),slots:Object,setup(e,t){let{slots:n}=t;const{prefixCls:o}=Me("card",e);return()=>{const r={[`${o.value}-meta`]:!0},l=At(n,e,"avatar"),a=At(n,e,"title"),i=At(n,e,"description"),s=l?f("div",{class:`${o.value}-meta-avatar`},[l]):null,u=a?f("div",{class:`${o.value}-meta-title`},[a]):null,c=i?f("div",{class:`${o.value}-meta-description`},[i]):null,d=u||c?f("div",{class:`${o.value}-meta-detail`},[u,c]):null;return f("div",{class:r},[s,d])}}}),WH=()=>({prefixCls:String,hoverable:{type:Boolean,default:!0}}),Qf=te({compatConfig:{MODE:3},name:"ACardGrid",__ANT_CARD_GRID:!0,props:WH(),setup(e,t){let{slots:n}=t;const{prefixCls:o}=Me("card",e),r=P(()=>({[`${o.value}-grid`]:!0,[`${o.value}-grid-hoverable`]:e.hoverable}));return()=>{var l;return f("div",{class:r.value},[(l=n.default)===null||l===void 0?void 0:l.call(n)])}}});_a.Meta=qf;_a.Grid=Qf;_a.install=function(e){return e.component(_a.name,_a),e.component(qf.name,qf),e.component(Qf.name,Qf),e};const Gg="__RC_CASCADER_SPLIT__",N4="SHOW_PARENT",F4="SHOW_CHILD";function ar(e){return e.join(Gg)}function gl(e){return e.map(ar)}function KH(e){return e.split(Gg)}function GH(e){const{label:t,value:n,children:o}=e||{},r=n||"value";return{label:t||"label",value:r,key:r,children:o||"children"}}function Ca(e,t){var n,o;return(n=e.isLeaf)!==null&&n!==void 0?n:!(!((o=e[t.children])===null||o===void 0)&&o.length)}function XH(e){const t=e.parentElement;if(!t)return;const n=e.offsetTop-t.offsetTop;n-t.scrollTop<0?t.scrollTo({top:n}):n+e.offsetHeight-t.scrollTop>t.offsetHeight&&t.scrollTo({top:n+e.offsetHeight-t.offsetHeight})}const k4=Symbol("TreeContextKey"),UH=te({compatConfig:{MODE:3},name:"TreeContext",props:{value:{type:Object}},setup(e,t){let{slots:n}=t;return We(k4,P(()=>e.value)),()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),Xg=()=>Ke(k4,P(()=>({}))),L4=Symbol("KeysStateKey"),YH=e=>{We(L4,e)},z4=()=>Ke(L4,{expandedKeys:q([]),selectedKeys:q([]),loadedKeys:q([]),loadingKeys:q([]),checkedKeys:q([]),halfCheckedKeys:q([]),expandedKeysSet:P(()=>new Set),selectedKeysSet:P(()=>new Set),loadedKeysSet:P(()=>new Set),loadingKeysSet:P(()=>new Set),checkedKeysSet:P(()=>new Set),halfCheckedKeysSet:P(()=>new Set),flattenNodes:q([])}),qH=e=>{let{prefixCls:t,level:n,isStart:o,isEnd:r}=e;const l=`${t}-indent-unit`,a=[];for(let i=0;i({prefixCls:String,focusable:{type:Boolean,default:void 0},activeKey:[Number,String],tabindex:Number,children:V.any,treeData:{type:Array},fieldNames:{type:Object},showLine:{type:[Boolean,Object],default:void 0},showIcon:{type:Boolean,default:void 0},icon:V.any,selectable:{type:Boolean,default:void 0},expandAction:[String,Boolean],disabled:{type:Boolean,default:void 0},multiple:{type:Boolean,default:void 0},checkable:{type:Boolean,default:void 0},checkStrictly:{type:Boolean,default:void 0},draggable:{type:[Function,Boolean]},defaultExpandParent:{type:Boolean,default:void 0},autoExpandParent:{type:Boolean,default:void 0},defaultExpandAll:{type:Boolean,default:void 0},defaultExpandedKeys:{type:Array},expandedKeys:{type:Array},defaultCheckedKeys:{type:Array},checkedKeys:{type:[Object,Array]},defaultSelectedKeys:{type:Array},selectedKeys:{type:Array},allowDrop:{type:Function},dropIndicatorRender:{type:Function},onFocus:{type:Function},onBlur:{type:Function},onKeydown:{type:Function},onContextmenu:{type:Function},onClick:{type:Function},onDblclick:{type:Function},onScroll:{type:Function},onExpand:{type:Function},onCheck:{type:Function},onSelect:{type:Function},onLoad:{type:Function},loadData:{type:Function},loadedKeys:{type:Array},onMouseenter:{type:Function},onMouseleave:{type:Function},onRightClick:{type:Function},onDragstart:{type:Function},onDragenter:{type:Function},onDragover:{type:Function},onDragleave:{type:Function},onDragend:{type:Function},onDrop:{type:Function},onActiveChange:{type:Function},filterTreeNode:{type:Function},motion:V.any,switcherIcon:V.any,height:Number,itemHeight:Number,virtual:{type:Boolean,default:void 0},direction:{type:String},rootClassName:String,rootStyle:Object});var JH=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r"`v-slot:"+le+"` ")}`;const l=q(!1),a=Xg(),{expandedKeysSet:i,selectedKeysSet:s,loadedKeysSet:u,loadingKeysSet:c,checkedKeysSet:d,halfCheckedKeysSet:p}=z4(),{dragOverNodeKey:v,dropPosition:y,keyEntities:m}=a.value,h=P(()=>ms(e.eventKey,{expandedKeysSet:i.value,selectedKeysSet:s.value,loadedKeysSet:u.value,loadingKeysSet:c.value,checkedKeysSet:d.value,halfCheckedKeysSet:p.value,dragOverNodeKey:v,dropPosition:y,keyEntities:m})),b=Mn(()=>h.value.expanded),$=Mn(()=>h.value.selected),C=Mn(()=>h.value.checked),w=Mn(()=>h.value.loaded),S=Mn(()=>h.value.loading),O=Mn(()=>h.value.halfChecked),x=Mn(()=>h.value.dragOver),I=Mn(()=>h.value.dragOverGapTop),E=Mn(()=>h.value.dragOverGapBottom),M=Mn(()=>h.value.pos),_=q(),z=P(()=>{const{eventKey:le}=e,{keyEntities:oe}=a.value,{children:fe}=oe[le]||{};return!!(fe||[]).length}),R=P(()=>{const{isLeaf:le}=e,{loadData:oe}=a.value,fe=z.value;return le===!1?!1:le||!oe&&!fe||oe&&w.value&&!fe}),H=P(()=>R.value?null:b.value?jy:Vy),T=P(()=>{const{disabled:le}=e,{disabled:oe}=a.value;return!!(oe||le)}),D=P(()=>{const{checkable:le}=e,{checkable:oe}=a.value;return!oe||le===!1?!1:oe}),A=P(()=>{const{selectable:le}=e,{selectable:oe}=a.value;return typeof le=="boolean"?le:oe}),B=P(()=>{const{data:le,active:oe,checkable:fe,disableCheckbox:Oe,disabled:Ie,selectable:Ae}=e;return g(g({active:oe,checkable:fe,disableCheckbox:Oe,disabled:Ie,selectable:Ae},le),{dataRef:le,data:le,isLeaf:R.value,checked:C.value,expanded:b.value,loading:S.value,selected:$.value,halfChecked:O.value})}),N=wn(),k=P(()=>{const{eventKey:le}=e,{keyEntities:oe}=a.value,{parent:fe}=oe[le]||{};return g(g({},hs(g({},e,h.value))),{parent:fe})}),L=vt({eventData:k,eventKey:P(()=>e.eventKey),selectHandle:_,pos:M,key:N.vnode.key});r(L);const j=le=>{const{onNodeDoubleClick:oe}=a.value;oe(le,k.value)},G=le=>{if(T.value)return;const{onNodeSelect:oe}=a.value;le.preventDefault(),oe(le,k.value)},U=le=>{if(T.value)return;const{disableCheckbox:oe}=e,{onNodeCheck:fe}=a.value;if(!D.value||oe)return;le.preventDefault();const Oe=!C.value;fe(le,k.value,Oe)},K=le=>{const{onNodeClick:oe}=a.value;oe(le,k.value),A.value?G(le):U(le)},Y=le=>{const{onNodeMouseEnter:oe}=a.value;oe(le,k.value)},Q=le=>{const{onNodeMouseLeave:oe}=a.value;oe(le,k.value)},J=le=>{const{onNodeContextMenu:oe}=a.value;oe(le,k.value)},Z=le=>{const{onNodeDragStart:oe}=a.value;le.stopPropagation(),l.value=!0,oe(le,L);try{le.dataTransfer.setData("text/plain","")}catch(fe){}},W=le=>{const{onNodeDragEnter:oe}=a.value;le.preventDefault(),le.stopPropagation(),oe(le,L)},X=le=>{const{onNodeDragOver:oe}=a.value;le.preventDefault(),le.stopPropagation(),oe(le,L)},re=le=>{const{onNodeDragLeave:oe}=a.value;le.stopPropagation(),oe(le,L)},ae=le=>{const{onNodeDragEnd:oe}=a.value;le.stopPropagation(),l.value=!1,oe(le,L)},pe=le=>{const{onNodeDrop:oe}=a.value;le.preventDefault(),le.stopPropagation(),l.value=!1,oe(le,L)},ye=le=>{const{onNodeExpand:oe}=a.value;S.value||oe(le,k.value)},de=()=>{const{data:le}=e,{draggable:oe}=a.value;return!!(oe&&(!oe.nodeDraggable||oe.nodeDraggable(le)))},me=()=>{const{draggable:le,prefixCls:oe}=a.value;return le&&(le!=null&&le.icon)?f("span",{class:`${oe}-draggable-icon`},[le.icon]):null},ie=()=>{var le,oe,fe;const{switcherIcon:Oe=o.switcherIcon||((le=a.value.slots)===null||le===void 0?void 0:le[(fe=(oe=e.data)===null||oe===void 0?void 0:oe.slots)===null||fe===void 0?void 0:fe.switcherIcon])}=e,{switcherIcon:Ie}=a.value,Ae=Oe||Ie;return typeof Ae=="function"?Ae(B.value):Ae},se=()=>{const{loadData:le,onNodeLoad:oe}=a.value;S.value||le&&b.value&&!R.value&&!z.value&&!w.value&&oe(k.value)};Ve(()=>{se()}),Co(()=>{se()});const be=()=>{const{prefixCls:le}=a.value,oe=ie();if(R.value)return oe!==!1?f("span",{class:ne(`${le}-switcher`,`${le}-switcher-noop`)},[oe]):null;const fe=ne(`${le}-switcher`,`${le}-switcher_${b.value?jy:Vy}`);return oe!==!1?f("span",{onClick:ye,class:fe},[oe]):null},we=()=>{var le,oe;const{disableCheckbox:fe}=e,{prefixCls:Oe}=a.value,Ie=T.value;return D.value?f("span",{class:ne(`${Oe}-checkbox`,C.value&&`${Oe}-checkbox-checked`,!C.value&&O.value&&`${Oe}-checkbox-indeterminate`,(Ie||fe)&&`${Oe}-checkbox-disabled`),onClick:U},[(oe=(le=a.value).customCheckable)===null||oe===void 0?void 0:oe.call(le)]):null},ve=()=>{const{prefixCls:le}=a.value;return f("span",{class:ne(`${le}-iconEle`,`${le}-icon__${H.value||"docu"}`,S.value&&`${le}-icon_loading`)},null)},Ce=()=>{const{disabled:le,eventKey:oe}=e,{draggable:fe,dropLevelOffset:Oe,dropPosition:Ie,prefixCls:Ae,indent:ge,dropIndicatorRender:he,dragOverNodeKey:$e,direction:Ee}=a.value;return!le&&fe!==!1&&$e===oe?he({dropPosition:Ie,dropLevelOffset:Oe,indent:ge,prefixCls:Ae,direction:Ee}):null},Te=()=>{var le,oe,fe,Oe,Ie,Ae;const{icon:ge=o.icon,data:he}=e,$e=o.title||((le=a.value.slots)===null||le===void 0?void 0:le[(fe=(oe=e.data)===null||oe===void 0?void 0:oe.slots)===null||fe===void 0?void 0:fe.title])||((Oe=a.value.slots)===null||Oe===void 0?void 0:Oe.title)||e.title,{prefixCls:Ee,showIcon:Re,icon:_e,loadData:Be}=a.value,Ye=T.value,at=`${Ee}-node-content-wrapper`;let nt;if(Re){const Dt=ge||((Ie=a.value.slots)===null||Ie===void 0?void 0:Ie[(Ae=he==null?void 0:he.slots)===null||Ae===void 0?void 0:Ae.icon])||_e;nt=Dt?f("span",{class:ne(`${Ee}-iconEle`,`${Ee}-icon__customize`)},[typeof Dt=="function"?Dt(B.value):Dt]):ve()}else Be&&S.value&&(nt=ve());let it;typeof $e=="function"?it=$e(B.value):it=$e,it=it===void 0?ej:it;const ct=f("span",{class:`${Ee}-title`},[it]);return f("span",{ref:_,title:typeof $e=="string"?$e:"",class:ne(`${at}`,`${at}-${H.value||"normal"}`,!Ye&&($.value||l.value)&&`${Ee}-node-selected`),onMouseenter:Y,onMouseleave:Q,onContextmenu:J,onClick:K,onDblclick:j},[nt,ct,Ce()])};return()=>{const le=g(g({},e),n),{eventKey:oe,isLeaf:fe,isStart:Oe,isEnd:Ie,domRef:Ae,active:ge,data:he,onMousemove:$e,selectable:Ee}=le,Re=JH(le,["eventKey","isLeaf","isStart","isEnd","domRef","active","data","onMousemove","selectable"]),{prefixCls:_e,filterTreeNode:Be,keyEntities:Ye,dropContainerKey:at,dropTargetKey:nt,draggingNodeKey:it}=a.value,ct=T.value,Dt=fr(Re,{aria:!0,data:!0}),{level:Bt}=Ye[oe]||{},zt=Ie[Ie.length-1],Et=de(),en=!ct&&Et,dn=it===oe,Nn=Ee!==void 0?{"aria-selected":!!Ee}:void 0;return f("div",F(F({ref:Ae,class:ne(n.class,`${_e}-treenode`,{[`${_e}-treenode-disabled`]:ct,[`${_e}-treenode-switcher-${b.value?"open":"close"}`]:!fe,[`${_e}-treenode-checkbox-checked`]:C.value,[`${_e}-treenode-checkbox-indeterminate`]:O.value,[`${_e}-treenode-selected`]:$.value,[`${_e}-treenode-loading`]:S.value,[`${_e}-treenode-active`]:ge,[`${_e}-treenode-leaf-last`]:zt,[`${_e}-treenode-draggable`]:en,dragging:dn,"drop-target":nt===oe,"drop-container":at===oe,"drag-over":!ct&&x.value,"drag-over-gap-top":!ct&&I.value,"drag-over-gap-bottom":!ct&&E.value,"filter-node":Be&&Be(k.value)}),style:n.style,draggable:en,"aria-grabbed":dn,onDragstart:en?Z:void 0,onDragenter:Et?W:void 0,onDragover:Et?X:void 0,onDragleave:Et?re:void 0,onDrop:Et?pe:void 0,onDragend:Et?ae:void 0,onMousemove:$e},Nn),Dt),[f(QH,{prefixCls:_e,level:Bt,isStart:Oe,isEnd:Ie},null),me(),be(),we(),Te()])}}});globalThis&&globalThis.__rest;function po(e,t){if(!e)return[];const n=e.slice(),o=n.indexOf(t);return o>=0&&n.splice(o,1),n}function Mo(e,t){const n=(e||[]).slice();return n.indexOf(t)===-1&&n.push(t),n}function Ug(e){return e.split("-")}function V4(e,t){return`${e}-${t}`}function tj(e){return e&&e.type&&e.type.isTreeNode}function nj(e,t){const n=[],o=t[e];function r(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(a=>{let{key:i,children:s}=a;n.push(i),r(s)})}return r(o.children),n}function oj(e){if(e.parent){const t=Ug(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function rj(e){const t=Ug(e.pos);return Number(t[t.length-1])===0}function Wy(e,t,n,o,r,l,a,i,s,u){var c;const{clientX:d,clientY:p}=e,{top:v,height:y}=e.target.getBoundingClientRect(),h=((u==="rtl"?-1:1)*(((r==null?void 0:r.x)||0)-d)-12)/o;let b=i[n.eventKey];if(pR.key===b.key),_=M<=0?0:M-1,z=a[_].key;b=i[z]}const $=b.key,C=b,w=b.key;let S=0,O=0;if(!s.has($))for(let M=0;M-1.5?l({dragNode:x,dropNode:I,dropPosition:1})?S=1:E=!1:l({dragNode:x,dropNode:I,dropPosition:0})?S=0:l({dragNode:x,dropNode:I,dropPosition:1})?S=1:E=!1:l({dragNode:x,dropNode:I,dropPosition:1})?S=1:E=!1,{dropPosition:S,dropLevelOffset:O,dropTargetKey:b.key,dropTargetPos:b.pos,dragOverNodeKey:w,dropContainerKey:S===0?null:((c=b.parent)===null||c===void 0?void 0:c.key)||null,dropAllowed:E}}function Ky(e,t){if(!e)return;const{multiple:n}=t;return n?e.slice():e.length?[e[0]]:e}function dd(e){if(!e)return null;let t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else if(typeof e=="object")t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0};else return null;return t}function Jf(e,t){const n=new Set;function o(r){if(n.has(r))return;const l=t[r];if(!l)return;n.add(r);const{parent:a,node:i}=l;i.disabled||a&&o(a.key)}return(e||[]).forEach(r=>{o(r)}),[...n]}var lj=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r0&&arguments[0]!==void 0?arguments[0]:[];return Ot(n).map(r=>{var l,a,i,s;if(!tj(r))return null;const u=r.children||{},c=r.key,d={};for(const[M,_]of Object.entries(r.props))d[Zr(M)]=_;const{isLeaf:p,checkable:v,selectable:y,disabled:m,disableCheckbox:h}=d,b={isLeaf:p||p===""||void 0,checkable:v||v===""||void 0,selectable:y||y===""||void 0,disabled:m||m===""||void 0,disableCheckbox:h||h===""||void 0},$=g(g({},d),b),{title:C=(l=u.title)===null||l===void 0?void 0:l.call(u,$),icon:w=(a=u.icon)===null||a===void 0?void 0:a.call(u,$),switcherIcon:S=(i=u.switcherIcon)===null||i===void 0?void 0:i.call(u,$)}=d,O=lj(d,["title","icon","switcherIcon"]),x=(s=u.default)===null||s===void 0?void 0:s.call(u),I=g(g(g({},O),{title:C,icon:w,switcherIcon:S,key:c,isLeaf:p}),b),E=t(x);return E.length&&(I.children=E),I})}return t(e)}function aj(e,t,n){const{_title:o,key:r,children:l}=tu(n),a=new Set(t===!0?[]:t),i=[];function s(u){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return u.map((d,p)=>{const v=V4(c?c.pos:"0",p),y=$i(d[r],v);let m;for(let b=0;bp[l]:typeof l=="function"&&(c=p=>l(p)):c=(p,v)=>$i(p[i],v);function d(p,v,y,m){const h=p?p[u]:e,b=p?V4(y.pos,v):"0",$=p?[...m,p]:[];if(p){const C=c(p,b),w={node:p,index:v,pos:b,key:C,parentPos:y.node?y.pos:null,level:y.level+1,nodes:$};t(w)}h&&h.forEach((C,w)=>{d(C,w,{node:p,pos:b,level:y?y.level+1:-1},$)})}d(null)}function Si(e){let{initWrapper:t,processEntity:n,onProcessFinished:o,externalGetKey:r,childrenPropName:l,fieldNames:a}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;const s=r||i,u={},c={};let d={posEntities:u,keyEntities:c};return t&&(d=t(d)||d),ij(e,p=>{const{node:v,index:y,pos:m,key:h,parentPos:b,level:$,nodes:C}=p,w={node:v,nodes:C,index:y,key:h,pos:m,level:$},S=$i(h,m);u[m]=w,c[S]=w,w.parent=u[b],w.parent&&(w.parent.children=w.parent.children||[],w.parent.children.push(w)),n&&n(w,d)},{externalGetKey:s,childrenPropName:l,fieldNames:a}),o&&o(d),d}function ms(e,t){let{expandedKeysSet:n,selectedKeysSet:o,loadedKeysSet:r,loadingKeysSet:l,checkedKeysSet:a,halfCheckedKeysSet:i,dragOverNodeKey:s,dropPosition:u,keyEntities:c}=t;const d=c[e];return{eventKey:e,expanded:n.has(e),selected:o.has(e),loaded:r.has(e),loading:l.has(e),checked:a.has(e),halfChecked:i.has(e),pos:String(d?d.pos:""),parent:d.parent,dragOver:s===e&&u===0,dragOverGapTop:s===e&&u===-1,dragOverGapBottom:s===e&&u===1}}function hs(e){const{data:t,expanded:n,selected:o,checked:r,loaded:l,loading:a,halfChecked:i,dragOver:s,dragOverGapTop:u,dragOverGapBottom:c,pos:d,active:p,eventKey:v}=e,y=g(g({dataRef:t},t),{expanded:n,selected:o,checked:r,loaded:l,loading:a,halfChecked:i,dragOver:s,dragOverGapTop:u,dragOverGapBottom:c,pos:d,active:p,eventKey:v,key:v});return"props"in y||Object.defineProperty(y,"props",{get(){return e}}),y}const sj=(e,t)=>P(()=>Si(e.value,{fieldNames:t.value,initWrapper:o=>g(g({},o),{pathKeyEntities:{}}),processEntity:(o,r)=>{const l=o.nodes.map(a=>a[t.value.value]).join(Gg);r.pathKeyEntities[l]=o,o.key=l}}).pathKeyEntities);function cj(e){const t=q(!1),n=ee({});return ke(()=>{if(!e.value){t.value=!1,n.value={};return}let o={matchInputWidth:!0,limit:50};e.value&&typeof e.value=="object"&&(o=g(g({},o),e.value)),o.limit<=0&&delete o.limit,t.value=!0,n.value=o}),{showSearch:t,searchConfig:n}}const Da="__rc_cascader_search_mark__",uj=(e,t,n)=>{let{label:o}=n;return t.some(r=>String(r[o]).toLowerCase().includes(e.toLowerCase()))},dj=e=>{let{path:t,fieldNames:n}=e;return t.map(o=>o[n.label]).join(" / ")},fj=(e,t,n,o,r,l)=>P(()=>{const{filter:a=uj,render:i=dj,limit:s=50,sort:u}=r.value,c=[];if(!e.value)return[];function d(p,v){p.forEach(y=>{if(!u&&s>0&&c.length>=s)return;const m=[...v,y],h=y[n.value.children];(!h||h.length===0||l.value)&&a(e.value,m,{label:n.value.label})&&c.push(g(g({},y),{[n.value.label]:i({inputValue:e.value,path:m,prefixCls:o.value,fieldNames:n.value}),[Da]:m})),h&&d(y[n.value.children],m)})}return d(t.value,[]),u&&c.sort((p,v)=>u(p[Da],v[Da],e.value,n.value)),s>0?c.slice(0,s):c});function Gy(e,t,n){const o=new Set(e);return e.filter(r=>{const l=t[r],a=l?l.parent:null,i=l?l.children:null;return n===F4?!(i&&i.some(s=>s.key&&o.has(s.key))):!(a&&!a.node.disabled&&o.has(a.key))})}function ti(e,t,n){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;var r;let l=t;const a=[];for(let i=0;i{const p=d[n.value];return o?String(p)===String(s):p===s}),c=u!==-1?l==null?void 0:l[u]:null;a.push({value:(r=c==null?void 0:c[n.value])!==null&&r!==void 0?r:s,index:u,option:c}),l=c==null?void 0:c[n.children]}return a}const pj=(e,t,n)=>P(()=>{const o=[],r=[];return n.value.forEach(l=>{ti(l,e.value,t.value).every(i=>i.option)?r.push(l):o.push(l)}),[r,o]});function W4(e,t){const n=new Set;return e.forEach(o=>{t.has(o)||n.add(o)}),n}function vj(e){const{disabled:t,disableCheckbox:n,checkable:o}=e||{};return!!(t||n)||o===!1}function gj(e,t,n,o){const r=new Set(e),l=new Set;for(let i=0;i<=n;i+=1)(t.get(i)||new Set).forEach(u=>{const{key:c,node:d,children:p=[]}=u;r.has(c)&&!o(d)&&p.filter(v=>!o(v.node)).forEach(v=>{r.add(v.key)})});const a=new Set;for(let i=n;i>=0;i-=1)(t.get(i)||new Set).forEach(u=>{const{parent:c,node:d}=u;if(o(d)||!u.parent||a.has(u.parent.key))return;if(o(u.parent.node)){a.add(c.key);return}let p=!0,v=!1;(c.children||[]).filter(y=>!o(y.node)).forEach(y=>{let{key:m}=y;const h=r.has(m);p&&!h&&(p=!1),!v&&(h||l.has(m))&&(v=!0)}),p&&r.add(c.key),v&&l.add(c.key),a.add(c.key)});return{checkedKeys:Array.from(r),halfCheckedKeys:Array.from(W4(l,r))}}function mj(e,t,n,o,r){const l=new Set(e);let a=new Set(t);for(let s=0;s<=o;s+=1)(n.get(s)||new Set).forEach(c=>{const{key:d,node:p,children:v=[]}=c;!l.has(d)&&!a.has(d)&&!r(p)&&v.filter(y=>!r(y.node)).forEach(y=>{l.delete(y.key)})});a=new Set;const i=new Set;for(let s=o;s>=0;s-=1)(n.get(s)||new Set).forEach(c=>{const{parent:d,node:p}=c;if(r(p)||!c.parent||i.has(c.parent.key))return;if(r(c.parent.node)){i.add(d.key);return}let v=!0,y=!1;(d.children||[]).filter(m=>!r(m.node)).forEach(m=>{let{key:h}=m;const b=l.has(h);v&&!b&&(v=!1),!y&&(b||a.has(h))&&(y=!0)}),v||l.delete(d.key),y&&a.add(d.key),i.add(d.key)});return{checkedKeys:Array.from(l),halfCheckedKeys:Array.from(W4(a,l))}}function Wn(e,t,n,o,r,l){let a;l?a=l:a=vj;const i=new Set(e.filter(u=>!!n[u]));let s;return t===!0?s=gj(i,r,o,a):s=mj(i,t.halfCheckedKeys,r,o,a),s}const hj=(e,t,n,o,r)=>P(()=>{const l=r.value||(a=>{let{labels:i}=a;const s=o.value?i.slice(-1):i,u=" / ";return s.every(c=>["string","number"].includes(typeof c))?s.join(u):s.reduce((c,d,p)=>{const v=Rt(d)?gt(d,{key:p}):d;return p===0?[v]:[...c,u,v]},[])});return e.value.map(a=>{const i=ti(a,t.value,n.value),s=l({labels:i.map(c=>{let{option:d,value:p}=c;var v;return(v=d==null?void 0:d[n.value.label])!==null&&v!==void 0?v:p}),selectedOptions:i.map(c=>{let{option:d}=c;return d})}),u=ar(a);return{label:s,value:u,key:u,valueCells:a}})}),K4=Symbol("CascaderContextKey"),bj=e=>{We(K4,e)},nu=()=>Ke(K4),yj=()=>{const e=pi(),{values:t}=nu(),[n,o]=pt([]);return ue(()=>e.open,()=>{if(e.open&&!e.multiple){const r=t.value[0];o(r||[])}},{immediate:!0}),[n,o]},$j=(e,t,n,o,r,l)=>{const a=pi(),i=P(()=>a.direction==="rtl"),[s,u,c]=[ee([]),ee(),ee([])];ke(()=>{let m=-1,h=t.value;const b=[],$=[],C=o.value.length;for(let S=0;Sx[n.value.value]===o.value[S]);if(O===-1)break;m=O,b.push(m),$.push(o.value[S]),h=h[m][n.value.children]}let w=t.value;for(let S=0;S{r(m)},p=m=>{const h=c.value.length;let b=u.value;b===-1&&m<0&&(b=h);for(let $=0;${if(s.value.length>1){const m=s.value.slice(0,-1);d(m)}else a.toggleOpen(!1)},y=()=>{var m;const b=(((m=c.value[u.value])===null||m===void 0?void 0:m[n.value.children])||[]).find($=>!$.disabled);if(b){const $=[...s.value,b[n.value.value]];d($)}};e.expose({onKeydown:m=>{const{which:h}=m;switch(h){case Se.UP:case Se.DOWN:{let b=0;h===Se.UP?b=-1:h===Se.DOWN&&(b=1),b!==0&&p(b);break}case Se.LEFT:{i.value?y():v();break}case Se.RIGHT:{i.value?v():y();break}case Se.BACKSPACE:{a.searchValue||v();break}case Se.ENTER:{if(s.value.length){const b=c.value[u.value],$=(b==null?void 0:b[Da])||[];$.length?l($.map(C=>C[n.value.value]),$[$.length-1]):l(s.value,b)}break}case Se.ESC:a.toggleOpen(!1),open&&m.stopPropagation()}},onKeyup:()=>{}})};function ou(e){let{prefixCls:t,checked:n,halfChecked:o,disabled:r,onClick:l}=e;const{customSlots:a,checkable:i}=nu(),s=i.value!==!1?a.value.checkable:i.value,u=typeof s=="function"?s():typeof s=="boolean"?null:s;return f("span",{class:{[t]:!0,[`${t}-checked`]:n,[`${t}-indeterminate`]:!n&&o,[`${t}-disabled`]:r},onClick:l},[u])}ou.props=["prefixCls","checked","halfChecked","disabled","onClick"];ou.displayName="Checkbox";ou.inheritAttrs=!1;const G4="__cascader_fix_label__";function ru(e){let{prefixCls:t,multiple:n,options:o,activeValue:r,prevValuePath:l,onToggleOpen:a,onSelect:i,onActive:s,checkedSet:u,halfCheckedSet:c,loadingKeys:d,isSelectable:p}=e;var v,y,m,h,b,$;const C=`${t}-menu`,w=`${t}-menu-item`,{fieldNames:S,changeOnSelect:O,expandTrigger:x,expandIcon:I,loadingIcon:E,dropdownMenuColumnStyle:M,customSlots:_}=nu(),z=(v=I.value)!==null&&v!==void 0?v:(m=(y=_.value).expandIcon)===null||m===void 0?void 0:m.call(y),R=(h=E.value)!==null&&h!==void 0?h:($=(b=_.value).loadingIcon)===null||$===void 0?void 0:$.call(b),H=x.value==="hover";return f("ul",{class:C,role:"menu"},[o.map(T=>{var D;const{disabled:A}=T,B=T[Da],N=(D=T[G4])!==null&&D!==void 0?D:T[S.value.label],k=T[S.value.value],L=Ca(T,S.value),j=B?B.map(W=>W[S.value.value]):[...l,k],G=ar(j),U=d.includes(G),K=u.has(G),Y=c.has(G),Q=()=>{!A&&(!H||!L)&&s(j)},J=()=>{p(T)&&i(j,L)};let Z;return typeof T.title=="string"?Z=T.title:typeof N=="string"&&(Z=N),f("li",{key:G,class:[w,{[`${w}-expand`]:!L,[`${w}-active`]:r===k,[`${w}-disabled`]:A,[`${w}-loading`]:U}],style:M.value,role:"menuitemcheckbox",title:Z,"aria-checked":K,"data-path-key":G,onClick:()=>{Q(),(!n||L)&&J()},onDblclick:()=>{O.value&&a(!1)},onMouseenter:()=>{H&&Q()},onMousedown:W=>{W.preventDefault()}},[n&&f(ou,{prefixCls:`${t}-checkbox`,checked:K,halfChecked:Y,disabled:A,onClick:W=>{W.stopPropagation(),J()}},null),f("div",{class:`${w}-content`},[N]),!U&&z&&!L&&f("div",{class:`${w}-expand-icon`},[gt(z)]),U&&R&&f("div",{class:`${w}-loading-icon`},[gt(R)])])})])}ru.props=["prefixCls","multiple","options","activeValue","prevValuePath","onToggleOpen","onSelect","onActive","checkedSet","halfCheckedSet","loadingKeys","isSelectable"];ru.displayName="Column";ru.inheritAttrs=!1;const Sj=te({compatConfig:{MODE:3},name:"OptionList",inheritAttrs:!1,setup(e,t){const{attrs:n,slots:o}=t,r=pi(),l=ee(),a=P(()=>r.direction==="rtl"),{options:i,values:s,halfValues:u,fieldNames:c,changeOnSelect:d,onSelect:p,searchOptions:v,dropdownPrefixCls:y,loadData:m,expandTrigger:h,customSlots:b}=nu(),$=P(()=>y.value||r.prefixCls),C=q([]),w=D=>{if(!m.value||r.searchValue)return;const B=ti(D,i.value,c.value).map(k=>{let{option:L}=k;return L}),N=B[B.length-1];if(N&&!Ca(N,c.value)){const k=ar(D);C.value=[...C.value,k],m.value(B)}};ke(()=>{C.value.length&&C.value.forEach(D=>{const A=KH(D),B=ti(A,i.value,c.value,!0).map(k=>{let{option:L}=k;return L}),N=B[B.length-1];(!N||N[c.value.children]||Ca(N,c.value))&&(C.value=C.value.filter(k=>k!==D))})});const S=P(()=>new Set(gl(s.value))),O=P(()=>new Set(gl(u.value))),[x,I]=yj(),E=D=>{I(D),w(D)},M=D=>{const{disabled:A}=D,B=Ca(D,c.value);return!A&&(B||d.value||r.multiple)},_=function(D,A){let B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;p(D),!r.multiple&&(A||d.value&&(h.value==="hover"||B))&&r.toggleOpen(!1)},z=P(()=>r.searchValue?v.value:i.value),R=P(()=>{const D=[{options:z.value}];let A=z.value;for(let B=0;Bj[c.value.value]===N),L=k==null?void 0:k[c.value.children];if(!(L!=null&&L.length))break;A=L,D.push({options:L})}return D});$j(t,z,c,x,E,(D,A)=>{M(A)&&_(D,Ca(A,c.value),!0)});const T=D=>{D.preventDefault()};return Ve(()=>{ue(x,D=>{var A;for(let B=0;B{var D,A,B,N,k;const{notFoundContent:L=((D=o.notFoundContent)===null||D===void 0?void 0:D.call(o))||((B=(A=b.value).notFoundContent)===null||B===void 0?void 0:B.call(A)),multiple:j,toggleOpen:G}=r,U=!(!((k=(N=R.value[0])===null||N===void 0?void 0:N.options)===null||k===void 0)&&k.length),K=[{[c.value.value]:"__EMPTY__",[G4]:L,disabled:!0}],Y=g(g({},n),{multiple:!U&&j,onSelect:_,onActive:E,onToggleOpen:G,checkedSet:S.value,halfCheckedSet:O.value,loadingKeys:C.value,isSelectable:M}),J=(U?[{options:K}]:R.value).map((Z,W)=>{const X=x.value.slice(0,W),re=x.value[W];return f(ru,F(F({key:W},Y),{},{prefixCls:$.value,options:Z.options,prevValuePath:X,activeValue:re}),null)});return f("div",{class:[`${$.value}-menus`,{[`${$.value}-menu-empty`]:U,[`${$.value}-rtl`]:a.value}],onMousedown:T,ref:l},[J])}}});function lu(e){const t=ee(0),n=q();return ke(()=>{const o=new Map;let r=0;const l=e.value||{};for(const a in l)if(Object.prototype.hasOwnProperty.call(l,a)){const i=l[a],{level:s}=i;let u=o.get(s);u||(u=new Set,o.set(s,u)),u.add(i),r=Math.max(r,s)}t.value=r,n.value=o}),{maxLevel:t,levelEntities:n}}function Cj(){return g(g({},tt(Rc(),["tokenSeparators","mode","showSearch"])),{id:String,prefixCls:String,fieldNames:De(),children:Array,value:{type:[String,Number,Array]},defaultValue:{type:[String,Number,Array]},changeOnSelect:{type:Boolean,default:void 0},displayRender:Function,checkable:{type:Boolean,default:void 0},showCheckedStrategy:{type:String,default:N4},showSearch:{type:[Boolean,Object],default:void 0},searchValue:String,onSearch:Function,expandTrigger:String,options:Array,dropdownPrefixCls:String,loadData:Function,popupVisible:{type:Boolean,default:void 0},dropdownClassName:String,dropdownMenuColumnStyle:{type:Object,default:void 0},popupStyle:{type:Object,default:void 0},dropdownStyle:{type:Object,default:void 0},popupPlacement:String,placement:String,onPopupVisibleChange:Function,onDropdownVisibleChange:Function,expandIcon:V.any,loadingIcon:V.any})}function X4(){return g(g({},Cj()),{onChange:Function,customSlots:Object})}function xj(e){return Array.isArray(e)&&Array.isArray(e[0])}function Xy(e){return e?xj(e)?e:(e.length===0?[]:[e]).map(t=>Array.isArray(t)?t:[t]):[]}const wj=te({compatConfig:{MODE:3},name:"Cascader",inheritAttrs:!1,props:rt(X4(),{}),setup(e,t){let{attrs:n,expose:o,slots:r}=t;const l=zv(Ne(e,"id")),a=P(()=>!!e.checkable),[i,s]=wt(e.defaultValue,{value:P(()=>e.value),postState:Xy}),u=P(()=>GH(e.fieldNames)),c=P(()=>e.options||[]),d=sj(c,u),p=W=>{const X=d.value;return W.map(re=>{const{nodes:ae}=X[re];return ae.map(pe=>pe[u.value.value])})},[v,y]=wt("",{value:P(()=>e.searchValue),postState:W=>W||""}),m=(W,X)=>{y(W),X.source!=="blur"&&e.onSearch&&e.onSearch(W)},{showSearch:h,searchConfig:b}=cj(Ne(e,"showSearch")),$=fj(v,c,u,P(()=>e.dropdownPrefixCls||e.prefixCls),b,Ne(e,"changeOnSelect")),C=pj(c,u,i),[w,S,O]=[ee([]),ee([]),ee([])],{maxLevel:x,levelEntities:I}=lu(d);ke(()=>{const[W,X]=C.value;if(!a.value||!i.value.length){[w.value,S.value,O.value]=[W,[],X];return}const re=gl(W),ae=d.value,{checkedKeys:pe,halfCheckedKeys:ye}=Wn(re,!0,ae,x.value,I.value);[w.value,S.value,O.value]=[p(pe),p(ye),X]});const E=P(()=>{const W=gl(w.value),X=Gy(W,d.value,e.showCheckedStrategy);return[...O.value,...p(X)]}),M=hj(E,c,u,a,Ne(e,"displayRender")),_=W=>{if(s(W),e.onChange){const X=Xy(W),re=X.map(ye=>ti(ye,c.value,u.value).map(de=>de.option)),ae=a.value?X:X[0],pe=a.value?re:re[0];e.onChange(ae,pe)}},z=W=>{if(y(""),!a.value)_(W);else{const X=ar(W),re=gl(w.value),ae=gl(S.value),pe=re.includes(X),ye=O.value.some(ie=>ar(ie)===X);let de=w.value,me=O.value;if(ye&&!pe)me=O.value.filter(ie=>ar(ie)!==X);else{const ie=pe?re.filter(we=>we!==X):[...re,X];let se;pe?{checkedKeys:se}=Wn(ie,{checked:!1,halfCheckedKeys:ae},d.value,x.value,I.value):{checkedKeys:se}=Wn(ie,!0,d.value,x.value,I.value);const be=Gy(se,d.value,e.showCheckedStrategy);de=p(be)}_([...me,...de])}},R=(W,X)=>{if(X.type==="clear"){_([]);return}const{valueCells:re}=X.values[0];z(re)},H=P(()=>e.open!==void 0?e.open:e.popupVisible),T=P(()=>e.dropdownStyle||e.popupStyle||{}),D=P(()=>e.placement||e.popupPlacement),A=W=>{var X,re;(X=e.onDropdownVisibleChange)===null||X===void 0||X.call(e,W),(re=e.onPopupVisibleChange)===null||re===void 0||re.call(e,W)},{changeOnSelect:B,checkable:N,dropdownPrefixCls:k,loadData:L,expandTrigger:j,expandIcon:G,loadingIcon:U,dropdownMenuColumnStyle:K,customSlots:Y,dropdownClassName:Q}=Nr(e);bj({options:c,fieldNames:u,values:w,halfValues:S,changeOnSelect:B,onSelect:z,checkable:N,searchOptions:$,dropdownPrefixCls:k,loadData:L,expandTrigger:j,expandIcon:G,loadingIcon:U,dropdownMenuColumnStyle:K,customSlots:Y});const J=ee();o({focus(){var W;(W=J.value)===null||W===void 0||W.focus()},blur(){var W;(W=J.value)===null||W===void 0||W.blur()},scrollTo(W){var X;(X=J.value)===null||X===void 0||X.scrollTo(W)}});const Z=P(()=>tt(e,["id","prefixCls","fieldNames","defaultValue","value","changeOnSelect","onChange","displayRender","checkable","searchValue","onSearch","showSearch","expandTrigger","options","dropdownPrefixCls","loadData","popupVisible","open","dropdownClassName","dropdownMenuColumnStyle","popupPlacement","placement","onDropdownVisibleChange","onPopupVisibleChange","expandIcon","loadingIcon","customSlots","showCheckedStrategy","children"]));return()=>{const W=!(v.value?$.value:c.value).length,{dropdownMatchSelectWidth:X=!1}=e,re=v.value&&b.value.matchInputWidth||W?{}:{minWidth:"auto"};return f(kv,F(F(F({},Z.value),n),{},{ref:J,id:l,prefixCls:e.prefixCls,dropdownMatchSelectWidth:X,dropdownStyle:g(g({},T.value),re),displayValues:M.value,onDisplayValuesChange:R,mode:a.value?"multiple":void 0,searchValue:v.value,onSearch:m,showSearch:h.value,OptionList:Sj,emptyOptions:W,open:H.value,dropdownClassName:Q.value,placement:D.value,onDropdownVisibleChange:A,getRawInputElement:()=>{var ae;return(ae=r.default)===null||ae===void 0?void 0:ae.call(r)}}),r)}}});var Oj={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"};const U4=Oj;function Uy(e){for(var t=1;tun()&&window.document.documentElement,q4=e=>{if(un()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(o=>o in n.style)}return!1},Ij=(e,t)=>{if(!q4(e))return!1;const n=document.createElement("div"),o=n.style[e];return n.style[e]=t,n.style[e]!==o};function qg(e,t){return!Array.isArray(e)&&t!==void 0?Ij(e,t):q4(e)}let Yi;const Tj=()=>{if(!Y4())return!1;if(Yi!==void 0)return Yi;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),Yi=e.scrollHeight===1,document.body.removeChild(e),Yi},Q4=()=>{const e=q(!1);return Ve(()=>{e.value=Tj()}),e},Z4=Symbol("rowContextKey"),Ej=e=>{We(Z4,e)},Mj=()=>Ke(Z4,{gutter:P(()=>{}),wrap:P(()=>{}),supportFlexGap:P(()=>{})}),_j=e=>{const{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around ":{justifyContent:"space-around"},"&-space-evenly ":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},Dj=e=>{const{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}},Aj=(e,t)=>{const{componentCls:n,gridColumns:o}=e,r={};for(let l=o;l>=0;l--)l===0?(r[`${n}${t}-${l}`]={display:"none"},r[`${n}-push-${l}`]={insetInlineStart:"auto"},r[`${n}-pull-${l}`]={insetInlineEnd:"auto"},r[`${n}${t}-push-${l}`]={insetInlineStart:"auto"},r[`${n}${t}-pull-${l}`]={insetInlineEnd:"auto"},r[`${n}${t}-offset-${l}`]={marginInlineEnd:0},r[`${n}${t}-order-${l}`]={order:0}):(r[`${n}${t}-${l}`]={display:"block",flex:`0 0 ${l/o*100}%`,maxWidth:`${l/o*100}%`},r[`${n}${t}-push-${l}`]={insetInlineStart:`${l/o*100}%`},r[`${n}${t}-pull-${l}`]={insetInlineEnd:`${l/o*100}%`},r[`${n}${t}-offset-${l}`]={marginInlineStart:`${l/o*100}%`},r[`${n}${t}-order-${l}`]={order:l});return r},tp=(e,t)=>Aj(e,t),Rj=(e,t,n)=>({[`@media (min-width: ${t}px)`]:g({},tp(e,n))}),Bj=Je("Grid",e=>[_j(e)]),Nj=Je("Grid",e=>{const t=Le(e,{gridColumns:24}),n={"-sm":t.screenSMMin,"-md":t.screenMDMin,"-lg":t.screenLGMin,"-xl":t.screenXLMin,"-xxl":t.screenXXLMin};return[Dj(t),tp(t,""),tp(t,"-xs"),Object.keys(n).map(o=>Rj(t,n[o],o)).reduce((o,r)=>g(g({},o),r),{})]}),Fj=()=>({align:Xe([String,Object]),justify:Xe([String,Object]),prefixCls:String,gutter:Xe([Number,Array,Object],0),wrap:{type:Boolean,default:void 0}}),kj=te({compatConfig:{MODE:3},name:"ARow",inheritAttrs:!1,props:Fj(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("row",e),[a,i]=Bj(r);let s;const u=pg(),c=ee({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),d=ee({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),p=C=>P(()=>{if(typeof e[C]=="string")return e[C];if(typeof e[C]!="object")return"";for(let w=0;w{s=u.value.subscribe(C=>{d.value=C;const w=e.gutter||0;(!Array.isArray(w)&&typeof w=="object"||Array.isArray(w)&&(typeof w[0]=="object"||typeof w[1]=="object"))&&(c.value=C)})}),Ze(()=>{u.value.unsubscribe(s)});const h=P(()=>{const C=[void 0,void 0],{gutter:w=0}=e;return(Array.isArray(w)?w:[w,void 0]).forEach((O,x)=>{if(typeof O=="object")for(let I=0;Ie.wrap)});const b=P(()=>ne(r.value,{[`${r.value}-no-wrap`]:e.wrap===!1,[`${r.value}-${y.value}`]:y.value,[`${r.value}-${v.value}`]:v.value,[`${r.value}-rtl`]:l.value==="rtl"},o.class,i.value)),$=P(()=>{const C=h.value,w={},S=C[0]!=null&&C[0]>0?`${C[0]/-2}px`:void 0,O=C[1]!=null&&C[1]>0?`${C[1]/-2}px`:void 0;return S&&(w.marginLeft=S,w.marginRight=S),m.value?w.rowGap=`${C[1]}px`:O&&(w.marginTop=O,w.marginBottom=O),w});return()=>{var C;return a(f("div",F(F({},o),{},{class:b.value,style:g(g({},$.value),o.style)}),[(C=n.default)===null||C===void 0?void 0:C.call(n)]))}}}),Qg=kj;function Rr(){return Rr=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),o=1;o=l)return i;switch(i){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(s){return"[Circular]"}break;default:return i}});return a}return e}function Wj(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Kt(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||Wj(t)&&typeof e=="string"&&!e)}function Kj(e,t,n){var o=[],r=0,l=e.length;function a(i){o.push.apply(o,i||[]),r++,r===l&&n(o)}e.forEach(function(i){t(i,a)})}function Yy(e,t,n){var o=0,r=e.length;function l(a){if(a&&a.length){n(a);return}var i=o;o=o+1,i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},xa={integer:function(t){return xa.number(t)&&parseInt(t,10)===t},float:function(t){return xa.number(t)&&!xa.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch(n){return!1}},date:function(t){return typeof t.getTime=="function"&&typeof t.getMonth=="function"&&typeof t.getYear=="function"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t=="number"},object:function(t){return typeof t=="object"&&!xa.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(Jy.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(Qj())},hex:function(t){return typeof t=="string"&&!!t.match(Jy.hex)}},Zj=function(t,n,o,r,l){if(t.required&&n===void 0){J4(t,n,o,r,l);return}var a=["integer","float","array","regexp","object","method","email","number","date","url","hex"],i=t.type;a.indexOf(i)>-1?xa[i](n)||r.push(An(l.messages.types[i],t.fullField,t.type)):i&&typeof n!==t.type&&r.push(An(l.messages.types[i],t.fullField,t.type))},Jj=function(t,n,o,r,l){var a=typeof t.len=="number",i=typeof t.min=="number",s=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=n,d=null,p=typeof n=="number",v=typeof n=="string",y=Array.isArray(n);if(p?d="number":v?d="string":y&&(d="array"),!d)return!1;y&&(c=n.length),v&&(c=n.replace(u,"_").length),a?c!==t.len&&r.push(An(l.messages[d].len,t.fullField,t.len)):i&&!s&&ct.max?r.push(An(l.messages[d].max,t.fullField,t.max)):i&&s&&(ct.max)&&r.push(An(l.messages[d].range,t.fullField,t.min,t.max))},il="enum",eV=function(t,n,o,r,l){t[il]=Array.isArray(t[il])?t[il]:[],t[il].indexOf(n)===-1&&r.push(An(l.messages[il],t.fullField,t[il].join(", ")))},tV=function(t,n,o,r,l){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(n)||r.push(An(l.messages.pattern.mismatch,t.fullField,n,t.pattern));else if(typeof t.pattern=="string"){var a=new RegExp(t.pattern);a.test(n)||r.push(An(l.messages.pattern.mismatch,t.fullField,n,t.pattern))}}},ft={required:J4,whitespace:qj,type:Zj,range:Jj,enum:eV,pattern:tV},nV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n,"string")&&!t.required)return o();ft.required(t,n,r,a,l,"string"),Kt(n,"string")||(ft.type(t,n,r,a,l),ft.range(t,n,r,a,l),ft.pattern(t,n,r,a,l),t.whitespace===!0&&ft.whitespace(t,n,r,a,l))}o(a)},oV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&ft.type(t,n,r,a,l)}o(a)},rV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(n===""&&(n=void 0),Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&(ft.type(t,n,r,a,l),ft.range(t,n,r,a,l))}o(a)},lV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&ft.type(t,n,r,a,l)}o(a)},aV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),Kt(n)||ft.type(t,n,r,a,l)}o(a)},iV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&(ft.type(t,n,r,a,l),ft.range(t,n,r,a,l))}o(a)},sV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&(ft.type(t,n,r,a,l),ft.range(t,n,r,a,l))}o(a)},cV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(n==null&&!t.required)return o();ft.required(t,n,r,a,l,"array"),n!=null&&(ft.type(t,n,r,a,l),ft.range(t,n,r,a,l))}o(a)},uV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&ft.type(t,n,r,a,l)}o(a)},dV="enum",fV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l),n!==void 0&&ft[dV](t,n,r,a,l)}o(a)},pV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n,"string")&&!t.required)return o();ft.required(t,n,r,a,l),Kt(n,"string")||ft.pattern(t,n,r,a,l)}o(a)},vV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n,"date")&&!t.required)return o();if(ft.required(t,n,r,a,l),!Kt(n,"date")){var s;n instanceof Date?s=n:s=new Date(n),ft.type(t,s,r,a,l),s&&ft.range(t,s.getTime(),r,a,l)}}o(a)},gV=function(t,n,o,r,l){var a=[],i=Array.isArray(n)?"array":typeof n;ft.required(t,n,r,a,l,i),o(a)},fd=function(t,n,o,r,l){var a=t.type,i=[],s=t.required||!t.required&&r.hasOwnProperty(t.field);if(s){if(Kt(n,a)&&!t.required)return o();ft.required(t,n,r,i,l,a),Kt(n,a)||ft.type(t,n,r,i,l)}o(i)},mV=function(t,n,o,r,l){var a=[],i=t.required||!t.required&&r.hasOwnProperty(t.field);if(i){if(Kt(n)&&!t.required)return o();ft.required(t,n,r,a,l)}o(a)},Aa={string:nV,method:oV,number:rV,boolean:lV,regexp:aV,integer:iV,float:sV,array:cV,object:uV,enum:fV,pattern:pV,date:vV,url:fd,hex:fd,email:fd,required:gV,any:mV};function lp(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var ap=lp(),Ci=function(){function e(n){this.rules=null,this._messages=ap,this.define(n)}var t=e.prototype;return t.define=function(o){var r=this;if(!o)throw new Error("Cannot configure a schema with no rules");if(typeof o!="object"||Array.isArray(o))throw new Error("Rules must be an object");this.rules={},Object.keys(o).forEach(function(l){var a=o[l];r.rules[l]=Array.isArray(a)?a:[a]})},t.messages=function(o){return o&&(this._messages=Zy(lp(),o)),this._messages},t.validate=function(o,r,l){var a=this;r===void 0&&(r={}),l===void 0&&(l=function(){});var i=o,s=r,u=l;if(typeof s=="function"&&(u=s,s={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,i),Promise.resolve(i);function c(m){var h=[],b={};function $(w){if(Array.isArray(w)){var S;h=(S=h).concat.apply(S,w)}else h.push(w)}for(var C=0;C3&&arguments[3]!==void 0?arguments[3]:!1;return t.length&&o&&n===void 0&&!e3(e,t.slice(0,-1))?e:t3(e,t,n,o)}function ip(e){return ir(e)}function bV(e,t){return e3(e,t)}function yV(e,t,n){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return hV(e,t,n,o)}function $V(e,t){return e&&e.some(n=>CV(n,t))}function e1(e){return typeof e=="object"&&e!==null&&Object.getPrototypeOf(e)===Object.prototype}function n3(e,t){const n=Array.isArray(e)?[...e]:g({},e);return t&&Object.keys(t).forEach(o=>{const r=n[o],l=t[o],a=e1(r)&&e1(l);n[o]=a?n3(r,l||{}):l}),n}function SV(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;on3(r,l),e)}function t1(e,t){let n={};return t.forEach(o=>{const r=bV(e,o);n=yV(n,o,r)}),n}function CV(e,t){return!e||!t||e.length!==t.length?!1:e.every((n,o)=>t[o]===n)}const Tn="'${name}' is not a valid ${type}",au={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:Tn,method:Tn,array:Tn,object:Tn,number:Tn,date:Tn,boolean:Tn,integer:Tn,float:Tn,regexp:Tn,email:Tn,url:Tn,hex:Tn},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}};var iu=globalThis&&globalThis.__awaiter||function(e,t,n,o){function r(l){return l instanceof n?l:new n(function(a){a(l)})}return new(n||(n=Promise))(function(l,a){function i(c){try{u(o.next(c))}catch(d){a(d)}}function s(c){try{u(o.throw(c))}catch(d){a(d)}}function u(c){c.done?l(c.value):r(c.value).then(i,s)}u((o=o.apply(e,t||[])).next())})};const xV=Ci;function wV(e,t){return e.replace(/\$\{\w+\}/g,n=>{const o=n.slice(2,-1);return t[o]})}function sp(e,t,n,o,r){return iu(this,void 0,void 0,function*(){const l=g({},n);delete l.ruleIndex,delete l.trigger;let a=null;l&&l.type==="array"&&l.defaultField&&(a=l.defaultField,delete l.defaultField);const i=new xV({[e]:[l]}),s=SV({},au,o.validateMessages);i.messages(s);let u=[];try{yield Promise.resolve(i.validate({[e]:t},g({},o)))}catch(p){p.errors?u=p.errors.map((v,y)=>{let{message:m}=v;return Rt(m)?bo(m,{key:`error_${y}`}):m}):u=[s.default()]}if(!u.length&&a)return(yield Promise.all(t.map((v,y)=>sp(`${e}.${y}`,v,a,o,r)))).reduce((v,y)=>[...v,...y],[]);const c=g(g(g({},n),{name:e,enum:(n.enum||[]).join(", ")}),r);return u.map(p=>typeof p=="string"?wV(p,c):p)})}function o3(e,t,n,o,r,l){const a=e.join("."),i=n.map((u,c)=>{const d=u.validator,p=g(g({},u),{ruleIndex:c});return d&&(p.validator=(v,y,m)=>{let h=!1;const $=d(v,y,function(){for(var C=arguments.length,w=new Array(C),S=0;S{h||m(...w)})});h=$&&typeof $.then=="function"&&typeof $.catch=="function",h&&$.then(()=>{m()}).catch(C=>{m(C||" ")})}),p}).sort((u,c)=>{let{warningOnly:d,ruleIndex:p}=u,{warningOnly:v,ruleIndex:y}=c;return!!d==!!v?p-y:d?1:-1});let s;if(r===!0)s=new Promise((u,c)=>iu(this,void 0,void 0,function*(){for(let d=0;dsp(a,t,c,o,l).then(d=>({errors:d,rule:c})));s=(r?PV(u):OV(u)).then(c=>Promise.reject(c))}return s.catch(u=>u),s}function OV(e){return iu(this,void 0,void 0,function*(){return Promise.all(e).then(t=>[].concat(...t))})}function PV(e){return iu(this,void 0,void 0,function*(){let t=0;return new Promise(n=>{e.forEach(o=>{o.then(r=>{r.errors.length&&n([r]),t+=1,t===e.length&&n([])})})})})}const r3=Symbol("formContextKey"),l3=e=>{We(r3,e)},Zg=()=>Ke(r3,{name:P(()=>{}),labelAlign:P(()=>"right"),vertical:P(()=>!1),addField:(e,t)=>{},removeField:e=>{},model:P(()=>{}),rules:P(()=>{}),colon:P(()=>{}),labelWrap:P(()=>{}),labelCol:P(()=>{}),requiredMark:P(()=>!1),validateTrigger:P(()=>{}),onValidate:()=>{},validateMessages:P(()=>au)}),a3=Symbol("formItemPrefixContextKey"),IV=e=>{We(a3,e)},TV=()=>Ke(a3,{prefixCls:P(()=>"")});function EV(e){return typeof e=="number"?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}const MV=()=>({span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}),_V=["xs","sm","md","lg","xl","xxl"],su=te({compatConfig:{MODE:3},name:"ACol",inheritAttrs:!1,props:MV(),setup(e,t){let{slots:n,attrs:o}=t;const{gutter:r,supportFlexGap:l,wrap:a}=Mj(),{prefixCls:i,direction:s}=Me("col",e),[u,c]=Nj(i),d=P(()=>{const{span:v,order:y,offset:m,push:h,pull:b}=e,$=i.value;let C={};return _V.forEach(w=>{let S={};const O=e[w];typeof O=="number"?S.span=O:typeof O=="object"&&(S=O||{}),C=g(g({},C),{[`${$}-${w}-${S.span}`]:S.span!==void 0,[`${$}-${w}-order-${S.order}`]:S.order||S.order===0,[`${$}-${w}-offset-${S.offset}`]:S.offset||S.offset===0,[`${$}-${w}-push-${S.push}`]:S.push||S.push===0,[`${$}-${w}-pull-${S.pull}`]:S.pull||S.pull===0,[`${$}-rtl`]:s.value==="rtl"})}),ne($,{[`${$}-${v}`]:v!==void 0,[`${$}-order-${y}`]:y,[`${$}-offset-${m}`]:m,[`${$}-push-${h}`]:h,[`${$}-pull-${b}`]:b},C,o.class,c.value)}),p=P(()=>{const{flex:v}=e,y=r.value,m={};if(y&&y[0]>0){const h=`${y[0]/2}px`;m.paddingLeft=h,m.paddingRight=h}if(y&&y[1]>0&&!l.value){const h=`${y[1]/2}px`;m.paddingTop=h,m.paddingBottom=h}return v&&(m.flex=EV(v),a.value===!1&&!m.minWidth&&(m.minWidth=0)),m});return()=>{var v;return u(f("div",F(F({},o),{},{class:d.value,style:[p.value,o.style]}),[(v=n.default)===null||v===void 0?void 0:v.call(n)]))}}});var DV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};const AV=DV;function n1(e){for(var t=1;t{let{slots:n,emit:o,attrs:r}=t;var l,a,i,s,u;const{prefixCls:c,htmlFor:d,labelCol:p,labelAlign:v,colon:y,required:m,requiredMark:h}=g(g({},e),r),[b]=xo("Form"),$=(l=e.label)!==null&&l!==void 0?l:(a=n.label)===null||a===void 0?void 0:a.call(n);if(!$)return null;const{vertical:C,labelAlign:w,labelCol:S,labelWrap:O,colon:x}=Zg(),I=p||(S==null?void 0:S.value)||{},E=v||(w==null?void 0:w.value),M=`${c}-item-label`,_=ne(M,E==="left"&&`${M}-left`,I.class,{[`${M}-wrap`]:!!O.value});let z=$;const R=y===!0||(x==null?void 0:x.value)!==!1&&y!==!1;if(R&&!C.value&&typeof $=="string"&&$.trim()!==""&&(z=$.replace(/[:|:]\s*$/,"")),e.tooltip||n.tooltip){const D=f("span",{class:`${c}-item-tooltip`},[f(Vn,{title:e.tooltip},{default:()=>[f(BV,null,null)]})]);z=f(qe,null,[z,n.tooltip?(i=n.tooltip)===null||i===void 0?void 0:i.call(n,{class:`${c}-item-tooltip`}):D])}h==="optional"&&!m&&(z=f(qe,null,[z,f("span",{class:`${c}-item-optional`},[((s=b.value)===null||s===void 0?void 0:s.optional)||((u=xn.Form)===null||u===void 0?void 0:u.optional)])]));const T=ne({[`${c}-item-required`]:m,[`${c}-item-required-mark-optional`]:h==="optional",[`${c}-item-no-colon`]:!R});return f(su,F(F({},I),{},{class:_}),{default:()=>[f("label",{for:d,class:T,title:typeof $=="string"?$:"",onClick:D=>o("click",D)},[z])]})};em.displayName="FormItemLabel";em.inheritAttrs=!1;const NV=em,FV=e=>{const{componentCls:t}=e,n=`${t}-show-help`,o=`${t}-show-help-item`;return{[n]:{transition:`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[o]:{overflow:"hidden",transition:`height ${e.motionDurationSlow} ${e.motionEaseInOut}, + opacity ${e.motionDurationSlow} ${e.motionEaseInOut}, + transform ${e.motionDurationSlow} ${e.motionEaseInOut} !important`,[`&${o}-appear, &${o}-enter`]:{transform:"translateY(-5px)",opacity:0,"&-active":{transform:"translateY(0)",opacity:1}},[`&${o}-leave-active`]:{transform:"translateY(-5px)"}}}}},kV=FV,LV=e=>({legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},label:{fontSize:e.fontSize},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},"input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus":{outline:0,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`},output:{display:"block",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),o1=(e,t)=>{const{formItemCls:n}=e;return{[n]:{[`${n}-label > label`]:{height:t},[`${n}-control-input`]:{minHeight:t}}}},zV=e=>{const{componentCls:t}=e;return{[e.componentCls]:g(g(g({},Qe(e)),LV(e)),{[`${t}-text`]:{display:"inline-block",paddingInlineEnd:e.paddingSM},"&-small":g({},o1(e,e.controlHeightSM)),"&-large":g({},o1(e,e.controlHeightLG))})}},HV=e=>{const{formItemCls:t,iconCls:n,componentCls:o,rootPrefixCls:r}=e;return{[t]:g(g({},Qe(e)),{marginBottom:e.marginLG,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, + &-hidden.${r}-row`]:{display:"none"},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{display:"inline-block",flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:`${e.lineHeight} - 0.25em`,whiteSpace:"unset"},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:e.controlHeight,color:e.colorTextHeading,fontSize:e.fontSize,[`> ${n}`]:{fontSize:e.fontSize,verticalAlign:"top"},[`&${t}-required:not(${t}-required-mark-optional)::before`]:{display:"inline-block",marginInlineEnd:e.marginXXS,color:e.colorError,fontSize:e.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"',[`${o}-hide-required-mark &`]:{display:"none"}},[`${t}-optional`]:{display:"inline-block",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`${o}-hide-required-mark &`]:{display:"none"}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:e.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:e.marginXXS/2,marginInlineEnd:e.marginXS},[`&${t}-no-colon::after`]:{content:'" "'}}},[`${t}-control`]:{display:"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${r}-col-'"]):not([class*="' ${r}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:e.controlHeight,"&-content":{flex:"auto",maxWidth:"100%"}}},[t]:{"&-explain, &-extra":{clear:"both",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:"auto",opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:"center",visibility:"visible",animationName:ng,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:"none","&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}},jV=e=>{const{componentCls:t,formItemCls:n,rootPrefixCls:o}=e;return{[`${t}-horizontal`]:{[`${n}-label`]:{flexGrow:0},[`${n}-control`]:{flex:"1 1 0",minWidth:0},[`${n}-label.${o}-col-24 + ${n}-control`]:{minWidth:"unset"}}}},VV=e=>{const{componentCls:t,formItemCls:n}=e;return{[`${t}-inline`]:{display:"flex",flexWrap:"wrap",[n]:{flex:"none",flexWrap:"nowrap",marginInlineEnd:e.margin,marginBottom:0,"&-with-help":{marginBottom:e.marginLG},[`> ${n}-label, + > ${n}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${n}-label`]:{flex:"none"},[`${t}-text`]:{display:"inline-block"},[`${n}-has-feedback`]:{display:"inline-block"}}}}},dl=e=>({margin:0,padding:`0 0 ${e.paddingXS}px`,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{display:"none"}}}),WV=e=>{const{componentCls:t,formItemCls:n}=e;return{[`${n} ${n}-label`]:dl(e),[t]:{[n]:{flexWrap:"wrap",[`${n}-label, + ${n}-control`]:{flex:"0 0 100%",maxWidth:"100%"}}}}},KV=e=>{const{componentCls:t,formItemCls:n,rootPrefixCls:o}=e;return{[`${t}-vertical`]:{[n]:{"&-row":{flexDirection:"column"},"&-label > label":{height:"auto"},[`${t}-item-control`]:{width:"100%"}}},[`${t}-vertical ${n}-label, + .${o}-col-24${n}-label, + .${o}-col-xl-24${n}-label`]:dl(e),[`@media (max-width: ${e.screenXSMax}px)`]:[WV(e),{[t]:{[`.${o}-col-xs-24${n}-label`]:dl(e)}}],[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{[`.${o}-col-sm-24${n}-label`]:dl(e)}},[`@media (max-width: ${e.screenMDMax}px)`]:{[t]:{[`.${o}-col-md-24${n}-label`]:dl(e)}},[`@media (max-width: ${e.screenLGMax}px)`]:{[t]:{[`.${o}-col-lg-24${n}-label`]:dl(e)}}}},tm=Je("Form",(e,t)=>{let{rootPrefixCls:n}=t;const o=Le(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:n});return[zV(o),HV(o),kV(o),jV(o),VV(o),KV(o),jc(o),ng]}),GV=te({compatConfig:{MODE:3},name:"ErrorList",inheritAttrs:!1,props:["errors","help","onErrorVisibleChanged","helpStatus","warnings"],setup(e,t){let{attrs:n}=t;const{prefixCls:o,status:r}=TV(),l=P(()=>`${o.value}-item-explain`),a=P(()=>!!(e.errors&&e.errors.length)),i=ee(r.value),[,s]=tm(o);return ue([a,r],()=>{a.value&&(i.value=r.value)}),()=>{var u,c;const d=Gc(`${o.value}-show-help-item`),p=Mc(`${o.value}-show-help-item`,d);return p.role="alert",p.class=[s.value,l.value,n.class,`${o.value}-show-help`],f(Jt,F(F({},Yn(`${o.value}-show-help`)),{},{onAfterEnter:()=>e.onErrorVisibleChanged(!0),onAfterLeave:()=>e.onErrorVisibleChanged(!1)}),{default:()=>[cn(f(ac,F(F({},p),{},{tag:"div"}),{default:()=>[(c=e.errors)===null||c===void 0?void 0:c.map((v,y)=>f("div",{key:y,class:i.value?`${l.value}-${i.value}`:""},[v]))]}),[[yn,!!(!((u=e.errors)===null||u===void 0)&&u.length)]])]})}}}),XV=te({compatConfig:{MODE:3},slots:Object,inheritAttrs:!1,props:["prefixCls","errors","hasFeedback","onDomErrorVisibleChange","wrapperCol","help","extra","status","marginBottom","onErrorVisibleChanged"],setup(e,t){let{slots:n}=t;const o=Zg(),{wrapperCol:r}=o,l=g({},o);return delete l.labelCol,delete l.wrapperCol,l3(l),IV({prefixCls:P(()=>e.prefixCls),status:P(()=>e.status)}),()=>{var a,i,s;const{prefixCls:u,wrapperCol:c,marginBottom:d,onErrorVisibleChanged:p,help:v=(a=n.help)===null||a===void 0?void 0:a.call(n),errors:y=Ot((i=n.errors)===null||i===void 0?void 0:i.call(n)),extra:m=(s=n.extra)===null||s===void 0?void 0:s.call(n)}=e,h=`${u}-item`,b=c||(r==null?void 0:r.value)||{},$=ne(`${h}-control`,b.class);return f(su,F(F({},b),{},{class:$}),{default:()=>{var C;return f(qe,null,[f("div",{class:`${h}-control-input`},[f("div",{class:`${h}-control-input-content`},[(C=n.default)===null||C===void 0?void 0:C.call(n)])]),d!==null||y.length?f("div",{style:{display:"flex",flexWrap:"nowrap"}},[f(GV,{errors:y,help:v,class:`${h}-explain-connected`,onErrorVisibleChanged:p},null),!!d&&f("div",{style:{width:0,height:`${d}px`}},null)]):null,m?f("div",{class:`${h}-extra`},[m]):null])}})}}}),UV=XV;function YV(e){const t=q(e.value.slice());let n=null;return ke(()=>{clearTimeout(n),n=setTimeout(()=>{t.value=e.value},e.value.length?0:10)}),t}Sn("success","warning","error","validating","");const qV={success:Ko,warning:Go,error:On,validating:qn};function pd(e,t,n){let o=e;const r=t;let l=0;try{for(let a=r.length;l({htmlFor:String,prefixCls:String,label:V.any,help:V.any,extra:V.any,labelCol:{type:Object},wrapperCol:{type:Object},hasFeedback:{type:Boolean,default:!1},colon:{type:Boolean,default:void 0},labelAlign:String,prop:{type:[String,Number,Array]},name:{type:[String,Number,Array]},rules:[Array,Object],autoLink:{type:Boolean,default:!0},required:{type:Boolean,default:void 0},validateFirst:{type:Boolean,default:void 0},validateStatus:V.oneOf(Sn("","success","warning","error","validating")),validateTrigger:{type:[String,Array]},messageVariables:{type:Object},hidden:Boolean,noStyle:Boolean,tooltip:String});let ZV=0;const JV="form_item",eW=te({compatConfig:{MODE:3},name:"AFormItem",inheritAttrs:!1,__ANT_NEW_FORM_ITEM:!0,props:QV(),slots:Object,setup(e,t){let{slots:n,attrs:o,expose:r}=t;e.prop;const l=`form-item-${++ZV}`,{prefixCls:a}=Me("form",e),[i,s]=tm(a),u=q(),c=Zg(),d=P(()=>e.name||e.prop),p=q([]),v=q(!1),y=q(),m=P(()=>{const K=d.value;return ip(K)}),h=P(()=>{if(m.value.length){const K=c.name.value,Y=m.value.join("_");return K?`${K}_${Y}`:`${JV}_${Y}`}else return}),b=()=>{const K=c.model.value;if(!(!K||!d.value))return pd(K,m.value,!0).v},$=P(()=>b()),C=q(rs($.value)),w=P(()=>{let K=e.validateTrigger!==void 0?e.validateTrigger:c.validateTrigger.value;return K=K===void 0?"change":K,ir(K)}),S=P(()=>{let K=c.rules.value;const Y=e.rules,Q=e.required!==void 0?{required:!!e.required,trigger:w.value}:[],J=pd(K,m.value);K=K?J.o[J.k]||J.v:[];const Z=[].concat(Y||K||[]);return uE(Z,W=>W.required)?Z:Z.concat(Q)}),O=P(()=>{const K=S.value;let Y=!1;return K&&K.length&&K.every(Q=>Q.required?(Y=!0,!1):!0),Y||e.required}),x=q();ke(()=>{x.value=e.validateStatus});const I=P(()=>{let K={};return typeof e.label=="string"?K.label=e.label:e.name&&(K.label=String(e.name)),e.messageVariables&&(K=g(g({},K),e.messageVariables)),K}),E=K=>{if(m.value.length===0)return;const{validateFirst:Y=!1}=e,{triggerName:Q}=K||{};let J=S.value;if(Q&&(J=J.filter(W=>{const{trigger:X}=W;return!X&&!w.value.length?!0:ir(X||w.value).includes(Q)})),!J.length)return Promise.resolve();const Z=o3(m.value,$.value,J,g({validateMessages:c.validateMessages.value},K),Y,I.value);return x.value="validating",p.value=[],Z.catch(W=>W).then(function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(x.value==="validating"){const X=W.filter(re=>re&&re.errors.length);x.value=X.length?"error":"success",p.value=X.map(re=>re.errors),c.onValidate(d.value,!p.value.length,p.value.length?Tt(p.value[0]):null)}}),Z},M=()=>{E({triggerName:"blur"})},_=()=>{if(v.value){v.value=!1;return}E({triggerName:"change"})},z=()=>{x.value=e.validateStatus,v.value=!1,p.value=[]},R=()=>{var K;x.value=e.validateStatus,v.value=!0,p.value=[];const Y=c.model.value||{},Q=$.value,J=pd(Y,m.value,!0);Array.isArray(Q)?J.o[J.k]=[].concat((K=C.value)!==null&&K!==void 0?K:[]):J.o[J.k]=C.value,ot(()=>{v.value=!1})},H=P(()=>e.htmlFor===void 0?h.value:e.htmlFor),T=()=>{const K=H.value;if(!K||!y.value)return;const Y=y.value.$el.querySelector(`[id="${K}"]`);Y&&Y.focus&&Y.focus()};r({onFieldBlur:M,onFieldChange:_,clearValidate:z,resetField:R}),vB({id:h,onFieldBlur:()=>{e.autoLink&&M()},onFieldChange:()=>{e.autoLink&&_()},clearValidate:z},P(()=>!!(e.autoLink&&c.model.value&&d.value)));let D=!1;ue(d,K=>{K?D||(D=!0,c.addField(l,{fieldValue:$,fieldId:h,fieldName:d,resetField:R,clearValidate:z,namePath:m,validateRules:E,rules:S})):(D=!1,c.removeField(l))},{immediate:!0}),Ze(()=>{c.removeField(l)});const A=YV(p),B=P(()=>e.validateStatus!==void 0?e.validateStatus:A.value.length?"error":x.value),N=P(()=>({[`${a.value}-item`]:!0,[s.value]:!0,[`${a.value}-item-has-feedback`]:B.value&&e.hasFeedback,[`${a.value}-item-has-success`]:B.value==="success",[`${a.value}-item-has-warning`]:B.value==="warning",[`${a.value}-item-has-error`]:B.value==="error",[`${a.value}-item-is-validating`]:B.value==="validating",[`${a.value}-item-hidden`]:e.hidden})),k=vt({});rn.useProvide(k),ke(()=>{let K;if(e.hasFeedback){const Y=B.value&&qV[B.value];K=Y?f("span",{class:ne(`${a.value}-item-feedback-icon`,`${a.value}-item-feedback-icon-${B.value}`)},[f(Y,null,null)]):null}g(k,{status:B.value,hasFeedback:e.hasFeedback,feedbackIcon:K,isFormItemInput:!0})});const L=q(null),j=q(!1),G=()=>{if(u.value){const K=getComputedStyle(u.value);L.value=parseInt(K.marginBottom,10)}};Ve(()=>{ue(j,()=>{j.value&&G()},{flush:"post",immediate:!0})});const U=K=>{K||(L.value=null)};return()=>{var K,Y;if(e.noStyle)return(K=n.default)===null||K===void 0?void 0:K.call(n);const Q=(Y=e.help)!==null&&Y!==void 0?Y:n.help?Ot(n.help()):null,J=!!(Q!=null&&Array.isArray(Q)&&Q.length||A.value.length);return j.value=J,i(f("div",{class:[N.value,J?`${a.value}-item-with-help`:"",o.class],ref:u},[f(Qg,F(F({},o),{},{class:`${a.value}-item-row`,key:"row"}),{default:()=>{var Z,W;return f(qe,null,[f(NV,F(F({},e),{},{htmlFor:H.value,required:O.value,requiredMark:c.requiredMark.value,prefixCls:a.value,onClick:T,label:e.label}),{label:n.label,tooltip:n.tooltip}),f(UV,F(F({},e),{},{errors:Q!=null?ir(Q):A.value,marginBottom:L.value,prefixCls:a.value,status:B.value,ref:y,help:Q,extra:(Z=e.extra)!==null&&Z!==void 0?Z:(W=n.extra)===null||W===void 0?void 0:W.call(n),onErrorVisibleChanged:U}),{default:n.default})])}}),!!L.value&&f("div",{class:`${a.value}-margin-offset`,style:{marginBottom:`-${L.value}px`}},null)]))}}});function i3(e){let t=!1,n=e.length;const o=[];return e.length?new Promise((r,l)=>{e.forEach((a,i)=>{a.catch(s=>(t=!0,s)).then(s=>{n-=1,o[i]=s,!(n>0)&&(t&&l(o),r(o))})})}):Promise.resolve([])}function r1(e){let t=!1;return e&&e.length&&e.every(n=>n.required?(t=!0,!1):!0),t}function l1(e){return e==null?[]:Array.isArray(e)?e:[e]}function vd(e,t,n){let o=e;t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,"");const r=t.split(".");let l=0;for(let a=r.length;l1&&arguments[1]!==void 0?arguments[1]:ee({}),n=arguments.length>2?arguments[2]:void 0;const o=rs(Vt(e)),r=vt({}),l=q([]),a=C=>{g(Vt(e),g(g({},rs(o)),C)),ot(()=>{Object.keys(r).forEach(w=>{r[w]={autoLink:!1,required:r1(Vt(t)[w])}})})},i=function(){let C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],w=arguments.length>1?arguments[1]:void 0;return w.length?C.filter(S=>{const O=l1(S.trigger||"change");return gE(O,w).length}):C};let s=null;const u=function(C){let w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},S=arguments.length>2?arguments[2]:void 0;const O=[],x={};for(let M=0;M({name:_,errors:[],warnings:[]})).catch(H=>{const T=[],D=[];return H.forEach(A=>{let{rule:{warningOnly:B},errors:N}=A;B?D.push(...N):T.push(...N)}),T.length?Promise.reject({name:_,errors:T,warnings:D}):{name:_,errors:T,warnings:D}}))}const I=i3(O);s=I;const E=I.then(()=>s===I?Promise.resolve(x):Promise.reject([])).catch(M=>{const _=M.filter(z=>z&&z.errors.length);return _.length?Promise.reject({values:x,errorFields:_,outOfDate:s!==I}):Promise.resolve(x)});return E.catch(M=>M),E},c=function(C,w,S){let O=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const x=o3([C],w,S,g({validateMessages:au},O),!!O.validateFirst);return r[C]?(r[C].validateStatus="validating",x.catch(I=>I).then(function(){let I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];var E;if(r[C].validateStatus==="validating"){const M=I.filter(_=>_&&_.errors.length);r[C].validateStatus=M.length?"error":"success",r[C].help=M.length?M.map(_=>_.errors):null,(E=n==null?void 0:n.onValidate)===null||E===void 0||E.call(n,C,!M.length,M.length?Tt(r[C].help[0]):null)}}),x):x.catch(I=>I)},d=(C,w)=>{let S=[],O=!0;C?Array.isArray(C)?S=C:S=[C]:(O=!1,S=l.value);const x=u(S,w||{},O);return x.catch(I=>I),x},p=C=>{let w=[];C?Array.isArray(C)?w=C:w=[C]:w=l.value,w.forEach(S=>{r[S]&&g(r[S],{validateStatus:"",help:null})})},v=C=>{const w={autoLink:!1},S=[],O=Array.isArray(C)?C:[C];for(let x=0;x{const w=[];l.value.forEach(S=>{const O=vd(C,S,!1),x=vd(y,S,!1);(m&&(n==null?void 0:n.immediate)&&O.isValid||!cv(O.v,x.v))&&w.push(S)}),d(w,{trigger:"change"}),m=!1,y=rs(Tt(C))},b=n==null?void 0:n.debounce;let $=!0;return ue(t,()=>{l.value=t?Object.keys(Vt(t)):[],!$&&n&&n.validateOnRuleChange&&d(),$=!1},{deep:!0,immediate:!0}),ue(l,()=>{const C={};l.value.forEach(w=>{C[w]=g({},r[w],{autoLink:!1,required:r1(Vt(t)[w])}),delete r[w]});for(const w in r)Object.prototype.hasOwnProperty.call(r,w)&&delete r[w];g(r,C)},{immediate:!0}),ue(e,b&&b.wait?WC(h,b.wait,ME(b,["wait"])):h,{immediate:n&&!!n.immediate,deep:!0}),{modelRef:e,rulesRef:t,initialModel:o,validateInfos:r,resetFields:a,validate:d,validateField:c,mergeValidateInfo:v,clearValidate:p}}const nW=()=>({layout:V.oneOf(Sn("horizontal","inline","vertical")),labelCol:De(),wrapperCol:De(),colon:xe(),labelAlign:je(),labelWrap:xe(),prefixCls:String,requiredMark:Xe([String,Boolean]),hideRequiredMark:xe(),model:V.object,rules:De(),validateMessages:De(),validateOnRuleChange:xe(),scrollToFirstError:It(),onSubmit:ce(),name:String,validateTrigger:Xe([String,Array]),size:je(),disabled:xe(),onValuesChange:ce(),onFieldsChange:ce(),onFinish:ce(),onFinishFailed:ce(),onValidate:ce()});function oW(e,t){return cv(ir(e),ir(t))}const rW=te({compatConfig:{MODE:3},name:"AForm",inheritAttrs:!1,props:rt(nW(),{layout:"horizontal",hideRequiredMark:!1,colon:!0}),Item:eW,useForm:tW,setup(e,t){let{emit:n,slots:o,expose:r,attrs:l}=t;const{prefixCls:a,direction:i,form:s,size:u,disabled:c}=Me("form",e),d=P(()=>e.requiredMark===""||e.requiredMark),p=P(()=>{var A;return d.value!==void 0?d.value:s&&((A=s.value)===null||A===void 0?void 0:A.requiredMark)!==void 0?s.value.requiredMark:!e.hideRequiredMark});Ux(u),px(c);const v=P(()=>{var A,B;return(A=e.colon)!==null&&A!==void 0?A:(B=s.value)===null||B===void 0?void 0:B.colon}),{validateMessages:y}=_9(),m=P(()=>g(g(g({},au),y.value),e.validateMessages)),[h,b]=tm(a),$=P(()=>ne(a.value,{[`${a.value}-${e.layout}`]:!0,[`${a.value}-hide-required-mark`]:p.value===!1,[`${a.value}-rtl`]:i.value==="rtl",[`${a.value}-${u.value}`]:u.value},b.value)),C=ee(),w={},S=(A,B)=>{w[A]=B},O=A=>{delete w[A]},x=A=>{const B=!!A,N=B?ir(A).map(ip):[];return B?Object.values(w).filter(k=>N.findIndex(L=>oW(L,k.fieldName.value))>-1):Object.values(w)},I=A=>{if(!e.model){$t();return}x(A).forEach(B=>{B.resetField()})},E=A=>{x(A).forEach(B=>{B.clearValidate()})},M=A=>{const{scrollToFirstError:B}=e;if(n("finishFailed",A),B&&A.errorFields.length){let N={};typeof B=="object"&&(N=B),z(A.errorFields[0].name,N)}},_=function(){return T(...arguments)},z=function(A){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const N=x(A?[A]:void 0);if(N.length){const k=N[0].fieldId.value,L=k?document.getElementById(k):null;L&&A_(L,g({scrollMode:"if-needed",block:"nearest"},B))}},R=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(A===!0){const B=[];return Object.values(w).forEach(N=>{let{namePath:k}=N;B.push(k.value)}),t1(e.model,B)}else return t1(e.model,A)},H=(A,B)=>{if($t(),!e.model)return $t(),Promise.reject("Form `model` is required for validateFields to work.");const N=!!A,k=N?ir(A).map(ip):[],L=[];Object.values(w).forEach(U=>{var K;if(N||k.push(U.namePath.value),!(!((K=U.rules)===null||K===void 0)&&K.value.length))return;const Y=U.namePath.value;if(!N||$V(k,Y)){const Q=U.validateRules(g({validateMessages:m.value},B));L.push(Q.then(()=>({name:Y,errors:[],warnings:[]})).catch(J=>{const Z=[],W=[];return J.forEach(X=>{let{rule:{warningOnly:re},errors:ae}=X;re?W.push(...ae):Z.push(...ae)}),Z.length?Promise.reject({name:Y,errors:Z,warnings:W}):{name:Y,errors:Z,warnings:W}}))}});const j=i3(L);C.value=j;const G=j.then(()=>C.value===j?Promise.resolve(R(k)):Promise.reject([])).catch(U=>{const K=U.filter(Y=>Y&&Y.errors.length);return Promise.reject({values:R(k),errorFields:K,outOfDate:C.value!==j})});return G.catch(U=>U),G},T=function(){return H(...arguments)},D=A=>{A.preventDefault(),A.stopPropagation(),n("submit",A),e.model&&H().then(N=>{n("finish",N)}).catch(N=>{M(N)})};return r({resetFields:I,clearValidate:E,validateFields:H,getFieldsValue:R,validate:_,scrollToField:z}),l3({model:P(()=>e.model),name:P(()=>e.name),labelAlign:P(()=>e.labelAlign),labelCol:P(()=>e.labelCol),labelWrap:P(()=>e.labelWrap),wrapperCol:P(()=>e.wrapperCol),vertical:P(()=>e.layout==="vertical"),colon:v,requiredMark:p,validateTrigger:P(()=>e.validateTrigger),rules:P(()=>e.rules),addField:S,removeField:O,onValidate:(A,B,N)=>{n("validate",A,B,N)},validateMessages:m}),ue(()=>e.rules,()=>{e.validateOnRuleChange&&H()}),()=>{var A;return h(f("form",F(F({},l),{},{onSubmit:D,class:[$.value,l.class]}),[(A=o.default)===null||A===void 0?void 0:A.call(o)]))}}}),Er=rW;Er.useInjectFormItemContext=Lt;Er.ItemRest=Mf;Er.install=function(e){return e.component(Er.name,Er),e.component(Er.Item.name,Er.Item),e.component(Mf.name,Mf),e};const lW=new Ue("antCheckboxEffect",{"0%":{transform:"scale(1)",opacity:.5},"100%":{transform:"scale(1.6)",opacity:0}}),aW=e=>{const{checkboxCls:t}=e,n=`${t}-wrapper`;return[{[`${t}-group`]:g(g({},Qe(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[n]:g(g({},Qe(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${n}`]:{marginInlineStart:0},[`&${n}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:g(g({},Qe(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:g({},Lo(e))},[`${t}-inner`]:{boxSizing:"border-box",position:"relative",top:0,insetInlineStart:0,display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"21.5%",display:"table",width:e.checkboxSize/14*5,height:e.checkboxSize/14*8,border:`${e.lineWidthBold}px solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[t]:{"&-indeterminate":{[`${t}-inner`]:{"&:after":{top:"50%",insetInlineStart:"50%",width:e.fontSizeLG/2,height:e.fontSizeLG/2,backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}}}}},{[`${n}:hover ${t}:after`]:{visibility:"visible"},[` + ${n}:not(${n}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${n}:not(${n}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}},"&:after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderRadius:e.borderRadiusSM,visibility:"hidden",border:`${e.lineWidthBold}px solid ${e.colorPrimary}`,animationName:lW,animationDuration:e.motionDurationSlow,animationTimingFunction:"ease-in-out",animationFillMode:"backwards",content:'""',transition:`all ${e.motionDurationSlow}`}},[` + ${n}-checked:not(${n}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}:after`]:{borderColor:e.colorPrimaryHover}}},{[`${n}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]};function cu(e,t){const n=Le(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize});return[aW(n)]}const s3=Je("Checkbox",(e,t)=>{let{prefixCls:n}=t;return[cu(n,e)]}),iW=e=>{const{prefixCls:t,componentCls:n,antCls:o}=e,r=`${n}-menu-item`,l=` + &${r}-expand ${r}-expand-icon, + ${r}-loading-icon + `,a=Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2);return[{[n]:{width:e.controlWidth}},{[`${n}-dropdown`]:[cu(`${t}-checkbox`,e),{[`&${o}-select-dropdown`]:{padding:0}},{[n]:{"&-checkbox":{top:0,marginInlineEnd:e.paddingXS},"&-menus":{display:"flex",flexWrap:"nowrap",alignItems:"flex-start",[`&${n}-menu-empty`]:{[`${n}-menu`]:{width:"100%",height:"auto",[r]:{color:e.colorTextDisabled}}}},"&-menu":{flexGrow:1,minWidth:e.controlItemWidth,height:e.dropdownHeight,margin:0,padding:e.paddingXXS,overflow:"auto",verticalAlign:"top",listStyle:"none","-ms-overflow-style":"-ms-autohiding-scrollbar","&:not(:last-child)":{borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},"&-item":g(g({},Xt),{display:"flex",flexWrap:"nowrap",alignItems:"center",padding:`${a}px ${e.paddingSM}px`,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${e.motionDurationMid}`,borderRadius:e.borderRadiusSM,"&:hover":{background:e.controlItemBgHover},"&-disabled":{color:e.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"},[l]:{color:e.colorTextDisabled}},[`&-active:not(${r}-disabled)`]:{"&, &:hover":{fontWeight:e.fontWeightStrong,backgroundColor:e.controlItemBgActive}},"&-content":{flex:"auto"},[l]:{marginInlineStart:e.paddingXXS,color:e.colorTextDescription,fontSize:e.fontSizeIcon},"&-keyword":{color:e.colorHighlight}})}}}]},{[`${n}-dropdown-rtl`]:{direction:"rtl"}},ra(e)]},sW=Je("Cascader",e=>[iW(e)],{controlWidth:184,controlItemWidth:111,dropdownHeight:180});var cW=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rs===0?[i]:[...a,t,i],[]),r=[];let l=0;return o.forEach((a,i)=>{const s=l+a.length;let u=e.slice(l,s);l=s,i%2===1&&(u=f("span",{class:`${n}-menu-item-keyword`,key:"seperator"},[u])),r.push(u)}),r}const dW=e=>{let{inputValue:t,path:n,prefixCls:o,fieldNames:r}=e;const l=[],a=t.toLowerCase();return n.forEach((i,s)=>{s!==0&&l.push(" / ");let u=i[r.label];const c=typeof u;(c==="string"||c==="number")&&(u=uW(String(u),a,o)),l.push(u)}),l};function fW(){return g(g({},tt(X4(),["customSlots","checkable","options"])),{multiple:{type:Boolean,default:void 0},size:String,bordered:{type:Boolean,default:void 0},placement:{type:String},suffixIcon:V.any,status:String,options:Array,popupClassName:String,dropdownClassName:String,"onUpdate:value":Function})}const pW=te({compatConfig:{MODE:3},name:"ACascader",inheritAttrs:!1,props:rt(fW(),{bordered:!0,choiceTransitionName:"",allowClear:!0}),setup(e,t){let{attrs:n,expose:o,slots:r,emit:l}=t;const a=Lt(),i=rn.useInject(),s=P(()=>wo(i.status,e.status)),{prefixCls:u,rootPrefixCls:c,getPrefixCls:d,direction:p,getPopupContainer:v,renderEmpty:y,size:m,disabled:h}=Me("cascader",e),b=P(()=>d("select",e.prefixCls)),{compactSize:$,compactItemClassnames:C}=pr(b,p),w=P(()=>$.value||m.value),S=Cn(),O=P(()=>{var B;return(B=h.value)!==null&&B!==void 0?B:S.value}),[x,I]=og(b),[E]=sW(u),M=P(()=>p.value==="rtl"),_=P(()=>{if(!e.showSearch)return e.showSearch;let B={render:dW};return typeof e.showSearch=="object"&&(B=g(g({},B),e.showSearch)),B}),z=P(()=>ne(e.popupClassName||e.dropdownClassName,`${u.value}-dropdown`,{[`${u.value}-dropdown-rtl`]:M.value},I.value)),R=ee();o({focus(){var B;(B=R.value)===null||B===void 0||B.focus()},blur(){var B;(B=R.value)===null||B===void 0||B.blur()}});const H=function(){for(var B=arguments.length,N=new Array(B),k=0;ke.showArrow!==void 0?e.showArrow:e.loading||!e.multiple),A=P(()=>e.placement!==void 0?e.placement:p.value==="rtl"?"bottomRight":"bottomLeft");return()=>{var B,N;const{notFoundContent:k=(B=r.notFoundContent)===null||B===void 0?void 0:B.call(r),expandIcon:L=(N=r.expandIcon)===null||N===void 0?void 0:N.call(r),multiple:j,bordered:G,allowClear:U,choiceTransitionName:K,transitionName:Y,id:Q=a.id.value}=e,J=cW(e,["notFoundContent","expandIcon","multiple","bordered","allowClear","choiceTransitionName","transitionName","id"]),Z=k||y("Cascader");let W=L;L||(W=M.value?f(dr,null,null):f(So,null,null));const X=f("span",{class:`${b.value}-menu-item-loading-icon`},[f(qn,{spin:!0},null)]),{suffixIcon:re,removeIcon:ae,clearIcon:pe}=Jv(g(g({},e),{hasFeedback:i.hasFeedback,feedbackIcon:i.feedbackIcon,multiple:j,prefixCls:b.value,showArrow:D.value}),r);return E(x(f(wj,F(F(F({},J),n),{},{id:Q,prefixCls:b.value,class:[u.value,{[`${b.value}-lg`]:w.value==="large",[`${b.value}-sm`]:w.value==="small",[`${b.value}-rtl`]:M.value,[`${b.value}-borderless`]:!G,[`${b.value}-in-form-item`]:i.isFormItemInput},bn(b.value,s.value,i.hasFeedback),C.value,n.class,I.value],disabled:O.value,direction:p.value,placement:A.value,notFoundContent:Z,allowClear:U,showSearch:_.value,expandIcon:W,inputIcon:re,removeIcon:ae,clearIcon:pe,loadingIcon:X,checkable:!!j,dropdownClassName:z.value,dropdownPrefixCls:u.value,choiceTransitionName:on(c.value,"",K),transitionName:on(c.value,Av(A.value),Y),getPopupContainer:v==null?void 0:v.value,customSlots:g(g({},r),{checkable:()=>f("span",{class:`${u.value}-checkbox-inner`},null)}),tagRender:e.tagRender||r.tagRender,displayRender:e.displayRender||r.displayRender,maxTagPlaceholder:e.maxTagPlaceholder||r.maxTagPlaceholder,showArrow:i.hasFeedback||e.showArrow,onChange:H,onBlur:T,ref:R}),r)))}}}),Ole=Gt(g(pW,{SHOW_CHILD:F4,SHOW_PARENT:N4})),vW=()=>({name:String,prefixCls:String,options:st([]),disabled:Boolean,id:String}),gW=()=>g(g({},vW()),{defaultValue:st(),value:st(),onChange:ce(),"onUpdate:value":ce()}),mW=()=>({prefixCls:String,defaultChecked:xe(),checked:xe(),disabled:xe(),isGroup:xe(),value:V.any,name:String,id:String,indeterminate:xe(),type:je("checkbox"),autofocus:xe(),onChange:ce(),"onUpdate:checked":ce(),onClick:ce(),skipGroup:xe(!1)}),hW=()=>g(g({},mW()),{indeterminate:xe(!1)}),c3=Symbol("CheckboxGroupContext");var a1=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r(y==null?void 0:y.disabled.value)||c.value);ke(()=>{!e.skipGroup&&y&&y.registerValue(m,e.value)}),Ze(()=>{y&&y.cancelValue(m)}),Ve(()=>{$t(!!(e.checked!==void 0||y||e.value===void 0))});const b=S=>{const O=S.target.checked;n("update:checked",O),n("change",S),a.onFieldChange()},$=ee();return l({focus:()=>{var S;(S=$.value)===null||S===void 0||S.focus()},blur:()=>{var S;(S=$.value)===null||S===void 0||S.blur()}}),()=>{var S;const O=bt((S=r.default)===null||S===void 0?void 0:S.call(r)),{indeterminate:x,skipGroup:I,id:E=a.id.value}=e,M=a1(e,["indeterminate","skipGroup","id"]),{onMouseenter:_,onMouseleave:z,onInput:R,class:H,style:T}=o,D=a1(o,["onMouseenter","onMouseleave","onInput","class","style"]),A=g(g(g(g({},M),{id:E,prefixCls:s.value}),D),{disabled:h.value});y&&!I?(A.onChange=function(){for(var L=arguments.length,j=new Array(L),G=0;G`${i.value}-group`),[c,d]=s3(u),p=ee((e.value===void 0?e.defaultValue:e.value)||[]);ue(()=>e.value,()=>{p.value=e.value||[]});const v=P(()=>e.options.map(w=>typeof w=="string"||typeof w=="number"?{label:w,value:w}:w)),y=ee(Symbol()),m=ee(new Map),h=w=>{m.value.delete(w),y.value=Symbol()},b=(w,S)=>{m.value.set(w,S),y.value=Symbol()},$=ee(new Map);return ue(y,()=>{const w=new Map;for(const S of m.value.values())w.set(S,!0);$.value=w}),We(c3,{cancelValue:h,registerValue:b,toggleOption:w=>{const S=p.value.indexOf(w.value),O=[...p.value];S===-1?O.push(w.value):O.splice(S,1),e.value===void 0&&(p.value=O);const x=O.filter(I=>$.value.has(I)).sort((I,E)=>{const M=v.value.findIndex(z=>z.value===I),_=v.value.findIndex(z=>z.value===E);return M-_});r("update:value",x),r("change",x),a.onFieldChange()},mergedValue:p,name:P(()=>e.name),disabled:P(()=>e.disabled)}),l({mergedValue:p}),()=>{var w;const{id:S=a.id.value}=e;let O=null;return v.value&&v.value.length>0&&(O=v.value.map(x=>{var I;return f(ao,{prefixCls:i.value,key:x.value.toString(),disabled:"disabled"in x?x.disabled:e.disabled,indeterminate:x.indeterminate,value:x.value,checked:p.value.indexOf(x.value)!==-1,onChange:x.onChange,class:`${u.value}-item`},{default:()=>[n.label!==void 0?(I=n.label)===null||I===void 0?void 0:I.call(n,x):x.label]})})),c(f("div",F(F({},o),{},{class:[u.value,{[`${u.value}-rtl`]:s.value==="rtl"},o.class,d.value],id:S}),[O||((w=n.default)===null||w===void 0?void 0:w.call(n))]))}}});ao.Group=cp;ao.install=function(e){return e.component(ao.name,ao),e.component(cp.name,cp),e};const Ple=Gt(su);let ys=g({},xn.Modal);function bW(e){e?ys=g(g({},ys),e):ys=g({},xn.Modal)}function yW(){return ys}const up="internalMark",$s=te({compatConfig:{MODE:3},name:"ALocaleProvider",props:{locale:{type:Object},ANT_MARK__:String},setup(e,t){let{slots:n}=t;$t(e.ANT_MARK__===up);const o=vt({antLocale:g(g({},e.locale),{exist:!0}),ANT_MARK__:up});return We("localeData",o),ue(()=>e.locale,r=>{bW(r&&r.Modal),o.antLocale=g(g({},r),{exist:!0})},{immediate:!0}),()=>{var r;return(r=n.default)===null||r===void 0?void 0:r.call(n)}}});$s.install=function(e){return e.component($s.name,$s),e};const $W=Gt($s),u3=te({name:"Notice",inheritAttrs:!1,props:["prefixCls","duration","updateMark","noticeKey","closeIcon","closable","props","onClick","onClose","holder","visible"],setup(e,t){let{attrs:n,slots:o}=t,r,l=!1;const a=P(()=>e.duration===void 0?4.5:e.duration),i=()=>{a.value&&!l&&(r=setTimeout(()=>{u()},a.value*1e3))},s=()=>{r&&(clearTimeout(r),r=null)},u=d=>{d&&d.stopPropagation(),s();const{onClose:p,noticeKey:v}=e;p&&p(v)},c=()=>{s(),i()};return Ve(()=>{i()}),Bn(()=>{l=!0,s()}),ue([a,()=>e.updateMark,()=>e.visible],(d,p)=>{let[v,y,m]=d,[h,b,$]=p;(v!==h||y!==b||m!==$&&$)&&c()},{flush:"post"}),()=>{var d,p;const{prefixCls:v,closable:y,closeIcon:m=(d=o.closeIcon)===null||d===void 0?void 0:d.call(o),onClick:h,holder:b}=e,{class:$,style:C}=n,w=`${v}-notice`,S=Object.keys(n).reduce((x,I)=>((I.startsWith("data-")||I.startsWith("aria-")||I==="role")&&(x[I]=n[I]),x),{}),O=f("div",F({class:ne(w,$,{[`${w}-closable`]:y}),style:C,onMouseenter:s,onMouseleave:i,onClick:h},S),[f("div",{class:`${w}-content`},[(p=o.default)===null||p===void 0?void 0:p.call(o)]),y?f("a",{tabindex:0,onClick:u,class:`${w}-close`},[m||f("span",{class:`${w}-close-x`},null)]):null]);return b?f(Wp,{to:b},{default:()=>O}):O}}});var SW=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{const{prefixCls:c,animation:d="fade"}=e;let p=e.transitionName;return!p&&d&&(p=`${c}-${d}`),Mc(p)}),s=(c,d)=>{const p=c.key||s1(),v=g(g({},c),{key:p}),{maxCount:y}=e,m=a.value.map(b=>b.notice.key).indexOf(p),h=a.value.concat();m!==-1?h.splice(m,1,{notice:v,holderCallback:d}):(y&&a.value.length>=y&&(v.key=h[0].notice.key,v.updateMark=s1(),v.userPassKey=p,h.shift()),h.push({notice:v,holderCallback:d})),a.value=h},u=c=>{a.value=Tt(a.value).filter(d=>{let{notice:{key:p,userPassKey:v}}=d;return(v||p)!==c})};return o({add:s,remove:u,notices:a}),()=>{var c;const{prefixCls:d,closeIcon:p=(c=r.closeIcon)===null||c===void 0?void 0:c.call(r,{prefixCls:d})}=e,v=a.value.map((m,h)=>{let{notice:b,holderCallback:$}=m;const C=h===a.value.length-1?b.updateMark:void 0,{key:w,userPassKey:S}=b,{content:O}=b,x=g(g(g({prefixCls:d,closeIcon:typeof p=="function"?p({prefixCls:d}):p},b),b.props),{key:w,noticeKey:S||w,updateMark:C,onClose:I=>{var E;u(I),(E=b.onClose)===null||E===void 0||E.call(b)},onClick:b.onClick});return $?f("div",{key:w,class:`${d}-hook-holder`,ref:I=>{typeof w!="undefined"&&(I?(l.set(w,I),$(I,x)):l.delete(w))}},null):f(u3,F(F({},x),{},{class:ne(x.class,e.hashId)}),{default:()=>[typeof O=="function"?O({prefixCls:d}):O]})}),y={[d]:1,[n.class]:!!n.class,[e.hashId]:!0};return f("div",{class:y,style:n.style||{top:"65px",left:"50%"}},[f(ac,F({tag:"div"},i.value),{default:()=>[v]})])}}});dp.newInstance=function(t,n){const o=t||{},{name:r="notification",getContainer:l,appContext:a,prefixCls:i,rootPrefixCls:s,transitionName:u,hasTransitionName:c,useStyle:d}=o,p=SW(o,["name","getContainer","appContext","prefixCls","rootPrefixCls","transitionName","hasTransitionName","useStyle"]),v=document.createElement("div");l?l().appendChild(v):document.body.appendChild(v);const y=te({compatConfig:{MODE:3},name:"NotificationWrapper",setup(h,b){let{attrs:$}=b;const C=q(),w=P(()=>Yt.getPrefixCls(r,i)),[,S]=d(w);return Ve(()=>{n({notice(O){var x;(x=C.value)===null||x===void 0||x.add(O)},removeNotice(O){var x;(x=C.value)===null||x===void 0||x.remove(O)},destroy(){cr(null,v),v.parentNode&&v.parentNode.removeChild(v)},component:C})}),()=>{const O=Yt,x=O.getRootPrefixCls(s,w.value),I=c?u:`${w.value}-${u}`;return f(A3,F(F({},O),{},{prefixCls:x}),{default:()=>[f(dp,F(F({ref:C},$),{},{prefixCls:w.value,transitionName:I,hashId:S.value}),null)]})}}}),m=f(y,p);m.appContext=a||m.appContext,cr(m,v)};const d3=dp;let c1=0;const xW=Date.now();function u1(){const e=c1;return c1+=1,`rcNotification_${xW}_${e}`}const wW=te({name:"HookNotification",inheritAttrs:!1,props:["prefixCls","transitionName","animation","maxCount","closeIcon","hashId","remove","notices","getStyles","getClassName","onAllRemoved","getContainer"],setup(e,t){let{attrs:n,slots:o}=t;const r=new Map,l=P(()=>e.notices),a=P(()=>{let c=e.transitionName;if(!c&&e.animation)switch(typeof e.animation){case"string":c=e.animation;break;case"function":c=e.animation().name;break;case"object":c=e.animation.name;break;default:c=`${e.prefixCls}-fade`;break}return Mc(c)}),i=c=>e.remove(c),s=ee({});ue(l,()=>{const c={};Object.keys(s.value).forEach(d=>{c[d]=[]}),e.notices.forEach(d=>{const{placement:p="topRight"}=d.notice;p&&(c[p]=c[p]||[],c[p].push(d))}),s.value=c});const u=P(()=>Object.keys(s.value));return()=>{var c;const{prefixCls:d,closeIcon:p=(c=o.closeIcon)===null||c===void 0?void 0:c.call(o,{prefixCls:d})}=e,v=u.value.map(y=>{var m,h;const b=s.value[y],$=(m=e.getClassName)===null||m===void 0?void 0:m.call(e,y),C=(h=e.getStyles)===null||h===void 0?void 0:h.call(e,y),w=b.map((x,I)=>{let{notice:E,holderCallback:M}=x;const _=I===l.value.length-1?E.updateMark:void 0,{key:z,userPassKey:R}=E,{content:H}=E,T=g(g(g({prefixCls:d,closeIcon:typeof p=="function"?p({prefixCls:d}):p},E),E.props),{key:z,noticeKey:R||z,updateMark:_,onClose:D=>{var A;i(D),(A=E.onClose)===null||A===void 0||A.call(E)},onClick:E.onClick});return M?f("div",{key:z,class:`${d}-hook-holder`,ref:D=>{typeof z!="undefined"&&(D?(r.set(z,D),M(D,T)):r.delete(z))}},null):f(u3,F(F({},T),{},{class:ne(T.class,e.hashId)}),{default:()=>[typeof H=="function"?H({prefixCls:d}):H]})}),S={[d]:1,[`${d}-${y}`]:1,[n.class]:!!n.class,[e.hashId]:!0,[$]:!!$};function O(){var x;b.length>0||(Reflect.deleteProperty(s.value,y),(x=e.onAllRemoved)===null||x===void 0||x.call(e))}return f("div",{key:y,class:S,style:n.style||C||{top:"65px",left:"50%"}},[f(ac,F(F({tag:"div"},a.value),{},{onAfterLeave:O}),{default:()=>[w]})])});return f($2,{getContainer:e.getContainer},{default:()=>[v]})}}}),OW=wW;var PW=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rdocument.body;let d1=0;function TW(){const e={};for(var t=arguments.length,n=new Array(t),o=0;o{r&&Object.keys(r).forEach(l=>{const a=r[l];a!==void 0&&(e[l]=a)})}),e}function f3(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{getContainer:t=IW,motion:n,prefixCls:o,maxCount:r,getClassName:l,getStyles:a,onAllRemoved:i}=e,s=PW(e,["getContainer","motion","prefixCls","maxCount","getClassName","getStyles","onAllRemoved"]),u=q([]),c=q(),d=(b,$)=>{const C=b.key||u1(),w=g(g({},b),{key:C}),S=u.value.map(x=>x.notice.key).indexOf(C),O=u.value.concat();S!==-1?O.splice(S,1,{notice:w,holderCallback:$}):(r&&u.value.length>=r&&(w.key=O[0].notice.key,w.updateMark=u1(),w.userPassKey=C,O.shift()),O.push({notice:w,holderCallback:$})),u.value=O},p=b=>{u.value=u.value.filter($=>{let{notice:{key:C,userPassKey:w}}=$;return(w||C)!==b})},v=()=>{u.value=[]},y=()=>f(OW,{ref:c,prefixCls:o,maxCount:r,notices:u.value,remove:p,getClassName:l,getStyles:a,animation:n,hashId:e.hashId,onAllRemoved:i,getContainer:t},null),m=q([]),h={open:b=>{const $=TW(s,b);($.key===null||$.key===void 0)&&($.key=`vc-notification-${d1}`,d1+=1),m.value=[...m.value,{type:"open",config:$}]},close:b=>{m.value=[...m.value,{type:"close",key:b}]},destroy:()=>{m.value=[...m.value,{type:"destroy"}]}};return ue(m,()=>{m.value.length&&(m.value.forEach(b=>{switch(b.type){case"open":d(b.config);break;case"close":p(b.key);break;case"destroy":v();break}}),m.value=[])}),[h,y]}const EW=e=>{const{componentCls:t,iconCls:n,boxShadowSecondary:o,colorBgElevated:r,colorSuccess:l,colorError:a,colorWarning:i,colorInfo:s,fontSizeLG:u,motionEaseInOutCirc:c,motionDurationSlow:d,marginXS:p,paddingXS:v,borderRadiusLG:y,zIndexPopup:m,messageNoticeContentPadding:h}=e,b=new Ue("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:v,transform:"translateY(0)",opacity:1}}),$=new Ue("MessageMoveOut",{"0%":{maxHeight:e.height,padding:v,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}});return[{[t]:g(g({},Qe(e)),{position:"fixed",top:p,left:"50%",transform:"translateX(-50%)",width:"100%",pointerEvents:"none",zIndex:m,[`${t}-move-up`]:{animationFillMode:"forwards"},[` + ${t}-move-up-appear, + ${t}-move-up-enter + `]:{animationName:b,animationDuration:d,animationPlayState:"paused",animationTimingFunction:c},[` + ${t}-move-up-appear${t}-move-up-appear-active, + ${t}-move-up-enter${t}-move-up-enter-active + `]:{animationPlayState:"running"},[`${t}-move-up-leave`]:{animationName:$,animationDuration:d,animationPlayState:"paused",animationTimingFunction:c},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[`${t}-notice`]:{padding:v,textAlign:"center",[n]:{verticalAlign:"text-bottom",marginInlineEnd:p,fontSize:u},[`${t}-notice-content`]:{display:"inline-block",padding:h,background:r,borderRadius:y,boxShadow:o,pointerEvents:"all"},[`${t}-success ${n}`]:{color:l},[`${t}-error ${n}`]:{color:a},[`${t}-warning ${n}`]:{color:i},[` + ${t}-info ${n}, + ${t}-loading ${n}`]:{color:s}}},{[`${t}-notice-pure-panel`]:{padding:0,textAlign:"start"}}]},p3=Je("Message",e=>{const t=Le(e,{messageNoticeContentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`});return[EW(t)]},e=>({height:150,zIndexPopup:e.zIndexPopupBase+10})),MW={info:f(la,null,null),success:f(Ko,null,null),error:f(On,null,null),warning:f(Go,null,null),loading:f(qn,null,null)},_W=te({name:"PureContent",inheritAttrs:!1,props:["prefixCls","type","icon"],setup(e,t){let{slots:n}=t;return()=>{var o;return f("div",{class:ne(`${e.prefixCls}-custom-content`,`${e.prefixCls}-${e.type}`)},[e.icon||MW[e.type],f("span",null,[(o=n.default)===null||o===void 0?void 0:o.call(n)])])}}});var DW=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rl("message",e.prefixCls)),[,s]=p3(i),u=()=>{var m;const h=(m=e.top)!==null&&m!==void 0?m:AW;return{left:"50%",transform:"translateX(-50%)",top:typeof h=="number"?`${h}px`:h}},c=()=>ne(s.value,e.rtl?`${i.value}-rtl`:""),d=()=>{var m;return Iv({prefixCls:i.value,animation:(m=e.animation)!==null&&m!==void 0?m:"move-up",transitionName:e.transitionName})},p=f("span",{class:`${i.value}-close-x`},[f(Qn,{class:`${i.value}-close-icon`},null)]),[v,y]=f3({getStyles:u,prefixCls:i.value,getClassName:c,motion:d,closable:!1,closeIcon:p,duration:(o=e.duration)!==null&&o!==void 0?o:RW,getContainer:(r=e.staticGetContainer)!==null&&r!==void 0?r:a.value,maxCount:e.maxCount,onAllRemoved:e.onAllRemoved});return n(g(g({},v),{prefixCls:i,hashId:s})),y}});let f1=0;function NW(e){const t=q(null),n=Symbol("messageHolderKey"),o=s=>{var u;(u=t.value)===null||u===void 0||u.close(s)},r=s=>{if(!t.value){const S=()=>{};return S.then=()=>{},S}const{open:u,prefixCls:c,hashId:d}=t.value,p=`${c}-notice`,{content:v,icon:y,type:m,key:h,class:b,onClose:$}=s,C=DW(s,["content","icon","type","key","class","onClose"]);let w=h;return w==null&&(f1+=1,w=`antd-message-${f1}`),n9(S=>(u(g(g({},C),{key:w,content:()=>f(_W,{prefixCls:c,type:m,icon:typeof y=="function"?y():y},{default:()=>[typeof v=="function"?v():v]}),placement:"top",class:ne(m&&`${p}-${m}`,d,b),onClose:()=>{$==null||$(),S()}})),()=>{o(w)}))},a={open:r,destroy:s=>{var u;s!==void 0?o(s):(u=t.value)===null||u===void 0||u.destroy()}};return["info","success","warning","error","loading"].forEach(s=>{const u=(c,d,p)=>{let v;c&&typeof c=="object"&&"content"in c?v=c:v={content:c};let y,m;typeof d=="function"?m=d:(y=d,m=p);const h=g(g({onClose:m,duration:y},v),{type:s});return r(h)};a[s]=u}),[a,()=>f(BW,F(F({key:n},e),{},{ref:t}),null)]}function FW(e){return NW(e)}let v3=3,g3,an,kW=1,m3="",h3="move-up",b3=!1,y3=()=>document.body,$3,S3=!1;function LW(){return kW++}function zW(e){e.top!==void 0&&(g3=e.top,an=null),e.duration!==void 0&&(v3=e.duration),e.prefixCls!==void 0&&(m3=e.prefixCls),e.getContainer!==void 0&&(y3=e.getContainer,an=null),e.transitionName!==void 0&&(h3=e.transitionName,an=null,b3=!0),e.maxCount!==void 0&&($3=e.maxCount,an=null),e.rtl!==void 0&&(S3=e.rtl)}function HW(e,t){if(an){t(an);return}d3.newInstance({appContext:e.appContext,prefixCls:e.prefixCls||m3,rootPrefixCls:e.rootPrefixCls,transitionName:h3,hasTransitionName:b3,style:{top:g3},getContainer:y3||e.getPopupContainer,maxCount:$3,name:"message",useStyle:p3},n=>{if(an){t(an);return}an=n,t(n)})}const C3={info:la,success:Ko,error:On,warning:Go,loading:qn},jW=Object.keys(C3);function VW(e){const t=e.duration!==void 0?e.duration:v3,n=e.key||LW(),o=new Promise(l=>{const a=()=>(typeof e.onClose=="function"&&e.onClose(),l(!0));HW(e,i=>{i.notice({key:n,duration:t,style:e.style||{},class:e.class,content:s=>{let{prefixCls:u}=s;const c=C3[e.type],d=c?f(c,null,null):"",p=ne(`${u}-custom-content`,{[`${u}-${e.type}`]:e.type,[`${u}-rtl`]:S3===!0});return f("div",{class:p},[typeof e.icon=="function"?e.icon():e.icon||d,f("span",null,[typeof e.content=="function"?e.content():e.content])])},onClose:a,onClick:e.onClick})})}),r=()=>{an&&an.removeNotice(n)};return r.then=(l,a)=>o.then(l,a),r.promise=o,r}function WW(e){return Object.prototype.toString.call(e)==="[object Object]"&&!!e.content}const oi={open:VW,config:zW,destroy(e){if(an)if(e){const{removeNotice:t}=an;t(e)}else{const{destroy:t}=an;t(),an=null}}};function KW(e,t){e[t]=(n,o,r)=>WW(n)?e.open(g(g({},n),{type:t})):(typeof o=="function"&&(r=o,o=void 0),e.open({content:n,duration:o,type:t,onClose:r}))}jW.forEach(e=>KW(oi,e));oi.warn=oi.warning;oi.useMessage=FW;const GW=oi,XW=e=>{const{componentCls:t,width:n,notificationMarginEdge:o}=e,r=new Ue("antNotificationTopFadeIn",{"0%":{marginTop:"-100%",opacity:0},"100%":{marginTop:0,opacity:1}}),l=new Ue("antNotificationBottomFadeIn",{"0%":{marginBottom:"-100%",opacity:0},"100%":{marginBottom:0,opacity:1}}),a=new Ue("antNotificationLeftFadeIn",{"0%":{right:{_skip_check_:!0,value:n},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${t}-top, &${t}-bottom`]:{marginInline:0},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:r}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:l}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:o,[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:a}}}},UW=XW,YW=e=>{const{iconCls:t,componentCls:n,boxShadowSecondary:o,fontSizeLG:r,notificationMarginBottom:l,borderRadiusLG:a,colorSuccess:i,colorInfo:s,colorWarning:u,colorError:c,colorTextHeading:d,notificationBg:p,notificationPadding:v,notificationMarginEdge:y,motionDurationMid:m,motionEaseInOut:h,fontSize:b,lineHeight:$,width:C,notificationIconSize:w}=e,S=`${n}-notice`,O=new Ue("antNotificationFadeIn",{"0%":{left:{_skip_check_:!0,value:C},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),x=new Ue("antNotificationFadeOut",{"0%":{maxHeight:e.animationMaxHeight,marginBottom:l,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[n]:g(g(g(g({},Qe(e)),{position:"fixed",zIndex:e.zIndexPopup,marginInlineEnd:y,[`${n}-hook-holder`]:{position:"relative"},[`&${n}-top, &${n}-bottom`]:{[`${n}-notice`]:{marginInline:"auto auto"}},[`&${n}-topLeft, &${n}-bottomLeft`]:{[`${n}-notice`]:{marginInlineEnd:"auto",marginInlineStart:0}},[`${n}-fade-enter, ${n}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:h,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${n}-fade-leave`]:{animationTimingFunction:h,animationFillMode:"both",animationDuration:m,animationPlayState:"paused"},[`${n}-fade-enter${n}-fade-enter-active, ${n}-fade-appear${n}-fade-appear-active`]:{animationName:O,animationPlayState:"running"},[`${n}-fade-leave${n}-fade-leave-active`]:{animationName:x,animationPlayState:"running"}}),UW(e)),{"&-rtl":{direction:"rtl",[`${n}-notice-btn`]:{float:"left"}}})},{[S]:{position:"relative",width:C,maxWidth:`calc(100vw - ${y*2}px)`,marginBottom:l,marginInlineStart:"auto",padding:v,overflow:"hidden",lineHeight:$,wordWrap:"break-word",background:p,borderRadius:a,boxShadow:o,[`${n}-close-icon`]:{fontSize:b,cursor:"pointer"},[`${S}-message`]:{marginBottom:e.marginXS,color:d,fontSize:r,lineHeight:e.lineHeightLG},[`${S}-description`]:{fontSize:b},[`&${S}-closable ${S}-message`]:{paddingInlineEnd:e.paddingLG},[`${S}-with-icon ${S}-message`]:{marginBottom:e.marginXS,marginInlineStart:e.marginSM+w,fontSize:r},[`${S}-with-icon ${S}-description`]:{marginInlineStart:e.marginSM+w,fontSize:b},[`${S}-icon`]:{position:"absolute",fontSize:w,lineHeight:0,[`&-success${t}`]:{color:i},[`&-info${t}`]:{color:s},[`&-warning${t}`]:{color:u},[`&-error${t}`]:{color:c}},[`${S}-close`]:{position:"absolute",top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:"none",width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:e.colorIconHover,backgroundColor:e.wireframe?"transparent":e.colorFillContent}},[`${S}-btn`]:{float:"right",marginTop:e.marginSM}}},{[`${S}-pure-panel`]:{margin:0}}]},x3=Je("Notification",e=>{const t=e.paddingMD,n=e.paddingLG,o=Le(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:n,notificationPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`,notificationMarginBottom:e.margin,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationIconSize:e.fontSizeLG*e.lineHeightLG,notificationCloseButtonSize:e.controlHeightLG*.55});return[YW(o)]},e=>({zIndexPopup:e.zIndexPopupBase+50,width:384}));function qW(e,t){return t||f("span",{class:`${e}-close-x`},[f(Qn,{class:`${e}-close-icon`},null)])}f(la,null,null),f(Ko,null,null),f(On,null,null),f(Go,null,null),f(qn,null,null);const QW={success:Ko,info:la,error:On,warning:Go};function ZW(e){let{prefixCls:t,icon:n,type:o,message:r,description:l,btn:a}=e,i=null;if(n)i=f("span",{class:`${t}-icon`},[pl(n)]);else if(o){const s=QW[o];i=f(s,{class:`${t}-icon ${t}-icon-${o}`},null)}return f("div",{class:ne({[`${t}-with-icon`]:i}),role:"alert"},[i,f("div",{class:`${t}-message`},[r]),f("div",{class:`${t}-description`},[l]),a&&f("div",{class:`${t}-btn`},[a])])}function w3(e,t,n){let o;switch(t=typeof t=="number"?`${t}px`:t,n=typeof n=="number"?`${n}px`:n,e){case"top":o={left:"50%",transform:"translateX(-50%)",right:"auto",top:t,bottom:"auto"};break;case"topLeft":o={left:0,top:t,bottom:"auto"};break;case"topRight":o={right:0,top:t,bottom:"auto"};break;case"bottom":o={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:n};break;case"bottomLeft":o={left:0,top:"auto",bottom:n};break;default:o={right:0,top:"auto",bottom:n};break}return o}function JW(e){return{name:`${e}-fade`}}var eK=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.prefixCls||o("notification")),a=p=>{var v,y;return w3(p,(v=e.top)!==null&&v!==void 0?v:p1,(y=e.bottom)!==null&&y!==void 0?y:p1)},[,i]=x3(l),s=()=>ne(i.value,{[`${l.value}-rtl`]:e.rtl}),u=()=>JW(l.value),[c,d]=f3({prefixCls:l.value,getStyles:a,getClassName:s,motion:u,closable:!0,closeIcon:qW(l.value),duration:tK,getContainer:()=>{var p,v;return((p=e.getPopupContainer)===null||p===void 0?void 0:p.call(e))||((v=r.value)===null||v===void 0?void 0:v.call(r))||document.body},maxCount:e.maxCount,hashId:i.value,onAllRemoved:e.onAllRemoved});return n(g(g({},c),{prefixCls:l.value,hashId:i})),d}});function oK(e){const t=q(null),n=Symbol("notificationHolderKey"),o=i=>{if(!t.value)return;const{open:s,prefixCls:u,hashId:c}=t.value,d=`${u}-notice`,{message:p,description:v,icon:y,type:m,btn:h,class:b}=i,$=eK(i,["message","description","icon","type","btn","class"]);return s(g(g({placement:"topRight"},$),{content:()=>f(ZW,{prefixCls:d,icon:typeof y=="function"?y():y,type:m,message:typeof p=="function"?p():p,description:typeof v=="function"?v():v,btn:typeof h=="function"?h():h},null),class:ne(m&&`${d}-${m}`,c,b)}))},l={open:o,destroy:i=>{var s,u;i!==void 0?(s=t.value)===null||s===void 0||s.close(i):(u=t.value)===null||u===void 0||u.destroy()}};return["success","info","warning","error"].forEach(i=>{l[i]=s=>o(g(g({},s),{type:i}))}),[l,()=>f(nK,F(F({key:n},e),{},{ref:t}),null)]}function rK(e){return oK(e)}globalThis&&globalThis.__awaiter;const Mr={};let O3=4.5,P3="24px",I3="24px",fp="",T3="topRight",E3=()=>document.body,M3=null,pp=!1,_3;function lK(e){const{duration:t,placement:n,bottom:o,top:r,getContainer:l,closeIcon:a,prefixCls:i}=e;i!==void 0&&(fp=i),t!==void 0&&(O3=t),n!==void 0&&(T3=n),o!==void 0&&(I3=typeof o=="number"?`${o}px`:o),r!==void 0&&(P3=typeof r=="number"?`${r}px`:r),l!==void 0&&(E3=l),a!==void 0&&(M3=a),e.rtl!==void 0&&(pp=e.rtl),e.maxCount!==void 0&&(_3=e.maxCount)}function aK(e,t){let{prefixCls:n,placement:o=T3,getContainer:r=E3,top:l,bottom:a,closeIcon:i=M3,appContext:s}=e;const{getPrefixCls:u}=$K(),c=u("notification",n||fp),d=`${c}-${o}-${pp}`,p=Mr[d];if(p){Promise.resolve(p).then(y=>{t(y)});return}const v=ne(`${c}-${o}`,{[`${c}-rtl`]:pp===!0});d3.newInstance({name:"notification",prefixCls:n||fp,useStyle:x3,class:v,style:w3(o,l!=null?l:P3,a!=null?a:I3),appContext:s,getContainer:r,closeIcon:y=>{let{prefixCls:m}=y;return f("span",{class:`${m}-close-x`},[pl(i,{},f(Qn,{class:`${m}-close-icon`},null))])},maxCount:_3,hasTransitionName:!0},y=>{Mr[d]=y,t(y)})}const iK={success:Q2,info:ew,error:tw,warning:Z2};function sK(e){const{icon:t,type:n,description:o,message:r,btn:l}=e,a=e.duration===void 0?O3:e.duration;aK(e,i=>{i.notice({content:s=>{let{prefixCls:u}=s;const c=`${u}-notice`;let d=null;if(t)d=()=>f("span",{class:`${c}-icon`},[pl(t)]);else if(n){const p=iK[n];d=()=>f(p,{class:`${c}-icon ${c}-icon-${n}`},null)}return f("div",{class:d?`${c}-with-icon`:""},[d&&d(),f("div",{class:`${c}-message`},[!o&&d?f("span",{class:`${c}-message-single-line-auto-margin`},null):null,pl(r)]),f("div",{class:`${c}-description`},[pl(o)]),l?f("span",{class:`${c}-btn`},[pl(l)]):null])},duration:a,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},class:e.class})})}const Wl={open:sK,close(e){Object.keys(Mr).forEach(t=>Promise.resolve(Mr[t]).then(n=>{n.removeNotice(e)}))},config:lK,destroy(){Object.keys(Mr).forEach(e=>{Promise.resolve(Mr[e]).then(t=>{t.destroy()}),delete Mr[e]})}},cK=["success","info","warning","error"];cK.forEach(e=>{Wl[e]=t=>Wl.open(g(g({},t),{type:e}))});Wl.warn=Wl.warning;Wl.useNotification=rK;const uK=Wl,dK=`-ant-${Date.now()}-${Math.random()}`;function fK(e,t){const n={},o=(a,i)=>{let s=a.clone();return s=(i==null?void 0:i(s))||s,s.toRgbString()},r=(a,i)=>{const s=new ut(a),u=ur(s.toRgbString());n[`${i}-color`]=o(s),n[`${i}-color-disabled`]=u[1],n[`${i}-color-hover`]=u[4],n[`${i}-color-active`]=u[6],n[`${i}-color-outline`]=s.clone().setAlpha(.2).toRgbString(),n[`${i}-color-deprecated-bg`]=u[0],n[`${i}-color-deprecated-border`]=u[2]};if(t.primaryColor){r(t.primaryColor,"primary");const a=new ut(t.primaryColor),i=ur(a.toRgbString());i.forEach((u,c)=>{n[`primary-${c+1}`]=u}),n["primary-color-deprecated-l-35"]=o(a,u=>u.lighten(35)),n["primary-color-deprecated-l-20"]=o(a,u=>u.lighten(20)),n["primary-color-deprecated-t-20"]=o(a,u=>u.tint(20)),n["primary-color-deprecated-t-50"]=o(a,u=>u.tint(50)),n["primary-color-deprecated-f-12"]=o(a,u=>u.setAlpha(u.getAlpha()*.12));const s=new ut(i[0]);n["primary-color-active-deprecated-f-30"]=o(s,u=>u.setAlpha(u.getAlpha()*.3)),n["primary-color-active-deprecated-d-02"]=o(s,u=>u.darken(2))}return t.successColor&&r(t.successColor,"success"),t.warningColor&&r(t.warningColor,"warning"),t.errorColor&&r(t.errorColor,"error"),t.infoColor&&r(t.infoColor,"info"),` + :root { + ${Object.keys(n).map(a=>`--${e}-${a}: ${n[a]};`).join(` +`)} + } + `.trim()}function pK(e,t){const n=fK(e,t);un()?Xa(n,`${dK}-dynamic-theme`):$t()}const vK=e=>{const[t,n]=ea();return pf(P(()=>({theme:t.value,token:n.value,hashId:"",path:["ant-design-icons",e.value]})),()=>[{[`.${e.value}`]:g(g({},Jl()),{[`.${e.value} .${e.value}-icon`]:{display:"block"}})}])},gK=vK;function mK(e,t){const n=P(()=>(e==null?void 0:e.value)||{}),o=P(()=>n.value.inherit===!1||!(t!=null&&t.value)?Hx:t.value);return P(()=>{if(!(e!=null&&e.value))return t==null?void 0:t.value;const l=g({},o.value.components);return Object.keys(e.value.components||{}).forEach(a=>{l[a]=g(g({},l[a]),e.value.components[a])}),g(g(g({},o.value),n.value),{token:g(g({},o.value.token),n.value.token),components:l})})}var hK=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{g(Yt,nm),Yt.prefixCls=Il(),Yt.iconPrefixCls=D3(),Yt.getPrefixCls=(e,t)=>t||(e?`${Yt.prefixCls}-${e}`:Yt.prefixCls),Yt.getRootPrefixCls=()=>Yt.prefixCls?Yt.prefixCls:Il()});let gd;const yK=e=>{gd&&gd(),gd=ke(()=>{g(nm,vt(e)),g(Yt,vt(e))}),e.theme&&pK(Il(),e.theme)},$K=()=>({getPrefixCls:(e,t)=>t||(e?`${Il()}-${e}`:Il()),getIconPrefixCls:D3,getRootPrefixCls:()=>Yt.prefixCls?Yt.prefixCls:Il()}),Ra=te({compatConfig:{MODE:3},name:"AConfigProvider",inheritAttrs:!1,props:D9(),setup(e,t){let{slots:n}=t;const o=hv(),r=(T,D)=>{const{prefixCls:A="ant"}=e;if(D)return D;const B=A||o.getPrefixCls("");return T?`${B}-${T}`:B},l=P(()=>e.iconPrefixCls||o.iconPrefixCls.value||gv),a=P(()=>l.value!==o.iconPrefixCls.value),i=P(()=>{var T;return e.csp||((T=o.csp)===null||T===void 0?void 0:T.value)}),s=gK(l),u=mK(P(()=>e.theme),P(()=>{var T;return(T=o.theme)===null||T===void 0?void 0:T.value})),c=T=>(e.renderEmpty||n.renderEmpty||o.renderEmpty||M_)(T),d=P(()=>{var T,D;return(T=e.autoInsertSpaceInButton)!==null&&T!==void 0?T:(D=o.autoInsertSpaceInButton)===null||D===void 0?void 0:D.value}),p=P(()=>{var T;return e.locale||((T=o.locale)===null||T===void 0?void 0:T.value)});ue(p,()=>{nm.locale=p.value},{immediate:!0});const v=P(()=>{var T;return e.direction||((T=o.direction)===null||T===void 0?void 0:T.value)}),y=P(()=>{var T,D;return(T=e.space)!==null&&T!==void 0?T:(D=o.space)===null||D===void 0?void 0:D.value}),m=P(()=>{var T,D;return(T=e.virtual)!==null&&T!==void 0?T:(D=o.virtual)===null||D===void 0?void 0:D.value}),h=P(()=>{var T,D;return(T=e.dropdownMatchSelectWidth)!==null&&T!==void 0?T:(D=o.dropdownMatchSelectWidth)===null||D===void 0?void 0:D.value}),b=P(()=>{var T;return e.getTargetContainer!==void 0?e.getTargetContainer:(T=o.getTargetContainer)===null||T===void 0?void 0:T.value}),$=P(()=>{var T;return e.getPopupContainer!==void 0?e.getPopupContainer:(T=o.getPopupContainer)===null||T===void 0?void 0:T.value}),C=P(()=>{var T;return e.pageHeader!==void 0?e.pageHeader:(T=o.pageHeader)===null||T===void 0?void 0:T.value}),w=P(()=>{var T;return e.input!==void 0?e.input:(T=o.input)===null||T===void 0?void 0:T.value}),S=P(()=>{var T;return e.pagination!==void 0?e.pagination:(T=o.pagination)===null||T===void 0?void 0:T.value}),O=P(()=>{var T;return e.form!==void 0?e.form:(T=o.form)===null||T===void 0?void 0:T.value}),x=P(()=>{var T;return e.select!==void 0?e.select:(T=o.select)===null||T===void 0?void 0:T.value}),I=P(()=>e.componentSize),E=P(()=>e.componentDisabled),M=P(()=>{var T,D;return(T=e.wave)!==null&&T!==void 0?T:(D=o.wave)===null||D===void 0?void 0:D.value}),_={csp:i,autoInsertSpaceInButton:d,locale:p,direction:v,space:y,virtual:m,dropdownMatchSelectWidth:h,getPrefixCls:r,iconPrefixCls:l,theme:P(()=>{var T,D;return(T=u.value)!==null&&T!==void 0?T:(D=o.theme)===null||D===void 0?void 0:D.value}),renderEmpty:c,getTargetContainer:b,getPopupContainer:$,pageHeader:C,input:w,pagination:S,form:O,select:x,componentSize:I,componentDisabled:E,transformCellText:P(()=>e.transformCellText),wave:M},z=P(()=>{const T=u.value||{},{algorithm:D,token:A}=T,B=hK(T,["algorithm","token"]),N=D&&(!Array.isArray(D)||D.length>0)?Px(D):void 0;return g(g({},B),{theme:N,token:g(g({},wc),A)})}),R=P(()=>{var T,D;let A={};return p.value&&(A=((T=p.value.Form)===null||T===void 0?void 0:T.defaultValidateMessages)||((D=xn.Form)===null||D===void 0?void 0:D.defaultValidateMessages)||{}),e.form&&e.form.validateMessages&&(A=g(g({},A),e.form.validateMessages)),A});A9(_),M9({validateMessages:R}),Ux(I),px(E);const H=T=>{var D,A;let B=a.value?s((D=n.default)===null||D===void 0?void 0:D.call(n)):(A=n.default)===null||A===void 0?void 0:A.call(n);if(e.theme){const N=function(){return B}();B=f(w_,{value:z.value},{default:()=>[N]})}return f($W,{locale:p.value||T,ANT_MARK__:up},{default:()=>[B]})};return ke(()=>{v.value&&(GW.config({rtl:v.value==="rtl"}),uK.config({rtl:v.value==="rtl"}))}),()=>f(Ql,{children:(T,D,A)=>H(A)},null)}});Ra.config=yK;Ra.install=function(e){e.component(Ra.name,Ra)};const A3=Ra,SK=(e,t)=>{let{attrs:n,slots:o}=t;return f(Wt,F(F({size:"small",type:"primary"},e),n),o)},CK=SK,Qi=(e,t,n)=>{const o=JE(n);return{[`${e.componentCls}-${t}`]:{color:e[`color${n}`],background:e[`color${o}Bg`],borderColor:e[`color${o}Border`],[`&${e.componentCls}-borderless`]:{borderColor:"transparent"}}}},xK=e=>Rs(e,(t,n)=>{let{textColor:o,lightBorderColor:r,lightColor:l,darkColor:a}=n;return{[`${e.componentCls}-${t}`]:{color:o,background:l,borderColor:r,"&-inverse":{color:e.colorTextLightSolid,background:a,borderColor:a},[`&${e.componentCls}-borderless`]:{borderColor:"transparent"}}}}),wK=e=>{const{paddingXXS:t,lineWidth:n,tagPaddingHorizontal:o,componentCls:r}=e,l=o-n,a=t-n;return{[r]:g(g({},Qe(e)),{display:"inline-block",height:"auto",marginInlineEnd:e.marginXS,paddingInline:l,fontSize:e.tagFontSize,lineHeight:`${e.tagLineHeight}px`,whiteSpace:"nowrap",background:e.tagDefaultBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,opacity:1,transition:`all ${e.motionDurationMid}`,textAlign:"start",[`&${r}-rtl`]:{direction:"rtl"},"&, a, a:hover":{color:e.tagDefaultColor},[`${r}-close-icon`]:{marginInlineStart:a,color:e.colorTextDescription,fontSize:e.tagIconSize,cursor:"pointer",transition:`all ${e.motionDurationMid}`,"&:hover":{color:e.colorTextHeading}},[`&${r}-has-color`]:{borderColor:"transparent",[`&, a, a:hover, ${e.iconCls}-close, ${e.iconCls}-close:hover`]:{color:e.colorTextLightSolid}},"&-checkable":{backgroundColor:"transparent",borderColor:"transparent",cursor:"pointer",[`&:not(${r}-checkable-checked):hover`]:{color:e.colorPrimary,backgroundColor:e.colorFillSecondary},"&:active, &-checked":{color:e.colorTextLightSolid},"&-checked":{backgroundColor:e.colorPrimary,"&:hover":{backgroundColor:e.colorPrimaryHover}},"&:active":{backgroundColor:e.colorPrimaryActive}},"&-hidden":{display:"none"},[`> ${e.iconCls} + span, > span + ${e.iconCls}`]:{marginInlineStart:l}}),[`${r}-borderless`]:{borderColor:"transparent",background:e.tagBorderlessBg}}},R3=Je("Tag",e=>{const{fontSize:t,lineHeight:n,lineWidth:o,fontSizeIcon:r}=e,l=Math.round(t*n),a=e.fontSizeSM,i=l-o*2,s=e.colorFillAlter,u=e.colorText,c=Le(e,{tagFontSize:a,tagLineHeight:i,tagDefaultBg:s,tagDefaultColor:u,tagIconSize:r-2*o,tagPaddingHorizontal:8,tagBorderlessBg:e.colorFillTertiary});return[wK(c),xK(c),Qi(c,"success","Success"),Qi(c,"processing","Info"),Qi(c,"error","Error"),Qi(c,"warning","Warning")]}),OK=()=>({prefixCls:String,checked:{type:Boolean,default:void 0},onChange:{type:Function},onClick:{type:Function},"onUpdate:checked":Function}),PK=te({compatConfig:{MODE:3},name:"ACheckableTag",inheritAttrs:!1,props:OK(),setup(e,t){let{slots:n,emit:o,attrs:r}=t;const{prefixCls:l}=Me("tag",e),[a,i]=R3(l),s=c=>{const{checked:d}=e;o("update:checked",!d),o("change",!d),o("click",c)},u=P(()=>ne(l.value,i.value,{[`${l.value}-checkable`]:!0,[`${l.value}-checkable-checked`]:e.checked}));return()=>{var c;return a(f("span",F(F({},r),{},{class:[u.value,r.class],onClick:s}),[(c=n.default)===null||c===void 0?void 0:c.call(n)]))}}}),vp=PK,IK=()=>({prefixCls:String,color:{type:String},closable:{type:Boolean,default:!1},closeIcon:V.any,visible:{type:Boolean,default:void 0},onClose:{type:Function},onClick:Wr(),"onUpdate:visible":Function,icon:V.any,bordered:{type:Boolean,default:!0}}),Ba=te({compatConfig:{MODE:3},name:"ATag",inheritAttrs:!1,props:IK(),slots:Object,setup(e,t){let{slots:n,emit:o,attrs:r}=t;const{prefixCls:l,direction:a}=Me("tag",e),[i,s]=R3(l),u=q(!0);ke(()=>{e.visible!==void 0&&(u.value=e.visible)});const c=y=>{y.stopPropagation(),o("update:visible",!1),o("close",y),!y.defaultPrevented&&e.visible===void 0&&(u.value=!1)},d=P(()=>Kc(e.color)||QN(e.color)),p=P(()=>ne(l.value,s.value,{[`${l.value}-${e.color}`]:d.value,[`${l.value}-has-color`]:e.color&&!d.value,[`${l.value}-hidden`]:!u.value,[`${l.value}-rtl`]:a.value==="rtl",[`${l.value}-borderless`]:!e.bordered})),v=y=>{o("click",y)};return()=>{var y,m,h;const{icon:b=(y=n.icon)===null||y===void 0?void 0:y.call(n),color:$,closeIcon:C=(m=n.closeIcon)===null||m===void 0?void 0:m.call(n),closable:w=!1}=e,S=()=>w?C?f("span",{class:`${l.value}-close-icon`,onClick:c},[C]):f(Qn,{class:`${l.value}-close-icon`,onClick:c},null):null,O={backgroundColor:$&&!d.value?$:void 0},x=b||null,I=(h=n.default)===null||h===void 0?void 0:h.call(n),E=x?f(qe,null,[x,f("span",null,[I])]):I,M=e.onClick!==void 0,_=f("span",F(F({},r),{},{onClick:v,class:[p.value,r.class],style:[O,r.style]}),[E,S()]);return i(M?f(gg,null,{default:()=>[_]}):_)}}});Ba.CheckableTag=vp;Ba.install=function(e){return e.component(Ba.name,Ba),e.component(vp.name,vp),e};const TK=Ba;function EK(e,t){let{slots:n,attrs:o}=t;return f(TK,F(F({color:"blue"},e),o),n)}var MK={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"}}]},name:"calendar",theme:"outlined"};const _K=MK;function v1(e){for(var t=1;t_.value||I.value),[H,T]=O4(S),D=ee();m({focus:()=>{var J;(J=D.value)===null||J===void 0||J.focus()},blur:()=>{var J;(J=D.value)===null||J===void 0||J.blur()}});const A=J=>$.valueFormat?e.toString(J,$.valueFormat):J,B=(J,Z)=>{const W=A(J);b("update:value",W),b("change",W,Z),C.onFieldChange()},N=J=>{b("update:open",J),b("openChange",J)},k=J=>{b("focus",J)},L=J=>{b("blur",J),C.onFieldBlur()},j=(J,Z)=>{const W=A(J);b("panelChange",W,Z)},G=J=>{const Z=A(J);b("ok",Z)},[U]=xo("DatePicker",_s),K=P(()=>$.value?$.valueFormat?e.toDate($.value,$.valueFormat):$.value:$.value===""?void 0:$.value),Y=P(()=>$.defaultValue?$.valueFormat?e.toDate($.defaultValue,$.valueFormat):$.defaultValue:$.defaultValue===""?void 0:$.defaultValue),Q=P(()=>$.defaultPickerValue?$.valueFormat?e.toDate($.defaultPickerValue,$.valueFormat):$.defaultPickerValue:$.defaultPickerValue===""?void 0:$.defaultPickerValue);return()=>{var J,Z,W,X,re,ae;const pe=g(g({},U.value),$.locale),ye=g(g({},$),h),{bordered:de=!0,placeholder:me,suffixIcon:ie=(J=y.suffixIcon)===null||J===void 0?void 0:J.call(y),showToday:se=!0,transitionName:be,allowClear:we=!0,dateRender:ve=y.dateRender,renderExtraFooter:Ce=y.renderExtraFooter,monthCellRender:Te=y.monthCellRender||$.monthCellContentRender||y.monthCellContentRender,clearIcon:le=(Z=y.clearIcon)===null||Z===void 0?void 0:Z.call(y),id:oe=C.id.value}=ye,fe=kK(ye,["bordered","placeholder","suffixIcon","showToday","transitionName","allowClear","dateRender","renderExtraFooter","monthCellRender","clearIcon","id"]),Oe=ye.showTime===""?!0:ye.showTime,{format:Ie}=ye;let Ae={};u&&(Ae.picker=u);const ge=u||ye.picker||"date";Ae=g(g(g({},Ae),Oe?tc(g({format:Ie,picker:ge},typeof Oe=="object"?Oe:{})):{}),ge==="time"?tc(g(g({format:Ie},fe),{picker:ge})):{});const he=S.value,$e=f(qe,null,[ie||(u==="time"?f(N3,null,null):f(B3,null,null)),w.hasFeedback&&w.feedbackIcon]);return H(f(GL,F(F(F({monthCellRender:Te,dateRender:ve,renderExtraFooter:Ce,ref:D,placeholder:NK(pe,ge,me),suffixIcon:$e,dropdownAlign:F3(O.value,$.placement),clearIcon:le||f(On,null,null),allowClear:we,transitionName:be||`${E.value}-slide-up`},fe),Ae),{},{id:oe,picker:ge,value:K.value,defaultValue:Y.value,defaultPickerValue:Q.value,showToday:se,locale:pe.lang,class:ne({[`${he}-${R.value}`]:R.value,[`${he}-borderless`]:!de},bn(he,wo(w.status,$.status),w.hasFeedback),h.class,T.value,z.value),disabled:M.value,prefixCls:he,getPopupContainer:h.getCalendarContainer||x.value,generateConfig:e,prevIcon:((W=y.prevIcon)===null||W===void 0?void 0:W.call(y))||f("span",{class:`${he}-prev-icon`},null),nextIcon:((X=y.nextIcon)===null||X===void 0?void 0:X.call(y))||f("span",{class:`${he}-next-icon`},null),superPrevIcon:((re=y.superPrevIcon)===null||re===void 0?void 0:re.call(y))||f("span",{class:`${he}-super-prev-icon`},null),superNextIcon:((ae=y.superNextIcon)===null||ae===void 0?void 0:ae.call(y))||f("span",{class:`${he}-super-next-icon`},null),components:z3,direction:O.value,dropdownClassName:ne(T.value,$.popupClassName,$.dropdownClassName),onChange:B,onOpenChange:N,onFocus:k,onBlur:L,onPanelChange:j,onOk:G}),null))}}})}const o=n(void 0,"ADatePicker"),r=n("week","AWeekPicker"),l=n("month","AMonthPicker"),a=n("year","AYearPicker"),i=n("time","TimePicker"),s=n("quarter","AQuarterPicker");return{DatePicker:o,WeekPicker:r,MonthPicker:l,YearPicker:a,TimePicker:i,QuarterPicker:s}}var zK={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z"}}]},name:"swap-right",theme:"outlined"};const HK=zK;function m1(e){for(var t=1;t$.value||m.value),[S,O]=O4(p),x=ee();l({focus:()=>{var k;(k=x.value)===null||k===void 0||k.focus()},blur:()=>{var k;(k=x.value)===null||k===void 0||k.blur()}});const I=k=>u.valueFormat?e.toString(k,u.valueFormat):k,E=(k,L)=>{const j=I(k);s("update:value",j),s("change",j,L),c.onFieldChange()},M=k=>{s("update:open",k),s("openChange",k)},_=k=>{s("focus",k)},z=k=>{s("blur",k),c.onFieldBlur()},R=(k,L)=>{const j=I(k);s("panelChange",j,L)},H=k=>{const L=I(k);s("ok",L)},T=(k,L,j)=>{const G=I(k);s("calendarChange",G,L,j)},[D]=xo("DatePicker",_s),A=P(()=>u.value&&u.valueFormat?e.toDate(u.value,u.valueFormat):u.value),B=P(()=>u.defaultValue&&u.valueFormat?e.toDate(u.defaultValue,u.valueFormat):u.defaultValue),N=P(()=>u.defaultPickerValue&&u.valueFormat?e.toDate(u.defaultPickerValue,u.valueFormat):u.defaultPickerValue);return()=>{var k,L,j,G,U,K,Y;const Q=g(g({},D.value),u.locale),J=g(g({},u),i),{prefixCls:Z,bordered:W=!0,placeholder:X,suffixIcon:re=(k=a.suffixIcon)===null||k===void 0?void 0:k.call(a),picker:ae="date",transitionName:pe,allowClear:ye=!0,dateRender:de=a.dateRender,renderExtraFooter:me=a.renderExtraFooter,separator:ie=(L=a.separator)===null||L===void 0?void 0:L.call(a),clearIcon:se=(j=a.clearIcon)===null||j===void 0?void 0:j.call(a),id:be=c.id.value}=J,we=WK(J,["prefixCls","bordered","placeholder","suffixIcon","picker","transitionName","allowClear","dateRender","renderExtraFooter","separator","clearIcon","id"]);delete we["onUpdate:value"],delete we["onUpdate:open"];const{format:ve,showTime:Ce}=J;let Te={};Te=g(g(g({},Te),Ce?tc(g({format:ve,picker:ae},Ce)):{}),ae==="time"?tc(g(g({format:ve},tt(we,["disabledTime"])),{picker:ae})):{});const le=p.value,oe=f(qe,null,[re||(ae==="time"?f(N3,null,null):f(B3,null,null)),d.hasFeedback&&d.feedbackIcon]);return S(f(az,F(F(F({dateRender:de,renderExtraFooter:me,separator:ie||f("span",{"aria-label":"to",class:`${le}-separator`},[f(VK,null,null)]),ref:x,dropdownAlign:F3(v.value,u.placement),placeholder:FK(Q,ae,X),suffixIcon:oe,clearIcon:se||f(On,null,null),allowClear:ye,transitionName:pe||`${h.value}-slide-up`},we),Te),{},{disabled:b.value,id:be,value:A.value,defaultValue:B.value,defaultPickerValue:N.value,picker:ae,class:ne({[`${le}-${w.value}`]:w.value,[`${le}-borderless`]:!W},bn(le,wo(d.status,u.status),d.hasFeedback),i.class,O.value,C.value),locale:Q.lang,prefixCls:le,getPopupContainer:i.getCalendarContainer||y.value,generateConfig:e,prevIcon:((G=a.prevIcon)===null||G===void 0?void 0:G.call(a))||f("span",{class:`${le}-prev-icon`},null),nextIcon:((U=a.nextIcon)===null||U===void 0?void 0:U.call(a))||f("span",{class:`${le}-next-icon`},null),superPrevIcon:((K=a.superPrevIcon)===null||K===void 0?void 0:K.call(a))||f("span",{class:`${le}-super-prev-icon`},null),superNextIcon:((Y=a.superNextIcon)===null||Y===void 0?void 0:Y.call(a))||f("span",{class:`${le}-super-next-icon`},null),components:z3,direction:v.value,dropdownClassName:ne(O.value,u.popupClassName,u.dropdownClassName),onChange:E,onOpenChange:M,onFocus:_,onBlur:z,onPanelChange:R,onOk:H,onCalendarChange:T}),null))}}})}const z3={button:CK,rangeItem:EK};function GK(e){return e?Array.isArray(e)?e:[e]:[]}function tc(e){const{format:t,picker:n,showHour:o,showMinute:r,showSecond:l,use12Hours:a}=e,i=GK(t)[0],s=g({},e);return i&&typeof i=="string"&&(!i.includes("s")&&l===void 0&&(s.showSecond=!1),!i.includes("m")&&r===void 0&&(s.showMinute=!1),!i.includes("H")&&!i.includes("h")&&o===void 0&&(s.showHour=!1),(i.includes("a")||i.includes("A"))&&a===void 0&&(s.use12Hours=!0)),n==="time"?s:(typeof i=="function"&&delete s.format,{showTime:s})}function H3(e,t){const{DatePicker:n,WeekPicker:o,MonthPicker:r,YearPicker:l,TimePicker:a,QuarterPicker:i}=LK(e,t),s=KK(e,t);return{DatePicker:n,WeekPicker:o,MonthPicker:r,YearPicker:l,TimePicker:a,QuarterPicker:i,RangePicker:s}}const{DatePicker:md,WeekPicker:hd,MonthPicker:bd,YearPicker:XK,TimePicker:UK,QuarterPicker:yd,RangePicker:$d}=H3(Uw),Ile=g(md,{WeekPicker:hd,MonthPicker:bd,YearPicker:XK,RangePicker:$d,TimePicker:UK,QuarterPicker:yd,install:e=>(e.component(md.name,md),e.component($d.name,$d),e.component(bd.name,bd),e.component(hd.name,hd),e.component(yd.name,yd),e)});function Zi(e){return e!=null}const YK=e=>{const{itemPrefixCls:t,component:n,span:o,labelStyle:r,contentStyle:l,bordered:a,label:i,content:s,colon:u}=e,c=n;return a?f(c,{class:[{[`${t}-item-label`]:Zi(i),[`${t}-item-content`]:Zi(s)}],colSpan:o},{default:()=>[Zi(i)&&f("span",{style:r},[i]),Zi(s)&&f("span",{style:l},[s])]}):f(c,{class:[`${t}-item`],colSpan:o},{default:()=>[f("div",{class:`${t}-item-container`},[(i||i===0)&&f("span",{class:[`${t}-item-label`,{[`${t}-item-no-colon`]:!u}],style:r},[i]),(s||s===0)&&f("span",{class:`${t}-item-content`,style:l},[s])])]})},Sd=YK,qK=e=>{const t=(u,c,d)=>{let{colon:p,prefixCls:v,bordered:y}=c,{component:m,type:h,showLabel:b,showContent:$,labelStyle:C,contentStyle:w}=d;return u.map((S,O)=>{var x,I;const E=S.props||{},{prefixCls:M=v,span:_=1,labelStyle:z=E["label-style"],contentStyle:R=E["content-style"],label:H=(I=(x=S.children)===null||x===void 0?void 0:x.label)===null||I===void 0?void 0:I.call(x)}=E,T=pv(S),D=w9(S),A=lx(S),{key:B}=S;return typeof m=="string"?f(Sd,{key:`${h}-${String(B)||O}`,class:D,style:A,labelStyle:g(g({},C),z),contentStyle:g(g({},w),R),span:_,colon:p,component:m,itemPrefixCls:M,bordered:y,label:b?H:null,content:$?T:null},null):[f(Sd,{key:`label-${String(B)||O}`,class:D,style:g(g(g({},C),A),z),span:1,colon:p,component:m[0],itemPrefixCls:M,bordered:y,label:H},null),f(Sd,{key:`content-${String(B)||O}`,class:D,style:g(g(g({},w),A),R),span:_*2-1,component:m[1],itemPrefixCls:M,bordered:y,content:T},null)]})},{prefixCls:n,vertical:o,row:r,index:l,bordered:a}=e,{labelStyle:i,contentStyle:s}=Ke(V3,{labelStyle:ee({}),contentStyle:ee({})});return o?f(qe,null,[f("tr",{key:`label-${l}`,class:`${n}-row`},[t(r,e,{component:"th",type:"label",showLabel:!0,labelStyle:i.value,contentStyle:s.value})]),f("tr",{key:`content-${l}`,class:`${n}-row`},[t(r,e,{component:"td",type:"content",showContent:!0,labelStyle:i.value,contentStyle:s.value})])]):f("tr",{key:l,class:`${n}-row`},[t(r,e,{component:a?["th","td"]:"td",type:"item",showLabel:!0,showContent:!0,labelStyle:i.value,contentStyle:s.value})])},QK=qK,ZK=e=>{const{componentCls:t,descriptionsSmallPadding:n,descriptionsDefaultPadding:o,descriptionsMiddlePadding:r,descriptionsBg:l}=e;return{[`&${t}-bordered`]:{[`${t}-view`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"> table":{tableLayout:"auto",borderCollapse:"collapse"}},[`${t}-item-label, ${t}-item-content`]:{padding:o,borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderInlineEnd:"none"}},[`${t}-item-label`]:{backgroundColor:l,"&::after":{display:"none"}},[`${t}-row`]:{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBottom:"none"}},[`&${t}-middle`]:{[`${t}-item-label, ${t}-item-content`]:{padding:r}},[`&${t}-small`]:{[`${t}-item-label, ${t}-item-content`]:{padding:n}}}}},JK=e=>{const{componentCls:t,descriptionsExtraColor:n,descriptionItemPaddingBottom:o,descriptionsItemLabelColonMarginRight:r,descriptionsItemLabelColonMarginLeft:l,descriptionsTitleMarginBottom:a}=e;return{[t]:g(g(g({},Qe(e)),ZK(e)),{"&-rtl":{direction:"rtl"},[`${t}-header`]:{display:"flex",alignItems:"center",marginBottom:a},[`${t}-title`]:g(g({},Xt),{flex:"auto",color:e.colorText,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}),[`${t}-extra`]:{marginInlineStart:"auto",color:n,fontSize:e.fontSize},[`${t}-view`]:{width:"100%",borderRadius:e.borderRadiusLG,table:{width:"100%",tableLayout:"fixed"}},[`${t}-row`]:{"> th, > td":{paddingBottom:o},"&:last-child":{borderBottom:"none"}},[`${t}-item-label`]:{color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:"start","&::after":{content:'":"',position:"relative",top:-.5,marginInline:`${l}px ${r}px`},[`&${t}-item-no-colon::after`]:{content:'""'}},[`${t}-item-no-label`]:{"&::after":{margin:0,content:'""'}},[`${t}-item-content`]:{display:"table-cell",flex:1,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,wordBreak:"break-word",overflowWrap:"break-word"},[`${t}-item`]:{paddingBottom:0,verticalAlign:"top","&-container":{display:"flex",[`${t}-item-label`]:{display:"inline-flex",alignItems:"baseline"},[`${t}-item-content`]:{display:"inline-flex",alignItems:"baseline"}}},"&-middle":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingSM}}},"&-small":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingXS}}}})}},eG=Je("Descriptions",e=>{const t=e.colorFillAlter,n=e.fontSizeSM*e.lineHeightSM,o=e.colorText,r=`${e.paddingXS}px ${e.padding}px`,l=`${e.padding}px ${e.paddingLG}px`,a=`${e.paddingSM}px ${e.paddingLG}px`,i=e.padding,s=e.marginXS,u=e.marginXXS/2,c=Le(e,{descriptionsBg:t,descriptionsTitleMarginBottom:n,descriptionsExtraColor:o,descriptionItemPaddingBottom:i,descriptionsSmallPadding:r,descriptionsDefaultPadding:l,descriptionsMiddlePadding:a,descriptionsItemLabelColonMarginRight:s,descriptionsItemLabelColonMarginLeft:u});return[JK(c)]});V.any;const tG=()=>({prefixCls:String,label:V.any,labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0},span:{type:Number,default:1}}),nG=te({compatConfig:{MODE:3},name:"ADescriptionsItem",props:tG(),setup(e,t){let{slots:n}=t;return()=>{var o;return(o=n.default)===null||o===void 0?void 0:o.call(n)}}}),j3={xxxl:3,xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};function oG(e,t){if(typeof e=="number")return e;if(typeof e=="object")for(let n=0;nt)&&(o=gt(e,{span:t}),$t()),o}function rG(e,t){const n=bt(e),o=[];let r=[],l=t;return n.forEach((a,i)=>{var s;const u=(s=a.props)===null||s===void 0?void 0:s.span,c=u||1;if(i===n.length-1){r.push(h1(a,l,u)),o.push(r);return}c({prefixCls:String,bordered:{type:Boolean,default:void 0},size:{type:String,default:"default"},title:V.any,extra:V.any,column:{type:[Number,Object],default:()=>j3},layout:String,colon:{type:Boolean,default:void 0},labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0}}),V3=Symbol("descriptionsContext"),fl=te({compatConfig:{MODE:3},name:"ADescriptions",inheritAttrs:!1,props:lG(),slots:Object,Item:nG,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("descriptions",e);let a;const i=ee({}),[s,u]=eG(r),c=pg();Vp(()=>{a=c.value.subscribe(p=>{typeof e.column=="object"&&(i.value=p)})}),Ze(()=>{c.value.unsubscribe(a)}),We(V3,{labelStyle:Ne(e,"labelStyle"),contentStyle:Ne(e,"contentStyle")});const d=P(()=>oG(e.column,i.value));return()=>{var p,v,y;const{size:m,bordered:h=!1,layout:b="horizontal",colon:$=!0,title:C=(p=n.title)===null||p===void 0?void 0:p.call(n),extra:w=(v=n.extra)===null||v===void 0?void 0:v.call(n)}=e,S=(y=n.default)===null||y===void 0?void 0:y.call(n),O=rG(S,d.value);return s(f("div",F(F({},o),{},{class:[r.value,{[`${r.value}-${m}`]:m!=="default",[`${r.value}-bordered`]:!!h,[`${r.value}-rtl`]:l.value==="rtl"},o.class,u.value]}),[(C||w)&&f("div",{class:`${r.value}-header`},[C&&f("div",{class:`${r.value}-title`},[C]),w&&f("div",{class:`${r.value}-extra`},[w])]),f("div",{class:`${r.value}-view`},[f("table",null,[f("tbody",null,[O.map((x,I)=>f(QK,{key:I,index:I,colon:$,prefixCls:r.value,vertical:b==="vertical",bordered:h,row:x},null))])])])]))}}});fl.install=function(e){return e.component(fl.name,fl),e.component(fl.Item.name,fl.Item),e};const Tle=fl,aG=e=>{const{componentCls:t,sizePaddingEdgeHorizontal:n,colorSplit:o,lineWidth:r}=e;return{[t]:g(g({},Qe(e)),{borderBlockStart:`${r}px solid ${o}`,"&-vertical":{position:"relative",top:"-0.06em",display:"inline-block",height:"0.9em",margin:`0 ${e.dividerVerticalGutterMargin}px`,verticalAlign:"middle",borderTop:0,borderInlineStart:`${r}px solid ${o}`},"&-horizontal":{display:"flex",clear:"both",width:"100%",minWidth:"100%",margin:`${e.dividerHorizontalGutterMargin}px 0`},[`&-horizontal${t}-with-text`]:{display:"flex",alignItems:"center",margin:`${e.dividerHorizontalWithTextGutterMargin}px 0`,color:e.colorTextHeading,fontWeight:500,fontSize:e.fontSizeLG,whiteSpace:"nowrap",textAlign:"center",borderBlockStart:`0 ${o}`,"&::before, &::after":{position:"relative",width:"50%",borderBlockStart:`${r}px solid transparent`,borderBlockStartColor:"inherit",borderBlockEnd:0,transform:"translateY(50%)",content:"''"}},[`&-horizontal${t}-with-text-left`]:{"&::before":{width:"5%"},"&::after":{width:"95%"}},[`&-horizontal${t}-with-text-right`]:{"&::before":{width:"95%"},"&::after":{width:"5%"}},[`${t}-inner-text`]:{display:"inline-block",padding:"0 1em"},"&-dashed":{background:"none",borderColor:o,borderStyle:"dashed",borderWidth:`${r}px 0 0`},[`&-horizontal${t}-with-text${t}-dashed`]:{"&::before, &::after":{borderStyle:"dashed none none"}},[`&-vertical${t}-dashed`]:{borderInlineStartWidth:r,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},[`&-plain${t}-with-text`]:{color:e.colorText,fontWeight:"normal",fontSize:e.fontSize},[`&-horizontal${t}-with-text-left${t}-no-default-orientation-margin-left`]:{"&::before":{width:0},"&::after":{width:"100%"},[`${t}-inner-text`]:{paddingInlineStart:n}},[`&-horizontal${t}-with-text-right${t}-no-default-orientation-margin-right`]:{"&::before":{width:"100%"},"&::after":{width:0},[`${t}-inner-text`]:{paddingInlineEnd:n}}})}},iG=Je("Divider",e=>{const t=Le(e,{dividerVerticalGutterMargin:e.marginXS,dividerHorizontalWithTextGutterMargin:e.margin,dividerHorizontalGutterMargin:e.marginLG});return[aG(t)]},{sizePaddingEdgeHorizontal:0}),sG=()=>({prefixCls:String,type:{type:String,default:"horizontal"},dashed:{type:Boolean,default:!1},orientation:{type:String,default:"center"},plain:{type:Boolean,default:!1},orientationMargin:[String,Number]}),cG=te({name:"ADivider",inheritAttrs:!1,compatConfig:{MODE:3},props:sG(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("divider",e),[a,i]=iG(r),s=P(()=>e.orientation==="left"&&e.orientationMargin!=null),u=P(()=>e.orientation==="right"&&e.orientationMargin!=null),c=P(()=>{const{type:v,dashed:y,plain:m}=e,h=r.value;return{[h]:!0,[i.value]:!!i.value,[`${h}-${v}`]:!0,[`${h}-dashed`]:!!y,[`${h}-plain`]:!!m,[`${h}-rtl`]:l.value==="rtl",[`${h}-no-default-orientation-margin-left`]:s.value,[`${h}-no-default-orientation-margin-right`]:u.value}}),d=P(()=>{const v=typeof e.orientationMargin=="number"?`${e.orientationMargin}px`:e.orientationMargin;return g(g({},s.value&&{marginLeft:v}),u.value&&{marginRight:v})}),p=P(()=>e.orientation.length>0?"-"+e.orientation:e.orientation);return()=>{var v;const y=bt((v=n.default)===null||v===void 0?void 0:v.call(n));return a(f("div",F(F({},o),{},{class:[c.value,y.length?`${r.value}-with-text ${r.value}-with-text${p.value}`:"",o.class],role:"separator"}),[y.length?f("span",{class:`${r.value}-inner-text`,style:d.value},[y]):null]))}}}),Ele=Gt(cG);Fo.Button=Us;Fo.install=function(e){return e.component(Fo.name,Fo),e.component(Us.name,Us),e};const W3=()=>({prefixCls:String,width:V.oneOfType([V.string,V.number]),height:V.oneOfType([V.string,V.number]),style:{type:Object,default:void 0},class:String,rootClassName:String,rootStyle:De(),placement:{type:String},wrapperClassName:String,level:{type:[String,Array]},levelMove:{type:[Number,Function,Array]},duration:String,ease:String,showMask:{type:Boolean,default:void 0},maskClosable:{type:Boolean,default:void 0},maskStyle:{type:Object,default:void 0},afterVisibleChange:Function,keyboard:{type:Boolean,default:void 0},contentWrapperStyle:st(),autofocus:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},motion:ce(),maskMotion:De()}),uG=()=>g(g({},W3()),{forceRender:{type:Boolean,default:void 0},getContainer:V.oneOfType([V.string,V.func,V.object,V.looseBool])}),dG=()=>g(g({},W3()),{getContainer:Function,getOpenCount:Function,scrollLocker:V.any,inline:Boolean});function fG(e){return Array.isArray(e)?e:[e]}const pG={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend"};Object.keys(pG).filter(e=>{if(typeof document=="undefined")return!1;const t=document.getElementsByTagName("html")[0];return e in(t?t.style:{})})[0];const vG=!(typeof window!="undefined"&&window.document&&window.document.createElement);var gG=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{ot(()=>{var b;const{open:$,getContainer:C,showMask:w,autofocus:S}=e,O=C==null?void 0:C();y(e),$&&(O&&(O.parentNode,document.body),ot(()=>{S&&c()}),w&&((b=e.scrollLocker)===null||b===void 0||b.lock()))})}),ue(()=>e.level,()=>{y(e)},{flush:"post"}),ue(()=>e.open,()=>{const{open:b,getContainer:$,scrollLocker:C,showMask:w,autofocus:S}=e,O=$==null?void 0:$();O&&(O.parentNode,document.body),b?(S&&c(),w&&(C==null||C.lock())):C==null||C.unLock()},{flush:"post"}),Bn(()=>{var b;const{open:$}=e;$&&(document.body.style.touchAction=""),(b=e.scrollLocker)===null||b===void 0||b.unLock()}),ue(()=>e.placement,b=>{b&&(s.value=null)});const c=()=>{var b,$;($=(b=l.value)===null||b===void 0?void 0:b.focus)===null||$===void 0||$.call(b)},d=b=>{n("close",b)},p=b=>{b.keyCode===Se.ESC&&(b.stopPropagation(),d(b))},v=()=>{const{open:b,afterVisibleChange:$}=e;$&&$(!!b)},y=b=>{let{level:$,getContainer:C}=b;if(vG)return;const w=C==null?void 0:C(),S=w?w.parentNode:null;u=[],$==="all"?(S?Array.prototype.slice.call(S.children):[]).forEach(x=>{x.nodeName!=="SCRIPT"&&x.nodeName!=="STYLE"&&x.nodeName!=="LINK"&&x!==w&&u.push(x)}):$&&fG($).forEach(O=>{document.querySelectorAll(O).forEach(x=>{u.push(x)})})},m=b=>{n("handleClick",b)},h=q(!1);return ue(l,()=>{ot(()=>{h.value=!0})}),()=>{var b,$;const{width:C,height:w,open:S,prefixCls:O,placement:x,level:I,levelMove:E,ease:M,duration:_,getContainer:z,onChange:R,afterVisibleChange:H,showMask:T,maskClosable:D,maskStyle:A,keyboard:B,getOpenCount:N,scrollLocker:k,contentWrapperStyle:L,style:j,class:G,rootClassName:U,rootStyle:K,maskMotion:Y,motion:Q,inline:J}=e,Z=gG(e,["width","height","open","prefixCls","placement","level","levelMove","ease","duration","getContainer","onChange","afterVisibleChange","showMask","maskClosable","maskStyle","keyboard","getOpenCount","scrollLocker","contentWrapperStyle","style","class","rootClassName","rootStyle","maskMotion","motion","inline"]),W=S&&h.value,X=ne(O,{[`${O}-${x}`]:!0,[`${O}-open`]:W,[`${O}-inline`]:J,"no-mask":!T,[U]:!0}),re=typeof Q=="function"?Q(x):Q;return f("div",F(F({},tt(Z,["autofocus"])),{},{tabindex:-1,class:X,style:K,ref:l,onKeydown:W&&B?p:void 0}),[f(Jt,Y,{default:()=>[T&&cn(f("div",{class:`${O}-mask`,onClick:D?d:void 0,style:A,ref:a},null),[[yn,W]])]}),f(Jt,F(F({},re),{},{onAfterEnter:v,onAfterLeave:v}),{default:()=>[cn(f("div",{class:`${O}-content-wrapper`,style:[L],ref:r},[f("div",{class:[`${O}-content`,G],style:j,ref:s},[(b=o.default)===null||b===void 0?void 0:b.call(o)]),o.handler?f("div",{onClick:m,ref:i},[($=o.handler)===null||$===void 0?void 0:$.call(o)]):null]),[[yn,W]])]})])}}}),b1=mG;var y1=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{},showMask:!0,maskClosable:!0,maskStyle:{},wrapperClassName:"",keyboard:!0,forceRender:!1,autofocus:!0}),emits:["handleClick","close"],setup(e,t){let{emit:n,slots:o}=t;const r=ee(null),l=i=>{n("handleClick",i)},a=i=>{n("close",i)};return()=>{const{getContainer:i,wrapperClassName:s,rootClassName:u,rootStyle:c,forceRender:d}=e,p=y1(e,["getContainer","wrapperClassName","rootClassName","rootStyle","forceRender"]);let v=null;if(!i)return f(b1,F(F({},p),{},{rootClassName:u,rootStyle:c,open:e.open,onClose:a,onHandleClick:l,inline:!0}),o);const y=!!o.handler||d;return(y||e.open||r.value)&&(v=f(Bv,{autoLock:!0,visible:e.open,forceRender:y,getContainer:i,wrapperClassName:s},{default:m=>{var{visible:h,afterClose:b}=m,$=y1(m,["visible","afterClose"]);return f(b1,F(F(F({ref:r},p),$),{},{rootClassName:u,rootStyle:c,open:h!==void 0?h:e.open,afterVisibleChange:b!==void 0?b:e.afterVisibleChange,onClose:a,onHandleClick:l}),o)}})),v}}}),bG=hG,yG=e=>{const{componentCls:t,motionDurationSlow:n}=e,o={"&-enter, &-appear, &-leave":{"&-start":{transition:"none"},"&-active":{transition:`all ${n}`}}};return{[t]:{[`${t}-mask-motion`]:{"&-enter, &-appear, &-leave":{"&-active":{transition:`all ${n}`}},"&-enter, &-appear":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}}},[`${t}-panel-motion`]:{"&-left":[o,{"&-enter, &-appear":{"&-start":{transform:"translateX(-100%) !important"},"&-active":{transform:"translateX(0)"}},"&-leave":{transform:"translateX(0)","&-active":{transform:"translateX(-100%)"}}}],"&-right":[o,{"&-enter, &-appear":{"&-start":{transform:"translateX(100%) !important"},"&-active":{transform:"translateX(0)"}},"&-leave":{transform:"translateX(0)","&-active":{transform:"translateX(100%)"}}}],"&-top":[o,{"&-enter, &-appear":{"&-start":{transform:"translateY(-100%) !important"},"&-active":{transform:"translateY(0)"}},"&-leave":{transform:"translateY(0)","&-active":{transform:"translateY(-100%)"}}}],"&-bottom":[o,{"&-enter, &-appear":{"&-start":{transform:"translateY(100%) !important"},"&-active":{transform:"translateY(0)"}},"&-leave":{transform:"translateY(0)","&-active":{transform:"translateY(100%)"}}}]}}}},$G=yG,SG=e=>{const{componentCls:t,zIndexPopup:n,colorBgMask:o,colorBgElevated:r,motionDurationSlow:l,motionDurationMid:a,padding:i,paddingLG:s,fontSizeLG:u,lineHeightLG:c,lineWidth:d,lineType:p,colorSplit:v,marginSM:y,colorIcon:m,colorIconHover:h,colorText:b,fontWeightStrong:$,drawerFooterPaddingVertical:C,drawerFooterPaddingHorizontal:w}=e,S=`${t}-content-wrapper`;return{[t]:{position:"fixed",inset:0,zIndex:n,pointerEvents:"none","&-pure":{position:"relative",background:r,[`&${t}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${t}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${t}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${t}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:"absolute"},[`${t}-mask`]:{position:"absolute",inset:0,zIndex:n,background:o,pointerEvents:"auto"},[S]:{position:"absolute",zIndex:n,transition:`all ${l}`,"&-hidden":{display:"none"}},[`&-left > ${S}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${S}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${S}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${S}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${t}-content`]:{width:"100%",height:"100%",overflow:"auto",background:r,pointerEvents:"auto"},[`${t}-wrapper-body`]:{display:"flex",flexDirection:"column",width:"100%",height:"100%"},[`${t}-header`]:{display:"flex",flex:0,alignItems:"center",padding:`${i}px ${s}px`,fontSize:u,lineHeight:c,borderBottom:`${d}px ${p} ${v}`,"&-title":{display:"flex",flex:1,alignItems:"center",minWidth:0,minHeight:0}},[`${t}-extra`]:{flex:"none"},[`${t}-close`]:{display:"inline-block",marginInlineEnd:y,color:m,fontWeight:$,fontSize:u,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",textDecoration:"none",background:"transparent",border:0,outline:0,cursor:"pointer",transition:`color ${a}`,textRendering:"auto","&:focus, &:hover":{color:h,textDecoration:"none"}},[`${t}-title`]:{flex:1,margin:0,color:b,fontWeight:e.fontWeightStrong,fontSize:u,lineHeight:c},[`${t}-body`]:{flex:1,minWidth:0,minHeight:0,padding:s,overflow:"auto"},[`${t}-footer`]:{flexShrink:0,padding:`${C}px ${w}px`,borderTop:`${d}px ${p} ${v}`},"&-rtl":{direction:"rtl"}}}},CG=Je("Drawer",e=>{const t=Le(e,{drawerFooterPaddingVertical:e.paddingXS,drawerFooterPaddingHorizontal:e.padding});return[SG(t),$G(t)]},e=>({zIndexPopup:e.zIndexPopupBase}));var xG=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({autofocus:{type:Boolean,default:void 0},closable:{type:Boolean,default:void 0},closeIcon:V.any,destroyOnClose:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},getContainer:{type:[String,Function,Boolean,Object],default:void 0},maskClosable:{type:Boolean,default:void 0},mask:{type:Boolean,default:void 0},maskStyle:De(),rootClassName:String,rootStyle:De(),size:{type:String},drawerStyle:De(),headerStyle:De(),bodyStyle:De(),contentWrapperStyle:{type:Object,default:void 0},title:V.any,visible:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},width:V.oneOfType([V.string,V.number]),height:V.oneOfType([V.string,V.number]),zIndex:Number,prefixCls:String,push:V.oneOfType([V.looseBool,{type:Object}]),placement:V.oneOf(wG),keyboard:{type:Boolean,default:void 0},extra:V.any,footer:V.any,footerStyle:De(),level:V.any,levelMove:{type:[Number,Array,Function]},handle:V.any,afterVisibleChange:Function,onAfterVisibleChange:Function,onAfterOpenChange:Function,"onUpdate:visible":Function,"onUpdate:open":Function,onClose:Function}),PG=te({compatConfig:{MODE:3},name:"ADrawer",inheritAttrs:!1,props:rt(OG(),{closable:!0,placement:"right",maskClosable:!0,mask:!0,level:null,keyboard:!0,push:$1}),slots:Object,setup(e,t){let{emit:n,slots:o,attrs:r}=t;const l=q(!1),a=q(!1),i=q(null),s=q(!1),u=q(!1),c=P(()=>{var N;return(N=e.open)!==null&&N!==void 0?N:e.visible});ue(c,()=>{c.value?s.value=!0:u.value=!1},{immediate:!0}),ue([c,s],()=>{c.value&&s.value&&(u.value=!0)},{immediate:!0});const d=Ke("parentDrawerOpts",null),{prefixCls:p,getPopupContainer:v,direction:y}=Me("drawer",e),[m,h]=CG(p),b=P(()=>e.getContainer===void 0&&(v!=null&&v.value)?()=>v.value(document.body):e.getContainer);yt(!e.afterVisibleChange,"Drawer","`afterVisibleChange` prop is deprecated, please use `@afterVisibleChange` event instead"),We("parentDrawerOpts",{setPush:()=>{l.value=!0},setPull:()=>{l.value=!1,ot(()=>{w()})}}),Ve(()=>{c.value&&d&&d.setPush()}),Bn(()=>{d&&d.setPull()}),ue(u,()=>{d&&(u.value?d.setPush():d.setPull())},{flush:"post"});const w=()=>{var N,k;(k=(N=i.value)===null||N===void 0?void 0:N.domFocus)===null||k===void 0||k.call(N)},S=N=>{n("update:visible",!1),n("update:open",!1),n("close",N)},O=N=>{var k;N||(a.value===!1&&(a.value=!0),e.destroyOnClose&&(s.value=!1)),(k=e.afterVisibleChange)===null||k===void 0||k.call(e,N),n("afterVisibleChange",N),n("afterOpenChange",N)},x=P(()=>{const{push:N,placement:k}=e;let L;return typeof N=="boolean"?L=N?$1.distance:0:L=N.distance,L=parseFloat(String(L||0)),k==="left"||k==="right"?`translateX(${k==="left"?L:-L}px)`:k==="top"||k==="bottom"?`translateY(${k==="top"?L:-L}px)`:null}),I=P(()=>{var N;return(N=e.width)!==null&&N!==void 0?N:e.size==="large"?736:378}),E=P(()=>{var N;return(N=e.height)!==null&&N!==void 0?N:e.size==="large"?736:378}),M=P(()=>{const{mask:N,placement:k}=e;if(!u.value&&!N)return{};const L={};return k==="left"||k==="right"?L.width=Ws(I.value)?`${I.value}px`:I.value:L.height=Ws(E.value)?`${E.value}px`:E.value,L}),_=P(()=>{const{zIndex:N,contentWrapperStyle:k}=e,L=M.value;return[{zIndex:N,transform:l.value?x.value:void 0},g({},k),L]}),z=N=>{const{closable:k,headerStyle:L}=e,j=At(o,e,"extra"),G=At(o,e,"title");return!G&&!k?null:f("div",{class:ne(`${N}-header`,{[`${N}-header-close-only`]:k&&!G&&!j}),style:L},[f("div",{class:`${N}-header-title`},[R(N),G&&f("div",{class:`${N}-title`},[G])]),j&&f("div",{class:`${N}-extra`},[j])])},R=N=>{var k;const{closable:L}=e,j=o.closeIcon?(k=o.closeIcon)===null||k===void 0?void 0:k.call(o):e.closeIcon;return L&&f("button",{key:"closer",onClick:S,"aria-label":"Close",class:`${N}-close`},[j===void 0?f(Qn,null,null):j])},H=N=>{var k;if(a.value&&!e.forceRender&&!s.value)return null;const{bodyStyle:L,drawerStyle:j}=e;return f("div",{class:`${N}-wrapper-body`,style:j},[z(N),f("div",{key:"body",class:`${N}-body`,style:L},[(k=o.default)===null||k===void 0?void 0:k.call(o)]),T(N)])},T=N=>{const k=At(o,e,"footer");if(!k)return null;const L=`${N}-footer`;return f("div",{class:L,style:e.footerStyle},[k])},D=P(()=>ne({"no-mask":!e.mask,[`${p.value}-rtl`]:y.value==="rtl"},e.rootClassName,h.value)),A=P(()=>Yn(on(p.value,"mask-motion"))),B=N=>Yn(on(p.value,`panel-motion-${N}`));return()=>{const{width:N,height:k,placement:L,mask:j,forceRender:G}=e,U=xG(e,["width","height","placement","mask","forceRender"]),K=g(g(g({},r),tt(U,["size","closeIcon","closable","destroyOnClose","drawerStyle","headerStyle","bodyStyle","title","push","onAfterVisibleChange","onClose","onUpdate:visible","onUpdate:open","visible"])),{forceRender:G,onClose:S,afterVisibleChange:O,handler:!1,prefixCls:p.value,open:u.value,showMask:j,placement:L,ref:i});return m(f(ei,null,{default:()=>[f(bG,F(F({},K),{},{maskMotion:A.value,motion:B,width:I.value,height:E.value,getContainer:b.value,rootClassName:D.value,rootStyle:e.rootStyle,contentWrapperStyle:_.value}),{handler:e.handle?()=>e.handle:o.handle,default:()=>H(p.value)})]}))}}}),Mle=Gt(PG);var IG={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"};const TG=IG;function S1(e){for(var t=1;t({prefixCls:String,description:V.any,type:je("default"),shape:je("circle"),tooltip:V.any,href:String,target:String,badge:De(),onClick:ce()}),MG=()=>({prefixCls:je()}),_G=()=>g(g({},im()),{trigger:je(),open:xe(),onOpenChange:ce(),"onUpdate:open":ce()}),DG=()=>g(g({},im()),{prefixCls:String,duration:Number,target:ce(),visibilityHeight:Number,onClick:ce()}),AG=te({compatConfig:{MODE:3},name:"AFloatButtonContent",inheritAttrs:!1,props:MG(),setup(e,t){let{attrs:n,slots:o}=t;return()=>{var r;const{prefixCls:l}=e,a=Ot((r=o.description)===null||r===void 0?void 0:r.call(o));return f("div",F(F({},n),{},{class:[n.class,`${l}-content`]}),[o.icon||a.length?f(qe,null,[o.icon&&f("div",{class:`${l}-icon`},[o.icon()]),a.length?f("div",{class:`${l}-description`},[a]):null]):f("div",{class:`${l}-icon`},[f(K3,null,null)])])}}}),RG=AG,G3=Symbol("floatButtonGroupContext"),BG=e=>(We(G3,e),e),X3=()=>Ke(G3,{shape:ee()}),NG=e=>e===0?0:e-Math.sqrt(Math.pow(e,2)/2),C1=NG,FG=e=>{const{componentCls:t,floatButtonSize:n,motionDurationSlow:o,motionEaseInOutCirc:r}=e,l=`${t}-group`,a=new Ue("antFloatButtonMoveDownIn",{"0%":{transform:`translate3d(0, ${n}px, 0)`,transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),i=new Ue("antFloatButtonMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:`translate3d(0, ${n}px, 0)`,transformOrigin:"0 0",opacity:0}});return[{[`${l}-wrap`]:g({},gi(`${l}-wrap`,a,i,o,!0))},{[`${l}-wrap`]:{[` + &${l}-wrap-enter, + &${l}-wrap-appear + `]:{opacity:0,animationTimingFunction:r},[`&${l}-wrap-leave`]:{animationTimingFunction:r}}}]},kG=e=>{const{antCls:t,componentCls:n,floatButtonSize:o,margin:r,borderRadiusLG:l,borderRadiusSM:a,badgeOffset:i,floatButtonBodyPadding:s}=e,u=`${n}-group`;return{[u]:g(g({},Qe(e)),{zIndex:99,display:"block",border:"none",position:"fixed",width:o,height:"auto",boxShadow:"none",minHeight:o,insetInlineEnd:e.floatButtonInsetInlineEnd,insetBlockEnd:e.floatButtonInsetBlockEnd,borderRadius:l,[`${u}-wrap`]:{zIndex:-1,display:"block",position:"relative",marginBottom:r},[`&${u}-rtl`]:{direction:"rtl"},[n]:{position:"static"}}),[`${u}-circle`]:{[`${n}-circle:not(:last-child)`]:{marginBottom:e.margin,[`${n}-body`]:{width:o,height:o,borderRadius:"50%"}}},[`${u}-square`]:{[`${n}-square`]:{borderRadius:0,padding:0,"&:first-child":{borderStartStartRadius:l,borderStartEndRadius:l},"&:last-child":{borderEndStartRadius:l,borderEndEndRadius:l},"&:not(:last-child)":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-badge`]:{[`${t}-badge-count`]:{top:-(s+i),insetInlineEnd:-(s+i)}}},[`${u}-wrap`]:{display:"block",borderRadius:l,boxShadow:e.boxShadowSecondary,[`${n}-square`]:{boxShadow:"none",marginTop:0,borderRadius:0,padding:s,"&:first-child":{borderStartStartRadius:l,borderStartEndRadius:l},"&:last-child":{borderEndStartRadius:l,borderEndEndRadius:l},"&:not(:last-child)":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${n}-body`]:{width:e.floatButtonBodySize,height:e.floatButtonBodySize}}}},[`${u}-circle-shadow`]:{boxShadow:"none"},[`${u}-square-shadow`]:{boxShadow:e.boxShadowSecondary,[`${n}-square`]:{boxShadow:"none",padding:s,[`${n}-body`]:{width:e.floatButtonBodySize,height:e.floatButtonBodySize,borderRadius:a}}}}},LG=e=>{const{antCls:t,componentCls:n,floatButtonBodyPadding:o,floatButtonIconSize:r,floatButtonSize:l,borderRadiusLG:a,badgeOffset:i,dotOffsetInSquare:s,dotOffsetInCircle:u}=e;return{[n]:g(g({},Qe(e)),{border:"none",position:"fixed",cursor:"pointer",zIndex:99,display:"block",justifyContent:"center",alignItems:"center",width:l,height:l,insetInlineEnd:e.floatButtonInsetInlineEnd,insetBlockEnd:e.floatButtonInsetBlockEnd,boxShadow:e.boxShadowSecondary,"&-pure":{position:"relative",inset:"auto"},"&:empty":{display:"none"},[`${t}-badge`]:{width:"100%",height:"100%",[`${t}-badge-count`]:{transform:"translate(0, 0)",transformOrigin:"center",top:-i,insetInlineEnd:-i}},[`${n}-body`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",transition:`all ${e.motionDurationMid}`,[`${n}-content`]:{overflow:"hidden",textAlign:"center",minHeight:l,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",padding:`${o/2}px ${o}px`,[`${n}-icon`]:{textAlign:"center",margin:"auto",width:r,fontSize:r,lineHeight:1}}}}),[`${n}-rtl`]:{direction:"rtl"},[`${n}-circle`]:{height:l,borderRadius:"50%",[`${t}-badge`]:{[`${t}-badge-dot`]:{top:u,insetInlineEnd:u}},[`${n}-body`]:{borderRadius:"50%"}},[`${n}-square`]:{height:"auto",minHeight:l,borderRadius:a,[`${t}-badge`]:{[`${t}-badge-dot`]:{top:s,insetInlineEnd:s}},[`${n}-body`]:{height:"auto",borderRadius:a}},[`${n}-default`]:{backgroundColor:e.floatButtonBackgroundColor,transition:`background-color ${e.motionDurationMid}`,[`${n}-body`]:{backgroundColor:e.floatButtonBackgroundColor,transition:`background-color ${e.motionDurationMid}`,"&:hover":{backgroundColor:e.colorFillContent},[`${n}-content`]:{[`${n}-icon`]:{color:e.colorText},[`${n}-description`]:{display:"flex",alignItems:"center",lineHeight:`${e.fontSizeLG}px`,color:e.colorText,fontSize:e.fontSizeSM}}}},[`${n}-primary`]:{backgroundColor:e.colorPrimary,[`${n}-body`]:{backgroundColor:e.colorPrimary,transition:`background-color ${e.motionDurationMid}`,"&:hover":{backgroundColor:e.colorPrimaryHover},[`${n}-content`]:{[`${n}-icon`]:{color:e.colorTextLightSolid},[`${n}-description`]:{display:"flex",alignItems:"center",lineHeight:`${e.fontSizeLG}px`,color:e.colorTextLightSolid,fontSize:e.fontSizeSM}}}}}},sm=Je("FloatButton",e=>{const{colorTextLightSolid:t,colorBgElevated:n,controlHeightLG:o,marginXXL:r,marginLG:l,fontSize:a,fontSizeIcon:i,controlItemBgHover:s,paddingXXS:u,borderRadiusLG:c}=e,d=Le(e,{floatButtonBackgroundColor:n,floatButtonColor:t,floatButtonHoverBackgroundColor:s,floatButtonFontSize:a,floatButtonIconSize:i*1.5,floatButtonSize:o,floatButtonInsetBlockEnd:r,floatButtonInsetInlineEnd:l,floatButtonBodySize:o-u*2,floatButtonBodyPadding:u,badgeOffset:u*1.5,dotOffsetInCircle:C1(o/2),dotOffsetInSquare:C1(c)});return[kG(d),LG(d),tg(e),FG(d)]});var zG=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r(s==null?void 0:s.value)||e.shape);return()=>{var d;const{prefixCls:p,type:v="default",shape:y="circle",description:m=(d=o.description)===null||d===void 0?void 0:d.call(o),tooltip:h,badge:b={}}=e,$=zG(e,["prefixCls","type","shape","description","tooltip","badge"]),C=ne(r.value,`${r.value}-${v}`,`${r.value}-${c.value}`,{[`${r.value}-rtl`]:l.value==="rtl"},n.class,i.value),w=f(Vn,{placement:"left"},{title:o.tooltip||h?()=>o.tooltip&&o.tooltip()||h:void 0,default:()=>f(fs,b,{default:()=>[f("div",{class:`${r.value}-body`},[f(RG,{prefixCls:r.value},{icon:o.icon,description:()=>m})])]})});return a(e.href?f("a",F(F(F({ref:u},n),$),{},{class:C}),[w]):f("button",F(F(F({ref:u},n),$),{},{class:C,type:"button"}),[w]))}}}),Lr=HG,jG=te({compatConfig:{MODE:3},name:"AFloatButtonGroup",inheritAttrs:!1,props:rt(_G(),{type:"default",shape:"circle"}),setup(e,t){let{attrs:n,slots:o,emit:r}=t;const{prefixCls:l,direction:a}=Me(cm,e),[i,s]=sm(l),[u,c]=wt(!1,{value:P(()=>e.open)}),d=ee(null),p=ee(null);BG({shape:P(()=>e.shape)});const v={onMouseenter(){var b;c(!0),r("update:open",!0),(b=e.onOpenChange)===null||b===void 0||b.call(e,!0)},onMouseleave(){var b;c(!1),r("update:open",!1),(b=e.onOpenChange)===null||b===void 0||b.call(e,!1)}},y=P(()=>e.trigger==="hover"?v:{}),m=()=>{var b;const $=!u.value;r("update:open",$),(b=e.onOpenChange)===null||b===void 0||b.call(e,$),c($)},h=b=>{var $,C,w;if(!(($=d.value)===null||$===void 0)&&$.contains(b.target)){!((C=sn(p.value))===null||C===void 0)&&C.contains(b.target)&&m();return}c(!1),r("update:open",!1),(w=e.onOpenChange)===null||w===void 0||w.call(e,!1)};return ue(P(()=>e.trigger),b=>{un()&&(document.removeEventListener("click",h),b==="click"&&document.addEventListener("click",h))},{immediate:!0}),Ze(()=>{document.removeEventListener("click",h)}),()=>{var b;const{shape:$="circle",type:C="default",tooltip:w,description:S,trigger:O}=e,x=`${l.value}-group`,I=ne(x,s.value,n.class,{[`${x}-rtl`]:a.value==="rtl",[`${x}-${$}`]:$,[`${x}-${$}-shadow`]:!O}),E=ne(s.value,`${x}-wrap`),M=Yn(`${x}-wrap`);return i(f("div",F(F({ref:d},n),{},{class:I},y.value),[O&&["click","hover"].includes(O)?f(qe,null,[f(Jt,M,{default:()=>[cn(f("div",{class:E},[o.default&&o.default()]),[[yn,u.value]])]}),f(Lr,{ref:p,type:C,shape:$,tooltip:w,description:S},{icon:()=>{var _,z;return u.value?((_=o.closeIcon)===null||_===void 0?void 0:_.call(o))||f(Qn,null,null):((z=o.icon)===null||z===void 0?void 0:z.call(o))||f(K3,null,null)},tooltip:o.tooltip,description:o.description})]):(b=o.default)===null||b===void 0?void 0:b.call(o)]))}}}),gp=jG;var VG={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z"}}]},name:"vertical-align-top",theme:"outlined"};const WG=VG;function x1(e){for(var t=1;twindow,duration:450,type:"default",shape:"circle"}),setup(e,t){let{slots:n,attrs:o,emit:r}=t;const{prefixCls:l,direction:a}=Me(cm,e),[i]=sm(l),s=ee(),u=vt({visible:e.visibilityHeight===0,scrollEvent:null}),c=()=>s.value&&s.value.ownerDocument?s.value.ownerDocument:window,d=h=>{const{target:b=c,duration:$}=e;Qx(0,{getContainer:b,duration:$}),r("click",h)},p=T9(h=>{const{visibilityHeight:b}=e,$=qx(h.target,!0);u.visible=$>=b}),v=()=>{const{target:h}=e,$=(h||c)();p({target:$}),$==null||$.addEventListener("scroll",p)},y=()=>{const{target:h}=e,$=(h||c)();p.cancel(),$==null||$.removeEventListener("scroll",p)};ue(()=>e.target,()=>{y(),ot(()=>{v()})}),Ve(()=>{ot(()=>{v()})}),Gp(()=>{ot(()=>{v()})}),K6(()=>{y()}),Ze(()=>{y()});const m=X3();return()=>{const{description:h,type:b,shape:$,tooltip:C,badge:w}=e,S=g(g({},o),{shape:(m==null?void 0:m.shape.value)||$,onClick:d,class:{[`${l.value}`]:!0,[`${o.class}`]:o.class,[`${l.value}-rtl`]:a.value==="rtl"},description:h,type:b,tooltip:C,badge:w}),O=Yn("fade");return i(f(Jt,O,{default:()=>[cn(f(Lr,F(F({},S),{},{ref:s}),{icon:()=>{var x;return((x=n.icon)===null||x===void 0?void 0:x.call(n))||f(GG,null,null)}}),[[yn,u.visible]])]}))}}}),mp=XG;Lr.Group=gp;Lr.BackTop=mp;Lr.install=function(e){return e.component(Lr.name,Lr),e.component(gp.name,gp),e.component(mp.name,mp),e};const Na=e=>e!=null&&(Array.isArray(e)?Ot(e).length:!0);function dm(e){return Na(e.prefix)||Na(e.suffix)||Na(e.allowClear)}function Ss(e){return Na(e.addonBefore)||Na(e.addonAfter)}function hp(e){return typeof e=="undefined"||e===null?"":String(e)}function Fa(e,t,n,o){if(!n)return;const r=t;if(t.type==="click"){Object.defineProperty(r,"target",{writable:!0}),Object.defineProperty(r,"currentTarget",{writable:!0});const l=e.cloneNode(!0);r.target=l,r.currentTarget=l,l.value="",n(r);return}if(o!==void 0){Object.defineProperty(r,"target",{writable:!0}),Object.defineProperty(r,"currentTarget",{writable:!0}),r.target=e,r.currentTarget=e,e.value=o,n(r);return}n(r)}function U3(e,t){if(!e)return;e.focus(t);const{cursor:n}=t||{};if(n){const o=e.value.length;switch(n){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(o,o);break;default:e.setSelectionRange(0,o)}}}const UG=()=>({addonBefore:V.any,addonAfter:V.any,prefix:V.any,suffix:V.any,clearIcon:V.any,affixWrapperClassName:String,groupClassName:String,wrapperClassName:String,inputClassName:String,allowClear:{type:Boolean,default:void 0}}),Y3=()=>g(g({},UG()),{value:{type:[String,Number,Symbol],default:void 0},defaultValue:{type:[String,Number,Symbol],default:void 0},inputElement:V.any,prefixCls:String,disabled:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},triggerFocus:Function,readonly:{type:Boolean,default:void 0},handleReset:Function,hidden:{type:Boolean,default:void 0}}),q3=()=>g(g({},Y3()),{id:String,placeholder:{type:[String,Number]},autocomplete:String,type:je("text"),name:String,size:{type:String},autofocus:{type:Boolean,default:void 0},lazy:{type:Boolean,default:!0},maxlength:Number,loading:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},showCount:{type:[Boolean,Object]},htmlSize:Number,onPressEnter:Function,onKeydown:Function,onKeyup:Function,onFocus:Function,onBlur:Function,onChange:Function,onInput:Function,"onUpdate:value":Function,onCompositionstart:Function,onCompositionend:Function,valueModifiers:Object,hidden:{type:Boolean,default:void 0},status:String}),YG=te({name:"BaseInput",inheritAttrs:!1,props:Y3(),setup(e,t){let{slots:n,attrs:o}=t;const r=ee(),l=i=>{var s;if(!((s=r.value)===null||s===void 0)&&s.contains(i.target)){const{triggerFocus:u}=e;u==null||u()}},a=()=>{var i;const{allowClear:s,value:u,disabled:c,readonly:d,handleReset:p,suffix:v=n.suffix,prefixCls:y}=e;if(!s)return null;const m=!c&&!d&&u,h=`${y}-clear-icon`,b=((i=n.clearIcon)===null||i===void 0?void 0:i.call(n))||"*";return f("span",{onClick:p,onMousedown:$=>$.preventDefault(),class:ne({[`${h}-hidden`]:!m,[`${h}-has-suffix`]:!!v},h),role:"button",tabindex:-1},[b])};return()=>{var i,s;const{focused:u,value:c,disabled:d,allowClear:p,readonly:v,hidden:y,prefixCls:m,prefix:h=(i=n.prefix)===null||i===void 0?void 0:i.call(n),suffix:b=(s=n.suffix)===null||s===void 0?void 0:s.call(n),addonAfter:$=n.addonAfter,addonBefore:C=n.addonBefore,inputElement:w,affixWrapperClassName:S,wrapperClassName:O,groupClassName:x}=e;let I=gt(w,{value:c,hidden:y});if(dm({prefix:h,suffix:b,allowClear:p})){const E=`${m}-affix-wrapper`,M=ne(E,{[`${E}-disabled`]:d,[`${E}-focused`]:u,[`${E}-readonly`]:v,[`${E}-input-with-clear-btn`]:b&&p&&c},!Ss({addonAfter:$,addonBefore:C})&&o.class,S),_=(b||p)&&f("span",{class:`${m}-suffix`},[a(),b]);I=f("span",{class:M,style:o.style,hidden:!Ss({addonAfter:$,addonBefore:C})&&y,onMousedown:l,ref:r},[h&&f("span",{class:`${m}-prefix`},[h]),gt(w,{style:null,value:c,hidden:null}),_])}if(Ss({addonAfter:$,addonBefore:C})){const E=`${m}-group`,M=`${E}-addon`,_=ne(`${m}-wrapper`,E,O),z=ne(`${m}-group-wrapper`,o.class,x);return f("span",{class:z,style:o.style,hidden:y},[f("span",{class:_},[C&&f("span",{class:M},[C]),gt(I,{style:null,hidden:null}),$&&f("span",{class:M},[$])])])}return I}}});var qG=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.value,()=>{a.value=e.value}),ue(()=>e.disabled,()=>{e.disabled&&(i.value=!1)});const c=x=>{s.value&&U3(s.value.input,x)},d=()=>{var x;(x=s.value.input)===null||x===void 0||x.blur()},p=(x,I,E)=>{var M;(M=s.value.input)===null||M===void 0||M.setSelectionRange(x,I,E)},v=()=>{var x;(x=s.value.input)===null||x===void 0||x.select()};r({focus:c,blur:d,input:P(()=>{var x;return(x=s.value.input)===null||x===void 0?void 0:x.input}),stateValue:a,setSelectionRange:p,select:v});const y=x=>{l("change",x)},m=(x,I)=>{a.value!==x&&(e.value===void 0?a.value=x:ot(()=>{var E;s.value.input.value!==a.value&&((E=u.value)===null||E===void 0||E.$forceUpdate())}),ot(()=>{I&&I()}))},h=x=>{const{value:I}=x.target;if(a.value===I)return;const E=x.target.value;Fa(s.value.input,x,y),m(E)},b=x=>{x.keyCode===13&&l("pressEnter",x),l("keydown",x)},$=x=>{i.value=!0,l("focus",x)},C=x=>{i.value=!1,l("blur",x)},w=x=>{Fa(s.value.input,x,y),m("",()=>{c()})},S=()=>{var x,I;const{addonBefore:E=n.addonBefore,addonAfter:M=n.addonAfter,disabled:_,valueModifiers:z={},htmlSize:R,autocomplete:H,prefixCls:T,inputClassName:D,prefix:A=(x=n.prefix)===null||x===void 0?void 0:x.call(n),suffix:B=(I=n.suffix)===null||I===void 0?void 0:I.call(n),allowClear:N,type:k="text"}=e,L=tt(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","size","bordered","htmlSize","lazy","showCount","valueModifiers","showCount","affixWrapperClassName","groupClassName","inputClassName","wrapperClassName"]),j=g(g(g({},L),o),{autocomplete:H,onChange:h,onInput:h,onFocus:$,onBlur:C,onKeydown:b,class:ne(T,{[`${T}-disabled`]:_},D,!Ss({addonAfter:M,addonBefore:E})&&!dm({prefix:A,suffix:B,allowClear:N})&&o.class),ref:s,key:"ant-input",size:R,type:k,lazy:e.lazy});return z.lazy&&delete j.onInput,j.autofocus||delete j.autofocus,f(fi,tt(j,["size"]),null)},O=()=>{var x;const{maxlength:I,suffix:E=(x=n.suffix)===null||x===void 0?void 0:x.call(n),showCount:M,prefixCls:_}=e,z=Number(I)>0;if(E||M){const R=[...hp(a.value)].length,H=typeof M=="object"?M.formatter({count:R,maxlength:I}):`${R}${z?` / ${I}`:""}`;return f(qe,null,[!!M&&f("span",{class:ne(`${_}-show-count-suffix`,{[`${_}-show-count-has-suffix`]:!!E})},[H]),E])}return null};return Ve(()=>{}),()=>{const{prefixCls:x,disabled:I}=e,E=qG(e,["prefixCls","disabled"]);return f(YG,F(F(F({},E),o),{},{ref:u,prefixCls:x,inputElement:S(),handleReset:w,value:hp(a.value),focused:i.value,triggerFocus:c,suffix:O(),disabled:I}),n)}}}),Q3=()=>tt(q3(),["wrapperClassName","groupClassName","inputClassName","affixWrapperClassName"]),fm=Q3,Z3=()=>g(g({},tt(Q3(),["prefix","addonBefore","addonAfter","suffix"])),{rows:Number,autosize:{type:[Boolean,Object],default:void 0},autoSize:{type:[Boolean,Object],default:void 0},onResize:{type:Function},onCompositionstart:Wr(),onCompositionend:Wr(),valueModifiers:Object});var ZG=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rwo(s.status,e.status)),{direction:c,prefixCls:d,size:p,autocomplete:v}=Me("input",e),{compactSize:y,compactItemClassnames:m}=pr(d,c),h=P(()=>y.value||p.value),[b,$]=jg(d),C=Cn();r({focus:R=>{var H;(H=a.value)===null||H===void 0||H.focus(R)},blur:()=>{var R;(R=a.value)===null||R===void 0||R.blur()},input:a,setSelectionRange:(R,H,T)=>{var D;(D=a.value)===null||D===void 0||D.setSelectionRange(R,H,T)},select:()=>{var R;(R=a.value)===null||R===void 0||R.select()}});const I=ee([]),E=()=>{I.value.push(setTimeout(()=>{var R,H,T,D;!((R=a.value)===null||R===void 0)&&R.input&&((H=a.value)===null||H===void 0?void 0:H.input.getAttribute("type"))==="password"&&(!((T=a.value)===null||T===void 0)&&T.input.hasAttribute("value"))&&((D=a.value)===null||D===void 0||D.input.removeAttribute("value"))}))};Ve(()=>{E()}),Kp(()=>{I.value.forEach(R=>clearTimeout(R))}),Ze(()=>{I.value.forEach(R=>clearTimeout(R))});const M=R=>{E(),l("blur",R),i.onFieldBlur()},_=R=>{E(),l("focus",R)},z=R=>{l("update:value",R.target.value),l("change",R),l("input",R),i.onFieldChange()};return()=>{var R,H,T,D,A,B;const{hasFeedback:N,feedbackIcon:k}=s,{allowClear:L,bordered:j=!0,prefix:G=(R=n.prefix)===null||R===void 0?void 0:R.call(n),suffix:U=(H=n.suffix)===null||H===void 0?void 0:H.call(n),addonAfter:K=(T=n.addonAfter)===null||T===void 0?void 0:T.call(n),addonBefore:Y=(D=n.addonBefore)===null||D===void 0?void 0:D.call(n),id:Q=(A=i.id)===null||A===void 0?void 0:A.value}=e,J=ZG(e,["allowClear","bordered","prefix","suffix","addonAfter","addonBefore","id"]),Z=(N||U)&&f(qe,null,[U,N&&k]),W=d.value,X=dm({prefix:G,suffix:U})||!!N,re=n.clearIcon||(()=>f(On,null,null));return b(f(QG,F(F(F({},o),tt(J,["onUpdate:value","onChange","onInput"])),{},{onChange:z,id:Q,disabled:(B=e.disabled)!==null&&B!==void 0?B:C.value,ref:a,prefixCls:W,autocomplete:v.value,onBlur:M,onFocus:_,prefix:G,suffix:Z,allowClear:L,addonAfter:K&&f(ei,null,{default:()=>[f(Vs,null,{default:()=>[K]})]}),addonBefore:Y&&f(ei,null,{default:()=>[f(Vs,null,{default:()=>[Y]})]}),class:[o.class,m.value],inputClassName:ne({[`${W}-sm`]:h.value==="small",[`${W}-lg`]:h.value==="large",[`${W}-rtl`]:c.value==="rtl",[`${W}-borderless`]:!j},!X&&bn(W,u.value),$.value),affixWrapperClassName:ne({[`${W}-affix-wrapper-sm`]:h.value==="small",[`${W}-affix-wrapper-lg`]:h.value==="large",[`${W}-affix-wrapper-rtl`]:c.value==="rtl",[`${W}-affix-wrapper-borderless`]:!j},bn(`${W}-affix-wrapper`,u.value,N),$.value),wrapperClassName:ne({[`${W}-group-rtl`]:c.value==="rtl"},$.value),groupClassName:ne({[`${W}-group-wrapper-sm`]:h.value==="small",[`${W}-group-wrapper-lg`]:h.value==="large",[`${W}-group-wrapper-rtl`]:c.value==="rtl"},bn(`${W}-group-wrapper`,u.value,N),$.value)}),g(g({},n),{clearIcon:re})))}}}),JG=te({compatConfig:{MODE:3},name:"AInputGroup",inheritAttrs:!1,props:{prefixCls:String,size:{type:String},compact:{type:Boolean,default:void 0}},setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l,getPrefixCls:a}=Me("input-group",e),i=rn.useInject();rn.useProvide(i,{isFormItemInput:!1});const s=P(()=>a("input")),[u,c]=jg(s),d=P(()=>{const p=r.value;return{[`${p}`]:!0,[c.value]:!0,[`${p}-lg`]:e.size==="large",[`${p}-sm`]:e.size==="small",[`${p}-compact`]:e.compact,[`${p}-rtl`]:l.value==="rtl"}});return()=>{var p;return u(f("span",F(F({},o),{},{class:ne(d.value,o.class)}),[(p=n.default)===null||p===void 0?void 0:p.call(n)]))}}});var eX=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{var S;(S=a.value)===null||S===void 0||S.focus()},blur:()=>{var S;(S=a.value)===null||S===void 0||S.blur()}});const c=S=>{l("update:value",S.target.value),S&&S.target&&S.type==="click"&&l("search",S.target.value,S),l("change",S)},d=S=>{var O;document.activeElement===((O=a.value)===null||O===void 0?void 0:O.input)&&S.preventDefault()},p=S=>{var O,x;l("search",(x=(O=a.value)===null||O===void 0?void 0:O.input)===null||x===void 0?void 0:x.stateValue,S)},v=S=>{i.value||e.loading||p(S)},y=S=>{i.value=!0,l("compositionstart",S)},m=S=>{i.value=!1,l("compositionend",S)},{prefixCls:h,getPrefixCls:b,direction:$,size:C}=Me("input-search",e),w=P(()=>b("input",e.inputPrefixCls));return()=>{var S,O,x,I;const{disabled:E,loading:M,addonAfter:_=(S=n.addonAfter)===null||S===void 0?void 0:S.call(n),suffix:z=(O=n.suffix)===null||O===void 0?void 0:O.call(n)}=e,R=eX(e,["disabled","loading","addonAfter","suffix"]);let{enterButton:H=(I=(x=n.enterButton)===null||x===void 0?void 0:x.call(n))!==null&&I!==void 0?I:!1}=e;H=H||H==="";const T=typeof H=="boolean"?f(Nc,null,null):null,D=`${h.value}-button`,A=Array.isArray(H)?H[0]:H;let B;const N=A.type&&gc(A.type)&&A.type.__ANT_BUTTON;if(N||A.tagName==="button")B=gt(A,g({onMousedown:d,onClick:p,key:"enterButton"},N?{class:D,size:C.value}:{}),!1);else{const L=T&&!H;B=f(Wt,{class:D,type:H?"primary":void 0,size:C.value,disabled:E,key:"enterButton",onMousedown:d,onClick:p,loading:M,icon:L?T:null},{default:()=>[L?null:T||H]})}_&&(B=[B,_]);const k=ne(h.value,{[`${h.value}-rtl`]:$.value==="rtl",[`${h.value}-${C.value}`]:!!C.value,[`${h.value}-with-button`]:!!H},o.class);return f(Ht,F(F(F({ref:a},tt(R,["onUpdate:value","onSearch","enterButton"])),o),{},{onPressEnter:v,onCompositionstart:y,onCompositionend:m,size:C.value,prefixCls:w.value,addonAfter:B,suffix:z,onChange:c,class:k,disabled:E}),n)}}}),w1=e=>e!=null&&(Array.isArray(e)?Ot(e).length:!0);function nX(e){return w1(e.addonBefore)||w1(e.addonAfter)}const oX=["text","input"],rX=te({compatConfig:{MODE:3},name:"ClearableLabeledInput",inheritAttrs:!1,props:{prefixCls:String,inputType:V.oneOf(Sn("text","input")),value:It(),defaultValue:It(),allowClear:{type:Boolean,default:void 0},element:It(),handleReset:Function,disabled:{type:Boolean,default:void 0},direction:{type:String},size:{type:String},suffix:It(),prefix:It(),addonBefore:It(),addonAfter:It(),readonly:{type:Boolean,default:void 0},focused:{type:Boolean,default:void 0},bordered:{type:Boolean,default:!0},triggerFocus:{type:Function},hidden:Boolean,status:String,hashId:String},setup(e,t){let{slots:n,attrs:o}=t;const r=rn.useInject(),l=i=>{const{value:s,disabled:u,readonly:c,handleReset:d,suffix:p=n.suffix}=e,v=!u&&!c&&s,y=`${i}-clear-icon`;return f(On,{onClick:d,onMousedown:m=>m.preventDefault(),class:ne({[`${y}-hidden`]:!v,[`${y}-has-suffix`]:!!p},y),role:"button"},null)},a=(i,s)=>{const{value:u,allowClear:c,direction:d,bordered:p,hidden:v,status:y,addonAfter:m=n.addonAfter,addonBefore:h=n.addonBefore,hashId:b}=e,{status:$,hasFeedback:C}=r;if(!c)return gt(s,{value:u,disabled:e.disabled});const w=ne(`${i}-affix-wrapper`,`${i}-affix-wrapper-textarea-with-clear-btn`,bn(`${i}-affix-wrapper`,wo($,y),C),{[`${i}-affix-wrapper-rtl`]:d==="rtl",[`${i}-affix-wrapper-borderless`]:!p,[`${o.class}`]:!nX({addonAfter:m,addonBefore:h})&&o.class},b);return f("span",{class:w,style:o.style,hidden:v},[gt(s,{style:null,value:u,disabled:e.disabled}),l(i)])};return()=>{var i;const{prefixCls:s,inputType:u,element:c=(i=n.element)===null||i===void 0?void 0:i.call(n)}=e;return u===oX[0]?a(s,c):null}}}),lX=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,aX=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],Cd={};let Hn;function iX(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&Cd[n])return Cd[n];const o=window.getComputedStyle(e),r=o.getPropertyValue("box-sizing")||o.getPropertyValue("-moz-box-sizing")||o.getPropertyValue("-webkit-box-sizing"),l=parseFloat(o.getPropertyValue("padding-bottom"))+parseFloat(o.getPropertyValue("padding-top")),a=parseFloat(o.getPropertyValue("border-bottom-width"))+parseFloat(o.getPropertyValue("border-top-width")),s={sizingStyle:aX.map(u=>`${u}:${o.getPropertyValue(u)}`).join(";"),paddingSize:l,borderSize:a,boxSizing:r};return t&&n&&(Cd[n]=s),s}function sX(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;Hn||(Hn=document.createElement("textarea"),Hn.setAttribute("tab-index","-1"),Hn.setAttribute("aria-hidden","true"),document.body.appendChild(Hn)),e.getAttribute("wrap")?Hn.setAttribute("wrap",e.getAttribute("wrap")):Hn.removeAttribute("wrap");const{paddingSize:r,borderSize:l,boxSizing:a,sizingStyle:i}=iX(e,t);Hn.setAttribute("style",`${i};${lX}`),Hn.value=e.value||e.placeholder||"";let s,u,c,d=Hn.scrollHeight;if(a==="border-box"?d+=l:a==="content-box"&&(d-=r),n!==null||o!==null){Hn.value=" ";const v=Hn.scrollHeight-r;n!==null&&(s=v*n,a==="border-box"&&(s=s+r+l),d=Math.max(s,d)),o!==null&&(u=v*o,a==="border-box"&&(u=u+r+l),c=d>u?"":"hidden",d=Math.min(u,d))}const p={height:`${d}px`,overflowY:c,resize:"none"};return s&&(p.minHeight=`${s}px`),u&&(p.maxHeight=`${u}px`),p}const xd=0,wd=1,Od=2,cX=te({compatConfig:{MODE:3},name:"ResizableTextArea",inheritAttrs:!1,props:Z3(),setup(e,t){let{attrs:n,emit:o,expose:r}=t,l,a;const i=ee(),s=ee({}),u=ee(Od);Ze(()=>{He.cancel(l),He.cancel(a)});const c=()=>{try{if(i.value&&document.activeElement===i.value.input){const O=i.value.getSelectionStart(),x=i.value.getSelectionEnd(),I=i.value.getScrollTop();i.value.setSelectionRange(O,x),i.value.setScrollTop(I)}}catch(O){}},d=ee(),p=ee();ke(()=>{const O=e.autoSize||e.autosize;O?(d.value=O.minRows,p.value=O.maxRows):(d.value=void 0,p.value=void 0)});const v=P(()=>!!(e.autoSize||e.autosize)),y=()=>{u.value=xd};ue([()=>e.value,d,p,v],()=>{v.value&&y()},{immediate:!0});const m=ee();ue([u,i],()=>{if(i.value)if(u.value===xd)u.value=wd;else if(u.value===wd){const O=sX(i.value.input,!1,d.value,p.value);u.value=Od,m.value=O}else c()},{immediate:!0,flush:"post"});const h=wn(),b=ee(),$=()=>{He.cancel(b.value)},C=O=>{u.value===Od&&(o("resize",O),v.value&&($(),b.value=He(()=>{y()})))};Ze(()=>{$()}),r({resizeTextarea:()=>{y()},textArea:P(()=>{var O;return(O=i.value)===null||O===void 0?void 0:O.input}),instance:h}),$t(e.autosize===void 0);const S=()=>{const{prefixCls:O,disabled:x}=e,I=tt(e,["prefixCls","onPressEnter","autoSize","autosize","defaultValue","allowClear","type","maxlength","valueModifiers"]),E=ne(O,n.class,{[`${O}-disabled`]:x}),M=v.value?m.value:null,_=[n.style,s.value,M],z=g(g(g({},I),n),{style:_,class:E});return(u.value===xd||u.value===wd)&&_.push({overflowX:"hidden",overflowY:"hidden"}),z.autofocus||delete z.autofocus,z.rows===0&&delete z.rows,f(io,{onResize:C,disabled:!v.value},{default:()=>[f(fi,F(F({},z),{},{ref:i,tag:"textarea"}),null)]})};return()=>S()}}),uX=cX;function J3(e,t){return[...e||""].slice(0,t).join("")}function O1(e,t,n,o){let r=n;return e?r=J3(n,o):[...t||""].lengtho&&(r=t),r}const eO=te({compatConfig:{MODE:3},name:"ATextarea",inheritAttrs:!1,props:Z3(),setup(e,t){let{attrs:n,expose:o,emit:r}=t;var l;const a=Lt(),i=rn.useInject(),s=P(()=>wo(i.status,e.status)),u=q((l=e.value)!==null&&l!==void 0?l:e.defaultValue),c=q(),d=q(""),{prefixCls:p,size:v,direction:y}=Me("input",e),[m,h]=jg(p),b=Cn(),$=P(()=>e.showCount===""||e.showCount||!1),C=P(()=>Number(e.maxlength)>0),w=q(!1),S=q(),O=q(0),x=N=>{w.value=!0,S.value=d.value,O.value=N.currentTarget.selectionStart,r("compositionstart",N)},I=N=>{var k;w.value=!1;let L=N.currentTarget.value;if(C.value){const j=O.value>=e.maxlength+1||O.value===((k=S.value)===null||k===void 0?void 0:k.length);L=O1(j,S.value,L,e.maxlength)}L!==d.value&&(z(L),Fa(N.currentTarget,N,T,L)),r("compositionend",N)},E=wn();ue(()=>e.value,()=>{var N;"value"in E.vnode.props,u.value=(N=e.value)!==null&&N!==void 0?N:""});const M=N=>{var k;U3((k=c.value)===null||k===void 0?void 0:k.textArea,N)},_=()=>{var N,k;(k=(N=c.value)===null||N===void 0?void 0:N.textArea)===null||k===void 0||k.blur()},z=(N,k)=>{u.value!==N&&(e.value===void 0?u.value=N:ot(()=>{var L,j,G;c.value.textArea.value!==d.value&&((G=(L=c.value)===null||L===void 0?void 0:(j=L.instance).update)===null||G===void 0||G.call(j))}),ot(()=>{k&&k()}))},R=N=>{N.keyCode===13&&r("pressEnter",N),r("keydown",N)},H=N=>{const{onBlur:k}=e;k==null||k(N),a.onFieldBlur()},T=N=>{r("update:value",N.target.value),r("change",N),r("input",N),a.onFieldChange()},D=N=>{Fa(c.value.textArea,N,T),z("",()=>{M()})},A=N=>{let k=N.target.value;if(u.value!==k){if(C.value){const L=N.target,j=L.selectionStart>=e.maxlength+1||L.selectionStart===k.length||!L.selectionStart;k=O1(j,d.value,k,e.maxlength)}Fa(N.currentTarget,N,T,k),z(k)}},B=()=>{var N,k;const{class:L}=n,{bordered:j=!0}=e,G=g(g(g({},tt(e,["allowClear"])),n),{class:[{[`${p.value}-borderless`]:!j,[`${L}`]:L&&!$.value,[`${p.value}-sm`]:v.value==="small",[`${p.value}-lg`]:v.value==="large"},bn(p.value,s.value),h.value],disabled:b.value,showCount:null,prefixCls:p.value,onInput:A,onChange:A,onBlur:H,onKeydown:R,onCompositionstart:x,onCompositionend:I});return!((N=e.valueModifiers)===null||N===void 0)&&N.lazy&&delete G.onInput,f(uX,F(F({},G),{},{id:(k=G==null?void 0:G.id)!==null&&k!==void 0?k:a.id.value,ref:c,maxlength:e.maxlength,lazy:e.lazy}),null)};return o({focus:M,blur:_,resizableTextArea:c}),ke(()=>{let N=hp(u.value);!w.value&&C.value&&(e.value===null||e.value===void 0)&&(N=J3(N,e.maxlength)),d.value=N}),()=>{var N;const{maxlength:k,bordered:L=!0,hidden:j}=e,{style:G,class:U}=n,K=g(g(g({},e),n),{prefixCls:p.value,inputType:"text",handleReset:D,direction:y.value,bordered:L,style:$.value?void 0:G,hashId:h.value,disabled:(N=e.disabled)!==null&&N!==void 0?N:b.value});let Y=f(rX,F(F({},K),{},{value:d.value,status:e.status}),{element:B});if($.value||i.hasFeedback){const Q=[...d.value].length;let J="";typeof $.value=="object"?J=$.value.formatter({value:d.value,count:Q,maxlength:k}):J=`${Q}${C.value?` / ${k}`:""}`,Y=f("div",{hidden:j,class:ne(`${p.value}-textarea`,{[`${p.value}-textarea-rtl`]:y.value==="rtl",[`${p.value}-textarea-show-count`]:$.value,[`${p.value}-textarea-in-form-item`]:i.isFormItemInput},`${p.value}-textarea-show-count`,U,h.value),style:G,"data-count":typeof J!="object"?J:void 0},[Y,i.hasFeedback&&f("span",{class:`${p.value}-textarea-suffix`},[i.feedbackIcon])])}return m(Y)}}});var dX={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"};const tO=dX;function P1(e){for(var t=1;te?f(vm,null,null):f(mX,null,null),$X=te({compatConfig:{MODE:3},name:"AInputPassword",inheritAttrs:!1,props:g(g({},fm()),{prefixCls:String,inputPrefixCls:String,action:{type:String,default:"click"},visibilityToggle:{type:Boolean,default:!0},visible:{type:Boolean,default:void 0},"onUpdate:visible":Function,iconRender:Function}),setup(e,t){let{slots:n,attrs:o,expose:r,emit:l}=t;const a=q(!1),i=()=>{const{disabled:h}=e;h||(a.value=!a.value,l("update:visible",a.value))};ke(()=>{e.visible!==void 0&&(a.value=!!e.visible)});const s=q();r({focus:()=>{var h;(h=s.value)===null||h===void 0||h.focus()},blur:()=>{var h;(h=s.value)===null||h===void 0||h.blur()}});const d=h=>{const{action:b,iconRender:$=n.iconRender||yX}=e,C=bX[b]||"",w=$(a.value),S={[C]:i,class:`${h}-icon`,key:"passwordIcon",onMousedown:O=>{O.preventDefault()},onMouseup:O=>{O.preventDefault()}};return gt(Rt(w)?w:f("span",null,[w]),S)},{prefixCls:p,getPrefixCls:v}=Me("input-password",e),y=P(()=>v("input",e.inputPrefixCls)),m=()=>{const{size:h,visibilityToggle:b}=e,$=hX(e,["size","visibilityToggle"]),C=b&&d(p.value),w=ne(p.value,o.class,{[`${p.value}-${h}`]:!!h}),S=g(g(g({},tt($,["suffix","iconRender","action"])),o),{type:a.value?"text":"password",class:w,prefixCls:y.value,suffix:C});return h&&(S.size=h),f(Ht,F({ref:s},S),n)};return()=>m()}});Ht.Group=JG;Ht.Search=tX;Ht.TextArea=eO;Ht.Password=$X;Ht.install=function(e){return e.component(Ht.name,Ht),e.component(Ht.Group.name,Ht.Group),e.component(Ht.Search.name,Ht.Search),e.component(Ht.TextArea.name,Ht.TextArea),e.component(Ht.Password.name,Ht.Password),e};function uu(){return{keyboard:{type:Boolean,default:void 0},mask:{type:Boolean,default:void 0},afterClose:Function,closable:{type:Boolean,default:void 0},maskClosable:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},destroyOnClose:{type:Boolean,default:void 0},mousePosition:V.shape({x:Number,y:Number}).loose,title:V.any,footer:V.any,transitionName:String,maskTransitionName:String,animation:V.any,maskAnimation:V.any,wrapStyle:{type:Object,default:void 0},bodyStyle:{type:Object,default:void 0},maskStyle:{type:Object,default:void 0},prefixCls:String,wrapClassName:String,rootClassName:String,width:[String,Number],height:[String,Number],zIndex:Number,bodyProps:V.any,maskProps:V.any,wrapProps:V.any,getContainer:V.any,dialogStyle:{type:Object,default:void 0},dialogClass:String,closeIcon:V.any,forceRender:{type:Boolean,default:void 0},getOpenCount:Function,focusTriggerAfterClose:{type:Boolean,default:void 0},onClose:Function,modalRender:Function}}function T1(e,t,n){let o=t;return!o&&n&&(o=`${e}-${n}`),o}let E1=-1;function SX(){return E1+=1,E1}function M1(e,t){let n=e[`page${t?"Y":"X"}Offset`];const o=`scroll${t?"Top":"Left"}`;if(typeof n!="number"){const r=e.document;n=r.documentElement[o],typeof n!="number"&&(n=r.body[o])}return n}function CX(e){const t=e.getBoundingClientRect(),n={left:t.left,top:t.top},o=e.ownerDocument,r=o.defaultView||o.parentWindow;return n.left+=M1(r),n.top+=M1(r,!0),n}const _1={width:0,height:0,overflow:"hidden",outline:"none"},xX=te({compatConfig:{MODE:3},name:"DialogContent",inheritAttrs:!1,props:g(g({},uu()),{motionName:String,ariaId:String,onVisibleChanged:Function,onMousedown:Function,onMouseup:Function}),setup(e,t){let{expose:n,slots:o,attrs:r}=t;const l=ee(),a=ee(),i=ee();n({focus:()=>{var p;(p=l.value)===null||p===void 0||p.focus()},changeActive:p=>{const{activeElement:v}=document;p&&v===a.value?l.value.focus():!p&&v===l.value&&a.value.focus()}});const s=ee(),u=P(()=>{const{width:p,height:v}=e,y={};return p!==void 0&&(y.width=typeof p=="number"?`${p}px`:p),v!==void 0&&(y.height=typeof v=="number"?`${v}px`:v),s.value&&(y.transformOrigin=s.value),y}),c=()=>{ot(()=>{if(i.value){const p=CX(i.value);s.value=e.mousePosition?`${e.mousePosition.x-p.left}px ${e.mousePosition.y-p.top}px`:""}})},d=p=>{e.onVisibleChanged(p)};return()=>{var p,v,y,m;const{prefixCls:h,footer:b=(p=o.footer)===null||p===void 0?void 0:p.call(o),title:$=(v=o.title)===null||v===void 0?void 0:v.call(o),ariaId:C,closable:w,closeIcon:S=(y=o.closeIcon)===null||y===void 0?void 0:y.call(o),onClose:O,bodyStyle:x,bodyProps:I,onMousedown:E,onMouseup:M,visible:_,modalRender:z=o.modalRender,destroyOnClose:R,motionName:H}=e;let T;b&&(T=f("div",{class:`${h}-footer`},[b]));let D;$&&(D=f("div",{class:`${h}-header`},[f("div",{class:`${h}-title`,id:C},[$])]));let A;w&&(A=f("button",{type:"button",onClick:O,"aria-label":"Close",class:`${h}-close`},[S||f("span",{class:`${h}-close-x`},null)]));const B=f("div",{class:`${h}-content`},[A,D,f("div",F({class:`${h}-body`,style:x},I),[(m=o.default)===null||m===void 0?void 0:m.call(o)]),T]),N=Yn(H);return f(Jt,F(F({},N),{},{onBeforeEnter:c,onAfterEnter:()=>d(!0),onAfterLeave:()=>d(!1)}),{default:()=>[_||!R?cn(f("div",F(F({},r),{},{ref:i,key:"dialog-element",role:"document",style:[u.value,r.style],class:[h,r.class],onMousedown:E,onMouseup:M}),[f("div",{tabindex:0,ref:l,style:_1,"aria-hidden":"true"},null),z?z({originVNode:B}):B,f("div",{tabindex:0,ref:a,style:_1,"aria-hidden":"true"},null)]),[[yn,_]]):null]})}}}),wX=te({compatConfig:{MODE:3},name:"DialogMask",props:{prefixCls:String,visible:Boolean,motionName:String,maskProps:Object},setup(e,t){return()=>{const{prefixCls:n,visible:o,maskProps:r,motionName:l}=e,a=Yn(l);return f(Jt,a,{default:()=>[cn(f("div",F({class:`${n}-mask`},r),null),[[yn,o]])]})}}}),D1=te({compatConfig:{MODE:3},name:"VcDialog",inheritAttrs:!1,props:rt(g(g({},uu()),{getOpenCount:Function,scrollLocker:Object}),{mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:"rc-dialog",getOpenCount:()=>null,focusTriggerAfterClose:!0}),setup(e,t){let{attrs:n,slots:o}=t;const r=q(),l=q(),a=q(),i=q(e.visible),s=q(`vcDialogTitle${SX()}`),u=b=>{var $,C;if(b)tr(l.value,document.activeElement)||(r.value=document.activeElement,($=a.value)===null||$===void 0||$.focus());else{const w=i.value;if(i.value=!1,e.mask&&r.value&&e.focusTriggerAfterClose){try{r.value.focus({preventScroll:!0})}catch(S){}r.value=null}w&&((C=e.afterClose)===null||C===void 0||C.call(e))}},c=b=>{var $;($=e.onClose)===null||$===void 0||$.call(e,b)},d=q(!1),p=q(),v=()=>{clearTimeout(p.value),d.value=!0},y=()=>{p.value=setTimeout(()=>{d.value=!1})},m=b=>{if(!e.maskClosable)return null;d.value?d.value=!1:l.value===b.target&&c(b)},h=b=>{if(e.keyboard&&b.keyCode===Se.ESC){b.stopPropagation(),c(b);return}e.visible&&b.keyCode===Se.TAB&&a.value.changeActive(!b.shiftKey)};return ue(()=>e.visible,()=>{e.visible&&(i.value=!0)},{flush:"post"}),Ze(()=>{var b;clearTimeout(p.value),(b=e.scrollLocker)===null||b===void 0||b.unLock()}),ke(()=>{var b,$;(b=e.scrollLocker)===null||b===void 0||b.unLock(),i.value&&(($=e.scrollLocker)===null||$===void 0||$.lock())}),()=>{const{prefixCls:b,mask:$,visible:C,maskTransitionName:w,maskAnimation:S,zIndex:O,wrapClassName:x,rootClassName:I,wrapStyle:E,closable:M,maskProps:_,maskStyle:z,transitionName:R,animation:H,wrapProps:T,title:D=o.title}=e,{style:A,class:B}=n;return f("div",F({class:[`${b}-root`,I]},fr(e,{data:!0})),[f(wX,{prefixCls:b,visible:$&&C,motionName:T1(b,w,S),style:g({zIndex:O},z),maskProps:_},null),f("div",F({tabIndex:-1,onKeydown:h,class:ne(`${b}-wrap`,x),ref:l,onClick:m,role:"dialog","aria-labelledby":D?s.value:null,style:g(g({zIndex:O},E),{display:i.value?null:"none"})},T),[f(xX,F(F({},tt(e,["scrollLocker"])),{},{style:A,class:B,onMousedown:v,onMouseup:y,ref:a,closable:M,ariaId:s.value,prefixCls:b,visible:C,onClose:c,onVisibleChanged:u,motionName:T1(b,R,H)}),o)])])}}}),OX=uu(),PX=te({compatConfig:{MODE:3},name:"DialogWrap",inheritAttrs:!1,props:rt(OX,{visible:!1}),setup(e,t){let{attrs:n,slots:o}=t;const r=ee(e.visible);return Rv({},{inTriggerContext:!1}),ue(()=>e.visible,()=>{e.visible&&(r.value=!0)},{flush:"post"}),()=>{const{visible:l,getContainer:a,forceRender:i,destroyOnClose:s=!1,afterClose:u}=e;let c=g(g(g({},e),n),{ref:"_component",key:"dialog"});return a===!1?f(D1,F(F({},c),{},{getOpenCount:()=>2}),o):!i&&s&&!r.value?null:f(Bv,{autoLock:!0,visible:l,forceRender:i,getContainer:a},{default:d=>(c=g(g(g({},c),d),{afterClose:()=>{u==null||u(),r.value=!1}}),f(D1,c,o))})}}}),nO=PX;function IX(e){const t=ee(null),n=vt(g({},e)),o=ee([]),r=l=>{t.value===null&&(o.value=[],t.value=He(()=>{let a;o.value.forEach(i=>{a=g(g({},a),i)}),g(n,a),t.value=null})),o.value.push(l)};return Ve(()=>{t.value&&He.cancel(t.value)}),[n,r]}function A1(e,t,n,o){const r=t+n,l=(n-o)/2;if(n>o){if(t>0)return{[e]:l};if(t<0&&ro)return{[e]:t<0?l:-l};return{}}function TX(e,t,n,o){const{width:r,height:l}=cA();let a=null;return e<=r&&t<=l?a={x:0,y:0}:(e>r||t>l)&&(a=g(g({},A1("x",n,e,r)),A1("y",o,t,l))),a}var EX=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{We(R1,e)},inject:()=>Ke(R1,{isPreviewGroup:q(!1),previewUrls:P(()=>new Map),setPreviewUrls:()=>{},current:ee(null),setCurrent:()=>{},setShowPreview:()=>{},setMousePosition:()=>{},registerImage:null,rootClassName:""})},MX=()=>({previewPrefixCls:String,preview:{type:[Boolean,Object],default:!0},icons:{type:Object,default:()=>({})}}),_X=te({compatConfig:{MODE:3},name:"PreviewGroup",inheritAttrs:!1,props:MX(),setup(e,t){let{slots:n}=t;const o=P(()=>{const S={visible:void 0,onVisibleChange:()=>{},getContainer:void 0,current:0};return typeof e.preview=="object"?aO(e.preview,S):S}),r=vt(new Map),l=ee(),a=P(()=>o.value.visible),i=P(()=>o.value.getContainer),s=(S,O)=>{var x,I;(I=(x=o.value).onVisibleChange)===null||I===void 0||I.call(x,S,O)},[u,c]=wt(!!a.value,{value:a,onChange:s}),d=ee(null),p=P(()=>a.value!==void 0),v=P(()=>Array.from(r.keys())),y=P(()=>v.value[o.value.current]),m=P(()=>new Map(Array.from(r).filter(S=>{let[,{canPreview:O}]=S;return!!O}).map(S=>{let[O,{url:x}]=S;return[O,x]}))),h=function(S,O){let x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;r.set(S,{url:O,canPreview:x})},b=S=>{l.value=S},$=S=>{d.value=S},C=function(S,O){let x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const I=()=>{r.delete(S)};return r.set(S,{url:O,canPreview:x}),I},w=S=>{S==null||S.stopPropagation(),c(!1),$(null)};return ue(y,S=>{b(S)},{immediate:!0,flush:"post"}),ke(()=>{u.value&&p.value&&b(y.value)},{flush:"post"}),mm.provide({isPreviewGroup:q(!0),previewUrls:m,setPreviewUrls:h,current:l,setCurrent:b,setShowPreview:c,setMousePosition:$,registerImage:C}),()=>{const S=EX(o.value,[]);return f(qe,null,[n.default&&n.default(),f(rO,F(F({},S),{},{"ria-hidden":!u.value,visible:u.value,prefixCls:e.previewPrefixCls,onClose:w,mousePosition:d.value,src:m.value.get(l.value),icons:e.icons,getContainer:i.value}),null)])}}}),oO=_X,Sr={x:0,y:0},DX=g(g({},uu()),{src:String,alt:String,rootClassName:String,icons:{type:Object,default:()=>({})}}),AX=te({compatConfig:{MODE:3},name:"Preview",inheritAttrs:!1,props:DX,emits:["close","afterClose"],setup(e,t){let{emit:n,attrs:o}=t;const{rotateLeft:r,rotateRight:l,zoomIn:a,zoomOut:i,close:s,left:u,right:c,flipX:d,flipY:p}=vt(e.icons),v=q(1),y=q(0),m=vt({x:1,y:1}),[h,b]=IX(Sr),$=()=>n("close"),C=q(),w=vt({originX:0,originY:0,deltaX:0,deltaY:0}),S=q(!1),O=mm.inject(),{previewUrls:x,current:I,isPreviewGroup:E,setCurrent:M}=O,_=P(()=>x.value.size),z=P(()=>Array.from(x.value.keys())),R=P(()=>z.value.indexOf(I.value)),H=P(()=>E.value?x.value.get(I.value):e.src),T=P(()=>E.value&&_.value>1),D=q({wheelDirection:0}),A=()=>{v.value=1,y.value=0,m.x=1,m.y=1,b(Sr),n("afterClose")},B=me=>{me?v.value+=.5:v.value++,b(Sr)},N=me=>{v.value>1&&(me?v.value-=.5:v.value--),b(Sr)},k=()=>{y.value+=90},L=()=>{y.value-=90},j=()=>{m.x=-m.x},G=()=>{m.y=-m.y},U=me=>{me.preventDefault(),me.stopPropagation(),R.value>0&&M(z.value[R.value-1])},K=me=>{me.preventDefault(),me.stopPropagation(),R.value<_.value-1&&M(z.value[R.value+1])},Y=ne({[`${e.prefixCls}-moving`]:S.value}),Q=`${e.prefixCls}-operations-operation`,J=`${e.prefixCls}-operations-icon`,Z=[{icon:s,onClick:$,type:"close"},{icon:a,onClick:()=>B(),type:"zoomIn"},{icon:i,onClick:()=>N(),type:"zoomOut",disabled:P(()=>v.value===1)},{icon:l,onClick:k,type:"rotateRight"},{icon:r,onClick:L,type:"rotateLeft"},{icon:d,onClick:j,type:"flipX"},{icon:p,onClick:G,type:"flipY"}],W=()=>{if(e.visible&&S.value){const me=C.value.offsetWidth*v.value,ie=C.value.offsetHeight*v.value,{left:se,top:be}=Ls(C.value),we=y.value%180!==0;S.value=!1;const ve=TX(we?ie:me,we?me:ie,se,be);ve&&b(g({},ve))}},X=me=>{me.button===0&&(me.preventDefault(),me.stopPropagation(),w.deltaX=me.pageX-h.x,w.deltaY=me.pageY-h.y,w.originX=h.x,w.originY=h.y,S.value=!0)},re=me=>{e.visible&&S.value&&b({x:me.pageX-w.deltaX,y:me.pageY-w.deltaY})},ae=me=>{if(!e.visible)return;me.preventDefault();const ie=me.deltaY;D.value={wheelDirection:ie}},pe=me=>{!e.visible||!T.value||(me.preventDefault(),me.keyCode===Se.LEFT?R.value>0&&M(z.value[R.value-1]):me.keyCode===Se.RIGHT&&R.value<_.value-1&&M(z.value[R.value+1]))},ye=()=>{e.visible&&(v.value!==1&&(v.value=1),(h.x!==Sr.x||h.y!==Sr.y)&&b(Sr))};let de=()=>{};return Ve(()=>{ue([()=>e.visible,S],()=>{de();let me,ie;const se=Pt(window,"mouseup",W,!1),be=Pt(window,"mousemove",re,!1),we=Pt(window,"wheel",ae,{passive:!1}),ve=Pt(window,"keydown",pe,!1);try{window.top!==window.self&&(me=Pt(window.top,"mouseup",W,!1),ie=Pt(window.top,"mousemove",re,!1))}catch(Ce){}de=()=>{se.remove(),be.remove(),we.remove(),ve.remove(),me&&me.remove(),ie&&ie.remove()}},{flush:"post",immediate:!0}),ue([D],()=>{const{wheelDirection:me}=D.value;me>0?N(!0):me<0&&B(!0)})}),Bn(()=>{de()}),()=>{const{visible:me,prefixCls:ie,rootClassName:se}=e;return f(nO,F(F({},o),{},{transitionName:e.transitionName,maskTransitionName:e.maskTransitionName,closable:!1,keyboard:!0,prefixCls:ie,onClose:$,afterClose:A,visible:me,wrapClassName:Y,rootClassName:se,getContainer:e.getContainer}),{default:()=>[f("div",{class:[`${e.prefixCls}-operations-wrapper`,se]},[f("ul",{class:`${e.prefixCls}-operations`},[Z.map(be=>{let{icon:we,onClick:ve,type:Ce,disabled:Te}=be;return f("li",{class:ne(Q,{[`${e.prefixCls}-operations-operation-disabled`]:Te&&(Te==null?void 0:Te.value)}),onClick:ve,key:Ce},[bo(we,{class:J})])})])]),f("div",{class:`${e.prefixCls}-img-wrapper`,style:{transform:`translate3d(${h.x}px, ${h.y}px, 0)`}},[f("img",{onMousedown:X,onDblclick:ye,ref:C,class:`${e.prefixCls}-img`,src:H.value,alt:e.alt,style:{transform:`scale3d(${m.x*v.value}, ${m.y*v.value}, 1) rotate(${y.value}deg)`}},null)]),T.value&&f("div",{class:ne(`${e.prefixCls}-switch-left`,{[`${e.prefixCls}-switch-left-disabled`]:R.value<=0}),onClick:U},[u]),T.value&&f("div",{class:ne(`${e.prefixCls}-switch-right`,{[`${e.prefixCls}-switch-right-disabled`]:R.value>=_.value-1}),onClick:K},[c])]})}}}),rO=AX;var RX=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({src:String,wrapperClassName:String,wrapperStyle:{type:Object,default:void 0},rootClassName:String,prefixCls:String,previewPrefixCls:String,width:[Number,String],height:[Number,String],previewMask:{type:[Boolean,Function],default:void 0},placeholder:V.any,fallback:String,preview:{type:[Boolean,Object],default:!0},onClick:{type:Function},onError:{type:Function}}),aO=(e,t)=>{const n=g({},e);return Object.keys(t).forEach(o=>{e[o]===void 0&&(n[o]=t[o])}),n};let BX=0;const iO=te({compatConfig:{MODE:3},name:"VcImage",inheritAttrs:!1,props:lO(),emits:["click","error"],setup(e,t){let{attrs:n,slots:o,emit:r}=t;const l=P(()=>e.prefixCls),a=P(()=>`${l.value}-preview`),i=P(()=>{const B={visible:void 0,onVisibleChange:()=>{},getContainer:void 0};return typeof e.preview=="object"?aO(e.preview,B):B}),s=P(()=>{var B;return(B=i.value.src)!==null&&B!==void 0?B:e.src}),u=P(()=>e.placeholder&&e.placeholder!==!0||o.placeholder),c=P(()=>i.value.visible),d=P(()=>i.value.getContainer),p=P(()=>c.value!==void 0),v=(B,N)=>{var k,L;(L=(k=i.value).onVisibleChange)===null||L===void 0||L.call(k,B,N)},[y,m]=wt(!!c.value,{value:c,onChange:v}),h=ee(u.value?"loading":"normal");ue(()=>e.src,()=>{h.value=u.value?"loading":"normal"});const b=ee(null),$=P(()=>h.value==="error"),C=mm.inject(),{isPreviewGroup:w,setCurrent:S,setShowPreview:O,setMousePosition:x,registerImage:I}=C,E=ee(BX++),M=P(()=>e.preview&&!$.value),_=()=>{h.value="normal"},z=B=>{h.value="error",r("error",B)},R=B=>{if(!p.value){const{left:N,top:k}=Ls(B.target);w.value?(S(E.value),x({x:N,y:k})):b.value={x:N,y:k}}w.value?O(!0):m(!0),r("click",B)},H=()=>{m(!1),p.value||(b.value=null)},T=ee(null);ue(()=>T,()=>{h.value==="loading"&&T.value.complete&&(T.value.naturalWidth||T.value.naturalHeight)&&_()});let D=()=>{};Ve(()=>{ue([s,M],()=>{if(D(),!w.value)return()=>{};D=I(E.value,s.value,M.value),M.value||D()},{flush:"post",immediate:!0})}),Bn(()=>{D()});const A=B=>xE(B)?B+"px":B;return()=>{const{prefixCls:B,wrapperClassName:N,fallback:k,src:L,placeholder:j,wrapperStyle:G,rootClassName:U,width:K,height:Y,crossorigin:Q,decoding:J,alt:Z,sizes:W,srcset:X,usemap:re,class:ae,style:pe}=g(g({},e),n),ye=i.value,{icons:de,maskClassName:me}=ye,ie=RX(ye,["icons","maskClassName"]),se=ne(B,N,U,{[`${B}-error`]:$.value}),be=$.value&&k?k:s.value,we={crossorigin:Q,decoding:J,alt:Z,sizes:W,srcset:X,usemap:re,width:K,height:Y,class:ne(`${B}-img`,{[`${B}-img-placeholder`]:j===!0},ae),style:g({height:A(Y)},pe)};return f(qe,null,[f("div",{class:se,onClick:M.value?R:ve=>{r("click",ve)},style:g({width:A(K),height:A(Y)},G)},[f("img",F(F(F({},we),$.value&&k?{src:k}:{onLoad:_,onError:z,src:L}),{},{ref:T}),null),h.value==="loading"&&f("div",{"aria-hidden":"true",class:`${B}-placeholder`},[j||o.placeholder&&o.placeholder()]),o.previewMask&&M.value&&f("div",{class:[`${B}-mask`,me]},[o.previewMask()])]),!w.value&&M.value&&f(rO,F(F({},ie),{},{"aria-hidden":!y.value,visible:y.value,prefixCls:a.value,onClose:H,mousePosition:b.value,src:be,alt:Z,getContainer:d.value,icons:de,rootClassName:U}),null)])}}});iO.PreviewGroup=oO;const NX=iO;var FX={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z"}},{tag:"path",attrs:{d:"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z"}}]},name:"rotate-left",theme:"outlined"};const kX=FX;function B1(e){for(var t=1;t{const{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}${e.antCls}-zoom-enter, ${t}${e.antCls}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:e.motionDurationSlow,userSelect:"none"},[`${t}${e.antCls}-zoom-leave ${t}-content`]:{pointerEvents:"none"},[`${t}-mask`]:g(g({},H1("fixed")),{zIndex:e.zIndexPopupBase,height:"100%",backgroundColor:e.colorBgMask,[`${t}-hidden`]:{display:"none"}}),[`${t}-wrap`]:g(g({},H1("fixed")),{overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"})}},{[`${t}-root`]:tg(e)}]},nU=e=>{const{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap`]:{zIndex:e.zIndexPopupBase,position:"fixed",inset:0,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"},[`${t}-wrap-rtl`]:{direction:"rtl"},[`${t}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[t]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${e.screenSMMax})`]:{[t]:{maxWidth:"calc(100vw - 16px)",margin:`${e.marginXS} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:g(g({},Qe(e)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${e.margin*2}px)`,margin:"0 auto",paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.modalHeadingColor,fontWeight:e.fontWeightStrong,fontSize:e.modalHeaderTitleFontSize,lineHeight:e.modalHeaderTitleLineHeight,wordWrap:"break-word"},[`${t}-content`]:{position:"relative",backgroundColor:e.modalContentBg,backgroundClip:"padding-box",border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadowSecondary,pointerEvents:"auto",padding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`},[`${t}-close`]:g({position:"absolute",top:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,insetInlineEnd:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,zIndex:e.zIndexPopupBase+10,padding:0,color:e.modalCloseColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:e.borderRadiusSM,width:e.modalConfirmIconSize,height:e.modalConfirmIconSize,border:0,outline:0,cursor:"pointer",transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:"block",fontSize:e.fontSizeLG,fontStyle:"normal",lineHeight:`${e.modalCloseBtnSize}px`,textAlign:"center",textTransform:"none",textRendering:"auto"},"&:hover":{color:e.modalIconHoverColor,backgroundColor:e.wireframe?"transparent":e.colorFillContent,textDecoration:"none"},"&:active":{backgroundColor:e.wireframe?"transparent":e.colorFillContentHover}},zo(e)),[`${t}-header`]:{color:e.colorText,background:e.modalHeaderBg,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,marginBottom:e.marginXS},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:"break-word"},[`${t}-footer`]:{textAlign:"end",background:e.modalFooterBg,marginTop:e.marginSM,[`${e.antCls}-btn + ${e.antCls}-btn:not(${e.antCls}-dropdown-trigger)`]:{marginBottom:0,marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:"hidden"}})},{[`${t}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${t}-content, + ${t}-body, + ${t}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${t}-confirm-body`]:{marginBottom:"auto"}}}]},oU=e=>{const{componentCls:t}=e,n=`${t}-confirm`;return{[n]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${n}-body-wrapper`]:g({},so()),[`${n}-body`]:{display:"flex",flexWrap:"wrap",alignItems:"center",[`${n}-title`]:{flex:"0 0 100%",display:"block",overflow:"hidden",color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.modalHeaderTitleFontSize,lineHeight:e.modalHeaderTitleLineHeight,[`+ ${n}-content`]:{marginBlockStart:e.marginXS,flexBasis:"100%",maxWidth:`calc(100% - ${e.modalConfirmIconSize+e.marginSM}px)`}},[`${n}-content`]:{color:e.colorText,fontSize:e.fontSize},[`> ${e.iconCls}`]:{flex:"none",marginInlineEnd:e.marginSM,fontSize:e.modalConfirmIconSize,[`+ ${n}-title`]:{flex:1},[`+ ${n}-title + ${n}-content`]:{marginInlineStart:e.modalConfirmIconSize+e.marginSM}}},[`${n}-btns`]:{textAlign:"end",marginTop:e.marginSM,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${n}-error ${n}-body > ${e.iconCls}`]:{color:e.colorError},[`${n}-warning ${n}-body > ${e.iconCls}, + ${n}-confirm ${n}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${n}-info ${n}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${n}-success ${n}-body > ${e.iconCls}`]:{color:e.colorSuccess},[`${t}-zoom-leave ${t}-btns`]:{pointerEvents:"none"}}},rU=e=>{const{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl",[`${t}-confirm-body`]:{direction:"rtl"}}}}},lU=e=>{const{componentCls:t,antCls:n}=e,o=`${t}-confirm`;return{[t]:{[`${t}-content`]:{padding:0},[`${t}-header`]:{padding:e.modalHeaderPadding,borderBottom:`${e.modalHeaderBorderWidth}px ${e.modalHeaderBorderStyle} ${e.modalHeaderBorderColorSplit}`,marginBottom:0},[`${t}-body`]:{padding:e.modalBodyPadding},[`${t}-footer`]:{padding:`${e.modalFooterPaddingVertical}px ${e.modalFooterPaddingHorizontal}px`,borderTop:`${e.modalFooterBorderWidth}px ${e.modalFooterBorderStyle} ${e.modalFooterBorderColorSplit}`,borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`,marginTop:0}},[o]:{[`${n}-modal-body`]:{padding:`${e.padding*2}px ${e.padding*2}px ${e.paddingLG}px`},[`${o}-body`]:{[`> ${e.iconCls}`]:{marginInlineEnd:e.margin,[`+ ${o}-title + ${o}-content`]:{marginInlineStart:e.modalConfirmIconSize+e.margin}}},[`${o}-btns`]:{marginTop:e.marginLG}}}},aU=Je("Modal",e=>{const t=e.padding,n=e.fontSizeHeading5,o=e.lineHeightHeading5,r=Le(e,{modalBodyPadding:e.paddingLG,modalHeaderBg:e.colorBgElevated,modalHeaderPadding:`${t}px ${e.paddingLG}px`,modalHeaderBorderWidth:e.lineWidth,modalHeaderBorderStyle:e.lineType,modalHeaderTitleLineHeight:o,modalHeaderTitleFontSize:n,modalHeaderBorderColorSplit:e.colorSplit,modalHeaderCloseSize:o*n+t*2,modalContentBg:e.colorBgElevated,modalHeadingColor:e.colorTextHeading,modalCloseColor:e.colorTextDescription,modalFooterBg:"transparent",modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterPaddingVertical:e.paddingXS,modalFooterPaddingHorizontal:e.padding,modalFooterBorderWidth:e.lineWidth,modalConfirmTitleFontSize:e.fontSizeLG,modalIconHoverColor:e.colorIconHover,modalConfirmIconSize:e.fontSize*e.lineHeight,modalCloseBtnSize:e.controlHeightLG*.55});return[nU(r),oU(r),rU(r),sO(r),e.wireframe&&lU(r),oa(r,"zoom")]}),bp=e=>({position:e||"absolute",inset:0}),iU=e=>{const{iconCls:t,motionDurationSlow:n,paddingXXS:o,marginXXS:r,prefixCls:l}=e;return{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",background:new ut("#000").setAlpha(.5).toRgbString(),cursor:"pointer",opacity:0,transition:`opacity ${n}`,[`.${l}-mask-info`]:g(g({},Xt),{padding:`0 ${o}px`,[t]:{marginInlineEnd:r,svg:{verticalAlign:"baseline"}}})}},sU=e=>{const{previewCls:t,modalMaskBg:n,paddingSM:o,previewOperationColorDisabled:r,motionDurationSlow:l}=e,a=new ut(n).setAlpha(.1),i=a.clone().setAlpha(.2);return{[`${t}-operations`]:g(g({},Qe(e)),{display:"flex",flexDirection:"row-reverse",alignItems:"center",color:e.previewOperationColor,listStyle:"none",background:a.toRgbString(),pointerEvents:"auto","&-operation":{marginInlineStart:o,padding:o,cursor:"pointer",transition:`all ${l}`,userSelect:"none","&:hover":{background:i.toRgbString()},"&-disabled":{color:r,pointerEvents:"none"},"&:last-of-type":{marginInlineStart:0}},"&-progress":{position:"absolute",left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%)"},"&-icon":{fontSize:e.previewOperationSize}})}},cU=e=>{const{modalMaskBg:t,iconCls:n,previewOperationColorDisabled:o,previewCls:r,zIndexPopup:l,motionDurationSlow:a}=e,i=new ut(t).setAlpha(.1),s=i.clone().setAlpha(.2);return{[`${r}-switch-left, ${r}-switch-right`]:{position:"fixed",insetBlockStart:"50%",zIndex:l+1,display:"flex",alignItems:"center",justifyContent:"center",width:e.imagePreviewSwitchSize,height:e.imagePreviewSwitchSize,marginTop:-e.imagePreviewSwitchSize/2,color:e.previewOperationColor,background:i.toRgbString(),borderRadius:"50%",transform:"translateY(-50%)",cursor:"pointer",transition:`all ${a}`,pointerEvents:"auto",userSelect:"none","&:hover":{background:s.toRgbString()},"&-disabled":{"&, &:hover":{color:o,background:"transparent",cursor:"not-allowed",[`> ${n}`]:{cursor:"not-allowed"}}},[`> ${n}`]:{fontSize:e.previewOperationSize}},[`${r}-switch-left`]:{insetInlineStart:e.marginSM},[`${r}-switch-right`]:{insetInlineEnd:e.marginSM}}},uU=e=>{const{motionEaseOut:t,previewCls:n,motionDurationSlow:o,componentCls:r}=e;return[{[`${r}-preview-root`]:{[n]:{height:"100%",textAlign:"center",pointerEvents:"none"},[`${n}-body`]:g(g({},bp()),{overflow:"hidden"}),[`${n}-img`]:{maxWidth:"100%",maxHeight:"100%",verticalAlign:"middle",transform:"scale3d(1, 1, 1)",cursor:"grab",transition:`transform ${o} ${t} 0s`,userSelect:"none",pointerEvents:"auto","&-wrapper":g(g({},bp()),{transition:`transform ${o} ${t} 0s`,display:"flex",justifyContent:"center",alignItems:"center","&::before":{display:"inline-block",width:1,height:"50%",marginInlineEnd:-1,content:'""'}})},[`${n}-moving`]:{[`${n}-preview-img`]:{cursor:"grabbing","&-wrapper":{transitionDuration:"0s"}}}}},{[`${r}-preview-root`]:{[`${n}-wrap`]:{zIndex:e.zIndexPopup}}},{[`${r}-preview-operations-wrapper`]:{position:"fixed",insetBlockStart:0,insetInlineEnd:0,zIndex:e.zIndexPopup+1,width:"100%"},"&":[sU(e),cU(e)]}]},dU=e=>{const{componentCls:t}=e;return{[t]:{position:"relative",display:"inline-block",[`${t}-img`]:{width:"100%",height:"auto",verticalAlign:"middle"},[`${t}-img-placeholder`]:{backgroundColor:e.colorBgContainerDisabled,backgroundImage:"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"30%"},[`${t}-mask`]:g({},iU(e)),[`${t}-mask:hover`]:{opacity:1},[`${t}-placeholder`]:g({},bp())}}},fU=e=>{const{previewCls:t}=e;return{[`${t}-root`]:oa(e,"zoom"),"&":tg(e,!0)}},cO=Je("Image",e=>{const t=`${e.componentCls}-preview`,n=Le(e,{previewCls:t,modalMaskBg:new ut("#000").setAlpha(.45).toRgbString(),imagePreviewSwitchSize:e.controlHeightLG});return[dU(n),uU(n),sO(Le(n,{componentCls:t})),fU(n)]},e=>({zIndexPopup:e.zIndexPopupBase+80,previewOperationColor:new ut(e.colorTextLightSolid).toRgbString(),previewOperationColorDisabled:new ut(e.colorTextLightSolid).setAlpha(.25).toRgbString(),previewOperationSize:e.fontSizeIcon*1.5})),uO={rotateLeft:f(zX,null,null),rotateRight:f(WX,null,null),zoomIn:f(UX,null,null),zoomOut:f(ZX,null,null),close:f(Qn,null,null),left:f(dr,null,null),right:f(So,null,null),flipX:f(z1,null,null),flipY:f(z1,{rotate:90},null)},pU=()=>({previewPrefixCls:String,preview:It()}),vU=te({compatConfig:{MODE:3},name:"AImagePreviewGroup",inheritAttrs:!1,props:pU(),setup(e,t){let{attrs:n,slots:o}=t;const{prefixCls:r,rootPrefixCls:l}=Me("image",e),a=P(()=>`${r.value}-preview`),[i,s]=cO(r),u=P(()=>{const{preview:c}=e;if(c===!1)return c;const d=typeof c=="object"?c:{};return g(g({},d),{rootClassName:s.value,transitionName:on(l.value,"zoom",d.transitionName),maskTransitionName:on(l.value,"fade",d.maskTransitionName)})});return()=>i(f(oO,F(F({},g(g({},n),e)),{},{preview:u.value,icons:uO,previewPrefixCls:a.value}),o))}}),gU=vU,_r=te({name:"AImage",inheritAttrs:!1,props:lO(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,rootPrefixCls:l,configProvider:a}=Me("image",e),[i,s]=cO(r),u=P(()=>{const{preview:c}=e;if(c===!1)return c;const d=typeof c=="object"?c:{};return g(g({icons:uO},d),{transitionName:on(l.value,"zoom",d.transitionName),maskTransitionName:on(l.value,"fade",d.maskTransitionName)})});return()=>{var c,d;const p=((d=(c=a.locale)===null||c===void 0?void 0:c.value)===null||d===void 0?void 0:d.Image)||xn.Image,v=()=>f("div",{class:`${r.value}-mask-info`},[f(vm,null,null),p==null?void 0:p.preview]),{previewMask:y=n.previewMask||v}=e;return i(f(NX,F(F({},g(g(g({},o),e),{prefixCls:r.value})),{},{preview:u.value,rootClassName:ne(e.rootClassName,s.value)}),g(g({},n),{previewMask:typeof y=="function"?y:null})))}}});_r.PreviewGroup=gU;_r.install=function(e){return e.component(_r.name,_r),e.component(_r.PreviewGroup.name,_r.PreviewGroup),e};const _le=_r;var mU={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"};const hU=mU;function j1(e){for(var t=1;tNumber.MAX_SAFE_INTEGER)return String(yp()?BigInt(e).toString():Number.MAX_SAFE_INTEGER);if(eNumber.MAX_SAFE_INTEGER)return new Dr(Number.MAX_SAFE_INTEGER);if(o0&&arguments[0]!==void 0?arguments[0]:!0)?this.isInvalidate()?"":wm(this.number):this.origin}}class ml{constructor(t){if(this.origin="",dO(t)){this.empty=!0;return}if(this.origin=String(t),t==="-"||Number.isNaN(t)){this.nan=!0;return}let n=t;if(xm(n)&&(n=Number(n)),n=typeof n=="string"?n:wm(n),Om(n)){const o=ka(n);this.negative=o.negative;const r=o.trimStr.split(".");this.integer=BigInt(r[0]);const l=r[1]||"0";this.decimal=BigInt(l),this.decimalLen=l.length}else this.nan=!0}getMark(){return this.negative?"-":""}getIntegerStr(){return this.integer.toString()}getDecimalStr(){return this.decimal.toString().padStart(this.decimalLen,"0")}alignDecimal(t){const n=`${this.getMark()}${this.getIntegerStr()}${this.getDecimalStr().padEnd(t,"0")}`;return BigInt(n)}negate(){const t=new ml(this.toString());return t.negative=!t.negative,t}add(t){if(this.isInvalidate())return new ml(t);const n=new ml(t);if(n.isInvalidate())return this;const o=Math.max(this.getDecimalStr().length,n.getDecimalStr().length),r=this.alignDecimal(o),l=n.alignDecimal(o),a=(r+l).toString(),{negativeStr:i,trimStr:s}=ka(a),u=`${i}${s.padStart(o+1,"0")}`;return new ml(`${u.slice(0,-o)}.${u.slice(-o)}`)}isEmpty(){return this.empty}isNaN(){return this.nan}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(t){return this.toString()===(t==null?void 0:t.toString())}lessEquals(t){return this.add(t.negate().toString()).toNumber()<=0}toNumber(){return this.isNaN()?NaN:Number(this.toString())}toString(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)?this.isInvalidate()?"":ka(`${this.getMark()}${this.getIntegerStr()}.${this.getDecimalStr()}`).fullStr:this.origin}}function vo(e){return yp()?new ml(e):new Dr(e)}function $p(e,t,n){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e==="")return"";const{negativeStr:r,integerStr:l,decimalStr:a}=ka(e),i=`${t}${a}`,s=`${r}${l}`;if(n>=0){const u=Number(a[n]);if(u>=5&&!o){const c=vo(e).add(`${r}0.${"0".repeat(n)}${10-u}`);return $p(c.toString(),t,n,o)}return n===0?s:`${s}${t}${a.padEnd(n,"0").slice(0,n)}`}return i===".0"?s:`${s}${i}`}const $U=200,SU=600,CU=te({compatConfig:{MODE:3},name:"StepHandler",inheritAttrs:!1,props:{prefixCls:String,upDisabled:Boolean,downDisabled:Boolean,onStep:ce()},slots:Object,setup(e,t){let{slots:n,emit:o}=t;const r=ee(),l=(i,s)=>{i.preventDefault(),o("step",s);function u(){o("step",s),r.value=setTimeout(u,$U)}r.value=setTimeout(u,SU)},a=()=>{clearTimeout(r.value)};return Ze(()=>{a()}),()=>{if(Fv())return null;const{prefixCls:i,upDisabled:s,downDisabled:u}=e,c=`${i}-handler`,d=ne(c,`${c}-up`,{[`${c}-up-disabled`]:s}),p=ne(c,`${c}-down`,{[`${c}-down-disabled`]:u}),v={unselectable:"on",role:"button",onMouseup:a,onMouseleave:a},{upNode:y,downNode:m}=n;return f("div",{class:`${c}-wrap`},[f("span",F(F({},v),{},{onMousedown:h=>{l(h,!0)},"aria-label":"Increase Value","aria-disabled":s,class:d}),[(y==null?void 0:y())||f("span",{unselectable:"on",class:`${i}-handler-up-inner`},null)]),f("span",F(F({},v),{},{onMousedown:h=>{l(h,!1)},"aria-label":"Decrease Value","aria-disabled":u,class:p}),[(m==null?void 0:m())||f("span",{unselectable:"on",class:`${i}-handler-down-inner`},null)])])}}});function xU(e,t){const n=ee(null);function o(){try{const{selectionStart:l,selectionEnd:a,value:i}=e.value,s=i.substring(0,l),u=i.substring(a);n.value={start:l,end:a,value:i,beforeTxt:s,afterTxt:u}}catch(l){}}function r(){if(e.value&&n.value&&t.value)try{const{value:l}=e.value,{beforeTxt:a,afterTxt:i,start:s}=n.value;let u=l.length;if(l.endsWith(i))u=l.length-n.value.afterTxt.length;else if(l.startsWith(a))u=a.length;else{const c=a[s-1],d=l.indexOf(c,s-1);d!==-1&&(u=d+1)}e.value.setSelectionRange(u,u)}catch(l){`${l.message}`}}return[o,r]}const wU=()=>{const e=q(0),t=()=>{He.cancel(e.value)};return Ze(()=>{t()}),n=>{t(),e.value=He(()=>{n()})}};var OU=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re||t.isEmpty()?t.toString():t.toNumber(),W1=e=>{const t=vo(e);return t.isInvalidate()?null:t},fO=()=>({stringMode:xe(),defaultValue:Xe([String,Number]),value:Xe([String,Number]),prefixCls:je(),min:Xe([String,Number]),max:Xe([String,Number]),step:Xe([String,Number],1),tabindex:Number,controls:xe(!0),readonly:xe(),disabled:xe(),autofocus:xe(),keyboard:xe(!0),parser:ce(),formatter:ce(),precision:Number,decimalSeparator:String,onInput:ce(),onChange:ce(),onPressEnter:ce(),onStep:ce(),onBlur:ce(),onFocus:ce()}),PU=te({compatConfig:{MODE:3},name:"InnerInputNumber",inheritAttrs:!1,props:g(g({},fO()),{lazy:Boolean}),slots:Object,setup(e,t){let{attrs:n,slots:o,emit:r,expose:l}=t;const a=q(),i=q(!1),s=q(!1),u=q(!1),c=q(vo(e.value));function d(L){e.value===void 0&&(c.value=L)}const p=(L,j)=>{if(!j)return e.precision>=0?e.precision:Math.max(ri(L),ri(e.step))},v=L=>{const j=String(L);if(e.parser)return e.parser(j);let G=j;return e.decimalSeparator&&(G=G.replace(e.decimalSeparator,".")),G.replace(/[^\w.-]+/g,"")},y=q(""),m=(L,j)=>{if(e.formatter)return e.formatter(L,{userTyping:j,input:String(y.value)});let G=typeof L=="number"?wm(L):L;if(!j){const U=p(G,j);if(Om(G)&&(e.decimalSeparator||U>=0)){const K=e.decimalSeparator||".";G=$p(G,K,U)}}return G},h=(()=>{const L=e.value;return c.value.isInvalidate()&&["string","number"].includes(typeof L)?Number.isNaN(L)?"":L:m(c.value.toString(),!1)})();y.value=h;function b(L,j){y.value=m(L.isInvalidate()?L.toString(!1):L.toString(!j),j)}const $=P(()=>W1(e.max)),C=P(()=>W1(e.min)),w=P(()=>!$.value||!c.value||c.value.isInvalidate()?!1:$.value.lessEquals(c.value)),S=P(()=>!C.value||!c.value||c.value.isInvalidate()?!1:c.value.lessEquals(C.value)),[O,x]=xU(a,i),I=L=>$.value&&!L.lessEquals($.value)?$.value:C.value&&!C.value.lessEquals(L)?C.value:null,E=L=>!I(L),M=(L,j)=>{var G;let U=L,K=E(U)||U.isEmpty();if(!U.isEmpty()&&!j&&(U=I(U)||U,K=!0),!e.readonly&&!e.disabled&&K){const Y=U.toString(),Q=p(Y,j);return Q>=0&&(U=vo($p(Y,".",Q))),U.equals(c.value)||(d(U),(G=e.onChange)===null||G===void 0||G.call(e,U.isEmpty()?null:V1(e.stringMode,U)),e.value===void 0&&b(U,j)),U}return c.value},_=wU(),z=L=>{var j;if(O(),y.value=L,!u.value){const G=v(L),U=vo(G);U.isNaN()||M(U,!0)}(j=e.onInput)===null||j===void 0||j.call(e,L),_(()=>{let G=L;e.parser||(G=L.replace(/。/g,".")),G!==L&&z(G)})},R=()=>{u.value=!0},H=()=>{u.value=!1,z(a.value.value)},T=L=>{z(L.target.value)},D=L=>{var j,G;if(L&&w.value||!L&&S.value)return;s.value=!1;let U=vo(e.step);L||(U=U.negate());const K=(c.value||vo(0)).add(U.toString()),Y=M(K,!1);(j=e.onStep)===null||j===void 0||j.call(e,V1(e.stringMode,Y),{offset:e.step,type:L?"up":"down"}),(G=a.value)===null||G===void 0||G.focus()},A=L=>{const j=vo(v(y.value));let G=j;j.isNaN()?G=c.value:G=M(j,L),e.value!==void 0?b(c.value,!1):G.isNaN()||b(G,!1)},B=L=>{var j;const{which:G}=L;s.value=!0,G===Se.ENTER&&(u.value||(s.value=!1),A(!1),(j=e.onPressEnter)===null||j===void 0||j.call(e,L)),e.keyboard!==!1&&!u.value&&[Se.UP,Se.DOWN].includes(G)&&(D(Se.UP===G),L.preventDefault())},N=()=>{s.value=!1},k=L=>{A(!1),i.value=!1,s.value=!1,r("blur",L)};return ue(()=>e.precision,()=>{c.value.isInvalidate()||b(c.value,!1)},{flush:"post"}),ue(()=>e.value,()=>{const L=vo(e.value);c.value=L;const j=vo(v(y.value));(!L.equals(j)||!s.value||e.formatter)&&b(L,s.value)},{flush:"post"}),ue(y,()=>{e.formatter&&x()},{flush:"post"}),ue(()=>e.disabled,L=>{L&&(i.value=!1)}),l({focus:()=>{var L;(L=a.value)===null||L===void 0||L.focus()},blur:()=>{var L;(L=a.value)===null||L===void 0||L.blur()}}),()=>{const L=g(g({},n),e),{prefixCls:j="rc-input-number",min:G,max:U,step:K=1,defaultValue:Y,value:Q,disabled:J,readonly:Z,keyboard:W,controls:X=!0,autofocus:re,stringMode:ae,parser:pe,formatter:ye,precision:de,decimalSeparator:me,onChange:ie,onInput:se,onPressEnter:be,onStep:we,lazy:ve,class:Ce,style:Te}=L,le=OU(L,["prefixCls","min","max","step","defaultValue","value","disabled","readonly","keyboard","controls","autofocus","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep","lazy","class","style"]),{upHandler:oe,downHandler:fe}=o,Oe=`${j}-input`,Ie={};return ve?Ie.onChange=T:Ie.onInput=T,f("div",{class:ne(j,Ce,{[`${j}-focused`]:i.value,[`${j}-disabled`]:J,[`${j}-readonly`]:Z,[`${j}-not-a-number`]:c.value.isNaN(),[`${j}-out-of-range`]:!c.value.isInvalidate()&&!E(c.value)}),style:Te,onKeydown:B,onKeyup:N},[X&&f(CU,{prefixCls:j,upDisabled:w.value,downDisabled:S.value,onStep:D},{upNode:oe,downNode:fe}),f("div",{class:`${Oe}-wrap`},[f("input",F(F(F({autofocus:re,autocomplete:"off",role:"spinbutton","aria-valuemin":G,"aria-valuemax":U,"aria-valuenow":c.value.isInvalidate()?null:c.value.toString(),step:K},le),{},{ref:a,class:Oe,value:y.value,disabled:J,readonly:Z,onFocus:Ae=>{i.value=!0,r("focus",Ae)}},Ie),{},{onBlur:k,onCompositionstart:R,onCompositionend:H}),null)])])}}});function Pd(e){return e!=null}const IU=e=>{const{componentCls:t,lineWidth:n,lineType:o,colorBorder:r,borderRadius:l,fontSizeLG:a,controlHeightLG:i,controlHeightSM:s,colorError:u,inputPaddingHorizontalSM:c,colorTextDescription:d,motionDurationMid:p,colorPrimary:v,controlHeight:y,inputPaddingHorizontal:m,colorBgContainer:h,colorTextDisabled:b,borderRadiusSM:$,borderRadiusLG:C,controlWidth:w,handleVisible:S}=e;return[{[t]:g(g(g(g({},Qe(e)),sa(e)),Qc(e,t)),{display:"inline-block",width:w,margin:0,padding:0,border:`${n}px ${o} ${r}`,borderRadius:l,"&-rtl":{direction:"rtl",[`${t}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:a,borderRadius:C,[`input${t}-input`]:{height:i-2*n}},"&-sm":{padding:0,borderRadius:$,[`input${t}-input`]:{height:s-2*n,padding:`0 ${c}px`}},"&:hover":g({},ia(e)),"&-focused":g({},Gr(e)),"&-disabled":g(g({},C4(e)),{[`${t}-input`]:{cursor:"not-allowed"}}),"&-out-of-range":{input:{color:u}},"&-group":g(g(g({},Qe(e)),w4(e)),{"&-wrapper":{display:"inline-block",textAlign:"start",verticalAlign:"top",[`${t}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${t}-group-addon`]:{borderRadius:C}},"&-sm":{[`${t}-group-addon`]:{borderRadius:$}}}}),[t]:{"&-input":g(g({width:"100%",height:y-2*n,padding:`0 ${m}px`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:l,outline:0,transition:`all ${p} linear`,appearance:"textfield",color:e.colorText,fontSize:"inherit",verticalAlign:"top"},S4(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:"none",appearance:"none"}})}})},{[t]:{[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{opacity:1},[`${t}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:e.handleWidth,height:"100%",background:h,borderStartStartRadius:0,borderStartEndRadius:l,borderEndEndRadius:l,borderEndStartRadius:0,opacity:S===!0?1:0,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`opacity ${p} linear ${p}`,[`${t}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:"50%",overflow:"hidden",color:d,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${n}px ${o} ${r}`,transition:`all ${p} linear`,"&:active":{background:e.colorFillAlter},"&:hover":{height:"60%",[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{color:v}},"&-up-inner, &-down-inner":g(g({},Jl()),{color:d,transition:`all ${p} linear`,userSelect:"none"})},[`${t}-handler-up`]:{borderStartEndRadius:l},[`${t}-handler-down`]:{borderBlockStart:`${n}px ${o} ${r}`,borderEndEndRadius:l},"&-disabled, &-readonly":{[`${t}-handler-wrap`]:{display:"none"}},[` + ${t}-handler-up-disabled, + ${t}-handler-down-disabled + `]:{cursor:"not-allowed"},[` + ${t}-handler-up-disabled:hover &-handler-up-inner, + ${t}-handler-down-disabled:hover &-handler-down-inner + `]:{color:b}}},{[`${t}-borderless`]:{borderColor:"transparent",boxShadow:"none",[`${t}-handler-down`]:{borderBlockStartWidth:0}}}]},TU=e=>{const{componentCls:t,inputPaddingHorizontal:n,inputAffixPadding:o,controlWidth:r,borderRadiusLG:l,borderRadiusSM:a}=e;return{[`${t}-affix-wrapper`]:g(g(g({},sa(e)),Qc(e,`${t}-affix-wrapper`)),{position:"relative",display:"inline-flex",width:r,padding:0,paddingInlineStart:n,"&-lg":{borderRadius:l},"&-sm":{borderRadius:a},[`&:not(${t}-affix-wrapper-disabled):hover`]:g(g({},ia(e)),{zIndex:1}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:"transparent"}},[`> div${t}`]:{width:"100%",border:"none",outline:"none",[`&${t}-focused`]:{boxShadow:"none !important"}},[`input${t}-input`]:{padding:0},"&::before":{width:0,visibility:"hidden",content:'"\\a0"'},[`${t}-handler-wrap`]:{zIndex:2},[t]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:o},"&-suffix":{position:"absolute",insetBlockStart:0,insetInlineEnd:0,zIndex:1,height:"100%",marginInlineEnd:n,marginInlineStart:o}}})}},EU=Je("InputNumber",e=>{const t=bi(e);return[IU(t),TU(t),ra(t)]},e=>({controlWidth:90,handleWidth:e.controlHeightSM-e.lineWidth*2,handleFontSize:e.fontSize/2,handleVisible:"auto"}));var MU=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rg(g({},K1),{size:je(),bordered:xe(!0),placeholder:String,name:String,id:String,type:String,addonBefore:V.any,addonAfter:V.any,prefix:V.any,"onUpdate:value":K1.onChange,valueModifiers:Object,status:je()}),Id=te({compatConfig:{MODE:3},name:"AInputNumber",inheritAttrs:!1,props:_U(),slots:Object,setup(e,t){let{emit:n,expose:o,attrs:r,slots:l}=t;var a;const i=Lt(),s=rn.useInject(),u=P(()=>wo(s.status,e.status)),{prefixCls:c,size:d,direction:p,disabled:v}=Me("input-number",e),{compactSize:y,compactItemClassnames:m}=pr(c,p),h=Cn(),b=P(()=>{var R;return(R=v.value)!==null&&R!==void 0?R:h.value}),[$,C]=EU(c),w=P(()=>y.value||d.value),S=q((a=e.value)!==null&&a!==void 0?a:e.defaultValue),O=q(!1);ue(()=>e.value,()=>{S.value=e.value});const x=q(null),I=()=>{var R;(R=x.value)===null||R===void 0||R.focus()};o({focus:I,blur:()=>{var R;(R=x.value)===null||R===void 0||R.blur()}});const M=R=>{e.value===void 0&&(S.value=R),n("update:value",R),n("change",R),i.onFieldChange()},_=R=>{O.value=!1,n("blur",R),i.onFieldBlur()},z=R=>{O.value=!0,n("focus",R)};return()=>{var R,H,T,D;const{hasFeedback:A,isFormItemInput:B,feedbackIcon:N}=s,k=(R=e.id)!==null&&R!==void 0?R:i.id.value,L=g(g(g({},r),e),{id:k,disabled:b.value}),{class:j,bordered:G,readonly:U,style:K,addonBefore:Y=(H=l.addonBefore)===null||H===void 0?void 0:H.call(l),addonAfter:Q=(T=l.addonAfter)===null||T===void 0?void 0:T.call(l),prefix:J=(D=l.prefix)===null||D===void 0?void 0:D.call(l),valueModifiers:Z={}}=L,W=MU(L,["class","bordered","readonly","style","addonBefore","addonAfter","prefix","valueModifiers"]),X=c.value,re=ne({[`${X}-lg`]:w.value==="large",[`${X}-sm`]:w.value==="small",[`${X}-rtl`]:p.value==="rtl",[`${X}-readonly`]:U,[`${X}-borderless`]:!G,[`${X}-in-form-item`]:B},bn(X,u.value),j,m.value,C.value);let ae=f(PU,F(F({},tt(W,["size","defaultValue"])),{},{ref:x,lazy:!!Z.lazy,value:S.value,class:re,prefixCls:X,readonly:U,onChange:M,onBlur:_,onFocus:z}),{upHandler:l.upIcon?()=>f("span",{class:`${X}-handler-up-inner`},[l.upIcon()]):()=>f(yU,{class:`${X}-handler-up-inner`},null),downHandler:l.downIcon?()=>f("span",{class:`${X}-handler-down-inner`},[l.downIcon()]):()=>f(vi,{class:`${X}-handler-down-inner`},null)});const pe=Pd(Y)||Pd(Q),ye=Pd(J);if(ye||A){const de=ne(`${X}-affix-wrapper`,bn(`${X}-affix-wrapper`,u.value,A),{[`${X}-affix-wrapper-focused`]:O.value,[`${X}-affix-wrapper-disabled`]:b.value,[`${X}-affix-wrapper-sm`]:w.value==="small",[`${X}-affix-wrapper-lg`]:w.value==="large",[`${X}-affix-wrapper-rtl`]:p.value==="rtl",[`${X}-affix-wrapper-readonly`]:U,[`${X}-affix-wrapper-borderless`]:!G,[`${j}`]:!pe&&j},C.value);ae=f("div",{class:de,style:K,onClick:I},[ye&&f("span",{class:`${X}-prefix`},[J]),ae,A&&f("span",{class:`${X}-suffix`},[N])])}if(pe){const de=`${X}-group`,me=`${de}-addon`,ie=Y?f("div",{class:me},[Y]):null,se=Q?f("div",{class:me},[Q]):null,be=ne(`${X}-wrapper`,de,{[`${de}-rtl`]:p.value==="rtl"},C.value),we=ne(`${X}-group-wrapper`,{[`${X}-group-wrapper-sm`]:w.value==="small",[`${X}-group-wrapper-lg`]:w.value==="large",[`${X}-group-wrapper-rtl`]:p.value==="rtl"},bn(`${c}-group-wrapper`,u.value,A),j,C.value);ae=f("div",{class:we,style:K},[f("div",{class:be},[ie&&f(ei,null,{default:()=>[f(Vs,null,{default:()=>[ie]})]}),ae,se&&f(ei,null,{default:()=>[f(Vs,null,{default:()=>[se]})]})])])}return $(gt(ae,{style:K}))}}}),Dle=g(Id,{install:e=>(e.component(Id.name,Id),e)}),DU=e=>{const{componentCls:t,colorBgContainer:n,colorBgBody:o,colorText:r}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:r,background:n},[`${t}-sider-zero-width-trigger`]:{color:r,background:n,border:`1px solid ${o}`,borderInlineStart:0}}}},AU=DU,RU=e=>{const{antCls:t,componentCls:n,colorText:o,colorTextLightSolid:r,colorBgHeader:l,colorBgBody:a,colorBgTrigger:i,layoutHeaderHeight:s,layoutHeaderPaddingInline:u,layoutHeaderColor:c,layoutFooterPadding:d,layoutTriggerHeight:p,layoutZeroTriggerSize:v,motionDurationMid:y,motionDurationSlow:m,fontSize:h,borderRadius:b}=e;return{[n]:g(g({display:"flex",flex:"auto",flexDirection:"column",color:o,minHeight:0,background:a,"&, *":{boxSizing:"border-box"},[`&${n}-has-sider`]:{flexDirection:"row",[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:"0 0 auto"},[`${n}-header`]:{height:s,paddingInline:u,color:c,lineHeight:`${s}px`,background:l,[`${t}-menu`]:{lineHeight:"inherit"}},[`${n}-footer`]:{padding:d,color:o,fontSize:h,background:a},[`${n}-content`]:{flex:"auto",minHeight:0},[`${n}-sider`]:{position:"relative",minWidth:0,background:l,transition:`all ${y}, background 0s`,"&-children":{height:"100%",marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:"auto"}},"&-has-trigger":{paddingBottom:p},"&-right":{order:1},"&-trigger":{position:"fixed",bottom:0,zIndex:1,height:p,color:r,lineHeight:`${p}px`,textAlign:"center",background:i,cursor:"pointer",transition:`all ${y}`},"&-zero-width":{"> *":{overflow:"hidden"},"&-trigger":{position:"absolute",top:s,insetInlineEnd:-v,zIndex:1,width:v,height:v,color:r,fontSize:e.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:l,borderStartStartRadius:0,borderStartEndRadius:b,borderEndEndRadius:b,borderEndStartRadius:0,cursor:"pointer",transition:`background ${m} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${m}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:-v,borderStartStartRadius:b,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:b}}}}},AU(e)),{"&-rtl":{direction:"rtl"}})}},BU=Je("Layout",e=>{const{colorText:t,controlHeightSM:n,controlHeight:o,controlHeightLG:r,marginXXS:l}=e,a=r*1.25,i=Le(e,{layoutHeaderHeight:o*2,layoutHeaderPaddingInline:a,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${a}px`,layoutTriggerHeight:r+l*2,layoutZeroTriggerSize:r});return[RU(i)]},e=>{const{colorBgLayout:t}=e;return{colorBgHeader:"#001529",colorBgBody:t,colorBgTrigger:"#002140"}}),Pm=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function du(e){let{suffixCls:t,tagName:n,name:o}=e;return r=>te({compatConfig:{MODE:3},name:o,props:Pm(),setup(a,i){let{slots:s}=i;const{prefixCls:u}=Me(t,a);return()=>{const c=g(g({},a),{prefixCls:u.value,tagName:n});return f(r,c,s)}}})}const Im=te({compatConfig:{MODE:3},props:Pm(),setup(e,t){let{slots:n}=t;return()=>f(e.tagName,{class:e.prefixCls},n)}}),NU=te({compatConfig:{MODE:3},inheritAttrs:!1,props:Pm(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("",e),[a,i]=BU(r),s=ee([]);We(Rw,{addSider:d=>{s.value=[...s.value,d]},removeSider:d=>{s.value=s.value.filter(p=>p!==d)}});const c=P(()=>{const{prefixCls:d,hasSider:p}=e;return{[i.value]:!0,[`${d}`]:!0,[`${d}-has-sider`]:typeof p=="boolean"?p:s.value.length>0,[`${d}-rtl`]:l.value==="rtl"}});return()=>{const{tagName:d}=e;return a(f(d,g(g({},o),{class:[c.value,o.class]}),n))}}}),FU=du({suffixCls:"layout",tagName:"section",name:"ALayout"})(NU),Td=du({suffixCls:"layout-header",tagName:"header",name:"ALayoutHeader"})(Im),Ed=du({suffixCls:"layout-footer",tagName:"footer",name:"ALayoutFooter"})(Im),Md=du({suffixCls:"layout-content",tagName:"main",name:"ALayoutContent"})(Im),_d=FU;var kU={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"};const LU=kU;function G1(e){for(var t=1;t({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:V.any,width:V.oneOfType([V.number,V.string]),collapsedWidth:V.oneOfType([V.number,V.string]),breakpoint:V.oneOf(Sn("xs","sm","md","lg","xl","xxl","xxxl")),theme:V.oneOf(Sn("light","dark")).def("dark"),onBreakpoint:Function,onCollapse:Function}),VU=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return e+=1,`${t}${e}`}})(),Dd=te({compatConfig:{MODE:3},name:"ALayoutSider",inheritAttrs:!1,props:rt(jU(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:["breakpoint","update:collapsed","collapse"],setup(e,t){let{emit:n,attrs:o,slots:r}=t;const{prefixCls:l}=Me("layout-sider",e),a=Ke(Rw,void 0),i=q(!!(e.collapsed!==void 0?e.collapsed:e.defaultCollapsed)),s=q(!1);ue(()=>e.collapsed,()=>{i.value=!!e.collapsed}),We(Aw,i);const u=(m,h)=>{e.collapsed===void 0&&(i.value=m),n("update:collapsed",m),n("collapse",m,h)},c=q(m=>{s.value=m.matches,n("breakpoint",m.matches),i.value!==m.matches&&u(m.matches,"responsive")});let d;function p(m){return c.value(m)}const v=VU("ant-sider-");a&&a.addSider(v),Ve(()=>{ue(()=>e.breakpoint,()=>{try{d==null||d.removeEventListener("change",p)}catch(m){d==null||d.removeListener(p)}if(typeof window!="undefined"){const{matchMedia:m}=window;if(m&&e.breakpoint&&e.breakpoint in X1){d=m(`(max-width: ${X1[e.breakpoint]})`);try{d.addEventListener("change",p)}catch(h){d.addListener(p)}p(d)}}},{immediate:!0})}),Ze(()=>{try{d==null||d.removeEventListener("change",p)}catch(m){d==null||d.removeListener(p)}a&&a.removeSider(v)});const y=()=>{u(!i.value,"clickTrigger")};return()=>{var m,h;const b=l.value,{collapsedWidth:$,width:C,reverseArrow:w,zeroWidthTriggerStyle:S,trigger:O=(m=r.trigger)===null||m===void 0?void 0:m.call(r),collapsible:x,theme:I}=e,E=i.value?$:C,M=Ws(E)?`${E}px`:String(E),_=parseFloat(String($||0))===0?f("span",{onClick:y,class:ne(`${b}-zero-width-trigger`,`${b}-zero-width-trigger-${w?"right":"left"}`),style:S},[O||f(HU,null,null)]):null,z={expanded:w?f(So,null,null):f(dr,null,null),collapsed:w?f(dr,null,null):f(So,null,null)},R=i.value?"collapsed":"expanded",H=z[R],T=O!==null?_||f("div",{class:`${b}-trigger`,onClick:y,style:{width:M}},[O||H]):null,D=[o.style,{flex:`0 0 ${M}`,maxWidth:M,minWidth:M,width:M}],A=ne(b,`${b}-${I}`,{[`${b}-collapsed`]:!!i.value,[`${b}-has-trigger`]:x&&O!==null&&!_,[`${b}-below`]:!!s.value,[`${b}-zero-width`]:parseFloat(M)===0},o.class);return f("aside",F(F({},o),{},{class:A,style:D}),[f("div",{class:`${b}-children`},[(h=r.default)===null||h===void 0?void 0:h.call(r)]),x||s.value&&_?T:null])}}}),Ale=g(_d,{Header:Td,Footer:Ed,Content:Md,Sider:Dd,install:e=>(e.component(_d.name,_d),e.component(Td.name,Td),e.component(Ed.name,Ed),e.component(Dd.name,Dd),e.component(Md.name,Md),e)});function WU(e,t,n){var o=n||{},r=o.noTrailing,l=r===void 0?!1:r,a=o.noLeading,i=a===void 0?!1:a,s=o.debounceMode,u=s===void 0?void 0:s,c,d=!1,p=0;function v(){c&&clearTimeout(c)}function y(h){var b=h||{},$=b.upcomingOnly,C=$===void 0?!1:$;v(),d=!C}function m(){for(var h=arguments.length,b=new Array(h),$=0;$e?i?(p=Date.now(),l||(c=setTimeout(u?O:S,e))):S():l!==!0&&(c=setTimeout(u?O:S,u===void 0?e-w:e))}return m.cancel=y,m}function KU(e,t,n){var o=n||{},r=o.atBegin,l=r===void 0?!1:r;return WU(e,t,{debounceMode:l!==!1})}const GU=new Ue("antSpinMove",{to:{opacity:1}}),XU=new Ue("antRotate",{to:{transform:"rotate(405deg)"}}),UU=e=>({[`${e.componentCls}`]:g(g({},Qe(e)),{position:"absolute",display:"none",color:e.colorPrimary,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"static",display:"inline-block",opacity:1},"&-nested-loading":{position:"relative",[`> div > ${e.componentCls}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${e.componentCls}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:-e.spinDotSize/2},[`${e.componentCls}-text`]:{position:"absolute",top:"50%",width:"100%",paddingTop:(e.spinDotSize-e.fontSize)/2+2,textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSize/2)-10},"&-sm":{[`${e.componentCls}-dot`]:{margin:-e.spinDotSizeSM/2},[`${e.componentCls}-text`]:{paddingTop:(e.spinDotSizeSM-e.fontSize)/2+2},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSizeSM/2)-10}},"&-lg":{[`${e.componentCls}-dot`]:{margin:-(e.spinDotSizeLG/2)},[`${e.componentCls}-text`]:{paddingTop:(e.spinDotSizeLG-e.fontSize)/2+2},[`&${e.componentCls}-show-text ${e.componentCls}-dot`]:{marginTop:-(e.spinDotSizeLG/2)-10}}},[`${e.componentCls}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${e.componentCls}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${e.componentCls}-dot`]:{position:"relative",display:"inline-block",fontSize:e.spinDotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:(e.spinDotSize-e.marginXXS/2)/2,height:(e.spinDotSize-e.marginXXS/2)/2,backgroundColor:e.colorPrimary,borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:GU,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:XU,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&-sm ${e.componentCls}-dot`]:{fontSize:e.spinDotSizeSM,i:{width:(e.spinDotSizeSM-e.marginXXS/2)/2,height:(e.spinDotSizeSM-e.marginXXS/2)/2}},[`&-lg ${e.componentCls}-dot`]:{fontSize:e.spinDotSizeLG,i:{width:(e.spinDotSizeLG-e.marginXXS)/2,height:(e.spinDotSizeLG-e.marginXXS)/2}},[`&${e.componentCls}-show-text ${e.componentCls}-text`]:{display:"block"}})}),YU=Je("Spin",e=>{const t=Le(e,{spinDotDefault:e.colorTextDescription,spinDotSize:e.controlHeightLG/2,spinDotSizeSM:e.controlHeightLG*.35,spinDotSizeLG:e.controlHeight});return[UU(t)]},{contentHeight:400});var qU=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,spinning:{type:Boolean,default:void 0},size:String,wrapperClassName:String,tip:V.any,delay:Number,indicator:V.any});let Cs=null;function ZU(e,t){return!!e&&!!t&&!isNaN(Number(t))}function JU(e){const t=e.indicator;Cs=typeof t=="function"?t:()=>f(t,null,null)}const Tl=te({compatConfig:{MODE:3},name:"ASpin",inheritAttrs:!1,props:rt(QU(),{size:"default",spinning:!0,wrapperClassName:""}),setup(e,t){let{attrs:n,slots:o}=t;const{prefixCls:r,size:l,direction:a}=Me("spin",e),[i,s]=YU(r),u=q(e.spinning&&!ZU(e.spinning,e.delay));let c;return ue([()=>e.spinning,()=>e.delay],()=>{c==null||c.cancel(),c=KU(e.delay,()=>{u.value=e.spinning}),c==null||c()},{immediate:!0,flush:"post"}),Ze(()=>{c==null||c.cancel()}),()=>{var d,p;const{class:v}=n,y=qU(n,["class"]),{tip:m=(d=o.tip)===null||d===void 0?void 0:d.call(o)}=e,h=(p=o.default)===null||p===void 0?void 0:p.call(o),b={[s.value]:!0,[r.value]:!0,[`${r.value}-sm`]:l.value==="small",[`${r.value}-lg`]:l.value==="large",[`${r.value}-spinning`]:u.value,[`${r.value}-show-text`]:!!m,[`${r.value}-rtl`]:a.value==="rtl",[v]:!!v};function $(w){const S=`${w}-dot`;let O=At(o,e,"indicator");return O===null?null:(Array.isArray(O)&&(O=O.length===1?O[0]:O),tn(O)?bo(O,{class:S}):Cs&&tn(Cs())?bo(Cs(),{class:S}):f("span",{class:`${S} ${w}-dot-spin`},[f("i",{class:`${w}-dot-item`},null),f("i",{class:`${w}-dot-item`},null),f("i",{class:`${w}-dot-item`},null),f("i",{class:`${w}-dot-item`},null)]))}const C=f("div",F(F({},y),{},{class:b,"aria-live":"polite","aria-busy":u.value}),[$(r.value),m?f("div",{class:`${r.value}-text`},[m]):null]);if(h&&Ot(h).length){const w={[`${r.value}-container`]:!0,[`${r.value}-blur`]:u.value};return i(f("div",{class:[`${r.value}-nested-loading`,e.wrapperClassName,s.value]},[u.value&&f("div",{key:"loading"},[C]),f("div",{class:w,key:"container"},[h])]))}return i(C)}}});Tl.setDefaultIndicator=JU;Tl.install=function(e){return e.component(Tl.name,Tl),e};var eY={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"};const pO=eY;function U1(e){for(var t=1;t{const r=g(g(g({},e),{size:"small"}),n);return f(Hl,r,o)}}}),lY=te({name:"MiddleSelect",inheritAttrs:!1,props:Vc(),Option:Hl.Option,setup(e,t){let{attrs:n,slots:o}=t;return()=>{const r=g(g(g({},e),{size:"middle"}),n);return f(Hl,r,o)}}}),Cr=te({compatConfig:{MODE:3},name:"Pager",inheritAttrs:!1,props:{rootPrefixCls:String,page:Number,active:{type:Boolean,default:void 0},last:{type:Boolean,default:void 0},locale:V.object,showTitle:{type:Boolean,default:void 0},itemRender:{type:Function,default:()=>{}},onClick:{type:Function},onKeypress:{type:Function}},eimt:["click","keypress"],setup(e,t){let{emit:n,attrs:o}=t;const r=()=>{n("click",e.page)},l=a=>{n("keypress",a,r,e.page)};return()=>{const{showTitle:a,page:i,itemRender:s}=e,{class:u,style:c}=o,d=`${e.rootPrefixCls}-item`,p=ne(d,`${d}-${e.page}`,{[`${d}-active`]:e.active,[`${d}-disabled`]:!e.page},u);return f("li",{onClick:r,onKeypress:l,title:a?String(i):null,tabindex:"0",class:p,style:c},[s({page:i,type:"page",originalElement:f("a",{rel:"nofollow"},[i])})])}}}),Or={ZERO:48,NINE:57,NUMPAD_ZERO:96,NUMPAD_NINE:105,BACKSPACE:8,DELETE:46,ENTER:13,ARROW_UP:38,ARROW_DOWN:40},aY=te({compatConfig:{MODE:3},props:{disabled:{type:Boolean,default:void 0},changeSize:Function,quickGo:Function,selectComponentClass:V.any,current:Number,pageSizeOptions:V.array.def(["10","20","50","100"]),pageSize:Number,buildOptionText:Function,locale:V.object,rootPrefixCls:String,selectPrefixCls:String,goButton:V.any},setup(e){const t=ee(""),n=P(()=>!t.value||isNaN(t.value)?void 0:Number(t.value)),o=s=>`${s.value} ${e.locale.items_per_page}`,r=s=>{const{value:u}=s.target;t.value!==u&&(t.value=u)},l=s=>{const{goButton:u,quickGo:c,rootPrefixCls:d}=e;if(!(u||t.value===""))if(s.relatedTarget&&(s.relatedTarget.className.indexOf(`${d}-item-link`)>=0||s.relatedTarget.className.indexOf(`${d}-item`)>=0)){t.value="";return}else c(n.value),t.value=""},a=s=>{t.value!==""&&(s.keyCode===Or.ENTER||s.type==="click")&&(e.quickGo(n.value),t.value="")},i=P(()=>{const{pageSize:s,pageSizeOptions:u}=e;return u.some(c=>c.toString()===s.toString())?u:u.concat([s.toString()]).sort((c,d)=>{const p=isNaN(Number(c))?0:Number(c),v=isNaN(Number(d))?0:Number(d);return p-v})});return()=>{const{rootPrefixCls:s,locale:u,changeSize:c,quickGo:d,goButton:p,selectComponentClass:v,selectPrefixCls:y,pageSize:m,disabled:h}=e,b=`${s}-options`;let $=null,C=null,w=null;if(!c&&!d)return null;if(c&&v){const S=e.buildOptionText||o,O=i.value.map((x,I)=>f(v.Option,{key:I,value:x},{default:()=>[S({value:x})]}));$=f(v,{disabled:h,prefixCls:y,showSearch:!1,class:`${b}-size-changer`,optionLabelProp:"children",value:(m||i.value[0]).toString(),onChange:x=>c(Number(x)),getPopupContainer:x=>x.parentNode},{default:()=>[O]})}return d&&(p&&(w=typeof p=="boolean"?f("button",{type:"button",onClick:a,onKeyup:a,disabled:h,class:`${b}-quick-jumper-button`},[u.jump_to_confirm]):f("span",{onClick:a,onKeyup:a},[p])),C=f("div",{class:`${b}-quick-jumper`},[u.jump_to,f(fi,{disabled:h,type:"text",value:t.value,onInput:r,onChange:r,onKeyup:a,onBlur:l},null),u.page,w])),f("li",{class:`${b}`},[$,C])}}}),iY={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"};var sY=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);ro?o:n,Ao(this,"current")||(t.stateCurrent=n,t.stateCurrentInputValue=n),t.statePageSize=e,this.setState(t)},stateCurrent(e,t){this.$nextTick(()=>{if(this.$refs.paginationNode){const n=this.$refs.paginationNode.querySelector(`.${this.prefixCls}-item-${t}`);n&&document.activeElement===n&&n.blur()}})},total(){const e={},t=Eo(this.pageSize,this.$data,this.$props);if(Ao(this,"current")){const n=Math.min(this.current,t);e.stateCurrent=n,e.stateCurrentInputValue=n}else{let n=this.stateCurrent;n===0&&t>0?n=1:n=Math.min(this.stateCurrent,t),e.stateCurrent=n}this.setState(e)}},methods:{getJumpPrevPage(){return Math.max(1,this.stateCurrent-(this.showLessItems?3:5))},getJumpNextPage(){return Math.min(Eo(void 0,this.$data,this.$props),this.stateCurrent+(this.showLessItems?3:5))},getItemIcon(e,t){const{prefixCls:n}=this.$props;return rx(this,e,this.$props)||f("button",{type:"button","aria-label":t,class:`${n}-item-link`},null)},getValidValue(e){const t=e.target.value,n=Eo(void 0,this.$data,this.$props),{stateCurrentInputValue:o}=this.$data;let r;return t===""?r=t:isNaN(Number(t))?r=o:t>=n?r=n:r=Number(t),r},isValid(e){return cY(e)&&e!==this.stateCurrent},shouldDisplayQuickJumper(){const{showQuickJumper:e,pageSize:t,total:n}=this.$props;return n<=t?!1:e},handleKeyDown(e){(e.keyCode===Or.ARROW_UP||e.keyCode===Or.ARROW_DOWN)&&e.preventDefault()},handleKeyUp(e){const t=this.getValidValue(e),n=this.stateCurrentInputValue;t!==n&&this.setState({stateCurrentInputValue:t}),e.keyCode===Or.ENTER?this.handleChange(t):e.keyCode===Or.ARROW_UP?this.handleChange(t-1):e.keyCode===Or.ARROW_DOWN&&this.handleChange(t+1)},changePageSize(e){let t=this.stateCurrent;const n=t,o=Eo(e,this.$data,this.$props);t=t>o?o:t,o===0&&(t=this.stateCurrent),typeof e=="number"&&(Ao(this,"pageSize")||this.setState({statePageSize:e}),Ao(this,"current")||this.setState({stateCurrent:t,stateCurrentInputValue:t})),this.__emit("update:pageSize",e),t!==n&&this.__emit("update:current",t),this.__emit("showSizeChange",t,e),this.__emit("change",t,e)},handleChange(e){const{disabled:t}=this.$props;let n=e;if(this.isValid(n)&&!t){const o=Eo(void 0,this.$data,this.$props);return n>o?n=o:n<1&&(n=1),Ao(this,"current")||this.setState({stateCurrent:n,stateCurrentInputValue:n}),this.__emit("update:current",n),this.__emit("change",n,this.statePageSize),n}return this.stateCurrent},prev(){this.hasPrev()&&this.handleChange(this.stateCurrent-1)},next(){this.hasNext()&&this.handleChange(this.stateCurrent+1)},jumpPrev(){this.handleChange(this.getJumpPrevPage())},jumpNext(){this.handleChange(this.getJumpNextPage())},hasPrev(){return this.stateCurrent>1},hasNext(){return this.stateCurrentn},runIfEnter(e,t){if(e.key==="Enter"||e.charCode===13){e.preventDefault();for(var n=arguments.length,o=new Array(n>2?n-2:0),r=2;r0?b-1:0,D=b+1=H*2&&b!==1+2&&(x[0]=f(Cr,{locale:r,rootPrefixCls:e,onClick:this.handleChange,onKeypress:this.runIfEnter,key:K,page:K,class:`${e}-item-after-jump-prev`,active:!1,showTitle:this.showTitle,itemRender:c},null),x.unshift(I)),O-b>=H*2&&b!==O-2&&(x[x.length-1]=f(Cr,{locale:r,rootPrefixCls:e,onClick:this.handleChange,onKeypress:this.runIfEnter,key:Y,page:Y,class:`${e}-item-before-jump-next`,active:!1,showTitle:this.showTitle,itemRender:c},null),x.push(E)),K!==1&&x.unshift(M),Y!==O&&x.push(_)}let N=null;s&&(N=f("li",{class:`${e}-total-text`},[s(o,[o===0?0:(b-1)*$+1,b*$>o?o:b*$])]));const k=!A||!O,L=!B||!O,j=this.buildOptionText||this.$slots.buildOptionText;return f("ul",F(F({unselectable:"on",ref:"paginationNode"},S),{},{class:ne({[`${e}`]:!0,[`${e}-disabled`]:t},w)}),[N,f("li",{title:i?r.prev_page:null,onClick:this.prev,tabindex:k?null:0,onKeypress:this.runIfEnterPrev,class:ne(`${e}-prev`,{[`${e}-disabled`]:k}),"aria-disabled":k},[this.renderPrev(T)]),x,f("li",{title:i?r.next_page:null,onClick:this.next,tabindex:L?null:0,onKeypress:this.runIfEnterNext,class:ne(`${e}-next`,{[`${e}-disabled`]:L}),"aria-disabled":L},[this.renderNext(D)]),f(aY,{disabled:t,locale:r,rootPrefixCls:e,selectComponentClass:y,selectPrefixCls:m,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:b,pageSize:$,pageSizeOptions:h,buildOptionText:j||null,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:R},null)])}}),fY=e=>{const{componentCls:t}=e;return{[`${t}-disabled`]:{"&, &:hover":{cursor:"not-allowed",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed"}},"&:focus-visible":{cursor:"not-allowed",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed"}}},[`&${t}-disabled`]:{cursor:"not-allowed",[`&${t}-mini`]:{[` + &:hover ${t}-item:not(${t}-item-active), + &:active ${t}-item:not(${t}-item-active), + &:hover ${t}-item-link, + &:active ${t}-item-link + `]:{backgroundColor:"transparent"}},[`${t}-item`]:{cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},a:{color:e.colorTextDisabled,backgroundColor:"transparent",border:"none",cursor:"not-allowed"},"&-active":{borderColor:e.colorBorder,backgroundColor:e.paginationItemDisabledBgActive,"&:hover, &:active":{backgroundColor:e.paginationItemDisabledBgActive},a:{color:e.paginationItemDisabledColorActive}}},[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},[`${t}-simple&`]:{backgroundColor:"transparent","&:hover, &:active":{backgroundColor:"transparent"}}},[`${t}-simple-pager`]:{color:e.colorTextDisabled},[`${t}-jump-prev, ${t}-jump-next`]:{[`${t}-item-link-icon`]:{opacity:0},[`${t}-item-ellipsis`]:{opacity:1}}},[`&${t}-simple`]:{[`${t}-prev, ${t}-next`]:{[`&${t}-disabled ${t}-item-link`]:{"&:hover, &:active":{backgroundColor:"transparent"}}}}}},pY=e=>{const{componentCls:t}=e;return{[`&${t}-mini ${t}-total-text, &${t}-mini ${t}-simple-pager`]:{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`},[`&${t}-mini ${t}-item`]:{minWidth:e.paginationItemSizeSM,height:e.paginationItemSizeSM,margin:0,lineHeight:`${e.paginationItemSizeSM-2}px`},[`&${t}-mini ${t}-item:not(${t}-item-active)`]:{backgroundColor:"transparent",borderColor:"transparent","&:hover":{backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}},[`&${t}-mini ${t}-prev, &${t}-mini ${t}-next`]:{minWidth:e.paginationItemSizeSM,height:e.paginationItemSizeSM,margin:0,lineHeight:`${e.paginationItemSizeSM}px`,[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover ${t}-item-link`]:{backgroundColor:"transparent"}},[` + &${t}-mini ${t}-prev ${t}-item-link, + &${t}-mini ${t}-next ${t}-item-link + `]:{backgroundColor:"transparent",borderColor:"transparent","&::after":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`}},[`&${t}-mini ${t}-jump-prev, &${t}-mini ${t}-jump-next`]:{height:e.paginationItemSizeSM,marginInlineEnd:0,lineHeight:`${e.paginationItemSizeSM}px`},[`&${t}-mini ${t}-options`]:{marginInlineStart:e.paginationMiniOptionsMarginInlineStart,"&-size-changer":{top:e.paginationMiniOptionsSizeChangerTop},"&-quick-jumper":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`,input:g(g({},Hg(e)),{width:e.paginationMiniQuickJumperInputWidth,height:e.controlHeightSM})}}}},vY=e=>{const{componentCls:t}=e;return{[` + &${t}-simple ${t}-prev, + &${t}-simple ${t}-next + `]:{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`,verticalAlign:"top",[`${t}-item-link`]:{height:e.paginationItemSizeSM,backgroundColor:"transparent",border:0,"&:hover":{backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive},"&::after":{height:e.paginationItemSizeSM,lineHeight:`${e.paginationItemSizeSM}px`}}},[`&${t}-simple ${t}-simple-pager`]:{display:"inline-block",height:e.paginationItemSizeSM,marginInlineEnd:e.marginXS,input:{boxSizing:"border-box",height:"100%",marginInlineEnd:e.marginXS,padding:`0 ${e.paginationItemPaddingInline}px`,textAlign:"center",backgroundColor:e.paginationItemInputBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,outline:"none",transition:`border-color ${e.motionDurationMid}`,color:"inherit","&:hover":{borderColor:e.colorPrimary},"&:focus":{borderColor:e.colorPrimaryHover,boxShadow:`${e.inputOutlineOffset}px 0 ${e.controlOutlineWidth}px ${e.controlOutline}`},"&[disabled]":{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,cursor:"not-allowed"}}}}},gY=e=>{const{componentCls:t}=e;return{[`${t}-jump-prev, ${t}-jump-next`]:{outline:0,[`${t}-item-container`]:{position:"relative",[`${t}-item-link-icon`]:{color:e.colorPrimary,fontSize:e.fontSizeSM,opacity:0,transition:`all ${e.motionDurationMid}`,"&-svg":{top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,margin:"auto"}},[`${t}-item-ellipsis`]:{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,display:"block",margin:"auto",color:e.colorTextDisabled,fontFamily:"Arial, Helvetica, sans-serif",letterSpacing:e.paginationEllipsisLetterSpacing,textAlign:"center",textIndent:e.paginationEllipsisTextIndent,opacity:1,transition:`all ${e.motionDurationMid}`}},"&:hover":{[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},"&:focus-visible":g({[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},Lo(e))},[` + ${t}-prev, + ${t}-jump-prev, + ${t}-jump-next + `]:{marginInlineEnd:e.marginXS},[` + ${t}-prev, + ${t}-next, + ${t}-jump-prev, + ${t}-jump-next + `]:{display:"inline-block",minWidth:e.paginationItemSize,height:e.paginationItemSize,color:e.colorText,fontFamily:e.paginationFontFamily,lineHeight:`${e.paginationItemSize}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",borderRadius:e.borderRadius,cursor:"pointer",transition:`all ${e.motionDurationMid}`},[`${t}-prev, ${t}-next`]:{fontFamily:"Arial, Helvetica, sans-serif",outline:0,button:{color:e.colorText,cursor:"pointer",userSelect:"none"},[`${t}-item-link`]:{display:"block",width:"100%",height:"100%",padding:0,fontSize:e.fontSizeSM,textAlign:"center",backgroundColor:"transparent",border:`${e.lineWidth}px ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:"none",transition:`all ${e.motionDurationMid}`},[`&:focus-visible ${t}-item-link`]:g({},Lo(e)),[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover`]:{[`${t}-item-link`]:{backgroundColor:"transparent"}}},[`${t}-slash`]:{marginInlineEnd:e.paginationSlashMarginInlineEnd,marginInlineStart:e.paginationSlashMarginInlineStart},[`${t}-options`]:{display:"inline-block",marginInlineStart:e.margin,verticalAlign:"middle","&-size-changer.-select":{display:"inline-block",width:"auto"},"&-quick-jumper":{display:"inline-block",height:e.controlHeight,marginInlineStart:e.marginXS,lineHeight:`${e.controlHeight}px`,verticalAlign:"top",input:g(g({},sa(e)),{width:e.controlHeightLG*1.25,height:e.controlHeight,boxSizing:"border-box",margin:0,marginInlineStart:e.marginXS,marginInlineEnd:e.marginXS})}}}},mY=e=>{const{componentCls:t}=e;return{[`${t}-item`]:g(g({display:"inline-block",minWidth:e.paginationItemSize,height:e.paginationItemSize,marginInlineEnd:e.marginXS,fontFamily:e.paginationFontFamily,lineHeight:`${e.paginationItemSize-2}px`,textAlign:"center",verticalAlign:"middle",listStyle:"none",backgroundColor:"transparent",border:`${e.lineWidth}px ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:0,cursor:"pointer",userSelect:"none",a:{display:"block",padding:`0 ${e.paginationItemPaddingInline}px`,color:e.colorText,transition:"none","&:hover":{textDecoration:"none"}},[`&:not(${t}-item-active)`]:{"&:hover":{transition:`all ${e.motionDurationMid}`,backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}}},zo(e)),{"&-active":{fontWeight:e.paginationFontWeightActive,backgroundColor:e.paginationItemBgActive,borderColor:e.colorPrimary,a:{color:e.colorPrimary},"&:hover":{borderColor:e.colorPrimaryHover},"&:hover a":{color:e.colorPrimaryHover}}})}},hY=e=>{const{componentCls:t}=e;return{[t]:g(g(g(g(g(g(g(g({},Qe(e)),{"ul, ol":{margin:0,padding:0,listStyle:"none"},"&::after":{display:"block",clear:"both",height:0,overflow:"hidden",visibility:"hidden",content:'""'},[`${t}-total-text`]:{display:"inline-block",height:e.paginationItemSize,marginInlineEnd:e.marginXS,lineHeight:`${e.paginationItemSize-2}px`,verticalAlign:"middle"}}),mY(e)),gY(e)),vY(e)),pY(e)),fY(e)),{[`@media only screen and (max-width: ${e.screenLG}px)`]:{[`${t}-item`]:{"&-after-jump-prev, &-before-jump-next":{display:"none"}}},[`@media only screen and (max-width: ${e.screenSM}px)`]:{[`${t}-options`]:{display:"none"}}}),[`&${e.componentCls}-rtl`]:{direction:"rtl"}}},bY=e=>{const{componentCls:t}=e;return{[`${t}${t}-disabled`]:{"&, &:hover":{[`${t}-item-link`]:{borderColor:e.colorBorder}},"&:focus-visible":{[`${t}-item-link`]:{borderColor:e.colorBorder}},[`${t}-item, ${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,[`&:hover:not(${t}-item-active)`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,a:{color:e.colorTextDisabled}},[`&${t}-item-active`]:{backgroundColor:e.paginationItemDisabledBgActive}},[`${t}-prev, ${t}-next`]:{"&:hover button":{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,color:e.colorTextDisabled},[`${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder}}},[t]:{[`${t}-prev, ${t}-next`]:{"&:hover button":{borderColor:e.colorPrimaryHover,backgroundColor:e.paginationItemBg},[`${t}-item-link`]:{backgroundColor:e.paginationItemLinkBg,borderColor:e.colorBorder},[`&:hover ${t}-item-link`]:{borderColor:e.colorPrimary,backgroundColor:e.paginationItemBg,color:e.colorPrimary},[`&${t}-disabled`]:{[`${t}-item-link`]:{borderColor:e.colorBorder,color:e.colorTextDisabled}}},[`${t}-item`]:{backgroundColor:e.paginationItemBg,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,[`&:hover:not(${t}-item-active)`]:{borderColor:e.colorPrimary,backgroundColor:e.paginationItemBg,a:{color:e.colorPrimary}},"&-active":{borderColor:e.colorPrimary}}}}},yY=Je("Pagination",e=>{const t=Le(e,{paginationItemSize:e.controlHeight,paginationFontFamily:e.fontFamily,paginationItemBg:e.colorBgContainer,paginationItemBgActive:e.colorBgContainer,paginationFontWeightActive:e.fontWeightStrong,paginationItemSizeSM:e.controlHeightSM,paginationItemInputBg:e.colorBgContainer,paginationMiniOptionsSizeChangerTop:0,paginationItemDisabledBgActive:e.controlItemBgActiveDisabled,paginationItemDisabledColorActive:e.colorTextDisabled,paginationItemLinkBg:e.colorBgContainer,inputOutlineOffset:"0 0",paginationMiniOptionsMarginInlineStart:e.marginXXS/2,paginationMiniQuickJumperInputWidth:e.controlHeightLG*1.1,paginationItemPaddingInline:e.marginXXS*1.5,paginationEllipsisLetterSpacing:e.marginXXS/2,paginationSlashMarginInlineStart:e.marginXXS,paginationSlashMarginInlineEnd:e.marginSM,paginationEllipsisTextIndent:"0.13em"},bi(e));return[hY(t),e.wireframe&&bY(t)]});var $Y=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({total:Number,defaultCurrent:Number,disabled:xe(),current:Number,defaultPageSize:Number,pageSize:Number,hideOnSinglePage:xe(),showSizeChanger:xe(),pageSizeOptions:st(),buildOptionText:ce(),showQuickJumper:Xe([Boolean,Object]),showTotal:ce(),size:je(),simple:xe(),locale:Object,prefixCls:String,selectPrefixCls:String,totalBoundaryShowSizeChanger:Number,selectComponentClass:String,itemRender:ce(),role:String,responsive:Boolean,showLessItems:xe(),onChange:ce(),onShowSizeChange:ce(),"onUpdate:current":ce(),"onUpdate:pageSize":ce()}),CY=te({compatConfig:{MODE:3},name:"APagination",inheritAttrs:!1,props:SY(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,configProvider:l,direction:a,size:i}=Me("pagination",e),[s,u]=yY(r),c=P(()=>l.getPrefixCls("select",e.selectPrefixCls)),d=Wc(),[p]=xo("Pagination",vx,Ne(e,"locale")),v=y=>{const m=f("span",{class:`${y}-item-ellipsis`},[ko("•••")]),h=f("button",{class:`${y}-item-link`,type:"button",tabindex:-1},[a.value==="rtl"?f(So,null,null):f(dr,null,null)]),b=f("button",{class:`${y}-item-link`,type:"button",tabindex:-1},[a.value==="rtl"?f(dr,null,null):f(So,null,null)]),$=f("a",{rel:"nofollow",class:`${y}-item-link`},[f("div",{class:`${y}-item-container`},[a.value==="rtl"?f(Q1,{class:`${y}-item-link-icon`},null):f(Y1,{class:`${y}-item-link-icon`},null),m])]),C=f("a",{rel:"nofollow",class:`${y}-item-link`},[f("div",{class:`${y}-item-container`},[a.value==="rtl"?f(Y1,{class:`${y}-item-link-icon`},null):f(Q1,{class:`${y}-item-link-icon`},null),m])]);return{prevIcon:h,nextIcon:b,jumpPrevIcon:$,jumpNextIcon:C}};return()=>{var y;const{itemRender:m=n.itemRender,buildOptionText:h=n.buildOptionText,selectComponentClass:b,responsive:$}=e,C=$Y(e,["itemRender","buildOptionText","selectComponentClass","responsive"]),w=i.value==="small"||!!(!((y=d.value)===null||y===void 0)&&y.xs&&!i.value&&$),S=g(g(g(g(g({},C),v(r.value)),{prefixCls:r.value,selectPrefixCls:c.value,selectComponentClass:b||(w?rY:lY),locale:p.value,buildOptionText:h}),o),{class:ne({[`${r.value}-mini`]:w,[`${r.value}-rtl`]:a.value==="rtl"},o.class,u.value),itemRender:m});return s(f(dY,S,null))}}}),_m=Gt(CY),xY=()=>({avatar:V.any,description:V.any,prefixCls:String,title:V.any}),wY=te({compatConfig:{MODE:3},name:"AListItemMeta",props:xY(),displayName:"AListItemMeta",__ANT_LIST_ITEM_META:!0,slots:Object,setup(e,t){let{slots:n}=t;const{prefixCls:o}=Me("list",e);return()=>{var r,l,a,i,s,u;const c=`${o.value}-item-meta`,d=(r=e.title)!==null&&r!==void 0?r:(l=n.title)===null||l===void 0?void 0:l.call(n),p=(a=e.description)!==null&&a!==void 0?a:(i=n.description)===null||i===void 0?void 0:i.call(n),v=(s=e.avatar)!==null&&s!==void 0?s:(u=n.avatar)===null||u===void 0?void 0:u.call(n),y=f("div",{class:`${o.value}-item-meta-content`},[d&&f("h4",{class:`${o.value}-item-meta-title`},[d]),p&&f("div",{class:`${o.value}-item-meta-description`},[p])]);return f("div",{class:c},[v&&f("div",{class:`${o.value}-item-meta-avatar`},[v]),(d||p)&&y])}}}),gO=Symbol("ListContextKey");var OY=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,extra:V.any,actions:V.array,grid:Object,colStyle:{type:Object,default:void 0}}),IY=te({compatConfig:{MODE:3},name:"AListItem",inheritAttrs:!1,Meta:wY,props:PY(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{itemLayout:r,grid:l}=Ke(gO,{grid:ee(),itemLayout:ee()}),{prefixCls:a}=Me("list",e),i=()=>{var u;const c=((u=n.default)===null||u===void 0?void 0:u.call(n))||[];let d;return c.forEach(p=>{I9(p)&&!yc(p)&&(d=!0)}),d&&c.length>1},s=()=>{var u,c;const d=(u=e.extra)!==null&&u!==void 0?u:(c=n.extra)===null||c===void 0?void 0:c.call(n);return r.value==="vertical"?!!d:!i()};return()=>{var u,c,d,p,v;const{class:y}=o,m=OY(o,["class"]),h=a.value,b=(u=e.extra)!==null&&u!==void 0?u:(c=n.extra)===null||c===void 0?void 0:c.call(n),$=(d=n.default)===null||d===void 0?void 0:d.call(n);let C=(p=e.actions)!==null&&p!==void 0?p:bt((v=n.actions)===null||v===void 0?void 0:v.call(n));C=C&&!Array.isArray(C)?[C]:C;const w=C&&C.length>0&&f("ul",{class:`${h}-item-action`,key:"actions"},[C.map((x,I)=>f("li",{key:`${h}-item-action-${I}`},[x,I!==C.length-1&&f("em",{class:`${h}-item-action-split`},null)]))]),S=l.value?"div":"li",O=f(S,F(F({},m),{},{class:ne(`${h}-item`,{[`${h}-item-no-flex`]:!s()},y)}),{default:()=>[r.value==="vertical"&&b?[f("div",{class:`${h}-item-main`,key:"content"},[$,w]),f("div",{class:`${h}-item-extra`,key:"extra"},[b])]:[$,w,gt(b,{key:"extra"})]]});return l.value?f(su,{flex:1,style:e.colStyle},{default:()=>[O]}):O}}}),TY=e=>{const{listBorderedCls:t,componentCls:n,paddingLG:o,margin:r,padding:l,listItemPaddingSM:a,marginLG:i,borderRadiusLG:s}=e;return{[`${t}`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:s,[`${n}-header,${n}-footer,${n}-item`]:{paddingInline:o},[`${n}-pagination`]:{margin:`${r}px ${i}px`}},[`${t}${n}-sm`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:a}},[`${t}${n}-lg`]:{[`${n}-item,${n}-header,${n}-footer`]:{padding:`${l}px ${o}px`}}}},EY=e=>{const{componentCls:t,screenSM:n,screenMD:o,marginLG:r,marginSM:l,margin:a}=e;return{[`@media screen and (max-width:${o})`]:{[`${t}`]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:r}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:r}}}},[`@media screen and (max-width: ${n})`]:{[`${t}`]:{[`${t}-item`]:{flexWrap:"wrap",[`${t}-action`]:{marginInlineStart:l}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:"wrap-reverse",[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${a}px`}}}}}},MY=e=>{const{componentCls:t,antCls:n,controlHeight:o,minHeight:r,paddingSM:l,marginLG:a,padding:i,listItemPadding:s,colorPrimary:u,listItemPaddingSM:c,listItemPaddingLG:d,paddingXS:p,margin:v,colorText:y,colorTextDescription:m,motionDurationSlow:h,lineWidth:b}=e;return{[`${t}`]:g(g({},Qe(e)),{position:"relative","*":{outline:"none"},[`${t}-header, ${t}-footer`]:{background:"transparent",paddingBlock:l},[`${t}-pagination`]:{marginBlockStart:a,textAlign:"end",[`${n}-pagination-options`]:{textAlign:"start"}},[`${t}-spin`]:{minHeight:r,textAlign:"center"},[`${t}-items`]:{margin:0,padding:0,listStyle:"none"},[`${t}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:s,color:y,[`${t}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${t}-item-meta-avatar`]:{marginInlineEnd:i},[`${t}-item-meta-content`]:{flex:"1 0",width:0,color:y},[`${t}-item-meta-title`]:{marginBottom:e.marginXXS,color:y,fontSize:e.fontSize,lineHeight:e.lineHeight,"> a":{color:y,transition:`all ${h}`,"&:hover":{color:u}}},[`${t}-item-meta-description`]:{color:m,fontSize:e.fontSize,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:"0 0 auto",marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:"none","& > li":{position:"relative",display:"inline-block",padding:`0 ${p}px`,color:m,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:"center","&:first-child":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:b,height:Math.ceil(e.fontSize*e.lineHeight)-e.marginXXS*2,transform:"translateY(-50%)",backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${i}px 0`,color:m,fontSize:e.fontSizeSM,textAlign:"center"},[`${t}-empty-text`]:{padding:i,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:"center"},[`${t}-item-no-flex`]:{display:"block"}}),[`${t}-grid ${n}-col > ${t}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:v,paddingBlock:0,borderBlockEnd:"none"},[`${t}-vertical ${t}-item`]:{alignItems:"initial",[`${t}-item-main`]:{display:"block",flex:1},[`${t}-item-extra`]:{marginInlineStart:a},[`${t}-item-meta`]:{marginBlockEnd:i,[`${t}-item-meta-title`]:{marginBlockEnd:l,color:y,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:i,marginInlineStart:"auto","> li":{padding:`0 ${i}px`,"&:first-child":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBlockEnd:"none"}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:o},[`${t}-split${t}-something-after-last-item ${n}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:d},[`${t}-sm ${t}-item`]:{padding:c},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:"right"}}}}},_Y=Je("List",e=>{const t=Le(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG,listItemPadding:`${e.paddingContentVertical}px ${e.paddingContentHorizontalLG}px`,listItemPaddingSM:`${e.paddingContentVerticalSM}px ${e.paddingContentHorizontal}px`,listItemPaddingLG:`${e.paddingContentVerticalLG}px ${e.paddingContentHorizontalLG}px`});return[MY(t),TY(t),EY(t)]},{contentWidth:220}),DY=()=>({bordered:xe(),dataSource:st(),extra:Dn(),grid:De(),itemLayout:String,loading:Xe([Boolean,Object]),loadMore:Dn(),pagination:Xe([Boolean,Object]),prefixCls:String,rowKey:Xe([String,Number,Function]),renderItem:ce(),size:String,split:xe(),header:Dn(),footer:Dn(),locale:De()}),Jo=te({compatConfig:{MODE:3},name:"AList",inheritAttrs:!1,Item:IY,props:rt(DY(),{dataSource:[],bordered:!1,split:!0,loading:!1,pagination:!1}),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;var r,l;We(gO,{grid:Ne(e,"grid"),itemLayout:Ne(e,"itemLayout")});const a={current:1,total:0},{prefixCls:i,direction:s,renderEmpty:u}=Me("list",e),[c,d]=_Y(i),p=P(()=>e.pagination&&typeof e.pagination=="object"?e.pagination:{}),v=ee((r=p.value.defaultCurrent)!==null&&r!==void 0?r:1),y=ee((l=p.value.defaultPageSize)!==null&&l!==void 0?l:10);ue(p,()=>{"current"in p.value&&(v.value=p.value.current),"pageSize"in p.value&&(y.value=p.value.pageSize)});const m=[],h=R=>(H,T)=>{v.value=H,y.value=T,p.value[R]&&p.value[R](H,T)},b=h("onChange"),$=h("onShowSizeChange"),C=P(()=>typeof e.loading=="boolean"?{spinning:e.loading}:e.loading),w=P(()=>C.value&&C.value.spinning),S=P(()=>{let R="";switch(e.size){case"large":R="lg";break;case"small":R="sm";break}return R}),O=P(()=>({[`${i.value}`]:!0,[`${i.value}-vertical`]:e.itemLayout==="vertical",[`${i.value}-${S.value}`]:S.value,[`${i.value}-split`]:e.split,[`${i.value}-bordered`]:e.bordered,[`${i.value}-loading`]:w.value,[`${i.value}-grid`]:!!e.grid,[`${i.value}-rtl`]:s.value==="rtl"})),x=P(()=>{const R=g(g(g({},a),{total:e.dataSource.length,current:v.value,pageSize:y.value}),e.pagination||{}),H=Math.ceil(R.total/R.pageSize);return R.current>H&&(R.current=H),R}),I=P(()=>{let R=[...e.dataSource];return e.pagination&&e.dataSource.length>(x.value.current-1)*x.value.pageSize&&(R=[...e.dataSource].splice((x.value.current-1)*x.value.pageSize,x.value.pageSize)),R}),E=Wc(),M=Mn(()=>{for(let R=0;R{if(!e.grid)return;const R=M.value&&e.grid[M.value]?e.grid[M.value]:e.grid.column;if(R)return{width:`${100/R}%`,maxWidth:`${100/R}%`}}),z=(R,H)=>{var T;const D=(T=e.renderItem)!==null&&T!==void 0?T:n.renderItem;if(!D)return null;let A;const B=typeof e.rowKey;return B==="function"?A=e.rowKey(R):B==="string"||B==="number"?A=R[e.rowKey]:A=R.key,A||(A=`list-item-${H}`),m[H]=A,D({item:R,index:H})};return()=>{var R,H,T,D,A,B,N,k;const L=(R=e.loadMore)!==null&&R!==void 0?R:(H=n.loadMore)===null||H===void 0?void 0:H.call(n),j=(T=e.footer)!==null&&T!==void 0?T:(D=n.footer)===null||D===void 0?void 0:D.call(n),G=(A=e.header)!==null&&A!==void 0?A:(B=n.header)===null||B===void 0?void 0:B.call(n),U=bt((N=n.default)===null||N===void 0?void 0:N.call(n)),K=!!(L||e.pagination||j),Y=ne(g(g({},O.value),{[`${i.value}-something-after-last-item`]:K}),o.class,d.value),Q=e.pagination?f("div",{class:`${i.value}-pagination`},[f(_m,F(F({},x.value),{},{onChange:b,onShowSizeChange:$}),null)]):null;let J=w.value&&f("div",{style:{minHeight:"53px"}},null);if(I.value.length>0){m.length=0;const W=I.value.map((re,ae)=>z(re,ae)),X=W.map((re,ae)=>f("div",{key:m[ae],style:_.value},[re]));J=e.grid?f(Qg,{gutter:e.grid.gutter},{default:()=>[X]}):f("ul",{class:`${i.value}-items`},[W])}else!U.length&&!w.value&&(J=f("div",{class:`${i.value}-empty-text`},[((k=e.locale)===null||k===void 0?void 0:k.emptyText)||u("List")]));const Z=x.value.position||"bottom";return c(f("div",F(F({},o),{},{class:Y}),[(Z==="top"||Z==="both")&&Q,G&&f("div",{class:`${i.value}-header`},[G]),f(Tl,C.value,{default:()=>[J,U]}),j&&f("div",{class:`${i.value}-footer`},[j]),L||(Z==="bottom"||Z==="both")&&Q]))}}});Jo.install=function(e){return e.component(Jo.name,Jo),e.component(Jo.Item.name,Jo.Item),e.component(Jo.Item.Meta.name,Jo.Item.Meta),e};const Rle=Jo;var AY=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{Sp={x:e.pageX,y:e.pageY},setTimeout(()=>Sp=null,100)};Y4()&&Pt(document.documentElement,"click",RY,!0);const BY=()=>({prefixCls:String,visible:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},confirmLoading:{type:Boolean,default:void 0},title:V.any,closable:{type:Boolean,default:void 0},closeIcon:V.any,onOk:Function,onCancel:Function,"onUpdate:visible":Function,"onUpdate:open":Function,onChange:Function,afterClose:Function,centered:{type:Boolean,default:void 0},width:[String,Number],footer:V.any,okText:V.any,okType:String,cancelText:V.any,icon:V.any,maskClosable:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},okButtonProps:De(),cancelButtonProps:De(),destroyOnClose:{type:Boolean,default:void 0},wrapClassName:String,maskTransitionName:String,transitionName:String,getContainer:{type:[String,Function,Boolean,Object],default:void 0},zIndex:Number,bodyStyle:De(),maskStyle:De(),mask:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},wrapProps:Object,focusTriggerAfterClose:{type:Boolean,default:void 0},modalRender:Function,mousePosition:De()}),Kn=te({compatConfig:{MODE:3},name:"AModal",inheritAttrs:!1,props:rt(BY(),{width:520,confirmLoading:!1,okType:"primary"}),setup(e,t){let{emit:n,slots:o,attrs:r}=t;const[l]=xo("Modal"),{prefixCls:a,rootPrefixCls:i,direction:s,getPopupContainer:u}=Me("modal",e),[c,d]=aU(a);$t(e.visible===void 0);const p=m=>{n("update:visible",!1),n("update:open",!1),n("cancel",m),n("change",!1)},v=m=>{n("ok",m)},y=()=>{var m,h;const{okText:b=(m=o.okText)===null||m===void 0?void 0:m.call(o),okType:$,cancelText:C=(h=o.cancelText)===null||h===void 0?void 0:h.call(o),confirmLoading:w}=e;return f(qe,null,[f(Wt,F({onClick:p},e.cancelButtonProps),{default:()=>[C||l.value.cancelText]}),f(Wt,F(F({},Ks($)),{},{loading:w,onClick:v},e.okButtonProps),{default:()=>[b||l.value.okText]})])};return()=>{var m,h;const{prefixCls:b,visible:$,open:C,wrapClassName:w,centered:S,getContainer:O,closeIcon:x=(m=o.closeIcon)===null||m===void 0?void 0:m.call(o),focusTriggerAfterClose:I=!0}=e,E=AY(e,["prefixCls","visible","open","wrapClassName","centered","getContainer","closeIcon","focusTriggerAfterClose"]),M=ne(w,{[`${a.value}-centered`]:!!S,[`${a.value}-wrap-rtl`]:s.value==="rtl"});return c(f(nO,F(F(F({},E),r),{},{rootClassName:d.value,class:ne(d.value,r.class),getContainer:O||(u==null?void 0:u.value),prefixCls:a.value,wrapClassName:M,visible:C!=null?C:$,onClose:p,focusTriggerAfterClose:I,transitionName:on(i.value,"zoom",e.transitionName),maskTransitionName:on(i.value,"fade",e.maskTransitionName),mousePosition:(h=E.mousePosition)!==null&&h!==void 0?h:Sp}),g(g({},o),{footer:o.footer||y,closeIcon:()=>f("span",{class:`${a.value}-close-x`},[x||f(Qn,{class:`${a.value}-close-icon`},null)])})))}}}),NY=()=>{const e=q(!1);return Ze(()=>{e.value=!0}),e},mO=NY,FY={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:De(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function Z1(e){return!!(e&&e.then)}const Cp=te({compatConfig:{MODE:3},name:"ActionButton",props:FY,setup(e,t){let{slots:n}=t;const o=q(!1),r=q(),l=q(!1);let a;const i=mO();Ve(()=>{e.autofocus&&(a=setTimeout(()=>{var d,p;return(p=(d=sn(r.value))===null||d===void 0?void 0:d.focus)===null||p===void 0?void 0:p.call(d)}))}),Ze(()=>{clearTimeout(a)});const s=function(){for(var d,p=arguments.length,v=new Array(p),y=0;y{Z1(d)&&(l.value=!0,d.then(function(){i.value||(l.value=!1),s(...arguments),o.value=!1},p=>(i.value||(l.value=!1),o.value=!1,Promise.reject(p))))},c=d=>{const{actionFn:p}=e;if(o.value)return;if(o.value=!0,!p){s();return}let v;if(e.emitEvent){if(v=p(d),e.quitOnNullishReturnValue&&!Z1(v)){o.value=!1,s(d);return}}else if(p.length)v=p(e.close),o.value=!1;else if(v=p(),!v){s();return}u(v)};return()=>{const{type:d,prefixCls:p,buttonProps:v}=e;return f(Wt,F(F(F({},Ks(d)),{},{onClick:c,loading:l.value,prefixCls:p},v),{},{ref:r}),n)}}});function sl(e){return typeof e=="function"?e():e}const hO=te({name:"ConfirmDialog",inheritAttrs:!1,props:["icon","onCancel","onOk","close","closable","zIndex","afterClose","visible","open","keyboard","centered","getContainer","maskStyle","okButtonProps","cancelButtonProps","okType","prefixCls","okCancel","width","mask","maskClosable","okText","cancelText","autoFocusButton","transitionName","maskTransitionName","type","title","content","direction","rootPrefixCls","bodyStyle","closeIcon","modalRender","focusTriggerAfterClose","wrapClassName","confirmPrefixCls","footer"],setup(e,t){let{attrs:n}=t;const[o]=xo("Modal");return()=>{const{icon:r,onCancel:l,onOk:a,close:i,okText:s,closable:u=!1,zIndex:c,afterClose:d,keyboard:p,centered:v,getContainer:y,maskStyle:m,okButtonProps:h,cancelButtonProps:b,okCancel:$,width:C=416,mask:w=!0,maskClosable:S=!1,type:O,open:x,title:I,content:E,direction:M,closeIcon:_,modalRender:z,focusTriggerAfterClose:R,rootPrefixCls:H,bodyStyle:T,wrapClassName:D,footer:A}=e;let B=r;if(!r&&r!==null)switch(O){case"info":B=f(la,null,null);break;case"success":B=f(Ko,null,null);break;case"error":B=f(On,null,null);break;default:B=f(Go,null,null)}const N=e.okType||"primary",k=e.prefixCls||"ant-modal",L=`${k}-confirm`,j=n.style||{},G=$!=null?$:O==="confirm",U=e.autoFocusButton===null?!1:e.autoFocusButton||"ok",K=`${k}-confirm`,Y=ne(K,`${K}-${e.type}`,{[`${K}-rtl`]:M==="rtl"},n.class),Q=o.value,J=G&&f(Cp,{actionFn:l,close:i,autofocus:U==="cancel",buttonProps:b,prefixCls:`${H}-btn`},{default:()=>[sl(e.cancelText)||Q.cancelText]});return f(Kn,{prefixCls:k,class:Y,wrapClassName:ne({[`${K}-centered`]:!!v},D),onCancel:Z=>i==null?void 0:i({triggerCancel:!0},Z),open:x,title:"",footer:"",transitionName:on(H,"zoom",e.transitionName),maskTransitionName:on(H,"fade",e.maskTransitionName),mask:w,maskClosable:S,maskStyle:m,style:j,bodyStyle:T,width:C,zIndex:c,afterClose:d,keyboard:p,centered:v,getContainer:y,closable:u,closeIcon:_,modalRender:z,focusTriggerAfterClose:R},{default:()=>[f("div",{class:`${L}-body-wrapper`},[f("div",{class:`${L}-body`},[sl(B),I===void 0?null:f("span",{class:`${L}-title`},[sl(I)]),f("div",{class:`${L}-content`},[sl(E)])]),A!==void 0?sl(A):f("div",{class:`${L}-btns`},[J,f(Cp,{type:N,actionFn:a,close:i,autofocus:U==="ok",buttonProps:h,prefixCls:`${H}-btn`},{default:()=>[sl(s)||(G?Q.okText:Q.justOkText)]})])])]})}}}),kY=[],Br=kY,LY=e=>{const t=document.createDocumentFragment();let n=g(g({},tt(e,["parentContext","appContext"])),{close:l,open:!0}),o=null;function r(){o&&(cr(null,t),o=null);for(var u=arguments.length,c=new Array(u),d=0;dv&&v.triggerCancel);e.onCancel&&p&&e.onCancel(()=>{},...c.slice(1));for(let v=0;v{typeof e.afterClose=="function"&&e.afterClose(),r.apply(this,c)}}),n.visible&&delete n.visible,a(n)}function a(u){typeof u=="function"?n=u(n):n=g(g({},n),u),o&&zD(o,n,t)}const i=u=>{const c=Yt,d=c.prefixCls,p=u.prefixCls||`${d}-modal`,v=c.iconPrefixCls,y=yW();return f(A3,F(F({},c),{},{prefixCls:d}),{default:()=>[f(hO,F(F({},u),{},{rootPrefixCls:d,prefixCls:p,iconPrefixCls:v,locale:y,cancelText:u.cancelText||y.cancelText}),null)]})};function s(u){const c=f(i,g({},u));return c.appContext=e.parentContext||e.appContext||c.appContext,cr(c,t),c}return o=s(n),Br.push(l),{destroy:l,update:a}},xi=LY;function bO(e){return g(g({},e),{type:"warning"})}function yO(e){return g(g({},e),{type:"info"})}function $O(e){return g(g({},e),{type:"success"})}function SO(e){return g(g({},e),{type:"error"})}function CO(e){return g(g({},e),{type:"confirm"})}const zY=()=>({config:Object,afterClose:Function,destroyAction:Function,open:Boolean}),HY=te({name:"HookModal",inheritAttrs:!1,props:rt(zY(),{config:{width:520,okType:"primary"}}),setup(e,t){let{expose:n}=t;var o;const r=P(()=>e.open),l=P(()=>e.config),{direction:a,getPrefixCls:i}=hv(),s=i("modal"),u=i(),c=()=>{var y,m;e==null||e.afterClose(),(m=(y=l.value).afterClose)===null||m===void 0||m.call(y)},d=function(){e.destroyAction(...arguments)};n({destroy:d});const p=(o=l.value.okCancel)!==null&&o!==void 0?o:l.value.type==="confirm",[v]=xo("Modal",xn.Modal);return()=>f(hO,F(F({prefixCls:s,rootPrefixCls:u},l.value),{},{close:d,open:r.value,afterClose:c,okText:l.value.okText||(p?v==null?void 0:v.value.okText:v==null?void 0:v.value.justOkText),direction:l.value.direction||a.value,cancelText:l.value.cancelText||(v==null?void 0:v.value.cancelText)}),null)}});let J1=0;const jY=te({name:"ElementsHolder",inheritAttrs:!1,setup(e,t){let{expose:n}=t;const o=q([]);return n({addModal:l=>(o.value.push(l),o.value=o.value.slice(),()=>{o.value=o.value.filter(a=>a!==l)})}),()=>o.value.map(l=>l())}});function VY(){const e=q(null),t=q([]);ue(t,()=>{t.value.length&&([...t.value].forEach(a=>{a()}),t.value=[])},{immediate:!0});const n=l=>function(i){var s;J1+=1;const u=q(!0),c=q(null),d=q(Vt(i)),p=q({});ue(()=>i,C=>{h(g(g({},nC(C)?C.value:C),p.value))});const v=function(){u.value=!1;for(var C=arguments.length,w=new Array(C),S=0;Sx&&x.triggerCancel);d.value.onCancel&&O&&d.value.onCancel(()=>{},...w.slice(1))};let y;const m=()=>f(HY,{key:`modal-${J1}`,config:l(d.value),ref:c,open:u.value,destroyAction:v,afterClose:()=>{y==null||y()}},null);y=(s=e.value)===null||s===void 0?void 0:s.addModal(m),y&&Br.push(y);const h=C=>{d.value=g(g({},d.value),C)};return{destroy:()=>{c.value?v():t.value=[...t.value,v]},update:C=>{p.value=C,c.value?h(C):t.value=[...t.value,()=>h(C)]}}},o=P(()=>({info:n(yO),success:n($O),error:n(SO),warning:n(bO),confirm:n(CO)})),r=Symbol("modalHolderKey");return[o.value,()=>f(jY,{key:r,ref:e},null)]}function xO(e){return xi(bO(e))}Kn.useModal=VY;Kn.info=function(t){return xi(yO(t))};Kn.success=function(t){return xi($O(t))};Kn.error=function(t){return xi(SO(t))};Kn.warning=xO;Kn.warn=xO;Kn.confirm=function(t){return xi(CO(t))};Kn.destroyAll=function(){for(;Br.length;){const t=Br.pop();t&&t()}};Kn.install=function(e){return e.component(Kn.name,Kn),e};var WY={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};const wO=WY;function e$(e){for(var t=1;t{const{keyCode:v}=p;v===Se.ENTER&&p.preventDefault()},s=p=>{const{keyCode:v}=p;v===Se.ENTER&&o("click",p)},u=p=>{o("click",p)},c=()=>{a.value&&a.value.focus()},d=()=>{a.value&&a.value.blur()};return Ve(()=>{e.autofocus&&c()}),l({focus:c,blur:d}),()=>{var p;const{noStyle:v,disabled:y}=e,m=QY(e,["noStyle","disabled"]);let h={};return v||(h=g({},ZY)),y&&(h.pointerEvents="none"),f("div",F(F(F({role:"button",tabindex:0,ref:a},m),r),{},{onClick:u,onKeydown:i,onKeyup:s,style:g(g({},h),r.style||{})}),[(p=n.default)===null||p===void 0?void 0:p.call(n)])}}}),nc=JY,eq={small:8,middle:16,large:24},tq=()=>({prefixCls:String,size:{type:[String,Number,Array]},direction:V.oneOf(Sn("horizontal","vertical")).def("horizontal"),align:V.oneOf(Sn("start","end","center","baseline")),wrap:xe()});function nq(e){return typeof e=="string"?eq[e]:e||0}const La=te({compatConfig:{MODE:3},name:"ASpace",inheritAttrs:!1,props:tq(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,space:l,direction:a}=Me("space",e),[i,s]=Y2(r),u=Q4(),c=P(()=>{var b,$,C;return(C=(b=e.size)!==null&&b!==void 0?b:($=l==null?void 0:l.value)===null||$===void 0?void 0:$.size)!==null&&C!==void 0?C:"small"}),d=ee(),p=ee();ue(c,()=>{[d.value,p.value]=(Array.isArray(c.value)?c.value:[c.value,c.value]).map(b=>nq(b))},{immediate:!0});const v=P(()=>e.align===void 0&&e.direction==="horizontal"?"center":e.align),y=P(()=>ne(r.value,s.value,`${r.value}-${e.direction}`,{[`${r.value}-rtl`]:a.value==="rtl",[`${r.value}-align-${v.value}`]:v.value})),m=P(()=>a.value==="rtl"?"marginLeft":"marginRight"),h=P(()=>{const b={};return u.value&&(b.columnGap=`${d.value}px`,b.rowGap=`${p.value}px`),g(g({},b),e.wrap&&{flexWrap:"wrap",marginBottom:`${-p.value}px`})});return()=>{var b,$;const{wrap:C,direction:w="horizontal"}=e,S=(b=n.default)===null||b===void 0?void 0:b.call(n),O=Ot(S),x=O.length;if(x===0)return null;const I=($=n.split)===null||$===void 0?void 0:$.call(n),E=`${r.value}-item`,M=d.value,_=x-1;return f("div",F(F({},o),{},{class:[y.value,o.class],style:[h.value,o.style]}),[O.map((z,R)=>{let H=S.indexOf(z);H===-1&&(H=`$$space-${R}`);let T={};return u.value||(w==="vertical"?R<_&&(T={marginBottom:`${M/(I?2:1)}px`}):T=g(g({},R<_&&{[m.value]:`${M/(I?2:1)}px`}),C&&{paddingBottom:`${p.value}px`})),i(f(qe,{key:H},[f("div",{class:E,style:T},[z]),R<_&&I&&f("span",{class:`${E}-split`,style:T},[I])]))})])}}});La.Compact=_f;La.install=function(e){return e.component(La.name,La),e.component(_f.name,_f),e};const oq=La,rq=e=>{const{componentCls:t,antCls:n}=e;return{[t]:g(g({},Qe(e)),{position:"relative",padding:`${e.pageHeaderPaddingVertical}px ${e.pageHeaderPadding}px`,backgroundColor:e.colorBgContainer,[`&${t}-ghost`]:{backgroundColor:e.pageHeaderGhostBg},"&.has-footer":{paddingBottom:0},[`${t}-back`]:{marginRight:e.marginMD,fontSize:e.fontSizeLG,lineHeight:1,"&-button":g(g({},Oc(e)),{color:e.pageHeaderBackColor,cursor:"pointer"})},[`${n}-divider-vertical`]:{height:"14px",margin:`0 ${e.marginSM}`,verticalAlign:"middle"},[`${n}-breadcrumb + &-heading`]:{marginTop:e.marginXS},[`${t}-heading`]:{display:"flex",justifyContent:"space-between","&-left":{display:"flex",alignItems:"center",margin:`${e.marginXS/2}px 0`,overflow:"hidden"},"&-title":g({marginRight:e.marginSM,marginBottom:0,color:e.colorTextHeading,fontWeight:600,fontSize:e.pageHeaderHeadingTitle,lineHeight:`${e.controlHeight}px`},Xt),[`${n}-avatar`]:{marginRight:e.marginSM},"&-sub-title":g({marginRight:e.marginSM,color:e.colorTextDescription,fontSize:e.pageHeaderHeadingSubTitle,lineHeight:e.lineHeight},Xt),"&-extra":{margin:`${e.marginXS/2}px 0`,whiteSpace:"nowrap","> *":{marginLeft:e.marginSM,whiteSpace:"unset"},"> *:first-child":{marginLeft:0}}},[`${t}-content`]:{paddingTop:e.pageHeaderContentPaddingVertical},[`${t}-footer`]:{marginTop:e.marginMD,[`${n}-tabs`]:{[`> ${n}-tabs-nav`]:{margin:0,"&::before":{border:"none"}},[`${n}-tabs-tab`]:{paddingTop:e.paddingXS,paddingBottom:e.paddingXS,fontSize:e.pageHeaderTabFontSize}}},[`${t}-compact ${t}-heading`]:{flexWrap:"wrap"},[`&${e.componentCls}-rtl`]:{direction:"rtl"}})}},lq=Je("PageHeader",e=>{const t=Le(e,{pageHeaderPadding:e.paddingLG,pageHeaderPaddingVertical:e.paddingMD,pageHeaderPaddingBreadcrumb:e.paddingSM,pageHeaderContentPaddingVertical:e.paddingSM,pageHeaderBackColor:e.colorTextBase,pageHeaderGhostBg:"transparent",pageHeaderHeadingTitle:e.fontSizeHeading4,pageHeaderHeadingSubTitle:e.fontSize,pageHeaderTabFontSize:e.fontSizeLG});return[rq(t)]}),aq=()=>({backIcon:Dn(),prefixCls:String,title:Dn(),subTitle:Dn(),breadcrumb:V.object,tags:Dn(),footer:Dn(),extra:Dn(),avatar:De(),ghost:{type:Boolean,default:void 0},onBack:Function}),iq=te({compatConfig:{MODE:3},name:"APageHeader",inheritAttrs:!1,props:aq(),slots:Object,setup(e,t){let{emit:n,slots:o,attrs:r}=t;const{prefixCls:l,direction:a,pageHeader:i}=Me("page-header",e),[s,u]=lq(l),c=q(!1),d=mO(),p=w=>{let{width:S}=w;d.value||(c.value=S<768)},v=P(()=>{var w,S,O;return(O=(w=e.ghost)!==null&&w!==void 0?w:(S=i==null?void 0:i.value)===null||S===void 0?void 0:S.ghost)!==null&&O!==void 0?O:!0}),y=()=>{var w,S,O;return(O=(w=e.backIcon)!==null&&w!==void 0?w:(S=o.backIcon)===null||S===void 0?void 0:S.call(o))!==null&&O!==void 0?O:a.value==="rtl"?f(qY,null,null):f(GY,null,null)},m=w=>!w||!e.onBack?null:f(Ql,{componentName:"PageHeader",children:S=>{let{back:O}=S;return f("div",{class:`${l.value}-back`},[f(nc,{onClick:x=>{n("back",x)},class:`${l.value}-back-button`,"aria-label":O},{default:()=>[w]})])}},null),h=()=>{var w;return e.breadcrumb?f(xl,e.breadcrumb,null):(w=o.breadcrumb)===null||w===void 0?void 0:w.call(o)},b=()=>{var w,S,O,x,I,E,M,_,z;const{avatar:R}=e,H=(w=e.title)!==null&&w!==void 0?w:(S=o.title)===null||S===void 0?void 0:S.call(o),T=(O=e.subTitle)!==null&&O!==void 0?O:(x=o.subTitle)===null||x===void 0?void 0:x.call(o),D=(I=e.tags)!==null&&I!==void 0?I:(E=o.tags)===null||E===void 0?void 0:E.call(o),A=(M=e.extra)!==null&&M!==void 0?M:(_=o.extra)===null||_===void 0?void 0:_.call(o),B=`${l.value}-heading`,N=H||T||D||A;if(!N)return null;const k=y(),L=m(k);return f("div",{class:B},[(L||R||N)&&f("div",{class:`${B}-left`},[L,R?f(Cl,R,null):(z=o.avatar)===null||z===void 0?void 0:z.call(o),H&&f("span",{class:`${B}-title`,title:typeof H=="string"?H:void 0},[H]),T&&f("span",{class:`${B}-sub-title`,title:typeof T=="string"?T:void 0},[T]),D&&f("span",{class:`${B}-tags`},[D])]),A&&f("span",{class:`${B}-extra`},[f(oq,null,{default:()=>[A]})])])},$=()=>{var w,S;const O=(w=e.footer)!==null&&w!==void 0?w:Ot((S=o.footer)===null||S===void 0?void 0:S.call(o));return P9(O)?null:f("div",{class:`${l.value}-footer`},[O])},C=w=>f("div",{class:`${l.value}-content`},[w]);return()=>{var w,S;const O=((w=e.breadcrumb)===null||w===void 0?void 0:w.routes)||o.breadcrumb,x=e.footer||o.footer,I=bt((S=o.default)===null||S===void 0?void 0:S.call(o)),E=ne(l.value,{"has-breadcrumb":O,"has-footer":x,[`${l.value}-ghost`]:v.value,[`${l.value}-rtl`]:a.value==="rtl",[`${l.value}-compact`]:c.value},r.class,u.value);return s(f(io,{onResize:p},{default:()=>[f("div",F(F({},r),{},{class:E}),[h(),b(),I.length?C(I):null,$()])]}))}}}),Ble=Gt(iq),sq=e=>{const{componentCls:t,iconCls:n,zIndexPopup:o,colorText:r,colorWarning:l,marginXS:a,fontSize:i,fontWeightStrong:s,lineHeight:u}=e;return{[t]:{zIndex:o,[`${t}-inner-content`]:{color:r},[`${t}-message`]:{position:"relative",marginBottom:a,color:r,fontSize:i,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${n}`]:{color:l,fontSize:i,flex:"none",lineHeight:1,paddingTop:(Math.round(i*u)-i)/2},"&-title":{flex:"auto",marginInlineStart:a},"&-title-only":{fontWeight:s}},[`${t}-description`]:{position:"relative",marginInlineStart:i+a,marginBottom:a,color:r,fontSize:i},[`${t}-buttons`]:{textAlign:"end",button:{marginInlineStart:a}}}}},cq=Je("Popconfirm",e=>sq(e),e=>{const{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}});var uq=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rg(g({},vg()),{prefixCls:String,content:It(),title:It(),description:It(),okType:je("primary"),disabled:{type:Boolean,default:!1},okText:It(),cancelText:It(),icon:It(),okButtonProps:De(),cancelButtonProps:De(),showCancel:{type:Boolean,default:!0},onConfirm:Function,onCancel:Function}),fq=te({compatConfig:{MODE:3},name:"APopconfirm",inheritAttrs:!1,props:rt(dq(),g(g({},fw()),{trigger:"click",placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0,okType:"primary",disabled:!1})),slots:Object,setup(e,t){let{slots:n,emit:o,expose:r,attrs:l}=t;const a=ee();$t(e.visible===void 0),r({getPopupDomNode:()=>{var O,x;return(x=(O=a.value)===null||O===void 0?void 0:O.getPopupDomNode)===null||x===void 0?void 0:x.call(O)}});const[i,s]=wt(!1,{value:Ne(e,"open")}),u=(O,x)=>{e.open===void 0&&s(O),o("update:open",O),o("openChange",O,x)},c=O=>{u(!1,O)},d=O=>{var x;return(x=e.onConfirm)===null||x===void 0?void 0:x.call(e,O)},p=O=>{var x;u(!1,O),(x=e.onCancel)===null||x===void 0||x.call(e,O)},v=O=>{O.keyCode===Se.ESC&&i&&u(!1,O)},y=O=>{const{disabled:x}=e;x||u(O)},{prefixCls:m,getPrefixCls:h}=Me("popconfirm",e),b=P(()=>h()),$=P(()=>h("btn")),[C]=cq(m),[w]=xo("Popconfirm",xn.Popconfirm),S=()=>{var O,x,I,E,M;const{okButtonProps:_,cancelButtonProps:z,title:R=(O=n.title)===null||O===void 0?void 0:O.call(n),description:H=(x=n.description)===null||x===void 0?void 0:x.call(n),cancelText:T=(I=n.cancel)===null||I===void 0?void 0:I.call(n),okText:D=(E=n.okText)===null||E===void 0?void 0:E.call(n),okType:A,icon:B=((M=n.icon)===null||M===void 0?void 0:M.call(n))||f(Go,null,null),showCancel:N=!0}=e,{cancelButton:k,okButton:L}=n,j=g({onClick:p,size:"small"},z),G=g(g(g({onClick:d},Ks(A)),{size:"small"}),_);return f("div",{class:`${m.value}-inner-content`},[f("div",{class:`${m.value}-message`},[B&&f("span",{class:`${m.value}-message-icon`},[B]),f("div",{class:[`${m.value}-message-title`,{[`${m.value}-message-title-only`]:!!H}]},[R])]),H&&f("div",{class:`${m.value}-description`},[H]),f("div",{class:`${m.value}-buttons`},[N?k?k(j):f(Wt,j,{default:()=>[T||w.value.cancelText]}):null,L?L(G):f(Cp,{buttonProps:g(g({size:"small"},Ks(A)),_),actionFn:d,close:c,prefixCls:$.value,quitOnNullishReturnValue:!0,emitEvent:!0},{default:()=>[D||w.value.okText]})])])};return()=>{var O;const{placement:x,overlayClassName:I,trigger:E="click"}=e,M=uq(e,["placement","overlayClassName","trigger"]),_=tt(M,["title","content","cancelText","okText","onUpdate:open","onConfirm","onCancel","prefixCls"]),z=ne(m.value,I);return C(f(pw,F(F(F({},_),l),{},{trigger:E,placement:x,onOpenChange:y,open:i.value,overlayClassName:z,transitionName:on(b.value,"zoom-big",e.transitionName),ref:a,"data-popover-inject":!0}),{default:()=>[LD(((O=n.default)===null||O===void 0?void 0:O.call(n))||[],{onKeydown:R=>{v(R)}},!1)],content:S}))}}}),Nle=Gt(fq),pq=["normal","exception","active","success"],fu=()=>({prefixCls:String,type:je(),percent:Number,format:ce(),status:je(),showInfo:xe(),strokeWidth:Number,strokeLinecap:je(),strokeColor:It(),trailColor:String,width:Number,success:De(),gapDegree:Number,gapPosition:je(),size:Xe([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:je()});function zr(e){return!e||e<0?0:e>100?100:e}function oc(e){let{success:t,successPercent:n}=e,o=n;return t&&"progress"in t&&(yt(!1,"Progress","`success.progress` is deprecated. Please use `success.percent` instead."),o=t.progress),t&&"percent"in t&&(o=t.percent),o}function vq(e){let{percent:t,success:n,successPercent:o}=e;const r=zr(oc({success:n,successPercent:o}));return[r,zr(zr(t)-r)]}function gq(e){let{success:t={},strokeColor:n}=e;const{strokeColor:o}=t;return[o||yl.green,n||null]}const pu=(e,t,n)=>{var o,r,l,a;let i=-1,s=-1;if(t==="step"){const u=n.steps,c=n.strokeWidth;typeof e=="string"||typeof e=="undefined"?(i=e==="small"?2:14,s=c!=null?c:8):typeof e=="number"?[i,s]=[e,e]:[i=14,s=8]=e,i*=u}else if(t==="line"){const u=n==null?void 0:n.strokeWidth;typeof e=="string"||typeof e=="undefined"?s=u||(e==="small"?6:8):typeof e=="number"?[i,s]=[e,e]:[i=-1,s=8]=e}else(t==="circle"||t==="dashboard")&&(typeof e=="string"||typeof e=="undefined"?[i,s]=e==="small"?[60,60]:[120,120]:typeof e=="number"?[i,s]=[e,e]:(i=(r=(o=e[0])!==null&&o!==void 0?o:e[1])!==null&&r!==void 0?r:120,s=(a=(l=e[0])!==null&&l!==void 0?l:e[1])!==null&&a!==void 0?a:120));return{width:i,height:s}};var mq=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rg(g({},fu()),{strokeColor:It(),direction:je()}),bq=e=>{let t=[];return Object.keys(e).forEach(n=>{const o=parseFloat(n.replace(/%/g,""));isNaN(o)||t.push({key:o,value:e[n]})}),t=t.sort((n,o)=>n.key-o.key),t.map(n=>{let{key:o,value:r}=n;return`${r} ${o}%`}).join(", ")},yq=(e,t)=>{const{from:n=yl.blue,to:o=yl.blue,direction:r=t==="rtl"?"to left":"to right"}=e,l=mq(e,["from","to","direction"]);if(Object.keys(l).length!==0){const a=bq(l);return{backgroundImage:`linear-gradient(${r}, ${a})`}}return{backgroundImage:`linear-gradient(${r}, ${n}, ${o})`}},$q=te({compatConfig:{MODE:3},name:"ProgressLine",inheritAttrs:!1,props:hq(),setup(e,t){let{slots:n,attrs:o}=t;const r=P(()=>{const{strokeColor:v,direction:y}=e;return v&&typeof v!="string"?yq(v,y):{backgroundColor:v}}),l=P(()=>e.strokeLinecap==="square"||e.strokeLinecap==="butt"?0:void 0),a=P(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),i=P(()=>{var v;return(v=e.size)!==null&&v!==void 0?v:[-1,e.strokeWidth||(e.size==="small"?6:8)]}),s=P(()=>pu(i.value,"line",{strokeWidth:e.strokeWidth})),u=P(()=>{const{percent:v}=e;return g({width:`${zr(v)}%`,height:`${s.value.height}px`,borderRadius:l.value},r.value)}),c=P(()=>oc(e)),d=P(()=>{const{success:v}=e;return{width:`${zr(c.value)}%`,height:`${s.value.height}px`,borderRadius:l.value,backgroundColor:v==null?void 0:v.strokeColor}}),p={width:s.value.width<0?"100%":s.value.width,height:`${s.value.height}px`};return()=>{var v;return f(qe,null,[f("div",F(F({},o),{},{class:[`${e.prefixCls}-outer`,o.class],style:[o.style,p]}),[f("div",{class:`${e.prefixCls}-inner`,style:a.value},[f("div",{class:`${e.prefixCls}-bg`,style:u.value},null),c.value!==void 0?f("div",{class:`${e.prefixCls}-success-bg`,style:d.value},null):null])]),(v=n.default)===null||v===void 0?void 0:v.call(n)])}}}),Sq={percent:0,prefixCls:"vc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1},Cq=e=>{const t=ee(null);return Co(()=>{const n=Date.now();let o=!1;e.value.forEach(r=>{const l=(r==null?void 0:r.$el)||r;if(!l)return;o=!0;const a=l.style;a.transitionDuration=".3s, .3s, .3s, .06s",t.value&&n-t.value<100&&(a.transitionDuration="0s, 0s")}),o&&(t.value=Date.now())}),e},xq={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String};var wq=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r4&&arguments[4]!==void 0?arguments[4]:0,l=arguments.length>5?arguments[5]:void 0;const a=50-o/2;let i=0,s=-a,u=0,c=-2*a;switch(l){case"left":i=-a,s=0,u=2*a,c=0;break;case"right":i=a,s=0,u=-2*a,c=0;break;case"bottom":s=a,c=2*a;break}const d=`M 50,50 m ${i},${s} + a ${a},${a} 0 1 1 ${u},${-c} + a ${a},${a} 0 1 1 ${-u},${c}`,p=Math.PI*2*a,v={stroke:n,strokeDasharray:`${t/100*(p-r)}px ${p}px`,strokeDashoffset:`-${r/2+e/100*(p-r)}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"};return{pathString:d,pathStyle:v}}const Oq=te({compatConfig:{MODE:3},name:"VCCircle",props:rt(xq,Sq),setup(e){n$+=1;const t=ee(n$),n=P(()=>r$(e.percent)),o=P(()=>r$(e.strokeColor)),[r,l]=Vg();Cq(l);const a=()=>{const{prefixCls:i,strokeWidth:s,strokeLinecap:u,gapDegree:c,gapPosition:d}=e;let p=0;return n.value.map((v,y)=>{const m=o.value[y]||o.value[o.value.length-1],h=Object.prototype.toString.call(m)==="[object Object]"?`url(#${i}-gradient-${t.value})`:"",{pathString:b,pathStyle:$}=l$(p,v,m,s,c,d);p+=v;const C={key:y,d:b,stroke:h,"stroke-linecap":u,"stroke-width":s,opacity:v===0?0:1,"fill-opacity":"0",class:`${i}-circle-path`,style:$};return f("path",F({ref:r(y)},C),null)})};return()=>{const{prefixCls:i,strokeWidth:s,trailWidth:u,gapDegree:c,gapPosition:d,trailColor:p,strokeLinecap:v,strokeColor:y}=e,m=wq(e,["prefixCls","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","strokeColor"]),{pathString:h,pathStyle:b}=l$(0,100,p,s,c,d);delete m.percent;const $=o.value.find(w=>Object.prototype.toString.call(w)==="[object Object]"),C={d:h,stroke:p,"stroke-linecap":v,"stroke-width":u||s,"fill-opacity":"0",class:`${i}-circle-trail`,style:b};return f("svg",F({class:`${i}-circle`,viewBox:"0 0 100 100"},m),[$&&f("defs",null,[f("linearGradient",{id:`${i}-gradient-${t.value}`,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},[Object.keys($).sort((w,S)=>o$(w)-o$(S)).map((w,S)=>f("stop",{key:S,offset:w,"stop-color":$[w]},null))])]),f("path",C,null),a().reverse()])}}}),Pq=()=>g(g({},fu()),{strokeColor:It()}),Iq=3,Tq=e=>Iq/e*100,Eq=te({compatConfig:{MODE:3},name:"ProgressCircle",inheritAttrs:!1,props:rt(Pq(),{trailColor:null}),setup(e,t){let{slots:n,attrs:o}=t;const r=P(()=>{var m;return(m=e.width)!==null&&m!==void 0?m:120}),l=P(()=>{var m;return(m=e.size)!==null&&m!==void 0?m:[r.value,r.value]}),a=P(()=>pu(l.value,"circle")),i=P(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type==="dashboard")return 75}),s=P(()=>({width:`${a.value.width}px`,height:`${a.value.height}px`,fontSize:`${a.value.width*.15+6}px`})),u=P(()=>{var m;return(m=e.strokeWidth)!==null&&m!==void 0?m:Math.max(Tq(a.value.width),6)}),c=P(()=>e.gapPosition||e.type==="dashboard"&&"bottom"||void 0),d=P(()=>vq(e)),p=P(()=>Object.prototype.toString.call(e.strokeColor)==="[object Object]"),v=P(()=>gq({success:e.success,strokeColor:e.strokeColor})),y=P(()=>({[`${e.prefixCls}-inner`]:!0,[`${e.prefixCls}-circle-gradient`]:p.value}));return()=>{var m;const h=f(Oq,{percent:d.value,strokeWidth:u.value,trailWidth:u.value,strokeColor:v.value,strokeLinecap:e.strokeLinecap,trailColor:e.trailColor,prefixCls:e.prefixCls,gapDegree:i.value,gapPosition:c.value},null);return f("div",F(F({},o),{},{class:[y.value,o.class],style:[o.style,s.value]}),[a.value.width<=20?f(Vn,null,{default:()=>[f("span",null,[h])],title:n.default}):f(qe,null,[h,(m=n.default)===null||m===void 0?void 0:m.call(n)])])}}}),Mq=()=>g(g({},fu()),{steps:Number,strokeColor:Xe(),trailColor:String}),_q=te({compatConfig:{MODE:3},name:"Steps",props:Mq(),setup(e,t){let{slots:n}=t;const o=P(()=>Math.round(e.steps*((e.percent||0)/100))),r=P(()=>{var i;return(i=e.size)!==null&&i!==void 0?i:[e.size==="small"?2:14,e.strokeWidth||8]}),l=P(()=>pu(r.value,"step",{steps:e.steps,strokeWidth:e.strokeWidth||8})),a=P(()=>{const{steps:i,strokeColor:s,trailColor:u,prefixCls:c}=e,d=[];for(let p=0;p{var i;return f("div",{class:`${e.prefixCls}-steps-outer`},[a.value,(i=n.default)===null||i===void 0?void 0:i.call(n)])}}}),Dq=new Ue("antProgressActive",{"0%":{transform:"translateX(-100%) scaleX(0)",opacity:.1},"20%":{transform:"translateX(-100%) scaleX(0)",opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}}),Aq=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:g(g({},Qe(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize,marginInlineEnd:e.marginXS,marginBottom:e.marginXS},[`${t}-outer`]:{display:"inline-block",width:"100%"},[`&${t}-show-info`]:{[`${t}-outer`]:{marginInlineEnd:`calc(-2em - ${e.marginXS}px)`,paddingInlineEnd:`calc(2em + ${e.paddingXS}px)`}},[`${t}-inner`]:{position:"relative",display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"middle",backgroundColor:e.progressRemainingColor,borderRadius:e.progressLineRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorInfo}},[`${t}-success-bg, ${t}-bg`]:{position:"relative",backgroundColor:e.colorInfo,borderRadius:e.progressLineRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:"inline-block",width:"2em",marginInlineStart:e.marginXS,color:e.progressInfoTextColor,lineHeight:1,whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[n]:{fontSize:e.fontSize}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.progressLineRadius,opacity:0,animationName:Dq,animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},Rq=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.progressRemainingColor},[`&${t}-circle ${t}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${t}-circle ${t}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.colorText,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[n]:{fontSize:`${e.fontSize/e.fontSizeSM}em`}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:"bottom"}}}},Bq=e=>{const{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.progressRemainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.colorInfo}}}}}},Nq=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},Fq=Je("Progress",e=>{const t=e.marginXXS/2,n=Le(e,{progressLineRadius:100,progressInfoTextColor:e.colorText,progressDefaultColor:e.colorInfo,progressRemainingColor:e.colorFillSecondary,progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:"2.4s"});return[Aq(n),Rq(n),Bq(n),Nq(n)]});var kq=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rArray.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor),u=P(()=>{const{percent:y=0}=e,m=oc(e);return parseInt(m!==void 0?m.toString():y.toString(),10)}),c=P(()=>{const{status:y}=e;return!pq.includes(y)&&u.value>=100?"success":y||"normal"}),d=P(()=>{const{type:y,showInfo:m,size:h}=e,b=r.value;return{[b]:!0,[`${b}-inline-circle`]:y==="circle"&&pu(h,"circle").width<=20,[`${b}-${y==="dashboard"&&"circle"||y}`]:!0,[`${b}-status-${c.value}`]:!0,[`${b}-show-info`]:m,[`${b}-${h}`]:h,[`${b}-rtl`]:l.value==="rtl",[i.value]:!0}}),p=P(()=>typeof e.strokeColor=="string"||Array.isArray(e.strokeColor)?e.strokeColor:void 0),v=()=>{const{showInfo:y,format:m,type:h,percent:b,title:$}=e,C=oc(e);if(!y)return null;let w;const S=m||(n==null?void 0:n.format)||(x=>`${x}%`),O=h==="line";return m||n!=null&&n.format||c.value!=="exception"&&c.value!=="success"?w=S(zr(b),zr(C)):c.value==="exception"?w=O?f(On,null,null):f(Qn,null,null):c.value==="success"&&(w=O?f(Ko,null,null):f(Yv,null,null)),f("span",{class:`${r.value}-text`,title:$===void 0&&typeof w=="string"?w:void 0},[w])};return()=>{const{type:y,steps:m,title:h}=e,{class:b}=o,$=kq(o,["class"]),C=v();let w;return y==="line"?w=m?f(_q,F(F({},e),{},{strokeColor:p.value,prefixCls:r.value,steps:m}),{default:()=>[C]}):f($q,F(F({},e),{},{strokeColor:s.value,prefixCls:r.value,direction:l.value}),{default:()=>[C]}):(y==="circle"||y==="dashboard")&&(w=f(Eq,F(F({},e),{},{prefixCls:r.value,strokeColor:s.value,progressStatus:c.value}),{default:()=>[C]})),a(f("div",F(F({role:"progressbar"},$),{},{class:[d.value,b],title:h}),[w]))}}}),zq=Gt(Lq);function Hq(e){let t=e.scrollX;const n="scrollLeft";if(typeof t!="number"){const o=e.document;t=o.documentElement[n],typeof t!="number"&&(t=o.body[n])}return t}function jq(e){let t,n;const o=e.ownerDocument,{body:r}=o,l=o&&o.documentElement,a=e.getBoundingClientRect();return t=a.left,n=a.top,t-=l.clientLeft||r.clientLeft||0,n-=l.clientTop||r.clientTop||0,{left:t,top:n}}function Vq(e){const t=jq(e),n=e.ownerDocument,o=n.defaultView||n.parentWindow;return t.left+=Hq(o),t.left}var Wq={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"}}]},name:"star",theme:"filled"};const Kq=Wq;function a$(e){for(var t=1;t{const{index:s}=e;n("hover",i,s)},r=i=>{const{index:s}=e;n("click",i,s)},l=i=>{const{index:s}=e;i.keyCode===13&&n("click",i,s)},a=P(()=>{const{prefixCls:i,index:s,value:u,allowHalf:c,focused:d}=e,p=s+1;let v=i;return u===0&&s===0&&d?v+=` ${i}-focused`:c&&u+.5>=p&&u{const{disabled:i,prefixCls:s,characterRender:u,character:c,index:d,count:p,value:v}=e,y=typeof c=="function"?c({disabled:i,prefixCls:s,index:d,count:p,value:v}):c;let m=f("li",{class:a.value},[f("div",{onClick:i?null:r,onKeydown:i?null:l,onMousemove:i?null:o,role:"radio","aria-checked":v>d?"true":"false","aria-posinset":d+1,"aria-setsize":p,tabindex:i?-1:0},[f("div",{class:`${s}-first`},[y]),f("div",{class:`${s}-second`},[y])])]);return u&&(m=u(m,e)),m}}}),qq=e=>{const{componentCls:t}=e;return{[`${t}-star`]:{position:"relative",display:"inline-block",color:"inherit",cursor:"pointer","&:not(:last-child)":{marginInlineEnd:e.marginXS},"> div":{transition:`all ${e.motionDurationMid}, outline 0s`,"&:hover":{transform:e.rateStarHoverScale},"&:focus":{outline:0},"&:focus-visible":{outline:`${e.lineWidth}px dashed ${e.rateStarColor}`,transform:e.rateStarHoverScale}},"&-first, &-second":{color:e.defaultColor,transition:`all ${e.motionDurationMid}`,userSelect:"none",[e.iconCls]:{verticalAlign:"middle"}},"&-first":{position:"absolute",top:0,insetInlineStart:0,width:"50%",height:"100%",overflow:"hidden",opacity:0},[`&-half ${t}-star-first, &-half ${t}-star-second`]:{opacity:1},[`&-half ${t}-star-first, &-full ${t}-star-second`]:{color:"inherit"}}}},Qq=e=>({[`&-rtl${e.componentCls}`]:{direction:"rtl"}}),Zq=e=>{const{componentCls:t}=e;return{[t]:g(g(g(g(g({},Qe(e)),{display:"inline-block",margin:0,padding:0,color:e.rateStarColor,fontSize:e.rateStarSize,lineHeight:"unset",listStyle:"none",outline:"none",[`&-disabled${t} ${t}-star`]:{cursor:"default","&:hover":{transform:"scale(1)"}}}),qq(e)),{[`+ ${t}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,fontSize:e.fontSize}}),Qq(e))}},Jq=Je("Rate",e=>{const{colorFillContent:t}=e,n=Le(e,{rateStarColor:e["yellow-6"],rateStarSize:e.controlHeightLG*.5,rateStarHoverScale:"scale(1.1)",defaultColor:t});return[Zq(n)]}),eQ=()=>({prefixCls:String,count:Number,value:Number,allowHalf:{type:Boolean,default:void 0},allowClear:{type:Boolean,default:void 0},tooltips:Array,disabled:{type:Boolean,default:void 0},character:V.any,autofocus:{type:Boolean,default:void 0},tabindex:V.oneOfType([V.number,V.string]),direction:String,id:String,onChange:Function,onHoverChange:Function,"onUpdate:value":Function,onFocus:Function,onBlur:Function,onKeydown:Function}),tQ=te({compatConfig:{MODE:3},name:"ARate",inheritAttrs:!1,props:rt(eQ(),{value:0,count:5,allowHalf:!1,allowClear:!0,tabindex:0,direction:"ltr"}),setup(e,t){let{slots:n,attrs:o,emit:r,expose:l}=t;const{prefixCls:a,direction:i}=Me("rate",e),[s,u]=Jq(a),c=Lt(),d=ee(),[p,v]=Vg(),y=vt({value:e.value,focused:!1,cleanedValue:null,hoverValue:void 0});ue(()=>e.value,()=>{y.value=e.value});const m=_=>sn(v.value.get(_)),h=(_,z)=>{const R=i.value==="rtl";let H=_+1;if(e.allowHalf){const T=m(_),D=Vq(T),A=T.clientWidth;(R&&z-D>A/2||!R&&z-D{e.value===void 0&&(y.value=_),r("update:value",_),r("change",_),c.onFieldChange()},$=(_,z)=>{const R=h(z,_.pageX);R!==y.cleanedValue&&(y.hoverValue=R,y.cleanedValue=null),r("hoverChange",R)},C=()=>{y.hoverValue=void 0,y.cleanedValue=null,r("hoverChange",void 0)},w=(_,z)=>{const{allowClear:R}=e,H=h(z,_.pageX);let T=!1;R&&(T=H===y.value),C(),b(T?0:H),y.cleanedValue=T?H:null},S=_=>{y.focused=!0,r("focus",_)},O=_=>{y.focused=!1,r("blur",_),c.onFieldBlur()},x=_=>{const{keyCode:z}=_,{count:R,allowHalf:H}=e,T=i.value==="rtl";z===Se.RIGHT&&y.value0&&!T||z===Se.RIGHT&&y.value>0&&T?(H?y.value-=.5:y.value-=1,b(y.value),_.preventDefault()):z===Se.LEFT&&y.value{e.disabled||d.value.focus()};l({focus:I,blur:()=>{e.disabled||d.value.blur()}}),Ve(()=>{const{autofocus:_,disabled:z}=e;_&&!z&&I()});const M=(_,z)=>{let{index:R}=z;const{tooltips:H}=e;return H?f(Vn,{title:H[R]},{default:()=>[_]}):_};return()=>{const{count:_,allowHalf:z,disabled:R,tabindex:H,id:T=c.id.value}=e,{class:D,style:A}=o,B=[],N=R?`${a.value}-disabled`:"",k=e.character||n.character||(()=>f(Xq,null,null));for(let j=0;j<_;j++)B.push(f(Yq,{ref:p(j),key:j,index:j,count:_,disabled:R,prefixCls:`${a.value}-star`,allowHalf:z,value:y.hoverValue===void 0?y.value:y.hoverValue,onClick:w,onHover:$,character:k,characterRender:M,focused:y.focused},null));const L=ne(a.value,N,D,{[u.value]:!0,[`${a.value}-rtl`]:i.value==="rtl"});return s(f("ul",F(F({},o),{},{id:T,class:L,style:A,onMouseleave:R?null:C,tabindex:R?-1:H,onFocus:R?null:S,onBlur:R?null:O,onKeydown:R?null:x,ref:d,role:"radiogroup"}),[B]))}}}),Fle=Gt(tQ);var nQ={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"warning",theme:"filled"};const oQ=nQ;function i$(e){for(var t=1;tf("svg",{width:"252",height:"294"},[f("defs",null,[f("path",{d:"M0 .387h251.772v251.772H0z"},null)]),f("g",{fill:"none","fill-rule":"evenodd"},[f("g",{transform:"translate(0 .012)"},[f("mask",{fill:"#fff"},null),f("path",{d:"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321",fill:"#E4EBF7",mask:"url(#b)"},null)]),f("path",{d:"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66",fill:"#FFF"},null),f("path",{d:"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788",stroke:"#FFF","stroke-width":"2"},null),f("path",{d:"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175",fill:"#FFF"},null),f("path",{d:"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932",fill:"#FFF"},null),f("path",{d:"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011",stroke:"#FFF","stroke-width":"2"},null),f("path",{d:"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382",fill:"#FFF"},null),f("path",{d:"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z",stroke:"#FFF","stroke-width":"2"},null),f("path",{stroke:"#FFF","stroke-width":"2",d:"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39"},null),f("path",{d:"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742",fill:"#FFF"},null),f("path",{d:"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48",fill:"#1890FF"},null),f("path",{d:"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894",fill:"#FFF"},null),f("path",{d:"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88",fill:"#FFB594"},null),f("path",{d:"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624",fill:"#FFC6A0"},null),f("path",{d:"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682",fill:"#FFF"},null),f("path",{d:"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573",fill:"#CBD1D1"},null),f("path",{d:"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z",fill:"#2B0849"},null),f("path",{d:"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558",fill:"#A4AABA"},null),f("path",{d:"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z",fill:"#CBD1D1"},null),f("path",{d:"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062",fill:"#2B0849"},null),f("path",{d:"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15",fill:"#A4AABA"},null),f("path",{d:"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165",fill:"#7BB2F9"},null),f("path",{d:"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M107.275 222.1s2.773-1.11 6.102-3.884",stroke:"#648BD8","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038",fill:"#192064"},null),f("path",{d:"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81",fill:"#FFF"},null),f("path",{d:"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642",fill:"#192064"},null),f("path",{d:"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268",fill:"#FFC6A0"},null),f("path",{d:"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456",fill:"#FFC6A0"},null),f("path",{d:"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z",fill:"#520038"},null),f("path",{d:"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254",fill:"#552950"},null),f("path",{stroke:"#DB836E","stroke-width":"1.118","stroke-linecap":"round","stroke-linejoin":"round",d:"M110.13 74.84l-.896 1.61-.298 4.357h-2.228"},null),f("path",{d:"M110.846 74.481s1.79-.716 2.506.537",stroke:"#5C2552","stroke-width":"1.118","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67",stroke:"#DB836E","stroke-width":"1.118","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M103.287 72.93s1.83 1.113 4.137.954",stroke:"#5C2552","stroke-width":"1.118","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639",stroke:"#DB836E","stroke-width":"1.118","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206",stroke:"#E4EBF7","stroke-width":"1.101","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M129.405 122.865s-5.272 7.403-9.422 10.768",stroke:"#E4EBF7","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M119.306 107.329s.452 4.366-2.127 32.062",stroke:"#E4EBF7","stroke-width":"1.101","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01",fill:"#F2D7AD"},null),f("path",{d:"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92",fill:"#F4D19D"},null),f("path",{d:"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z",fill:"#F2D7AD"},null),f("path",{fill:"#CC9B6E",d:"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z"},null),f("path",{d:"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83",fill:"#F4D19D"},null),f("path",{fill:"#CC9B6E",d:"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z"},null),f("path",{fill:"#CC9B6E",d:"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z"},null),f("path",{d:"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238",fill:"#FFC6A0"},null),f("path",{d:"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044",stroke:"#DB836E","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617",stroke:"#DB836E","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754",stroke:"#DB836E","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647",fill:"#5BA02E"},null),f("path",{d:"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647",fill:"#92C110"},null),f("path",{d:"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187",fill:"#F2D7AD"},null),f("path",{d:"M88.979 89.48s7.776 5.384 16.6 2.842",stroke:"#E4EBF7","stroke-width":"1.101","stroke-linecap":"round","stroke-linejoin":"round"},null)])]),iQ=aQ,sQ=()=>f("svg",{width:"254",height:"294"},[f("defs",null,[f("path",{d:"M0 .335h253.49v253.49H0z"},null),f("path",{d:"M0 293.665h253.49V.401H0z"},null)]),f("g",{fill:"none","fill-rule":"evenodd"},[f("g",{transform:"translate(0 .067)"},[f("mask",{fill:"#fff"},null),f("path",{d:"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134",fill:"#E4EBF7",mask:"url(#b)"},null)]),f("path",{d:"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671",fill:"#FFF"},null),f("path",{d:"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861",stroke:"#FFF","stroke-width":"2"},null),f("path",{d:"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238",fill:"#FFF"},null),f("path",{d:"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775",fill:"#FFF"},null),f("path",{d:"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68",fill:"#FF603B"},null),f("path",{d:"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733",fill:"#FFF"},null),f("path",{d:"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487",fill:"#FFB594"},null),f("path",{d:"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235",fill:"#FFF"},null),f("path",{d:"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246",fill:"#FFB594"},null),f("path",{d:"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508",fill:"#FFC6A0"},null),f("path",{d:"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z",fill:"#520038"},null),f("path",{d:"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26",fill:"#552950"},null),f("path",{stroke:"#DB836E","stroke-width":"1.063","stroke-linecap":"round","stroke-linejoin":"round",d:"M99.206 73.644l-.9 1.62-.3 4.38h-2.24"},null),f("path",{d:"M99.926 73.284s1.8-.72 2.52.54",stroke:"#5C2552","stroke-width":"1.117","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68",stroke:"#DB836E","stroke-width":"1.117","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M92.326 71.724s1.84 1.12 4.16.96",stroke:"#5C2552","stroke-width":"1.117","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954",stroke:"#DB836E","stroke-width":"1.063","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044",stroke:"#E4EBF7","stroke-width":"1.136","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583",fill:"#FFF"},null),f("path",{d:"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75",fill:"#FFC6A0"},null),f("path",{d:"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713",fill:"#FFC6A0"},null),f("path",{d:"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51",stroke:"#E4EBF7","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16",fill:"#FFC6A0"},null),f("path",{d:"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575",fill:"#FFF"},null),f("path",{d:"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47",fill:"#CBD1D1"},null),f("path",{d:"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z",fill:"#2B0849"},null),f("path",{d:"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671",fill:"#A4AABA"},null),f("path",{d:"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z",fill:"#CBD1D1"},null),f("path",{d:"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162",fill:"#2B0849"},null),f("path",{d:"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156",fill:"#A4AABA"},null),f("path",{d:"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69",fill:"#7BB2F9"},null),f("path",{d:"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034",stroke:"#648BD8","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M96.973 219.373s2.882-1.153 6.34-4.034",stroke:"#648BD8","stroke-width":"1.032","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07",stroke:"#648BD8","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62",fill:"#192064"},null),f("path",{d:"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843",fill:"#FFF"},null),f("path",{d:"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668",fill:"#192064"},null),f("path",{d:"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513",stroke:"#648BD8","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72",stroke:"#E4EBF7","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69",fill:"#FFC6A0"},null),f("path",{d:"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593",stroke:"#DB836E","stroke-width":".774","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762",stroke:"#E59788","stroke-width":".774","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594",fill:"#FFC6A0"},null),f("path",{d:"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12",stroke:"#E59788","stroke-width":".774","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M109.278 112.533s3.38-3.613 7.575-4.662",stroke:"#E4EBF7","stroke-width":"1.085","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M107.375 123.006s9.697-2.745 11.445-.88",stroke:"#E59788","stroke-width":".774","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955",stroke:"#BFCDDD","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01",fill:"#A3B4C6"},null),f("path",{d:"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813",fill:"#A3B4C6"},null),f("mask",{fill:"#fff"},null),f("path",{fill:"#A3B4C6",mask:"url(#d)",d:"M154.098 190.096h70.513v-84.617h-70.513z"},null),f("path",{d:"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208",fill:"#BFCDDD",mask:"url(#d)"},null),f("path",{d:"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"},null),f("path",{d:"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209",fill:"#BFCDDD",mask:"url(#d)"},null),f("path",{d:"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751",stroke:"#7C90A5","stroke-width":"1.124","stroke-linecap":"round","stroke-linejoin":"round",mask:"url(#d)"},null),f("path",{d:"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"},null),f("path",{d:"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407",fill:"#BFCDDD",mask:"url(#d)"},null),f("path",{d:"M177.259 207.217v11.52M201.05 207.217v11.52",stroke:"#A3B4C6","stroke-width":"1.124","stroke-linecap":"round","stroke-linejoin":"round",mask:"url(#d)"},null),f("path",{d:"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422",fill:"#5BA02E",mask:"url(#d)"},null),f("path",{d:"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423",fill:"#92C110",mask:"url(#d)"},null),f("path",{d:"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209",fill:"#F2D7AD",mask:"url(#d)"},null)])]),cQ=sQ,uQ=()=>f("svg",{width:"251",height:"294"},[f("g",{fill:"none","fill-rule":"evenodd"},[f("path",{d:"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023",fill:"#E4EBF7"},null),f("path",{d:"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65",fill:"#FFF"},null),f("path",{d:"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73",stroke:"#FFF","stroke-width":"2"},null),f("path",{d:"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126",fill:"#FFF"},null),f("path",{d:"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873",fill:"#FFF"},null),f("path",{d:"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36",stroke:"#FFF","stroke-width":"2"},null),f("path",{d:"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375",fill:"#FFF"},null),f("path",{d:"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z",stroke:"#FFF","stroke-width":"2"},null),f("path",{stroke:"#FFF","stroke-width":"2",d:"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668"},null),f("path",{d:"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321",fill:"#A26EF4"},null),f("path",{d:"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734",fill:"#FFF"},null),f("path",{d:"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717",fill:"#FFF"},null),f("path",{d:"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61",fill:"#5BA02E"},null),f("path",{d:"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611",fill:"#92C110"},null),f("path",{d:"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17",fill:"#F2D7AD"},null),f("path",{d:"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085",fill:"#FFF"},null),f("path",{d:"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233",fill:"#FFC6A0"},null),f("path",{d:"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367",fill:"#FFB594"},null),f("path",{d:"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95",fill:"#FFC6A0"},null),f("path",{d:"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929",fill:"#FFF"},null),f("path",{d:"M78.18 94.656s.911 7.41-4.914 13.078",stroke:"#E4EBF7","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437",stroke:"#E4EBF7","stroke-width":".932","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z",fill:"#FFC6A0"},null),f("path",{d:"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91",fill:"#FFB594"},null),f("path",{d:"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103",fill:"#5C2552"},null),f("path",{d:"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145",fill:"#FFC6A0"},null),f("path",{stroke:"#DB836E","stroke-width":"1.145","stroke-linecap":"round","stroke-linejoin":"round",d:"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406"},null),f("path",{d:"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32",fill:"#552950"},null),f("path",{d:"M91.132 86.786s5.269 4.957 12.679 2.327",stroke:"#DB836E","stroke-width":"1.145","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25",fill:"#DB836E"},null),f("path",{d:"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073",stroke:"#5C2552","stroke-width":"1.526","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254",stroke:"#DB836E","stroke-width":"1.145","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008",stroke:"#E4EBF7","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M66.508 86.763s-1.598 8.83-6.697 14.078",stroke:"#E4EBF7","stroke-width":"1.114","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M128.31 87.934s3.013 4.121 4.06 11.785",stroke:"#E4EBF7","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M64.09 84.816s-6.03 9.912-13.607 9.903",stroke:"#DB836E","stroke-width":".795","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73",fill:"#FFC6A0"},null),f("path",{d:"M130.532 85.488s4.588 5.757 11.619 6.214",stroke:"#DB836E","stroke-width":".75","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M121.708 105.73s-.393 8.564-1.34 13.612",stroke:"#E4EBF7","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M115.784 161.512s-3.57-1.488-2.678-7.14",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68",fill:"#CBD1D1"},null),f("path",{d:"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z",fill:"#2B0849"},null),f("path",{d:"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62",fill:"#A4AABA"},null),f("path",{d:"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z",fill:"#CBD1D1"},null),f("path",{d:"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078",fill:"#2B0849"},null),f("path",{d:"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15",fill:"#A4AABA"},null),f("path",{d:"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954",fill:"#7BB2F9"},null),f("path",{d:"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M108.459 220.905s2.759-1.104 6.07-3.863",stroke:"#648BD8","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null),f("path",{d:"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017",fill:"#192064"},null),f("path",{d:"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806",fill:"#FFF"},null),f("path",{d:"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64",fill:"#192064"},null),f("path",{d:"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956",stroke:"#648BD8","stroke-width":"1.051","stroke-linecap":"round","stroke-linejoin":"round"},null)])]),dQ=uQ,fQ=e=>{const{componentCls:t,lineHeightHeading3:n,iconCls:o,padding:r,paddingXL:l,paddingXS:a,paddingLG:i,marginXS:s,lineHeight:u}=e;return{[t]:{padding:`${i*2}px ${l}px`,"&-rtl":{direction:"rtl"}},[`${t} ${t}-image`]:{width:e.imageWidth,height:e.imageHeight,margin:"auto"},[`${t} ${t}-icon`]:{marginBottom:i,textAlign:"center",[`& > ${o}`]:{fontSize:e.resultIconFontSize}},[`${t} ${t}-title`]:{color:e.colorTextHeading,fontSize:e.resultTitleFontSize,lineHeight:n,marginBlock:s,textAlign:"center"},[`${t} ${t}-subtitle`]:{color:e.colorTextDescription,fontSize:e.resultSubtitleFontSize,lineHeight:u,textAlign:"center"},[`${t} ${t}-content`]:{marginTop:i,padding:`${i}px ${r*2.5}px`,backgroundColor:e.colorFillAlter},[`${t} ${t}-extra`]:{margin:e.resultExtraMargin,textAlign:"center","& > *":{marginInlineEnd:a,"&:last-child":{marginInlineEnd:0}}}}},pQ=e=>{const{componentCls:t,iconCls:n}=e;return{[`${t}-success ${t}-icon > ${n}`]:{color:e.resultSuccessIconColor},[`${t}-error ${t}-icon > ${n}`]:{color:e.resultErrorIconColor},[`${t}-info ${t}-icon > ${n}`]:{color:e.resultInfoIconColor},[`${t}-warning ${t}-icon > ${n}`]:{color:e.resultWarningIconColor}}},vQ=e=>[fQ(e),pQ(e)],gQ=e=>vQ(e),mQ=Je("Result",e=>{const{paddingLG:t,fontSizeHeading3:n}=e,o=e.fontSize,r=`${t}px 0 0 0`,l=e.colorInfo,a=e.colorError,i=e.colorSuccess,s=e.colorWarning,u=Le(e,{resultTitleFontSize:n,resultSubtitleFontSize:o,resultIconFontSize:n*3,resultExtraMargin:r,resultInfoIconColor:l,resultErrorIconColor:a,resultSuccessIconColor:i,resultWarningIconColor:s});return[gQ(u)]},{imageWidth:250,imageHeight:295}),hQ={success:Ko,error:On,info:Go,warning:lQ},wi={404:iQ,500:cQ,403:dQ},bQ=Object.keys(wi),yQ=()=>({prefixCls:String,icon:V.any,status:{type:[Number,String],default:"info"},title:V.any,subTitle:V.any,extra:V.any}),$Q=(e,t)=>{let{status:n,icon:o}=t;if(bQ.includes(`${n}`)){const a=wi[n];return f("div",{class:`${e}-icon ${e}-image`},[f(a,null,null)])}const r=hQ[n],l=o||f(r,null,null);return f("div",{class:`${e}-icon`},[l])},SQ=(e,t)=>t&&f("div",{class:`${e}-extra`},[t]),Hr=te({compatConfig:{MODE:3},name:"AResult",inheritAttrs:!1,props:yQ(),slots:Object,setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("result",e),[a,i]=mQ(r),s=P(()=>ne(r.value,i.value,`${r.value}-${e.status}`,{[`${r.value}-rtl`]:l.value==="rtl"}));return()=>{var u,c,d,p,v,y,m,h;const b=(u=e.title)!==null&&u!==void 0?u:(c=n.title)===null||c===void 0?void 0:c.call(n),$=(d=e.subTitle)!==null&&d!==void 0?d:(p=n.subTitle)===null||p===void 0?void 0:p.call(n),C=(v=e.icon)!==null&&v!==void 0?v:(y=n.icon)===null||y===void 0?void 0:y.call(n),w=(m=e.extra)!==null&&m!==void 0?m:(h=n.extra)===null||h===void 0?void 0:h.call(n),S=r.value;return a(f("div",F(F({},o),{},{class:[s.value,o.class]}),[$Q(S,{status:e.status,icon:C}),f("div",{class:`${S}-title`},[b]),$&&f("div",{class:`${S}-subtitle`},[$]),SQ(S,w),n.default&&f("div",{class:`${S}-content`},[n.default()])]))}}});Hr.PRESENTED_IMAGE_403=wi[403];Hr.PRESENTED_IMAGE_404=wi[404];Hr.PRESENTED_IMAGE_500=wi[500];Hr.install=function(e){return e.component(Hr.name,Hr),e};const kle=Hr,Lle=Gt(Qg),OO=(e,t)=>{let{attrs:n}=t;const{included:o,vertical:r,style:l,class:a}=n;let{length:i,offset:s,reverse:u}=n;i<0&&(u=!u,i=Math.abs(i),s=100-s);const c=r?{[u?"top":"bottom"]:`${s}%`,[u?"bottom":"top"]:"auto",height:`${i}%`}:{[u?"right":"left"]:`${s}%`,[u?"left":"right"]:"auto",width:`${i}%`},d=g(g({},l),c);return o?f("div",{class:a,style:d},null):null};OO.inheritAttrs=!1;const PO=OO,CQ=(e,t,n,o,r,l)=>{$t();const a=Object.keys(t).map(parseFloat).sort((i,s)=>i-s);if(n&&o)for(let i=r;i<=l;i+=o)a.indexOf(i)===-1&&a.push(i);return a},IO=(e,t)=>{let{attrs:n}=t;const{prefixCls:o,vertical:r,reverse:l,marks:a,dots:i,step:s,included:u,lowerBound:c,upperBound:d,max:p,min:v,dotStyle:y,activeDotStyle:m}=n,h=p-v,b=CQ(r,a,i,s,v,p).map($=>{const C=`${Math.abs($-v)/h*100}%`,w=!u&&$===d||u&&$<=d&&$>=c;let S=r?g(g({},y),{[l?"top":"bottom"]:C}):g(g({},y),{[l?"right":"left"]:C});w&&(S=g(g({},S),m));const O=ne({[`${o}-dot`]:!0,[`${o}-dot-active`]:w,[`${o}-dot-reverse`]:l});return f("span",{class:O,style:S,key:$},null)});return f("div",{class:`${o}-step`},[b])};IO.inheritAttrs=!1;const xQ=IO,TO=(e,t)=>{let{attrs:n,slots:o}=t;const{class:r,vertical:l,reverse:a,marks:i,included:s,upperBound:u,lowerBound:c,max:d,min:p,onClickLabel:v}=n,y=Object.keys(i),m=o.mark,h=d-p,b=y.map(parseFloat).sort(($,C)=>$-C).map($=>{const C=typeof i[$]=="function"?i[$]():i[$],w=typeof C=="object"&&!Rt(C);let S=w?C.label:C;if(!S&&S!==0)return null;m&&(S=m({point:$,label:S}));const O=!s&&$===u||s&&$<=u&&$>=c,x=ne({[`${r}-text`]:!0,[`${r}-text-active`]:O}),I={marginBottom:"-50%",[a?"top":"bottom"]:`${($-p)/h*100}%`},E={transform:`translateX(${a?"50%":"-50%"})`,msTransform:`translateX(${a?"50%":"-50%"})`,[a?"right":"left"]:`${($-p)/h*100}%`},M=l?I:E,_=w?g(g({},M),C.style):M,z={[qt?"onTouchstartPassive":"onTouchstart"]:R=>v(R,$)};return f("span",F({class:x,style:_,key:$,onMousedown:R=>v(R,$)},z),[S])});return f("div",{class:r},[b])};TO.inheritAttrs=!1;const wQ=TO,EO=te({compatConfig:{MODE:3},name:"Handle",inheritAttrs:!1,props:{prefixCls:String,vertical:{type:Boolean,default:void 0},offset:Number,disabled:{type:Boolean,default:void 0},min:Number,max:Number,value:Number,tabindex:V.oneOfType([V.number,V.string]),reverse:{type:Boolean,default:void 0},ariaLabel:String,ariaLabelledBy:String,ariaValueTextFormatter:Function,onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function}},setup(e,t){let{attrs:n,emit:o,expose:r}=t;const l=q(!1),a=q(),i=()=>{document.activeElement===a.value&&(l.value=!0)},s=h=>{l.value=!1,o("blur",h)},u=()=>{l.value=!1},c=()=>{var h;(h=a.value)===null||h===void 0||h.focus()},d=()=>{var h;(h=a.value)===null||h===void 0||h.blur()},p=()=>{l.value=!0,c()},v=h=>{h.preventDefault(),c(),o("mousedown",h)};r({focus:c,blur:d,clickFocus:p,ref:a});let y=null;Ve(()=>{y=Pt(document,"mouseup",i)}),Ze(()=>{y==null||y.remove()});const m=P(()=>{const{vertical:h,offset:b,reverse:$}=e;return h?{[$?"top":"bottom"]:`${b}%`,[$?"bottom":"top"]:"auto",transform:$?null:"translateY(+50%)"}:{[$?"right":"left"]:`${b}%`,[$?"left":"right"]:"auto",transform:`translateX(${$?"+":"-"}50%)`}});return()=>{const{prefixCls:h,disabled:b,min:$,max:C,value:w,tabindex:S,ariaLabel:O,ariaLabelledBy:x,ariaValueTextFormatter:I,onMouseenter:E,onMouseleave:M}=e,_=ne(n.class,{[`${h}-handle-click-focused`]:l.value}),z={"aria-valuemin":$,"aria-valuemax":C,"aria-valuenow":w,"aria-disabled":!!b},R=[n.style,m.value];let H=S||0;(b||S===null)&&(H=null);let T;I&&(T=I(w));const D=g(g(g(g({},n),{role:"slider",tabindex:H}),z),{class:_,onBlur:s,onKeydown:u,onMousedown:v,onMouseenter:E,onMouseleave:M,ref:a,style:R});return f("div",F(F({},D),{},{"aria-label":O,"aria-labelledby":x,"aria-valuetext":T}),null)}}});function Ad(e,t){try{return Object.keys(t).some(n=>e.target===t[n].ref)}catch(n){return!1}}function MO(e,t){let{min:n,max:o}=t;return eo}function s$(e){return e.touches.length>1||e.type.toLowerCase()==="touchend"&&e.touches.length>0}function c$(e,t){let{marks:n,step:o,min:r,max:l}=t;const a=Object.keys(n).map(parseFloat);if(o!==null){const s=Math.pow(10,_O(o)),u=Math.floor((l*s-r*s)/(o*s)),c=Math.min((e-r)/o,u),d=Math.round(c)*o+r;a.push(d)}const i=a.map(s=>Math.abs(e-s));return a[i.indexOf(Math.min(...i))]}function _O(e){const t=e.toString();let n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}function u$(e,t){let n=1;return window.visualViewport&&(n=+(window.visualViewport.width/document.body.getBoundingClientRect().width).toFixed(2)),(e?t.clientY:t.pageX)/n}function d$(e,t){let n=1;return window.visualViewport&&(n=+(window.visualViewport.width/document.body.getBoundingClientRect().width).toFixed(2)),(e?t.touches[0].clientY:t.touches[0].pageX)/n}function f$(e,t){const n=t.getBoundingClientRect();return e?n.top+n.height*.5:window.scrollX+n.left+n.width*.5}function Nm(e,t){let{max:n,min:o}=t;return e<=o?o:e>=n?n:e}function DO(e,t){const{step:n}=t,o=isFinite(c$(e,t))?c$(e,t):0;return n===null?o:parseFloat(o.toFixed(_O(n)))}function Kl(e){e.stopPropagation(),e.preventDefault()}function OQ(e,t,n){const o={increase:(a,i)=>a+i,decrease:(a,i)=>a-i},r=o[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),l=Object.keys(n.marks)[r];return n.step?o[e](t,n.step):Object.keys(n.marks).length&&n.marks[l]?n.marks[l]:t}function AO(e,t,n){const o="increase",r="decrease";let l=o;switch(e.keyCode){case Se.UP:l=t&&n?r:o;break;case Se.RIGHT:l=!t&&n?r:o;break;case Se.DOWN:l=t&&n?o:r;break;case Se.LEFT:l=!t&&n?o:r;break;case Se.END:return(a,i)=>i.max;case Se.HOME:return(a,i)=>i.min;case Se.PAGE_UP:return(a,i)=>a+i.step*2;case Se.PAGE_DOWN:return(a,i)=>a-i.step*2;default:return}return(a,i)=>OQ(l,a,i)}var PQ=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{this.document=this.sliderRef&&this.sliderRef.ownerDocument;const{autofocus:n,disabled:o}=this;n&&!o&&this.focus()})},beforeUnmount(){this.$nextTick(()=>{this.removeDocumentEvents()})},methods:{defaultHandle(n){var{index:o,directives:r,className:l,style:a}=n,i=PQ(n,["index","directives","className","style"]);if(delete i.dragging,i.value===null)return null;const s=g(g({},i),{class:l,style:a,key:o});return f(EO,s,null)},onDown(n,o){let r=o;const{draggableTrack:l,vertical:a}=this.$props,{bounds:i}=this.$data,s=l&&this.positionGetValue?this.positionGetValue(r)||[]:[],u=Ad(n,this.handlesRefs);if(this.dragTrack=l&&i.length>=2&&!u&&!s.map((c,d)=>{const p=d?!0:c>=i[d];return d===s.length-1?c<=i[d]:p}).some(c=>!c),this.dragTrack)this.dragOffset=r,this.startBounds=[...i];else{if(!u)this.dragOffset=0;else{const c=f$(a,n.target);this.dragOffset=r-c,r=c}this.onStart(r)}},onMouseDown(n){if(n.button!==0)return;this.removeDocumentEvents();const o=this.$props.vertical,r=u$(o,n);this.onDown(n,r),this.addDocumentMouseEvents()},onTouchStart(n){if(s$(n))return;const o=this.vertical,r=d$(o,n);this.onDown(n,r),this.addDocumentTouchEvents(),Kl(n)},onFocus(n){const{vertical:o}=this;if(Ad(n,this.handlesRefs)&&!this.dragTrack){const r=f$(o,n.target);this.dragOffset=0,this.onStart(r),Kl(n),this.$emit("focus",n)}},onBlur(n){this.dragTrack||this.onEnd(),this.$emit("blur",n)},onMouseUp(){this.handlesRefs[this.prevMovedHandleIndex]&&this.handlesRefs[this.prevMovedHandleIndex].clickFocus()},onMouseMove(n){if(!this.sliderRef){this.onEnd();return}const o=u$(this.vertical,n);this.onMove(n,o-this.dragOffset,this.dragTrack,this.startBounds)},onTouchMove(n){if(s$(n)||!this.sliderRef){this.onEnd();return}const o=d$(this.vertical,n);this.onMove(n,o-this.dragOffset,this.dragTrack,this.startBounds)},onKeyDown(n){this.sliderRef&&Ad(n,this.handlesRefs)&&this.onKeyboard(n)},onClickMarkLabel(n,o){n.stopPropagation(),this.onChange({sValue:o}),this.setState({sValue:o},()=>this.onEnd(!0))},getSliderStart(){const n=this.sliderRef,{vertical:o,reverse:r}=this,l=n.getBoundingClientRect();return o?r?l.bottom:l.top:window.scrollX+(r?l.right:l.left)},getSliderLength(){const n=this.sliderRef;if(!n)return 0;const o=n.getBoundingClientRect();return this.vertical?o.height:o.width},addDocumentTouchEvents(){this.onTouchMoveListener=Pt(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=Pt(this.document,"touchend",this.onEnd)},addDocumentMouseEvents(){this.onMouseMoveListener=Pt(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=Pt(this.document,"mouseup",this.onEnd)},removeDocumentEvents(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()},focus(){var n;this.$props.disabled||(n=this.handlesRefs[0])===null||n===void 0||n.focus()},blur(){this.$props.disabled||Object.keys(this.handlesRefs).forEach(n=>{var o,r;(r=(o=this.handlesRefs[n])===null||o===void 0?void 0:o.blur)===null||r===void 0||r.call(o)})},calcValue(n){const{vertical:o,min:r,max:l}=this,a=Math.abs(Math.max(n,0)/this.getSliderLength());return o?(1-a)*(l-r)+r:a*(l-r)+r},calcValueByPos(n){const r=(this.reverse?-1:1)*(n-this.getSliderStart());return this.trimAlignValue(this.calcValue(r))},calcOffset(n){const{min:o,max:r}=this,l=(n-o)/(r-o);return Math.max(0,l*100)},saveSlider(n){this.sliderRef=n},saveHandle(n,o){this.handlesRefs[n]=o}},render(){const{prefixCls:n,marks:o,dots:r,step:l,included:a,disabled:i,vertical:s,reverse:u,min:c,max:d,maximumTrackStyle:p,railStyle:v,dotStyle:y,activeDotStyle:m,id:h}=this,{class:b,style:$}=this.$attrs,{tracks:C,handles:w}=this.renderSlider(),S=ne(n,b,{[`${n}-with-marks`]:Object.keys(o).length,[`${n}-disabled`]:i,[`${n}-vertical`]:s,[`${n}-horizontal`]:!s}),O={vertical:s,marks:o,included:a,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:d,min:c,reverse:u,class:`${n}-mark`,onClickLabel:i?xr:this.onClickMarkLabel},x={[qt?"onTouchstartPassive":"onTouchstart"]:i?xr:this.onTouchStart};return f("div",F(F({id:h,ref:this.saveSlider,tabindex:"-1",class:S},x),{},{onMousedown:i?xr:this.onMouseDown,onMouseup:i?xr:this.onMouseUp,onKeydown:i?xr:this.onKeyDown,onFocus:i?xr:this.onFocus,onBlur:i?xr:this.onBlur,style:$}),[f("div",{class:`${n}-rail`,style:g(g({},p),v)},null),C,f(xQ,{prefixCls:n,vertical:s,reverse:u,marks:o,dots:r,step:l,included:a,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:d,min:c,dotStyle:y,activeDotStyle:m},null),w,f(wQ,O,{mark:this.$slots.mark}),pv(this)])}})}const IQ=te({compatConfig:{MODE:3},name:"Slider",mixins:[ui],inheritAttrs:!1,props:{defaultValue:Number,value:Number,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},tabindex:V.oneOfType([V.number,V.string]),reverse:{type:Boolean,default:void 0},min:Number,max:Number,ariaLabelForHandle:String,ariaLabelledByForHandle:String,ariaValueTextFormatterForHandle:String,startPoint:Number},emits:["beforeChange","afterChange","change"],data(){const e=this.defaultValue!==void 0?this.defaultValue:this.min,t=this.value!==void 0?this.value:e;return{sValue:this.trimAlignValue(t),dragging:!1}},watch:{value:{handler(e){this.setChangeValue(e)},deep:!0},min(){const{sValue:e}=this;this.setChangeValue(e)},max(){const{sValue:e}=this;this.setChangeValue(e)}},methods:{setChangeValue(e){const t=e!==void 0?e:this.sValue,n=this.trimAlignValue(t,this.$props);n!==this.sValue&&(this.setState({sValue:n}),MO(t,this.$props)&&this.$emit("change",n))},onChange(e){const t=!Ao(this,"value"),n=e.sValue>this.max?g(g({},e),{sValue:this.max}):e;t&&this.setState(n);const o=n.sValue;this.$emit("change",o)},onStart(e){this.setState({dragging:!0});const{sValue:t}=this;this.$emit("beforeChange",t);const n=this.calcValueByPos(e);this.startValue=n,this.startPosition=e,n!==t&&(this.prevMovedHandleIndex=0,this.onChange({sValue:n}))},onEnd(e){const{dragging:t}=this;this.removeDocumentEvents(),(t||e)&&this.$emit("afterChange",this.sValue),this.setState({dragging:!1})},onMove(e,t){Kl(e);const{sValue:n}=this,o=this.calcValueByPos(t);o!==n&&this.onChange({sValue:o})},onKeyboard(e){const{reverse:t,vertical:n}=this.$props,o=AO(e,n,t);if(o){Kl(e);const{sValue:r}=this,l=o(r,this.$props),a=this.trimAlignValue(l);if(a===r)return;this.onChange({sValue:a}),this.$emit("afterChange",a),this.onEnd()}},getLowerBound(){const e=this.$props.startPoint||this.$props.min;return this.$data.sValue>e?e:this.$data.sValue},getUpperBound(){return this.$data.sValue1&&arguments[1]!==void 0?arguments[1]:{};if(e===null)return null;const n=g(g({},this.$props),t),o=Nm(e,n);return DO(o,n)},getTrack(e){let{prefixCls:t,reverse:n,vertical:o,included:r,minimumTrackStyle:l,mergedTrackStyle:a,length:i,offset:s}=e;return f(PO,{class:`${t}-track`,vertical:o,included:r,offset:s,reverse:n,length:i,style:g(g({},l),a)},null)},renderSlider(){const{prefixCls:e,vertical:t,included:n,disabled:o,minimumTrackStyle:r,trackStyle:l,handleStyle:a,tabindex:i,ariaLabelForHandle:s,ariaLabelledByForHandle:u,ariaValueTextFormatterForHandle:c,min:d,max:p,startPoint:v,reverse:y,handle:m,defaultHandle:h}=this,b=m||h,{sValue:$,dragging:C}=this,w=this.calcOffset($),S=b({class:`${e}-handle`,prefixCls:e,vertical:t,offset:w,value:$,dragging:C,disabled:o,min:d,max:p,reverse:y,index:0,tabindex:i,ariaLabel:s,ariaLabelledBy:u,ariaValueTextFormatter:c,style:a[0]||a,ref:I=>this.saveHandle(0,I),onFocus:this.onFocus,onBlur:this.onBlur}),O=v!==void 0?this.calcOffset(v):0,x=l[0]||l;return{tracks:this.getTrack({prefixCls:e,reverse:y,vertical:t,included:n,offset:O,minimumTrackStyle:r,mergedTrackStyle:x,length:w-O}),handles:S}}}}),TQ=RO(IQ),ba=e=>{let{value:t,handle:n,bounds:o,props:r}=e;const{allowCross:l,pushable:a}=r,i=Number(a),s=Nm(t,r);let u=s;return!l&&n!=null&&o!==void 0&&(n>0&&s<=o[n-1]+i&&(u=o[n-1]+i),n=o[n+1]-i&&(u=o[n+1]-i)),DO(u,r)},EQ={defaultValue:V.arrayOf(V.number),value:V.arrayOf(V.number),count:Number,pushable:eD(V.oneOfType([V.looseBool,V.number])),allowCross:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},reverse:{type:Boolean,default:void 0},tabindex:V.arrayOf(V.number),prefixCls:String,min:Number,max:Number,autofocus:{type:Boolean,default:void 0},ariaLabelGroupForHandles:Array,ariaLabelledByGroupForHandles:Array,ariaValueTextFormatterGroupForHandles:Array,draggableTrack:{type:Boolean,default:void 0}},MQ=te({compatConfig:{MODE:3},name:"Range",mixins:[ui],inheritAttrs:!1,props:rt(EQ,{count:1,allowCross:!0,pushable:!1,tabindex:[],draggableTrack:!1,ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]}),emits:["beforeChange","afterChange","change"],displayName:"Range",data(){const{count:e,min:t,max:n}=this,o=Array(...Array(e+1)).map(()=>t),r=Ao(this,"defaultValue")?this.defaultValue:o;let{value:l}=this;l===void 0&&(l=r);const a=l.map((s,u)=>ba({value:s,handle:u,props:this.$props}));return{sHandle:null,recent:a[0]===n?0:a.length-1,bounds:a}},watch:{value:{handler(e){const{bounds:t}=this;this.setChangeValue(e||t)},deep:!0},min(){const{value:e}=this;this.setChangeValue(e||this.bounds)},max(){const{value:e}=this;this.setChangeValue(e||this.bounds)}},methods:{setChangeValue(e){const{bounds:t}=this;let n=e.map((o,r)=>ba({value:o,handle:r,bounds:t,props:this.$props}));if(t.length===n.length){if(n.every((o,r)=>o===t[r]))return null}else n=e.map((o,r)=>ba({value:o,handle:r,props:this.$props}));if(this.setState({bounds:n}),e.some(o=>MO(o,this.$props))){const o=e.map(r=>Nm(r,this.$props));this.$emit("change",o)}},onChange(e){if(!Ao(this,"value"))this.setState(e);else{const r={};["sHandle","recent"].forEach(l=>{e[l]!==void 0&&(r[l]=e[l])}),Object.keys(r).length&&this.setState(r)}const o=g(g({},this.$data),e).bounds;this.$emit("change",o)},positionGetValue(e){const t=this.getValue(),n=this.calcValueByPos(e),o=this.getClosestBound(n),r=this.getBoundNeedMoving(n,o),l=t[r];if(n===l)return null;const a=[...t];return a[r]=n,a},onStart(e){const{bounds:t}=this;this.$emit("beforeChange",t);const n=this.calcValueByPos(e);this.startValue=n,this.startPosition=e;const o=this.getClosestBound(n);this.prevMovedHandleIndex=this.getBoundNeedMoving(n,o),this.setState({sHandle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex});const r=t[this.prevMovedHandleIndex];if(n===r)return;const l=[...t];l[this.prevMovedHandleIndex]=n,this.onChange({bounds:l})},onEnd(e){const{sHandle:t}=this;this.removeDocumentEvents(),t||(this.dragTrack=!1),(t!==null||e)&&this.$emit("afterChange",this.bounds),this.setState({sHandle:null})},onMove(e,t,n,o){Kl(e);const{$data:r,$props:l}=this,a=l.max||100,i=l.min||0;if(n){let p=l.vertical?-t:t;p=l.reverse?-p:p;const v=a-Math.max(...o),y=i-Math.min(...o),m=Math.min(Math.max(p/(this.getSliderLength()/100),y),v),h=o.map(b=>Math.floor(Math.max(Math.min(b+m,a),i)));r.bounds.map((b,$)=>b===h[$]).some(b=>!b)&&this.onChange({bounds:h});return}const{bounds:s,sHandle:u}=this,c=this.calcValueByPos(t),d=s[u];c!==d&&this.moveTo(c)},onKeyboard(e){const{reverse:t,vertical:n}=this.$props,o=AO(e,n,t);if(o){Kl(e);const{bounds:r,sHandle:l}=this,a=r[l===null?this.recent:l],i=o(a,this.$props),s=ba({value:i,handle:l,bounds:r,props:this.$props});if(s===a)return;const u=!0;this.moveTo(s,u)}},getClosestBound(e){const{bounds:t}=this;let n=0;for(let o=1;o=t[o]&&(n=o);return Math.abs(t[n+1]-e)i-s),this.internalPointsCache={marks:e,step:t,points:a}}return this.internalPointsCache.points},moveTo(e,t){const n=[...this.bounds],{sHandle:o,recent:r}=this,l=o===null?r:o;n[l]=e;let a=l;this.$props.pushable!==!1?this.pushSurroundingHandles(n,a):this.$props.allowCross&&(n.sort((i,s)=>i-s),a=n.indexOf(e)),this.onChange({recent:a,sHandle:a,bounds:n}),t&&(this.$emit("afterChange",n),this.setState({},()=>{this.handlesRefs[a].focus()}),this.onEnd())},pushSurroundingHandles(e,t){const n=e[t],{pushable:o}=this,r=Number(o);let l=0;if(e[t+1]-n=o.length||l<0)return!1;const a=t+n,i=o[l],{pushable:s}=this,u=Number(s),c=n*(e[a]-i);return this.pushHandle(e,a,n,u-c)?(e[t]=i,!0):!1},trimAlignValue(e){const{sHandle:t,bounds:n}=this;return ba({value:e,handle:t,bounds:n,props:this.$props})},ensureValueNotConflict(e,t,n){let{allowCross:o,pushable:r}=n;const l=this.$data||{},{bounds:a}=l;if(e=e===void 0?l.sHandle:e,r=Number(r),!o&&e!=null&&a!==void 0){if(e>0&&t<=a[e-1]+r)return a[e-1]+r;if(e=a[e+1]-r)return a[e+1]-r}return t},getTrack(e){let{bounds:t,prefixCls:n,reverse:o,vertical:r,included:l,offsets:a,trackStyle:i}=e;return t.slice(0,-1).map((s,u)=>{const c=u+1,d=ne({[`${n}-track`]:!0,[`${n}-track-${c}`]:!0});return f(PO,{class:d,vertical:r,reverse:o,included:l,offset:a[c-1],length:a[c]-a[c-1],style:i[u],key:c},null)})},renderSlider(){const{sHandle:e,bounds:t,prefixCls:n,vertical:o,included:r,disabled:l,min:a,max:i,reverse:s,handle:u,defaultHandle:c,trackStyle:d,handleStyle:p,tabindex:v,ariaLabelGroupForHandles:y,ariaLabelledByGroupForHandles:m,ariaValueTextFormatterGroupForHandles:h}=this,b=u||c,$=t.map(S=>this.calcOffset(S)),C=`${n}-handle`,w=t.map((S,O)=>{let x=v[O]||0;(l||v[O]===null)&&(x=null);const I=e===O;return b({class:ne({[C]:!0,[`${C}-${O+1}`]:!0,[`${C}-dragging`]:I}),prefixCls:n,vertical:o,dragging:I,offset:$[O],value:S,index:O,tabindex:x,min:a,max:i,reverse:s,disabled:l,style:p[O],ref:E=>this.saveHandle(O,E),onFocus:this.onFocus,onBlur:this.onBlur,ariaLabel:y[O],ariaLabelledBy:m[O],ariaValueTextFormatter:h[O]})});return{tracks:this.getTrack({bounds:t,prefixCls:n,reverse:s,vertical:o,included:r,offsets:$,trackStyle:d}),handles:w}}}}),_Q=RO(MQ),DQ=te({compatConfig:{MODE:3},name:"SliderTooltip",inheritAttrs:!1,props:dw(),setup(e,t){let{attrs:n,slots:o}=t;const r=ee(null),l=ee(null);function a(){He.cancel(l.value),l.value=null}function i(){l.value=He(()=>{var u;(u=r.value)===null||u===void 0||u.forcePopupAlign(),l.value=null})}const s=()=>{a(),e.open&&i()};return ue([()=>e.open,()=>e.title],()=>{s()},{flush:"post",immediate:!0}),Gp(()=>{s()}),Ze(()=>{a()}),()=>f(Vn,F(F({ref:r},e),n),o)}}),AQ=e=>{const{componentCls:t,controlSize:n,dotSize:o,marginFull:r,marginPart:l,colorFillContentHover:a}=e;return{[t]:g(g({},Qe(e)),{position:"relative",height:n,margin:`${l}px ${r}px`,padding:0,cursor:"pointer",touchAction:"none","&-vertical":{margin:`${r}px ${l}px`},[`${t}-rail`]:{position:"absolute",backgroundColor:e.colorFillTertiary,borderRadius:e.borderRadiusXS,transition:`background-color ${e.motionDurationMid}`},[`${t}-track`]:{position:"absolute",backgroundColor:e.colorPrimaryBorder,borderRadius:e.borderRadiusXS,transition:`background-color ${e.motionDurationMid}`},"&:hover":{[`${t}-rail`]:{backgroundColor:e.colorFillSecondary},[`${t}-track`]:{backgroundColor:e.colorPrimaryBorderHover},[`${t}-dot`]:{borderColor:a},[`${t}-handle::after`]:{boxShadow:`0 0 0 ${e.handleLineWidth}px ${e.colorPrimaryBorderHover}`},[`${t}-dot-active`]:{borderColor:e.colorPrimary}},[`${t}-handle`]:{position:"absolute",width:e.handleSize,height:e.handleSize,outline:"none",[`${t}-dragging`]:{zIndex:1},"&::before":{content:'""',position:"absolute",insetInlineStart:-e.handleLineWidth,insetBlockStart:-e.handleLineWidth,width:e.handleSize+e.handleLineWidth*2,height:e.handleSize+e.handleLineWidth*2,backgroundColor:"transparent"},"&::after":{content:'""',position:"absolute",insetBlockStart:0,insetInlineStart:0,width:e.handleSize,height:e.handleSize,backgroundColor:e.colorBgElevated,boxShadow:`0 0 0 ${e.handleLineWidth}px ${e.colorPrimaryBorder}`,borderRadius:"50%",cursor:"pointer",transition:` + inset-inline-start ${e.motionDurationMid}, + inset-block-start ${e.motionDurationMid}, + width ${e.motionDurationMid}, + height ${e.motionDurationMid}, + box-shadow ${e.motionDurationMid} + `},"&:hover, &:active, &:focus":{"&::before":{insetInlineStart:-((e.handleSizeHover-e.handleSize)/2+e.handleLineWidthHover),insetBlockStart:-((e.handleSizeHover-e.handleSize)/2+e.handleLineWidthHover),width:e.handleSizeHover+e.handleLineWidthHover*2,height:e.handleSizeHover+e.handleLineWidthHover*2},"&::after":{boxShadow:`0 0 0 ${e.handleLineWidthHover}px ${e.colorPrimary}`,width:e.handleSizeHover,height:e.handleSizeHover,insetInlineStart:(e.handleSize-e.handleSizeHover)/2,insetBlockStart:(e.handleSize-e.handleSizeHover)/2}}},[`${t}-mark`]:{position:"absolute",fontSize:e.fontSize},[`${t}-mark-text`]:{position:"absolute",display:"inline-block",color:e.colorTextDescription,textAlign:"center",wordBreak:"keep-all",cursor:"pointer",userSelect:"none","&-active":{color:e.colorText}},[`${t}-step`]:{position:"absolute",background:"transparent",pointerEvents:"none"},[`${t}-dot`]:{position:"absolute",width:o,height:o,backgroundColor:e.colorBgElevated,border:`${e.handleLineWidth}px solid ${e.colorBorderSecondary}`,borderRadius:"50%",cursor:"pointer",transition:`border-color ${e.motionDurationSlow}`,"&-active":{borderColor:e.colorPrimaryBorder}},[`&${t}-disabled`]:{cursor:"not-allowed",[`${t}-rail`]:{backgroundColor:`${e.colorFillSecondary} !important`},[`${t}-track`]:{backgroundColor:`${e.colorTextDisabled} !important`},[` + ${t}-dot + `]:{backgroundColor:e.colorBgElevated,borderColor:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed"},[`${t}-handle::after`]:{backgroundColor:e.colorBgElevated,cursor:"not-allowed",width:e.handleSize,height:e.handleSize,boxShadow:`0 0 0 ${e.handleLineWidth}px ${new ut(e.colorTextDisabled).onBackground(e.colorBgContainer).toHexString()}`,insetInlineStart:0,insetBlockStart:0},[` + ${t}-mark-text, + ${t}-dot + `]:{cursor:"not-allowed !important"}}})}},BO=(e,t)=>{const{componentCls:n,railSize:o,handleSize:r,dotSize:l}=e,a=t?"paddingBlock":"paddingInline",i=t?"width":"height",s=t?"height":"width",u=t?"insetBlockStart":"insetInlineStart",c=t?"top":"insetInlineStart";return{[a]:o,[s]:o*3,[`${n}-rail`]:{[i]:"100%",[s]:o},[`${n}-track`]:{[s]:o},[`${n}-handle`]:{[u]:(o*3-r)/2},[`${n}-mark`]:{insetInlineStart:0,top:0,[c]:r,[i]:"100%"},[`${n}-step`]:{insetInlineStart:0,top:0,[c]:o,[i]:"100%",[s]:o},[`${n}-dot`]:{position:"absolute",[u]:(o-l)/2}}},RQ=e=>{const{componentCls:t,marginPartWithMark:n}=e;return{[`${t}-horizontal`]:g(g({},BO(e,!0)),{[`&${t}-with-marks`]:{marginBottom:n}})}},BQ=e=>{const{componentCls:t}=e;return{[`${t}-vertical`]:g(g({},BO(e,!1)),{height:"100%"})}},NQ=Je("Slider",e=>{const t=Le(e,{marginPart:(e.controlHeight-e.controlSize)/2,marginFull:e.controlSize/2,marginPartWithMark:e.controlHeightLG-e.controlSize});return[AQ(t),RQ(t),BQ(t)]},e=>{const n=e.controlHeightLG/4,o=e.controlHeightSM/2,r=e.lineWidth+1,l=e.lineWidth+1*3;return{controlSize:n,railSize:4,handleSize:n,handleSizeHover:o,dotSize:8,handleLineWidth:r,handleLineWidthHover:l}});var p$=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rtypeof e=="number"?e.toString():"",kQ=()=>({id:String,prefixCls:String,tooltipPrefixCls:String,range:Xe([Boolean,Object]),reverse:xe(),min:Number,max:Number,step:Xe([Object,Number]),marks:De(),dots:xe(),value:Xe([Array,Number]),defaultValue:Xe([Array,Number]),included:xe(),disabled:xe(),vertical:xe(),tipFormatter:Xe([Function,Object],()=>FQ),tooltipOpen:xe(),tooltipVisible:xe(),tooltipPlacement:je(),getTooltipPopupContainer:ce(),autofocus:xe(),handleStyle:Xe([Array,Object]),trackStyle:Xe([Array,Object]),onChange:ce(),onAfterChange:ce(),onFocus:ce(),onBlur:ce(),"onUpdate:value":ce()}),LQ=te({compatConfig:{MODE:3},name:"ASlider",inheritAttrs:!1,props:kQ(),slots:Object,setup(e,t){let{attrs:n,slots:o,emit:r,expose:l}=t;const{prefixCls:a,rootPrefixCls:i,direction:s,getPopupContainer:u,configProvider:c}=Me("slider",e),[d,p]=NQ(a),v=Lt(),y=ee(),m=ee({}),h=(x,I)=>{m.value[x]=I},b=P(()=>e.tooltipPlacement?e.tooltipPlacement:e.vertical?s.value==="rtl"?"left":"right":"top"),$=()=>{var x;(x=y.value)===null||x===void 0||x.focus()},C=()=>{var x;(x=y.value)===null||x===void 0||x.blur()},w=x=>{r("update:value",x),r("change",x),v.onFieldChange()},S=x=>{r("blur",x)};l({focus:$,blur:C});const O=x=>{var{tooltipPrefixCls:I}=x,E=x.info,{value:M,dragging:_,index:z}=E,R=p$(E,["value","dragging","index"]);const{tipFormatter:H,tooltipOpen:T=e.tooltipVisible,getTooltipPopupContainer:D}=e,A=H?m.value[z]||_:!1,B=T||T===void 0&&A;return f(DQ,{prefixCls:I,title:H?H(M):"",open:B,placement:b.value,transitionName:`${i.value}-zoom-down`,key:z,overlayClassName:`${a.value}-tooltip`,getPopupContainer:D||(u==null?void 0:u.value)},{default:()=>[f(EO,F(F({},R),{},{value:M,onMouseenter:()=>h(z,!0),onMouseleave:()=>h(z,!1)}),null)]})};return()=>{const{tooltipPrefixCls:x,range:I,id:E=v.id.value}=e,M=p$(e,["tooltipPrefixCls","range","id"]),_=c.getPrefixCls("tooltip",x),z=ne(n.class,{[`${a.value}-rtl`]:s.value==="rtl"},p.value);s.value==="rtl"&&!M.vertical&&(M.reverse=!M.reverse);let R;return typeof I=="object"&&(R=I.draggableTrack),d(I?f(_Q,F(F(F({},n),M),{},{step:M.step,draggableTrack:R,class:z,ref:y,handle:H=>O({tooltipPrefixCls:_,prefixCls:a.value,info:H}),prefixCls:a.value,onChange:w,onBlur:S}),{mark:o.mark}):f(TQ,F(F(F({},n),M),{},{id:E,step:M.step,class:z,ref:y,handle:H=>O({tooltipPrefixCls:_,prefixCls:a.value,info:H}),prefixCls:a.value,onChange:w,onBlur:S}),{mark:o.mark}))}}}),zle=Gt(LQ),zQ=e=>{const{componentCls:t}=e,n=`${t}-inner`;return{[t]:{[`&${t}-small`]:{minWidth:e.switchMinWidthSM,height:e.switchHeightSM,lineHeight:`${e.switchHeightSM}px`,[`${t}-inner`]:{paddingInlineStart:e.switchInnerMarginMaxSM,paddingInlineEnd:e.switchInnerMarginMinSM,[`${n}-checked`]:{marginInlineStart:`calc(-100% + ${e.switchPinSizeSM+e.switchPadding*2}px - ${e.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(100% - ${e.switchPinSizeSM+e.switchPadding*2}px + ${e.switchInnerMarginMaxSM*2}px)`},[`${n}-unchecked`]:{marginTop:-e.switchHeightSM,marginInlineStart:0,marginInlineEnd:0}},[`${t}-handle`]:{width:e.switchPinSizeSM,height:e.switchPinSizeSM},[`${t}-loading-icon`]:{top:(e.switchPinSizeSM-e.switchLoadingIconSize)/2,fontSize:e.switchLoadingIconSize},[`&${t}-checked`]:{[`${t}-inner`]:{paddingInlineStart:e.switchInnerMarginMinSM,paddingInlineEnd:e.switchInnerMarginMaxSM,[`${n}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${n}-unchecked`]:{marginInlineStart:`calc(100% - ${e.switchPinSizeSM+e.switchPadding*2}px + ${e.switchInnerMarginMaxSM*2}px)`,marginInlineEnd:`calc(-100% + ${e.switchPinSizeSM+e.switchPadding*2}px - ${e.switchInnerMarginMaxSM*2}px)`}},[`${t}-handle`]:{insetInlineStart:`calc(100% - ${e.switchPinSizeSM+e.switchPadding}px)`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${n}`]:{[`${n}-unchecked`]:{marginInlineStart:e.marginXXS/2,marginInlineEnd:-e.marginXXS/2}},[`&${t}-checked ${n}`]:{[`${n}-checked`]:{marginInlineStart:-e.marginXXS/2,marginInlineEnd:e.marginXXS/2}}}}}}},HQ=e=>{const{componentCls:t}=e;return{[t]:{[`${t}-loading-icon${e.iconCls}`]:{position:"relative",top:(e.switchPinSize-e.fontSize)/2,color:e.switchLoadingIconColor,verticalAlign:"top"},[`&${t}-checked ${t}-loading-icon`]:{color:e.switchColor}}}},jQ=e=>{const{componentCls:t}=e,n=`${t}-handle`;return{[t]:{[n]:{position:"absolute",top:e.switchPadding,insetInlineStart:e.switchPadding,width:e.switchPinSize,height:e.switchPinSize,transition:`all ${e.switchDuration} ease-in-out`,"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:e.colorWhite,borderRadius:e.switchPinSize/2,boxShadow:e.switchHandleShadow,transition:`all ${e.switchDuration} ease-in-out`,content:'""'}},[`&${t}-checked ${n}`]:{insetInlineStart:`calc(100% - ${e.switchPinSize+e.switchPadding}px)`},[`&:not(${t}-disabled):active`]:{[`${n}::before`]:{insetInlineEnd:e.switchHandleActiveInset,insetInlineStart:0},[`&${t}-checked ${n}::before`]:{insetInlineEnd:0,insetInlineStart:e.switchHandleActiveInset}}}}},VQ=e=>{const{componentCls:t}=e,n=`${t}-inner`;return{[t]:{[n]:{display:"block",overflow:"hidden",borderRadius:100,height:"100%",paddingInlineStart:e.switchInnerMarginMax,paddingInlineEnd:e.switchInnerMarginMin,transition:`padding-inline-start ${e.switchDuration} ease-in-out, padding-inline-end ${e.switchDuration} ease-in-out`,[`${n}-checked, ${n}-unchecked`]:{display:"block",color:e.colorTextLightSolid,fontSize:e.fontSizeSM,transition:`margin-inline-start ${e.switchDuration} ease-in-out, margin-inline-end ${e.switchDuration} ease-in-out`,pointerEvents:"none"},[`${n}-checked`]:{marginInlineStart:`calc(-100% + ${e.switchPinSize+e.switchPadding*2}px - ${e.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(100% - ${e.switchPinSize+e.switchPadding*2}px + ${e.switchInnerMarginMax*2}px)`},[`${n}-unchecked`]:{marginTop:-e.switchHeight,marginInlineStart:0,marginInlineEnd:0}},[`&${t}-checked ${n}`]:{paddingInlineStart:e.switchInnerMarginMin,paddingInlineEnd:e.switchInnerMarginMax,[`${n}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${n}-unchecked`]:{marginInlineStart:`calc(100% - ${e.switchPinSize+e.switchPadding*2}px + ${e.switchInnerMarginMax*2}px)`,marginInlineEnd:`calc(-100% + ${e.switchPinSize+e.switchPadding*2}px - ${e.switchInnerMarginMax*2}px)`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${n}`]:{[`${n}-unchecked`]:{marginInlineStart:e.switchPadding*2,marginInlineEnd:-e.switchPadding*2}},[`&${t}-checked ${n}`]:{[`${n}-checked`]:{marginInlineStart:-e.switchPadding*2,marginInlineEnd:e.switchPadding*2}}}}}},WQ=e=>{const{componentCls:t}=e;return{[t]:g(g(g(g({},Qe(e)),{position:"relative",display:"inline-block",boxSizing:"border-box",minWidth:e.switchMinWidth,height:e.switchHeight,lineHeight:`${e.switchHeight}px`,verticalAlign:"middle",background:e.colorTextQuaternary,border:"0",borderRadius:100,cursor:"pointer",transition:`all ${e.motionDurationMid}`,userSelect:"none",[`&:hover:not(${t}-disabled)`]:{background:e.colorTextTertiary}}),zo(e)),{[`&${t}-checked`]:{background:e.switchColor,[`&:hover:not(${t}-disabled)`]:{background:e.colorPrimaryHover}},[`&${t}-loading, &${t}-disabled`]:{cursor:"not-allowed",opacity:e.switchDisabledOpacity,"*":{boxShadow:"none",cursor:"not-allowed"}},[`&${t}-rtl`]:{direction:"rtl"}})}},KQ=Je("Switch",e=>{const t=e.fontSize*e.lineHeight,n=e.controlHeight/2,o=2,r=t-o*2,l=n-o*2,a=Le(e,{switchMinWidth:r*2+o*4,switchHeight:t,switchDuration:e.motionDurationMid,switchColor:e.colorPrimary,switchDisabledOpacity:e.opacityLoading,switchInnerMarginMin:r/2,switchInnerMarginMax:r+o+o*2,switchPadding:o,switchPinSize:r,switchBg:e.colorBgContainer,switchMinWidthSM:l*2+o*2,switchHeightSM:n,switchInnerMarginMinSM:l/2,switchInnerMarginMaxSM:l+o+o*2,switchPinSizeSM:l,switchHandleShadow:`0 2px 4px 0 ${new ut("#00230b").setAlpha(.2).toRgbString()}`,switchLoadingIconSize:e.fontSizeIcon*.75,switchLoadingIconColor:`rgba(0, 0, 0, ${e.opacityLoading})`,switchHandleActiveInset:"-30%"});return[WQ(a),VQ(a),jQ(a),HQ(a),zQ(a)]}),GQ=Sn("small","default"),XQ=()=>({id:String,prefixCls:String,size:V.oneOf(GQ),disabled:{type:Boolean,default:void 0},checkedChildren:V.any,unCheckedChildren:V.any,tabindex:V.oneOfType([V.string,V.number]),autofocus:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},checked:V.oneOfType([V.string,V.number,V.looseBool]),checkedValue:V.oneOfType([V.string,V.number,V.looseBool]).def(!0),unCheckedValue:V.oneOfType([V.string,V.number,V.looseBool]).def(!1),onChange:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onMouseup:{type:Function},"onUpdate:checked":{type:Function},onBlur:Function,onFocus:Function}),UQ=te({compatConfig:{MODE:3},name:"ASwitch",__ANT_SWITCH:!0,inheritAttrs:!1,props:XQ(),slots:Object,setup(e,t){let{attrs:n,slots:o,expose:r,emit:l}=t;const a=Lt(),i=Cn(),s=P(()=>{var E;return(E=e.disabled)!==null&&E!==void 0?E:i.value});Vp(()=>{$t(),$t()});const u=ee(e.checked!==void 0?e.checked:n.defaultChecked),c=P(()=>u.value===e.checkedValue);ue(()=>e.checked,()=>{u.value=e.checked});const{prefixCls:d,direction:p,size:v}=Me("switch",e),[y,m]=KQ(d),h=ee(),b=()=>{var E;(E=h.value)===null||E===void 0||E.focus()};r({focus:b,blur:()=>{var E;(E=h.value)===null||E===void 0||E.blur()}}),Ve(()=>{ot(()=>{e.autofocus&&!s.value&&h.value.focus()})});const C=(E,M)=>{s.value||(l("update:checked",E),l("change",E,M),a.onFieldChange())},w=E=>{l("blur",E)},S=E=>{b();const M=c.value?e.unCheckedValue:e.checkedValue;C(M,E),l("click",M,E)},O=E=>{E.keyCode===Se.LEFT?C(e.unCheckedValue,E):E.keyCode===Se.RIGHT&&C(e.checkedValue,E),l("keydown",E)},x=E=>{var M;(M=h.value)===null||M===void 0||M.blur(),l("mouseup",E)},I=P(()=>({[`${d.value}-small`]:v.value==="small",[`${d.value}-loading`]:e.loading,[`${d.value}-checked`]:c.value,[`${d.value}-disabled`]:s.value,[d.value]:!0,[`${d.value}-rtl`]:p.value==="rtl",[m.value]:!0}));return()=>{var E;return y(f(gg,null,{default:()=>[f("button",F(F(F({},tt(e,["prefixCls","checkedChildren","unCheckedChildren","checked","autofocus","checkedValue","unCheckedValue","id","onChange","onUpdate:checked"])),n),{},{id:(E=e.id)!==null&&E!==void 0?E:a.id.value,onKeydown:O,onClick:S,onBlur:w,onMouseup:x,type:"button",role:"switch","aria-checked":u.value,disabled:s.value||e.loading,class:[n.class,I.value],ref:h}),[f("div",{class:`${d.value}-handle`},[e.loading?f(qn,{class:`${d.value}-loading-icon`},null):null]),f("span",{class:`${d.value}-inner`},[f("span",{class:`${d.value}-inner-checked`},[At(o,e,"checkedChildren")]),f("span",{class:`${d.value}-inner-unchecked`},[At(o,e,"unCheckedChildren")])])])]}))}}}),Hle=Gt(UQ),NO=Symbol("TableContextProps"),YQ=e=>{We(NO,e)},Po=()=>Ke(NO,{}),qQ="RC_TABLE_KEY";function FO(e){return e==null?[]:Array.isArray(e)?e:[e]}function kO(e,t){if(!t&&typeof t!="number")return e;const n=FO(t);let o=e;for(let r=0;r{const{key:r,dataIndex:l}=o||{};let a=r||FO(l).join("-")||qQ;for(;n[a];)a=`${a}_next`;n[a]=!0,t.push(a)}),t}function QQ(){const e={};function t(l,a){a&&Object.keys(a).forEach(i=>{const s=a[i];s&&typeof s=="object"?(l[i]=l[i]||{},t(l[i],s)):l[i]=s})}for(var n=arguments.length,o=new Array(n),r=0;r{t(e,l)}),e}function xp(e){return e!=null}const LO=Symbol("SlotsContextProps"),ZQ=e=>{We(LO,e)},Fm=()=>Ke(LO,P(()=>({}))),zO=Symbol("ContextProps"),JQ=e=>{We(zO,e)},eZ=()=>Ke(zO,{onResizeColumn:()=>{}});globalThis&&globalThis.__rest;const El="RC_TABLE_INTERNAL_COL_DEFINE",HO=Symbol("HoverContextProps"),tZ=e=>{We(HO,e)},nZ=()=>Ke(HO,{startRow:q(-1),endRow:q(-1),onHover(){}}),wp=q(!1),oZ=()=>{Ve(()=>{wp.value=wp.value||qg("position","sticky")})},rZ=()=>wp;var lZ=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r=n}function iZ(e){return e&&typeof e=="object"&&!Array.isArray(e)&&!tn(e)}const gu=te({name:"Cell",props:["prefixCls","record","index","renderIndex","dataIndex","customRender","component","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","additionalProps","ellipsis","align","rowType","isSticky","column","cellType","transformCellText"],setup(e,t){let{slots:n}=t;const o=Fm(),{onHover:r,startRow:l,endRow:a}=nZ(),i=P(()=>{var m,h,b,$;return(b=(m=e.colSpan)!==null&&m!==void 0?m:(h=e.additionalProps)===null||h===void 0?void 0:h.colSpan)!==null&&b!==void 0?b:($=e.additionalProps)===null||$===void 0?void 0:$.colspan}),s=P(()=>{var m,h,b,$;return(b=(m=e.rowSpan)!==null&&m!==void 0?m:(h=e.additionalProps)===null||h===void 0?void 0:h.rowSpan)!==null&&b!==void 0?b:($=e.additionalProps)===null||$===void 0?void 0:$.rowspan}),u=Mn(()=>{const{index:m}=e;return aZ(m,s.value||1,l.value,a.value)}),c=rZ(),d=(m,h)=>{var b;const{record:$,index:C,additionalProps:w}=e;$&&r(C,C+h-1),(b=w==null?void 0:w.onMouseenter)===null||b===void 0||b.call(w,m)},p=m=>{var h;const{record:b,additionalProps:$}=e;b&&r(-1,-1),(h=$==null?void 0:$.onMouseleave)===null||h===void 0||h.call($,m)},v=m=>{const h=Ot(m)[0];return tn(h)?h.type===lc?h.children:Array.isArray(h.children)?v(h.children):void 0:h},y=q(null);return ue([u,()=>e.prefixCls,y],()=>{const m=sn(y.value);m&&(u.value?Ff(m,`${e.prefixCls}-cell-row-hover`):kf(m,`${e.prefixCls}-cell-row-hover`))}),()=>{var m,h,b,$,C,w;const{prefixCls:S,record:O,index:x,renderIndex:I,dataIndex:E,customRender:M,component:_="td",fixLeft:z,fixRight:R,firstFixLeft:H,lastFixLeft:T,firstFixRight:D,lastFixRight:A,appendNode:B=(m=n.appendNode)===null||m===void 0?void 0:m.call(n),additionalProps:N={},ellipsis:k,align:L,rowType:j,isSticky:G,column:U={},cellType:K}=e,Y=`${S}-cell`;let Q,J;const Z=(h=n.default)===null||h===void 0?void 0:h.call(n);if(xp(Z)||K==="header")J=Z;else{const le=kO(O,E);if(J=le,M){const oe=M({text:le,value:le,record:O,index:x,renderIndex:I,column:U.__originColumn__});iZ(oe)?(J=oe.children,Q=oe.props):J=oe}if(!(El in U)&&K==="body"&&o.value.bodyCell&&!(!((b=U.slots)===null||b===void 0)&&b.customRender)){const oe=Tc(o.value,"bodyCell",{text:le,value:le,record:O,index:x,column:U.__originColumn__},()=>{const fe=J===void 0?le:J;return[typeof fe=="object"&&Rt(fe)||typeof fe!="object"?fe:null]});J=bt(oe)}e.transformCellText&&(J=e.transformCellText({text:J,record:O,index:x,column:U.__originColumn__}))}typeof J=="object"&&!Array.isArray(J)&&!tn(J)&&(J=null),k&&(T||D)&&(J=f("span",{class:`${Y}-content`},[J])),Array.isArray(J)&&J.length===1&&(J=J[0]);const W=Q||{},{colSpan:X,rowSpan:re,style:ae,class:pe}=W,ye=lZ(W,["colSpan","rowSpan","style","class"]),de=($=X!==void 0?X:i.value)!==null&&$!==void 0?$:1,me=(C=re!==void 0?re:s.value)!==null&&C!==void 0?C:1;if(de===0||me===0)return null;const ie={},se=typeof z=="number"&&c.value,be=typeof R=="number"&&c.value;se&&(ie.position="sticky",ie.left=`${z}px`),be&&(ie.position="sticky",ie.right=`${R}px`);const we={};L&&(we.textAlign=L);let ve;const Ce=k===!0?{showTitle:!0}:k;Ce&&(Ce.showTitle||j==="header")&&(typeof J=="string"||typeof J=="number"?ve=J.toString():tn(J)&&(ve=v([J])));const Te=g(g(g({title:ve},ye),N),{colSpan:de!==1?de:null,rowSpan:me!==1?me:null,class:ne(Y,{[`${Y}-fix-left`]:se&&c.value,[`${Y}-fix-left-first`]:H&&c.value,[`${Y}-fix-left-last`]:T&&c.value,[`${Y}-fix-right`]:be&&c.value,[`${Y}-fix-right-first`]:D&&c.value,[`${Y}-fix-right-last`]:A&&c.value,[`${Y}-ellipsis`]:k,[`${Y}-with-append`]:B,[`${Y}-fix-sticky`]:(se||be)&&G&&c.value},N.class,pe),onMouseenter:le=>{d(le,me)},onMouseleave:p,style:[N.style,we,ie,ae]});return f(_,F(F({},Te),{},{ref:y}),{default:()=>[B,J,(w=n.dragHandle)===null||w===void 0?void 0:w.call(n)]})}}});function km(e,t,n,o,r){const l=n[e]||{},a=n[t]||{};let i,s;l.fixed==="left"?i=o.left[e]:a.fixed==="right"&&(s=o.right[t]);let u=!1,c=!1,d=!1,p=!1;const v=n[t+1],y=n[e-1];return r==="rtl"?i!==void 0?p=!(y&&y.fixed==="left"):s!==void 0&&(d=!(v&&v.fixed==="right")):i!==void 0?u=!(v&&v.fixed==="left"):s!==void 0&&(c=!(y&&y.fixed==="right")),{fixLeft:i,fixRight:s,lastFixLeft:u,firstFixRight:c,lastFixRight:d,firstFixLeft:p,isSticky:o.isSticky}}const v$={mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"},touch:{start:"touchstart",move:"touchmove",stop:"touchend"}},g$=50,sZ=te({compatConfig:{MODE:3},name:"DragHandle",props:{prefixCls:String,width:{type:Number,required:!0},minWidth:{type:Number,default:g$},maxWidth:{type:Number,default:1/0},column:{type:Object,default:void 0}},setup(e){let t=0,n={remove:()=>{}},o={remove:()=>{}};const r=()=>{n.remove(),o.remove()};Bn(()=>{r()}),ke(()=>{yt(!isNaN(e.width),"Table","width must be a number when use resizable")});const{onResizeColumn:l}=eZ(),a=P(()=>typeof e.minWidth=="number"&&!isNaN(e.minWidth)?e.minWidth:g$),i=P(()=>typeof e.maxWidth=="number"&&!isNaN(e.maxWidth)?e.maxWidth:1/0),s=wn();let u=0;const c=q(!1);let d;const p=C=>{let w=0;C.touches?C.touches.length?w=C.touches[0].pageX:w=C.changedTouches[0].pageX:w=C.pageX;const S=t-w;let O=Math.max(u-S,a.value);O=Math.min(O,i.value),He.cancel(d),d=He(()=>{l(O,e.column.__originColumn__)})},v=C=>{p(C)},y=C=>{c.value=!1,p(C),r()},m=(C,w)=>{c.value=!0,r(),u=s.vnode.el.parentNode.getBoundingClientRect().width,!(C instanceof MouseEvent&&C.which!==1)&&(C.stopPropagation&&C.stopPropagation(),t=C.touches?C.touches[0].pageX:C.pageX,n=Pt(document.documentElement,w.move,v),o=Pt(document.documentElement,w.stop,y))},h=C=>{C.stopPropagation(),C.preventDefault(),m(C,v$.mouse)},b=C=>{C.stopPropagation(),C.preventDefault(),m(C,v$.touch)},$=C=>{C.stopPropagation(),C.preventDefault()};return()=>{const{prefixCls:C}=e,w={[qt?"onTouchstartPassive":"onTouchstart"]:S=>b(S)};return f("div",F(F({class:`${C}-resize-handle ${c.value?"dragging":""}`,onMousedown:h},w),{},{onClick:$}),[f("div",{class:`${C}-resize-handle-line`},null)])}}}),cZ=te({name:"HeaderRow",props:["cells","stickyOffsets","flattenColumns","rowComponent","cellComponent","index","customHeaderRow"],setup(e){const t=Po();return()=>{const{prefixCls:n,direction:o}=t,{cells:r,stickyOffsets:l,flattenColumns:a,rowComponent:i,cellComponent:s,customHeaderRow:u,index:c}=e;let d;u&&(d=u(r.map(v=>v.column),c));const p=vu(r.map(v=>v.column));return f(i,d,{default:()=>[r.map((v,y)=>{const{column:m}=v,h=km(v.colStart,v.colEnd,a,l,o);let b;m&&m.customHeaderCell&&(b=v.column.customHeaderCell(m));const $=m;return f(gu,F(F(F({},v),{},{cellType:"header",ellipsis:m.ellipsis,align:m.align,component:s,prefixCls:n,key:p[y]},h),{},{additionalProps:b,rowType:"header",column:m}),{default:()=>m.title,dragHandle:()=>$.resizable?f(sZ,{prefixCls:n,width:$.width,minWidth:$.minWidth,maxWidth:$.maxWidth,column:$},null):null})})]})}}});function uZ(e){const t=[];function n(r,l){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;t[a]=t[a]||[];let i=l;return r.filter(Boolean).map(u=>{const c={key:u.key,class:ne(u.className,u.class),column:u,colStart:i};let d=1;const p=u.children;return p&&p.length>0&&(d=n(p,i,a+1).reduce((v,y)=>v+y,0),c.hasSubColumns=!0),"colSpan"in u&&({colSpan:d}=u),"rowSpan"in u&&(c.rowSpan=u.rowSpan),c.colSpan=d,c.colEnd=c.colStart+d-1,t[a].push(c),i+=d,d})}n(e,0);const o=t.length;for(let r=0;r{!("rowSpan"in l)&&!l.hasSubColumns&&(l.rowSpan=o-r)});return t}const m$=te({name:"TableHeader",inheritAttrs:!1,props:["columns","flattenColumns","stickyOffsets","customHeaderRow"],setup(e){const t=Po(),n=P(()=>uZ(e.columns));return()=>{const{prefixCls:o,getComponent:r}=t,{stickyOffsets:l,flattenColumns:a,customHeaderRow:i}=e,s=r(["header","wrapper"],"thead"),u=r(["header","row"],"tr"),c=r(["header","cell"],"th");return f(s,{class:`${o}-thead`},{default:()=>[n.value.map((d,p)=>f(cZ,{key:p,flattenColumns:a,cells:d,stickyOffsets:l,rowComponent:u,cellComponent:c,customHeaderRow:i,index:p},null))]})}}}),jO=Symbol("ExpandedRowProps"),dZ=e=>{We(jO,e)},fZ=()=>Ke(jO,{}),VO=te({name:"ExpandedRow",inheritAttrs:!1,props:["prefixCls","component","cellComponent","expanded","colSpan","isEmpty"],setup(e,t){let{slots:n,attrs:o}=t;const r=Po(),l=fZ(),{fixHeader:a,fixColumn:i,componentWidth:s,horizonScroll:u}=l;return()=>{const{prefixCls:c,component:d,cellComponent:p,expanded:v,colSpan:y,isEmpty:m}=e;return f(d,{class:o.class,style:{display:v?null:"none"}},{default:()=>[f(gu,{component:p,prefixCls:c,colSpan:y},{default:()=>{var h;let b=(h=n.default)===null||h===void 0?void 0:h.call(n);return(m?u.value:i.value)&&(b=f("div",{style:{width:`${s.value-(a.value?r.scrollbarSize:0)}px`,position:"sticky",left:0,overflow:"hidden"},class:`${c}-expanded-row-fixed`},[b])),b}})]})}}}),pZ=te({name:"MeasureCell",props:["columnKey"],setup(e,t){let{emit:n}=t;const o=ee();return Ve(()=>{o.value&&n("columnResize",e.columnKey,o.value.offsetWidth)}),()=>f(io,{onResize:r=>{let{offsetWidth:l}=r;n("columnResize",e.columnKey,l)}},{default:()=>[f("td",{ref:o,style:{padding:0,border:0,height:0}},[f("div",{style:{height:0,overflow:"hidden"}},[ko(" ")])])]})}}),WO=Symbol("BodyContextProps"),vZ=e=>{We(WO,e)},KO=()=>Ke(WO,{}),gZ=te({name:"BodyRow",inheritAttrs:!1,props:["record","index","renderIndex","recordKey","expandedKeys","rowComponent","cellComponent","customRow","rowExpandable","indent","rowKey","getRowKey","childrenColumnName"],setup(e,t){let{attrs:n}=t;const o=Po(),r=KO(),l=q(!1),a=P(()=>e.expandedKeys&&e.expandedKeys.has(e.recordKey));ke(()=>{a.value&&(l.value=!0)});const i=P(()=>r.expandableType==="row"&&(!e.rowExpandable||e.rowExpandable(e.record))),s=P(()=>r.expandableType==="nest"),u=P(()=>e.childrenColumnName&&e.record&&e.record[e.childrenColumnName]),c=P(()=>i.value||s.value),d=(h,b)=>{r.onTriggerExpand(h,b)},p=P(()=>{var h;return((h=e.customRow)===null||h===void 0?void 0:h.call(e,e.record,e.index))||{}}),v=function(h){var b,$;r.expandRowByClick&&c.value&&d(e.record,h);for(var C=arguments.length,w=new Array(C>1?C-1:0),S=1;S{const{record:h,index:b,indent:$}=e,{rowClassName:C}=r;return typeof C=="string"?C:typeof C=="function"?C(h,b,$):""}),m=P(()=>vu(r.flattenColumns));return()=>{const{class:h,style:b}=n,{record:$,index:C,rowKey:w,indent:S=0,rowComponent:O,cellComponent:x}=e,{prefixCls:I,fixedInfoList:E,transformCellText:M}=o,{flattenColumns:_,expandedRowClassName:z,indentSize:R,expandIcon:H,expandedRowRender:T,expandIconColumnIndex:D}=r,A=f(O,F(F({},p.value),{},{"data-row-key":w,class:ne(h,`${I}-row`,`${I}-row-level-${S}`,y.value,p.value.class),style:[b,p.value.style],onClick:v}),{default:()=>[_.map((N,k)=>{const{customRender:L,dataIndex:j,className:G}=N,U=m[k],K=E[k];let Y;N.customCell&&(Y=N.customCell($,C,N));const Q=k===(D||0)&&s.value?f(qe,null,[f("span",{style:{paddingLeft:`${R*S}px`},class:`${I}-row-indent indent-level-${S}`},null),H({prefixCls:I,expanded:a.value,expandable:u.value,record:$,onExpand:d})]):null;return f(gu,F(F({cellType:"body",class:G,ellipsis:N.ellipsis,align:N.align,component:x,prefixCls:I,key:U,record:$,index:C,renderIndex:e.renderIndex,dataIndex:j,customRender:L},K),{},{additionalProps:Y,column:N,transformCellText:M,appendNode:Q}),null)})]});let B;if(i.value&&(l.value||a.value)){const N=T({record:$,index:C,indent:S+1,expanded:a.value}),k=z&&z($,C,S);B=f(VO,{expanded:a.value,class:ne(`${I}-expanded-row`,`${I}-expanded-row-level-${S+1}`,k),prefixCls:I,component:O,cellComponent:x,colSpan:_.length,isEmpty:!1},{default:()=>[N]})}return f(qe,null,[A,B])}}});function GO(e,t,n,o,r,l){const a=[];a.push({record:e,indent:t,index:l});const i=r(e),s=o==null?void 0:o.has(i);if(e&&Array.isArray(e[n])&&s)for(let u=0;u{const l=t.value,a=n.value,i=e.value;if(a!=null&&a.size){const s=[];for(let u=0;u<(i==null?void 0:i.length);u+=1){const c=i[u];s.push(...GO(c,0,l,a,o.value,u))}return s}return i==null?void 0:i.map((s,u)=>({record:s,indent:0,index:u}))})}const XO=Symbol("ResizeContextProps"),hZ=e=>{We(XO,e)},bZ=()=>Ke(XO,{onColumnResize:()=>{}}),yZ=te({name:"TableBody",props:["data","getRowKey","measureColumnWidth","expandedKeys","customRow","rowExpandable","childrenColumnName"],setup(e,t){let{slots:n}=t;const o=bZ(),r=Po(),l=KO(),a=mZ(Ne(e,"data"),Ne(e,"childrenColumnName"),Ne(e,"expandedKeys"),Ne(e,"getRowKey")),i=q(-1),s=q(-1);let u;return tZ({startRow:i,endRow:s,onHover:(c,d)=>{clearTimeout(u),u=setTimeout(()=>{i.value=c,s.value=d},100)}}),()=>{var c;const{data:d,getRowKey:p,measureColumnWidth:v,expandedKeys:y,customRow:m,rowExpandable:h,childrenColumnName:b}=e,{onColumnResize:$}=o,{prefixCls:C,getComponent:w}=r,{flattenColumns:S}=l,O=w(["body","wrapper"],"tbody"),x=w(["body","row"],"tr"),I=w(["body","cell"],"td");let E;d.length?E=a.value.map((_,z)=>{const{record:R,indent:H,index:T}=_,D=p(R,z);return f(gZ,{key:D,rowKey:D,record:R,recordKey:D,index:z,renderIndex:T,rowComponent:x,cellComponent:I,expandedKeys:y,customRow:m,getRowKey:p,rowExpandable:h,childrenColumnName:b,indent:H},null)}):E=f(VO,{expanded:!0,class:`${C}-placeholder`,prefixCls:C,component:x,cellComponent:I,colSpan:S.length,isEmpty:!0},{default:()=>[(c=n.emptyNode)===null||c===void 0?void 0:c.call(n)]});const M=vu(S);return f(O,{class:`${C}-tbody`},{default:()=>[v&&f("tr",{"aria-hidden":"true",class:`${C}-measure-row`,style:{height:0,fontSize:0}},[M.map(_=>f(pZ,{key:_,columnKey:_,onColumnResize:$},null))]),E]})}}}),er={};var $Z=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{const{fixed:o}=n,r=o===!0?"left":o,l=n.children;return l&&l.length>0?[...t,...Op(l).map(a=>g({fixed:r},a))]:[...t,g(g({},n),{fixed:r})]},[])}function SZ(e){return e.map(t=>{const{fixed:n}=t,o=$Z(t,["fixed"]);let r=n;return n==="left"?r="right":n==="right"&&(r="left"),g({fixed:r},o)})}function CZ(e,t){let{prefixCls:n,columns:o,expandable:r,expandedKeys:l,getRowKey:a,onTriggerExpand:i,expandIcon:s,rowExpandable:u,expandIconColumnIndex:c,direction:d,expandRowByClick:p,expandColumnWidth:v,expandFixed:y}=e;const m=Fm(),h=P(()=>{if(r.value){let C=o.value.slice();if(!C.includes(er)){const R=c.value||0;R>=0&&C.splice(R,0,er)}const w=C.indexOf(er);C=C.filter((R,H)=>R!==er||H===w);const S=o.value[w];let O;(y.value==="left"||y.value)&&!c.value?O="left":(y.value==="right"||y.value)&&c.value===o.value.length?O="right":O=S?S.fixed:null;const x=l.value,I=u.value,E=s.value,M=n.value,_=p.value,z={[El]:{class:`${n.value}-expand-icon-col`,columnType:"EXPAND_COLUMN"},title:Tc(m.value,"expandColumnTitle",{},()=>[""]),fixed:O,class:`${n.value}-row-expand-icon-cell`,width:v.value,customRender:R=>{let{record:H,index:T}=R;const D=a.value(H,T),A=x.has(D),B=I?I(H):!0,N=E({prefixCls:M,expanded:A,expandable:B,record:H,onExpand:i});return _?f("span",{onClick:k=>k.stopPropagation()},[N]):N}};return C.map(R=>R===er?z:R)}return o.value.filter(C=>C!==er)}),b=P(()=>{let C=h.value;return t.value&&(C=t.value(C)),C.length||(C=[{customRender:()=>null}]),C}),$=P(()=>d.value==="rtl"?SZ(Op(b.value)):Op(b.value));return[b,$]}function UO(e){const t=q(e);let n;const o=q([]);function r(l){o.value.push(l),He.cancel(n),n=He(()=>{const a=o.value;o.value=[],a.forEach(i=>{t.value=i(t.value)})})}return Ze(()=>{He.cancel(n)}),[t,r]}function xZ(e){const t=ee(e||null),n=ee();function o(){clearTimeout(n.value)}function r(a){t.value=a,o(),n.value=setTimeout(()=>{t.value=null,n.value=void 0},100)}function l(){return t.value}return Ze(()=>{o()}),[r,l]}function wZ(e,t,n){return P(()=>{const r=[],l=[];let a=0,i=0;const s=e.value,u=t.value,c=n.value;for(let d=0;d=0;i-=1){const s=t[i],u=n&&n[i],c=u&&u[El];if(s||c||a){const d=c||{},p=OZ(d,["columnType"]);r.unshift(f("col",F({key:i,style:{width:typeof s=="number"?`${s}px`:s}},p),null)),a=!0}}return f("colgroup",null,[r])}function Pp(e,t){let{slots:n}=t;var o;return f("div",null,[(o=n.default)===null||o===void 0?void 0:o.call(n)])}Pp.displayName="Panel";let PZ=0;const IZ=te({name:"TableSummary",props:["fixed"],setup(e,t){let{slots:n}=t;const o=Po(),r=`table-summary-uni-key-${++PZ}`,l=P(()=>e.fixed===""||e.fixed);return ke(()=>{o.summaryCollect(r,l.value)}),Ze(()=>{o.summaryCollect(r,!1)}),()=>{var a;return(a=n.default)===null||a===void 0?void 0:a.call(n)}}}),TZ=IZ,EZ=te({compatConfig:{MODE:3},name:"ATableSummaryRow",setup(e,t){let{slots:n}=t;return()=>{var o;return f("tr",null,[(o=n.default)===null||o===void 0?void 0:o.call(n)])}}}),qO=Symbol("SummaryContextProps"),MZ=e=>{We(qO,e)},_Z=()=>Ke(qO,{}),DZ=te({name:"ATableSummaryCell",props:["index","colSpan","rowSpan","align"],setup(e,t){let{attrs:n,slots:o}=t;const r=Po(),l=_Z();return()=>{const{index:a,colSpan:i=1,rowSpan:s,align:u}=e,{prefixCls:c,direction:d}=r,{scrollColumnIndex:p,stickyOffsets:v,flattenColumns:y}=l,h=a+i-1+1===p?i+1:i,b=km(a,a+h-1,y,v,d);return f(gu,F({class:n.class,index:a,component:"td",prefixCls:c,record:null,dataIndex:null,align:u,colSpan:h,rowSpan:s,customRender:()=>{var $;return($=o.default)===null||$===void 0?void 0:$.call(o)}},b),null)}}}),Ji=te({name:"TableFooter",inheritAttrs:!1,props:["stickyOffsets","flattenColumns"],setup(e,t){let{slots:n}=t;const o=Po();return MZ(vt({stickyOffsets:Ne(e,"stickyOffsets"),flattenColumns:Ne(e,"flattenColumns"),scrollColumnIndex:P(()=>{const r=e.flattenColumns.length-1,l=e.flattenColumns[r];return l!=null&&l.scrollbar?r:null})})),()=>{var r;const{prefixCls:l}=o;return f("tfoot",{class:`${l}-summary`},[(r=n.default)===null||r===void 0?void 0:r.call(n)])}}}),AZ=TZ;function RZ(e){let{prefixCls:t,record:n,onExpand:o,expanded:r,expandable:l}=e;const a=`${t}-row-expand-icon`;if(!l)return f("span",{class:[a,`${t}-row-spaced`]},null);const i=s=>{o(n,s),s.stopPropagation()};return f("span",{class:{[a]:!0,[`${t}-row-expanded`]:r,[`${t}-row-collapsed`]:!r},onClick:i},null)}function BZ(e,t,n){const o=[];function r(l){(l||[]).forEach((a,i)=>{o.push(t(a,i)),r(a[n])})}return r(e),o}const NZ=te({name:"StickyScrollBar",inheritAttrs:!1,props:["offsetScroll","container","scrollBodyRef","scrollBodySizeInfo"],emits:["scroll"],setup(e,t){let{emit:n,expose:o}=t;const r=Po(),l=q(0),a=q(0),i=q(0);ke(()=>{l.value=e.scrollBodySizeInfo.scrollWidth||0,a.value=e.scrollBodySizeInfo.clientWidth||0,i.value=l.value&&a.value*(a.value/l.value)},{flush:"post"});const s=q(),[u,c]=UO({scrollLeft:0,isHiddenScrollBar:!0}),d=ee({delta:0,x:0}),p=q(!1),v=()=>{p.value=!1},y=x=>{d.value={delta:x.pageX-u.value.scrollLeft,x:0},p.value=!0,x.preventDefault()},m=x=>{const{buttons:I}=x||(window==null?void 0:window.event);if(!p.value||I===0){p.value&&(p.value=!1);return}let E=d.value.x+x.pageX-d.value.x-d.value.delta;E<=0&&(E=0),E+i.value>=a.value&&(E=a.value-i.value),n("scroll",{scrollLeft:E/a.value*(l.value+2)}),d.value.x=x.pageX},h=()=>{if(!e.scrollBodyRef.value)return;const x=Ls(e.scrollBodyRef.value).top,I=x+e.scrollBodyRef.value.offsetHeight,E=e.container===window?document.documentElement.scrollTop+window.innerHeight:Ls(e.container).top+e.container.clientHeight;I-Fs()<=E||x>=E-e.offsetScroll?c(M=>g(g({},M),{isHiddenScrollBar:!0})):c(M=>g(g({},M),{isHiddenScrollBar:!1}))};o({setScrollLeft:x=>{c(I=>g(g({},I),{scrollLeft:x/l.value*a.value||0}))}});let $=null,C=null,w=null,S=null;Ve(()=>{$=Pt(document.body,"mouseup",v,!1),C=Pt(document.body,"mousemove",m,!1),w=Pt(window,"resize",h,!1)}),Gp(()=>{ot(()=>{h()})}),Ve(()=>{setTimeout(()=>{ue([i,p],()=>{h()},{immediate:!0,flush:"post"})})}),ue(()=>e.container,()=>{S==null||S.remove(),S=Pt(e.container,"scroll",h,!1)},{immediate:!0,flush:"post"}),Ze(()=>{$==null||$.remove(),C==null||C.remove(),S==null||S.remove(),w==null||w.remove()}),ue(()=>g({},u.value),(x,I)=>{x.isHiddenScrollBar!==(I==null?void 0:I.isHiddenScrollBar)&&!x.isHiddenScrollBar&&c(E=>{const M=e.scrollBodyRef.value;return M?g(g({},E),{scrollLeft:M.scrollLeft/M.scrollWidth*M.clientWidth}):E})},{immediate:!0});const O=Fs();return()=>{if(l.value<=a.value||!i.value||u.value.isHiddenScrollBar)return null;const{prefixCls:x}=r;return f("div",{style:{height:`${O}px`,width:`${a.value}px`,bottom:`${e.offsetScroll}px`},class:`${x}-sticky-scroll`},[f("div",{onMousedown:y,ref:s,class:ne(`${x}-sticky-scroll-bar`,{[`${x}-sticky-scroll-bar-active`]:p.value}),style:{width:`${i.value}px`,transform:`translate3d(${u.value.scrollLeft}px, 0, 0)`}},null)])}}}),h$=un()?window:null;function FZ(e,t){return P(()=>{const{offsetHeader:n=0,offsetSummary:o=0,offsetScroll:r=0,getContainer:l=()=>h$}=typeof e.value=="object"?e.value:{},a=l()||h$,i=!!e.value;return{isSticky:i,stickyClassName:i?`${t.value}-sticky-holder`:"",offsetHeader:n,offsetSummary:o,offsetScroll:r,container:a}})}function kZ(e,t){return P(()=>{const n=[],o=e.value,r=t.value;for(let l=0;ll.isSticky&&!e.fixHeader?0:l.scrollbarSize),i=ee(),s=m=>{const{currentTarget:h,deltaX:b}=m;b&&(r("scroll",{currentTarget:h,scrollLeft:h.scrollLeft+b}),m.preventDefault())},u=ee();Ve(()=>{ot(()=>{u.value=Pt(i.value,"wheel",s)})}),Ze(()=>{var m;(m=u.value)===null||m===void 0||m.remove()});const c=P(()=>e.flattenColumns.every(m=>m.width&&m.width!==0&&m.width!=="0px")),d=ee([]),p=ee([]);ke(()=>{const m=e.flattenColumns[e.flattenColumns.length-1],h={fixed:m?m.fixed:null,scrollbar:!0,customHeaderCell:()=>({class:`${l.prefixCls}-cell-scrollbar`})};d.value=a.value?[...e.columns,h]:e.columns,p.value=a.value?[...e.flattenColumns,h]:e.flattenColumns});const v=P(()=>{const{stickyOffsets:m,direction:h}=e,{right:b,left:$}=m;return g(g({},m),{left:h==="rtl"?[...$.map(C=>C+a.value),0]:$,right:h==="rtl"?b:[...b.map(C=>C+a.value),0],isSticky:l.isSticky})}),y=kZ(Ne(e,"colWidths"),Ne(e,"columCount"));return()=>{var m;const{noData:h,columCount:b,stickyTopOffset:$,stickyBottomOffset:C,stickyClassName:w,maxContentScroll:S}=e,{isSticky:O}=l;return f("div",{style:g({overflow:"hidden"},O?{top:`${$}px`,bottom:`${C}px`}:{}),ref:i,class:ne(n.class,{[w]:!!w})},[f("table",{style:{tableLayout:"fixed",visibility:h||y.value?null:"hidden"}},[(!h||!S||c.value)&&f(YO,{colWidths:y.value?[...y.value,a.value]:[],columCount:b+1,columns:p.value},null),(m=o.default)===null||m===void 0?void 0:m.call(o,g(g({},e),{stickyOffsets:v.value,columns:d.value,flattenColumns:p.value}))])])}}});function y$(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o[r,Ne(e,r)])))}const LZ=[],zZ={},Ip="rc-table-internal-hook",HZ=te({name:"VcTable",inheritAttrs:!1,props:["prefixCls","data","columns","rowKey","tableLayout","scroll","rowClassName","title","footer","id","showHeader","components","customRow","customHeaderRow","direction","expandFixed","expandColumnWidth","expandedRowKeys","defaultExpandedRowKeys","expandedRowRender","expandRowByClick","expandIcon","onExpand","onExpandedRowsChange","onUpdate:expandedRowKeys","defaultExpandAllRows","indentSize","expandIconColumnIndex","expandedRowClassName","childrenColumnName","rowExpandable","sticky","transformColumns","internalHooks","internalRefs","canExpandable","onUpdateInternalRefs","transformCellText"],emits:["expand","expandedRowsChange","updateInternalRefs","update:expandedRowKeys"],setup(e,t){let{attrs:n,slots:o,emit:r}=t;const l=P(()=>e.data||LZ),a=P(()=>!!l.value.length),i=P(()=>QQ(e.components,{})),s=(oe,fe)=>kO(i.value,oe)||fe,u=P(()=>{const oe=e.rowKey;return typeof oe=="function"?oe:fe=>fe&&fe[oe]}),c=P(()=>e.expandIcon||RZ),d=P(()=>e.childrenColumnName||"children"),p=P(()=>e.expandedRowRender?"row":e.canExpandable||l.value.some(oe=>oe&&typeof oe=="object"&&oe[d.value])?"nest":!1),v=q([]);ke(()=>{e.defaultExpandedRowKeys&&(v.value=e.defaultExpandedRowKeys),e.defaultExpandAllRows&&(v.value=BZ(l.value,u.value,d.value))})();const m=P(()=>new Set(e.expandedRowKeys||v.value||[])),h=oe=>{const fe=u.value(oe,l.value.indexOf(oe));let Oe;const Ie=m.value.has(fe);Ie?(m.value.delete(fe),Oe=[...m.value]):Oe=[...m.value,fe],v.value=Oe,r("expand",!Ie,oe),r("update:expandedRowKeys",Oe),r("expandedRowsChange",Oe)},b=ee(0),[$,C]=CZ(g(g({},Nr(e)),{expandable:P(()=>!!e.expandedRowRender),expandedKeys:m,getRowKey:u,onTriggerExpand:h,expandIcon:c}),P(()=>e.internalHooks===Ip?e.transformColumns:null)),w=P(()=>({columns:$.value,flattenColumns:C.value})),S=ee(),O=ee(),x=ee(),I=ee({scrollWidth:0,clientWidth:0}),E=ee(),[M,_]=pt(!1),[z,R]=pt(!1),[H,T]=UO(new Map),D=P(()=>vu(C.value)),A=P(()=>D.value.map(oe=>H.value.get(oe))),B=P(()=>C.value.length),N=wZ(A,B,Ne(e,"direction")),k=P(()=>e.scroll&&xp(e.scroll.y)),L=P(()=>e.scroll&&xp(e.scroll.x)||!!e.expandFixed),j=P(()=>L.value&&C.value.some(oe=>{let{fixed:fe}=oe;return fe})),G=ee(),U=FZ(Ne(e,"sticky"),Ne(e,"prefixCls")),K=vt({}),Y=P(()=>{const oe=Object.values(K)[0];return(k.value||U.value.isSticky)&&oe}),Q=(oe,fe)=>{fe?K[oe]=fe:delete K[oe]},J=ee({}),Z=ee({}),W=ee({});ke(()=>{k.value&&(Z.value={overflowY:"scroll",maxHeight:Pr(e.scroll.y)}),L.value&&(J.value={overflowX:"auto"},k.value||(Z.value={overflowY:"hidden"}),W.value={width:e.scroll.x===!0?"auto":Pr(e.scroll.x),minWidth:"100%"})});const X=(oe,fe)=>{Ec(S.value)&&T(Oe=>{if(Oe.get(oe)!==fe){const Ie=new Map(Oe);return Ie.set(oe,fe),Ie}return Oe})},[re,ae]=xZ(null);function pe(oe,fe){if(!fe)return;if(typeof fe=="function"){fe(oe);return}const Oe=fe.$el||fe;Oe.scrollLeft!==oe&&(Oe.scrollLeft=oe)}const ye=oe=>{let{currentTarget:fe,scrollLeft:Oe}=oe;var Ie;const Ae=e.direction==="rtl",ge=typeof Oe=="number"?Oe:fe.scrollLeft,he=fe||zZ;if((!ae()||ae()===he)&&(re(he),pe(ge,O.value),pe(ge,x.value),pe(ge,E.value),pe(ge,(Ie=G.value)===null||Ie===void 0?void 0:Ie.setScrollLeft)),fe){const{scrollWidth:$e,clientWidth:Ee}=fe;Ae?(_(-ge<$e-Ee),R(-ge>0)):(_(ge>0),R(ge<$e-Ee))}},de=()=>{L.value&&x.value?ye({currentTarget:x.value}):(_(!1),R(!1))};let me;const ie=oe=>{oe!==b.value&&(de(),b.value=S.value?S.value.offsetWidth:oe)},se=oe=>{let{width:fe}=oe;if(clearTimeout(me),b.value===0){ie(fe);return}me=setTimeout(()=>{ie(fe)},100)};ue([L,()=>e.data,()=>e.columns],()=>{L.value&&de()},{flush:"post"});const[be,we]=pt(0);oZ(),Ve(()=>{ot(()=>{var oe,fe;de(),we(QD(x.value).width),I.value={scrollWidth:((oe=x.value)===null||oe===void 0?void 0:oe.scrollWidth)||0,clientWidth:((fe=x.value)===null||fe===void 0?void 0:fe.clientWidth)||0}})}),Co(()=>{ot(()=>{var oe,fe;const Oe=((oe=x.value)===null||oe===void 0?void 0:oe.scrollWidth)||0,Ie=((fe=x.value)===null||fe===void 0?void 0:fe.clientWidth)||0;(I.value.scrollWidth!==Oe||I.value.clientWidth!==Ie)&&(I.value={scrollWidth:Oe,clientWidth:Ie})})}),ke(()=>{e.internalHooks===Ip&&e.internalRefs&&e.onUpdateInternalRefs({body:x.value?x.value.$el||x.value:null})},{flush:"post"});const ve=P(()=>e.tableLayout?e.tableLayout:j.value?e.scroll.x==="max-content"?"auto":"fixed":k.value||U.value.isSticky||C.value.some(oe=>{let{ellipsis:fe}=oe;return fe})?"fixed":"auto"),Ce=()=>{var oe;return a.value?null:((oe=o.emptyText)===null||oe===void 0?void 0:oe.call(o))||"No Data"};YQ(vt(g(g({},Nr(y$(e,"prefixCls","direction","transformCellText"))),{getComponent:s,scrollbarSize:be,fixedInfoList:P(()=>C.value.map((oe,fe)=>km(fe,fe,C.value,N.value,e.direction))),isSticky:P(()=>U.value.isSticky),summaryCollect:Q}))),vZ(vt(g(g({},Nr(y$(e,"rowClassName","expandedRowClassName","expandRowByClick","expandedRowRender","expandIconColumnIndex","indentSize"))),{columns:$,flattenColumns:C,tableLayout:ve,expandIcon:c,expandableType:p,onTriggerExpand:h}))),hZ({onColumnResize:X}),dZ({componentWidth:b,fixHeader:k,fixColumn:j,horizonScroll:L});const Te=()=>f(yZ,{data:l.value,measureColumnWidth:k.value||L.value||U.value.isSticky,expandedKeys:m.value,rowExpandable:e.rowExpandable,getRowKey:u.value,customRow:e.customRow,childrenColumnName:d.value},{emptyNode:Ce}),le=()=>f(YO,{colWidths:C.value.map(oe=>{let{width:fe}=oe;return fe}),columns:C.value},null);return()=>{var oe;const{prefixCls:fe,scroll:Oe,tableLayout:Ie,direction:Ae,title:ge=o.title,footer:he=o.footer,id:$e,showHeader:Ee,customHeaderRow:Re}=e,{isSticky:_e,offsetHeader:Be,offsetSummary:Ye,offsetScroll:at,stickyClassName:nt,container:it}=U.value,ct=s(["table"],"table"),Dt=s(["body"]),Bt=(oe=o.summary)===null||oe===void 0?void 0:oe.call(o,{pageData:l.value});let zt=()=>null;const Et={colWidths:A.value,columCount:C.value.length,stickyOffsets:N.value,customHeaderRow:Re,fixHeader:k.value,scroll:Oe};if(k.value||_e){let Nn=()=>null;typeof Dt=="function"?(Nn=()=>Dt(l.value,{scrollbarSize:be.value,ref:x,onScroll:ye}),Et.colWidths=C.value.map((fn,hr)=>{let{width:Pe}=fn;const ze=hr===$.value.length-1?Pe-be.value:Pe;return typeof ze=="number"&&!Number.isNaN(ze)?ze:0})):Nn=()=>f("div",{style:g(g({},J.value),Z.value),onScroll:ye,ref:x,class:ne(`${fe}-body`)},[f(ct,{style:g(g({},W.value),{tableLayout:ve.value})},{default:()=>[le(),Te(),!Y.value&&Bt&&f(Ji,{stickyOffsets:N.value,flattenColumns:C.value},{default:()=>[Bt]})]})]);const Zn=g(g(g({noData:!l.value.length,maxContentScroll:L.value&&Oe.x==="max-content"},Et),w.value),{direction:Ae,stickyClassName:nt,onScroll:ye});zt=()=>f(qe,null,[Ee!==!1&&f(b$,F(F({},Zn),{},{stickyTopOffset:Be,class:`${fe}-header`,ref:O}),{default:fn=>f(qe,null,[f(m$,fn,null),Y.value==="top"&&f(Ji,fn,{default:()=>[Bt]})])}),Nn(),Y.value&&Y.value!=="top"&&f(b$,F(F({},Zn),{},{stickyBottomOffset:Ye,class:`${fe}-summary`,ref:E}),{default:fn=>f(Ji,fn,{default:()=>[Bt]})}),_e&&x.value&&f(NZ,{ref:G,offsetScroll:at,scrollBodyRef:x,onScroll:ye,container:it,scrollBodySizeInfo:I.value},null)])}else zt=()=>f("div",{style:g(g({},J.value),Z.value),class:ne(`${fe}-content`),onScroll:ye,ref:x},[f(ct,{style:g(g({},W.value),{tableLayout:ve.value})},{default:()=>[le(),Ee!==!1&&f(m$,F(F({},Et),w.value),null),Te(),Bt&&f(Ji,{stickyOffsets:N.value,flattenColumns:C.value},{default:()=>[Bt]})]})]);const en=fr(n,{aria:!0,data:!0}),dn=()=>f("div",F(F({},en),{},{class:ne(fe,{[`${fe}-rtl`]:Ae==="rtl",[`${fe}-ping-left`]:M.value,[`${fe}-ping-right`]:z.value,[`${fe}-layout-fixed`]:Ie==="fixed",[`${fe}-fixed-header`]:k.value,[`${fe}-fixed-column`]:j.value,[`${fe}-scroll-horizontal`]:L.value,[`${fe}-has-fix-left`]:C.value[0]&&C.value[0].fixed,[`${fe}-has-fix-right`]:C.value[B.value-1]&&C.value[B.value-1].fixed==="right",[n.class]:n.class}),style:n.style,id:$e,ref:S}),[ge&&f(Pp,{class:`${fe}-title`},{default:()=>[ge(l.value)]}),f("div",{class:`${fe}-container`},[zt()]),he&&f(Pp,{class:`${fe}-footer`},{default:()=>[he(l.value)]})]);return L.value?f(io,{onResize:se},{default:dn}):dn()}}});function jZ(){const e=g({},arguments.length<=0?void 0:arguments[0]);for(let t=1;t{const r=n[o];r!==void 0&&(e[o]=r)})}return e}const Tp=10;function VZ(e,t){const n={current:e.current,pageSize:e.pageSize};return Object.keys(t&&typeof t=="object"?t:{}).forEach(r=>{const l=e[r];typeof l!="function"&&(n[r]=l)}),n}function WZ(e,t,n){const o=P(()=>t.value&&typeof t.value=="object"?t.value:{}),r=P(()=>o.value.total||0),[l,a]=pt(()=>({current:"defaultCurrent"in o.value?o.value.defaultCurrent:1,pageSize:"defaultPageSize"in o.value?o.value.defaultPageSize:Tp})),i=P(()=>{const c=jZ(l.value,o.value,{total:r.value>0?r.value:e.value}),d=Math.ceil((r.value||e.value)/c.pageSize);return c.current>d&&(c.current=d||1),c}),s=(c,d)=>{t.value!==!1&&a({current:c!=null?c:1,pageSize:d||i.value.pageSize})},u=(c,d)=>{var p,v;t.value&&((v=(p=o.value).onChange)===null||v===void 0||v.call(p,c,d)),s(c,d),n(c,d||i.value.pageSize)};return[P(()=>t.value===!1?{}:g(g({},i.value),{onChange:u})),s]}function KZ(e,t,n){const o=q({});ue([e,t,n],()=>{const l=new Map,a=n.value,i=t.value;function s(u){u.forEach((c,d)=>{const p=a(c,d);l.set(p,c),c&&typeof c=="object"&&i in c&&s(c[i]||[])})}s(e.value),o.value={kvMap:l}},{deep:!0,immediate:!0});function r(l){return o.value.kvMap.get(l)}return[r]}const _o={},Ep="SELECT_ALL",Mp="SELECT_INVERT",_p="SELECT_NONE",GZ=[];function QO(e,t){let n=[];return(t||[]).forEach(o=>{n.push(o),o&&typeof o=="object"&&e in o&&(n=[...n,...QO(e,o[e])])}),n}function XZ(e,t){const n=P(()=>{const E=e.value||{},{checkStrictly:M=!0}=E;return g(g({},E),{checkStrictly:M})}),[o,r]=wt(n.value.selectedRowKeys||n.value.defaultSelectedRowKeys||GZ,{value:P(()=>n.value.selectedRowKeys)}),l=q(new Map),a=E=>{if(n.value.preserveSelectedRowKeys){const M=new Map;E.forEach(_=>{let z=t.getRecordByKey(_);!z&&l.value.has(_)&&(z=l.value.get(_)),M.set(_,z)}),l.value=M}};ke(()=>{a(o.value)});const i=P(()=>n.value.checkStrictly?null:Si(t.data.value,{externalGetKey:t.getRowKey.value,childrenPropName:t.childrenColumnName.value}).keyEntities),s=P(()=>QO(t.childrenColumnName.value,t.pageData.value)),u=P(()=>{const E=new Map,M=t.getRowKey.value,_=n.value.getCheckboxProps;return s.value.forEach((z,R)=>{const H=M(z,R),T=(_?_(z):null)||{};E.set(H,T)}),E}),{maxLevel:c,levelEntities:d}=lu(i),p=E=>{var M;return!!(!((M=u.value.get(t.getRowKey.value(E)))===null||M===void 0)&&M.disabled)},v=P(()=>{if(n.value.checkStrictly)return[o.value||[],[]];const{checkedKeys:E,halfCheckedKeys:M}=Wn(o.value,!0,i.value,c.value,d.value,p);return[E||[],M]}),y=P(()=>v.value[0]),m=P(()=>v.value[1]),h=P(()=>{const E=n.value.type==="radio"?y.value.slice(0,1):y.value;return new Set(E)}),b=P(()=>n.value.type==="radio"?new Set:new Set(m.value)),[$,C]=pt(null),w=E=>{let M,_;a(E);const{preserveSelectedRowKeys:z,onChange:R}=n.value,{getRecordByKey:H}=t;z?(M=E,_=E.map(T=>l.value.get(T))):(M=[],_=[],E.forEach(T=>{const D=H(T);D!==void 0&&(M.push(T),_.push(D))})),r(M),R==null||R(M,_)},S=(E,M,_,z)=>{const{onSelect:R}=n.value,{getRecordByKey:H}=t||{};if(R){const T=_.map(D=>H(D));R(H(E),M,T,z)}w(_)},O=P(()=>{const{onSelectInvert:E,onSelectNone:M,selections:_,hideSelectAll:z}=n.value,{data:R,pageData:H,getRowKey:T,locale:D}=t;return!_||z?null:(_===!0?[Ep,Mp,_p]:_).map(B=>B===Ep?{key:"all",text:D.value.selectionAll,onSelect(){w(R.value.map((N,k)=>T.value(N,k)).filter(N=>{const k=u.value.get(N);return!(k!=null&&k.disabled)||h.value.has(N)}))}}:B===Mp?{key:"invert",text:D.value.selectInvert,onSelect(){const N=new Set(h.value);H.value.forEach((L,j)=>{const G=T.value(L,j),U=u.value.get(G);U!=null&&U.disabled||(N.has(G)?N.delete(G):N.add(G))});const k=Array.from(N);E&&(yt(!1,"Table","`onSelectInvert` will be removed in future. Please use `onChange` instead."),E(k)),w(k)}}:B===_p?{key:"none",text:D.value.selectNone,onSelect(){M==null||M(),w(Array.from(h.value).filter(N=>{const k=u.value.get(N);return k==null?void 0:k.disabled}))}}:B)}),x=P(()=>s.value.length);return[E=>{var M;const{onSelectAll:_,onSelectMultiple:z,columnWidth:R,type:H,fixed:T,renderCell:D,hideSelectAll:A,checkStrictly:B}=n.value,{prefixCls:N,getRecordByKey:k,getRowKey:L,expandType:j,getPopupContainer:G}=t;if(!e.value)return E.filter(ie=>ie!==_o);let U=E.slice();const K=new Set(h.value),Y=s.value.map(L.value).filter(ie=>!u.value.get(ie).disabled),Q=Y.every(ie=>K.has(ie)),J=Y.some(ie=>K.has(ie)),Z=()=>{const ie=[];Q?Y.forEach(be=>{K.delete(be),ie.push(be)}):Y.forEach(be=>{K.has(be)||(K.add(be),ie.push(be))});const se=Array.from(K);_==null||_(!Q,se.map(be=>k(be)),ie.map(be=>k(be))),w(se)};let W;if(H!=="radio"){let ie;if(O.value){const Ce=f(Ft,{getPopupContainer:G.value},{default:()=>[O.value.map((Te,le)=>{const{key:oe,text:fe,onSelect:Oe}=Te;return f(Ft.Item,{key:oe||le,onClick:()=>{Oe==null||Oe(Y)}},{default:()=>[fe]})})]});ie=f("div",{class:`${N.value}-selection-extra`},[f(Fo,{overlay:Ce,getPopupContainer:G.value},{default:()=>[f("span",null,[f(vi,null,null)])]})])}const se=s.value.map((Ce,Te)=>{const le=L.value(Ce,Te),oe=u.value.get(le)||{};return g({checked:K.has(le)},oe)}).filter(Ce=>{let{disabled:Te}=Ce;return Te}),be=!!se.length&&se.length===x.value,we=be&&se.every(Ce=>{let{checked:Te}=Ce;return Te}),ve=be&&se.some(Ce=>{let{checked:Te}=Ce;return Te});W=!A&&f("div",{class:`${N.value}-selection`},[f(ao,{checked:be?we:!!x.value&&Q,indeterminate:be?!we&&ve:!Q&&J,onChange:Z,disabled:x.value===0||be,"aria-label":ie?"Custom selection":"Select all",skipGroup:!0},null),ie])}let X;H==="radio"?X=ie=>{let{record:se,index:be}=ie;const we=L.value(se,be),ve=K.has(we);return{node:f(hn,F(F({},u.value.get(we)),{},{checked:ve,onClick:Ce=>Ce.stopPropagation(),onChange:Ce=>{K.has(we)||S(we,!0,[we],Ce.nativeEvent)}}),null),checked:ve}}:X=ie=>{let{record:se,index:be}=ie;var we;const ve=L.value(se,be),Ce=K.has(ve),Te=b.value.has(ve),le=u.value.get(ve);let oe;return j.value==="nest"?(oe=Te,yt(typeof(le==null?void 0:le.indeterminate)!="boolean","Table","set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.")):oe=(we=le==null?void 0:le.indeterminate)!==null&&we!==void 0?we:Te,{node:f(ao,F(F({},le),{},{indeterminate:oe,checked:Ce,skipGroup:!0,onClick:fe=>fe.stopPropagation(),onChange:fe=>{let{nativeEvent:Oe}=fe;const{shiftKey:Ie}=Oe;let Ae=-1,ge=-1;if(Ie&&B){const he=new Set([$.value,ve]);Y.some(($e,Ee)=>{if(he.has($e))if(Ae===-1)Ae=Ee;else return ge=Ee,!0;return!1})}if(ge!==-1&&Ae!==ge&&B){const he=Y.slice(Ae,ge+1),$e=[];Ce?he.forEach(Re=>{K.has(Re)&&($e.push(Re),K.delete(Re))}):he.forEach(Re=>{K.has(Re)||($e.push(Re),K.add(Re))});const Ee=Array.from(K);z==null||z(!Ce,Ee.map(Re=>k(Re)),$e.map(Re=>k(Re))),w(Ee)}else{const he=y.value;if(B){const $e=Ce?po(he,ve):Mo(he,ve);S(ve,!Ce,$e,Oe)}else{const $e=Wn([...he,ve],!0,i.value,c.value,d.value,p),{checkedKeys:Ee,halfCheckedKeys:Re}=$e;let _e=Ee;if(Ce){const Be=new Set(Ee);Be.delete(ve),_e=Wn(Array.from(Be),{checked:!1,halfCheckedKeys:Re},i.value,c.value,d.value,p).checkedKeys}S(ve,!Ce,_e,Oe)}}C(ve)}}),null),checked:Ce}};const re=ie=>{let{record:se,index:be}=ie;const{node:we,checked:ve}=X({record:se,index:be});return D?D(ve,se,be,we):we};if(!U.includes(_o))if(U.findIndex(ie=>{var se;return((se=ie[El])===null||se===void 0?void 0:se.columnType)==="EXPAND_COLUMN"})===0){const[ie,...se]=U;U=[ie,_o,...se]}else U=[_o,...U];const ae=U.indexOf(_o);U=U.filter((ie,se)=>ie!==_o||se===ae);const pe=U[ae-1],ye=U[ae+1];let de=T;de===void 0&&((ye==null?void 0:ye.fixed)!==void 0?de=ye.fixed:(pe==null?void 0:pe.fixed)!==void 0&&(de=pe.fixed)),de&&pe&&((M=pe[El])===null||M===void 0?void 0:M.columnType)==="EXPAND_COLUMN"&&pe.fixed===void 0&&(pe.fixed=de);const me={fixed:de,width:R,className:`${N.value}-selection-column`,title:n.value.columnTitle||W,customRender:re,[El]:{class:`${N.value}-selection-col`}};return U.map(ie=>ie===_o?me:ie)},h]}var UZ={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"};const YZ=UZ;function $$(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:[];const t=bt(e),n=[];return t.forEach(o=>{var r,l,a,i;if(!o)return;const s=o.key,u=((r=o.props)===null||r===void 0?void 0:r.style)||{},c=((l=o.props)===null||l===void 0?void 0:l.class)||"",d=o.props||{};for(const[h,b]of Object.entries(d))d[Zr(h)]=b;const p=o.children||{},{default:v}=p,y=nJ(p,["default"]),m=g(g(g({},y),d),{style:u,class:c});if(s&&(m.key=s),!((a=o.type)===null||a===void 0)&&a.__ANT_TABLE_COLUMN_GROUP)m.children=ZO(typeof v=="function"?v():v);else{const h=(i=o.children)===null||i===void 0?void 0:i.default;m.customRender=m.customRender||h}n.push(m)}),n}const xs="ascend",Rd="descend";function rc(e){return typeof e.sorter=="object"&&typeof e.sorter.multiple=="number"?e.sorter.multiple:!1}function C$(e){return typeof e=="function"?e:e&&typeof e=="object"&&e.compare?e.compare:!1}function oJ(e,t){return t?e[e.indexOf(t)+1]:e[0]}function Dp(e,t,n){let o=[];function r(l,a){o.push({column:l,key:Xr(l,a),multiplePriority:rc(l),sortOrder:l.sortOrder})}return(e||[]).forEach((l,a)=>{const i=Oi(a,n);l.children?("sortOrder"in l&&r(l,i),o=[...o,...Dp(l.children,t,i)]):l.sorter&&("sortOrder"in l?r(l,i):t&&l.defaultSortOrder&&o.push({column:l,key:Xr(l,i),multiplePriority:rc(l),sortOrder:l.defaultSortOrder}))}),o}function JO(e,t,n,o,r,l,a,i){return(t||[]).map((s,u)=>{const c=Oi(u,i);let d=s;if(d.sorter){const p=d.sortDirections||r,v=d.showSorterTooltip===void 0?a:d.showSorterTooltip,y=Xr(d,c),m=n.find(E=>{let{key:M}=E;return M===y}),h=m?m.sortOrder:null,b=oJ(p,h),$=p.includes(xs)&&f(tJ,{class:ne(`${e}-column-sorter-up`,{active:h===xs}),role:"presentation"},null),C=p.includes(Rd)&&f(QZ,{role:"presentation",class:ne(`${e}-column-sorter-down`,{active:h===Rd})},null),{cancelSort:w,triggerAsc:S,triggerDesc:O}=l||{};let x=w;b===Rd?x=O:b===xs&&(x=S);const I=typeof v=="object"?v:{title:x};d=g(g({},d),{className:ne(d.className,{[`${e}-column-sort`]:h}),title:E=>{const M=f("div",{class:`${e}-column-sorters`},[f("span",{class:`${e}-column-title`},[Hm(s.title,E)]),f("span",{class:ne(`${e}-column-sorter`,{[`${e}-column-sorter-full`]:!!($&&C)})},[f("span",{class:`${e}-column-sorter-inner`},[$,C])])]);return v?f(Vn,I,{default:()=>[M]}):M},customHeaderCell:E=>{const M=s.customHeaderCell&&s.customHeaderCell(E)||{},_=M.onClick,z=M.onKeydown;return M.onClick=R=>{o({column:s,key:y,sortOrder:b,multiplePriority:rc(s)}),_&&_(R)},M.onKeydown=R=>{R.keyCode===Se.ENTER&&(o({column:s,key:y,sortOrder:b,multiplePriority:rc(s)}),z==null||z(R))},h&&(M["aria-sort"]=h==="ascend"?"ascending":"descending"),M.class=ne(M.class,`${e}-column-has-sorters`),M.tabindex=0,M}})}return"children"in d&&(d=g(g({},d),{children:JO(e,d.children,n,o,r,l,a,c)})),d})}function x$(e){const{column:t,sortOrder:n}=e;return{column:t,order:n,field:t.dataIndex,columnKey:t.key}}function w$(e){const t=e.filter(n=>{let{sortOrder:o}=n;return o}).map(x$);return t.length===0&&e.length?g(g({},x$(e[e.length-1])),{column:void 0}):t.length<=1?t[0]||{}:t}function Ap(e,t,n){const o=t.slice().sort((a,i)=>i.multiplePriority-a.multiplePriority),r=e.slice(),l=o.filter(a=>{let{column:{sorter:i},sortOrder:s}=a;return C$(i)&&s});return l.length?r.sort((a,i)=>{for(let s=0;s{const i=a[n];return i?g(g({},a),{[n]:Ap(i,t,n)}):a}):r}function rJ(e){let{prefixCls:t,mergedColumns:n,onSorterChange:o,sortDirections:r,tableLocale:l,showSorterTooltip:a}=e;const[i,s]=pt(Dp(n.value,!0)),u=P(()=>{let y=!0;const m=Dp(n.value,!1);if(!m.length)return i.value;const h=[];function b(C){y?h.push(C):h.push(g(g({},C),{sortOrder:null}))}let $=null;return m.forEach(C=>{$===null?(b(C),C.sortOrder&&(C.multiplePriority===!1?y=!1:$=!0)):($&&C.multiplePriority!==!1||(y=!1),b(C))}),h}),c=P(()=>{const y=u.value.map(m=>{let{column:h,sortOrder:b}=m;return{column:h,order:b}});return{sortColumns:y,sortColumn:y[0]&&y[0].column,sortOrder:y[0]&&y[0].order}});function d(y){let m;y.multiplePriority===!1||!u.value.length||u.value[0].multiplePriority===!1?m=[y]:m=[...u.value.filter(h=>{let{key:b}=h;return b!==y.key}),y],s(m),o(w$(m),m)}const p=y=>JO(t.value,y,u.value,d,r.value,l.value,a.value),v=P(()=>w$(u.value));return[p,u,c,v]}var lJ={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"};const aJ=lJ;function O$(e){for(var t=1;t{const{keyCode:t}=e;t===Se.ENTER&&e.stopPropagation()},uJ=(e,t)=>{let{slots:n}=t;var o;return f("div",{onClick:r=>r.stopPropagation(),onKeydown:cJ},[(o=n.default)===null||o===void 0?void 0:o.call(n)])},dJ=uJ,P$=te({compatConfig:{MODE:3},name:"FilterSearch",inheritAttrs:!1,props:{value:je(),onChange:ce(),filterSearch:Xe([Boolean,Function]),tablePrefixCls:je(),locale:De()},setup(e){return()=>{const{value:t,onChange:n,filterSearch:o,tablePrefixCls:r,locale:l}=e;return o?f("div",{class:`${r}-filter-dropdown-search`},[f(Ht,{placeholder:l.filterSearchPlaceholder,onChange:n,value:t,htmlSize:1,class:`${r}-filter-dropdown-search-input`},{prefix:()=>f(Nc,null,null)})]):null}}});var I$=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);re.motion?e.motion:Gc()),s=(u,c)=>{var d,p,v,y;c==="appear"?(p=(d=i.value)===null||d===void 0?void 0:d.onAfterEnter)===null||p===void 0||p.call(d,u):c==="leave"&&((y=(v=i.value)===null||v===void 0?void 0:v.onAfterLeave)===null||y===void 0||y.call(v,u)),a.value||e.onMotionEnd(),a.value=!0};return ue(()=>e.motionNodes,()=>{e.motionNodes&&e.motionType==="hide"&&r.value&&ot(()=>{r.value=!1})},{immediate:!0,flush:"post"}),Ve(()=>{e.motionNodes&&e.onMotionStart()}),Ze(()=>{e.motionNodes&&s()}),()=>{const{motion:u,motionNodes:c,motionType:d,active:p,eventKey:v}=e,y=I$(e,["motion","motionNodes","motionType","active","eventKey"]);return c?f(Jt,F(F({},i.value),{},{appear:d==="show",onAfterAppear:m=>s(m,"appear"),onAfterLeave:m=>s(m,"leave")}),{default:()=>[cn(f("div",{class:`${l.value.prefixCls}-treenode-motion`},[c.map(m=>{const h=I$(m.data,[]),{title:b,key:$,isStart:C,isEnd:w}=m;return delete h.children,f(Zf,F(F({},h),{},{title:b,active:p,data:m.data,key:$,eventKey:$,isStart:C,isEnd:w}),o)})]),[[yn,r.value]])]}):f(Zf,F(F({class:n.class,style:n.style},y),{},{active:p,eventKey:v}),o)}}});function pJ(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const n=e.length,o=t.length;if(Math.abs(n-o)!==1)return{add:!1,key:null};function r(l,a){const i=new Map;l.forEach(u=>{i.set(u,!0)});const s=a.filter(u=>!i.has(u));return s.length===1?s[0]:null}return na.key===n),r=e[o+1],l=t.findIndex(a=>a.key===n);if(r){const a=t.findIndex(i=>i.key===r.key);return t.slice(l+1,a)}return t.slice(l+1)}var E$=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{},Ur=`RC_TREE_MOTION_${Math.random()}`,Rp={key:Ur},e6={key:Ur,level:0,index:0,pos:"0",node:Rp,nodes:[Rp]},_$={parent:null,children:[],pos:e6.pos,data:Rp,title:null,key:Ur,isStart:[],isEnd:[]};function D$(e,t,n,o){return t===!1||!n?e:e.slice(0,Math.ceil(n/o)+1)}function A$(e){const{key:t,pos:n}=e;return $i(t,n)}function gJ(e){let t=String(e.key),n=e;for(;n.parent;)n=n.parent,t=`${n.key} > ${t}`;return t}const mJ=te({compatConfig:{MODE:3},name:"NodeList",inheritAttrs:!1,props:ZH,setup(e,t){let{expose:n,attrs:o}=t;const r=ee(),l=ee(),{expandedKeys:a,flattenNodes:i}=z4();n({scrollTo:m=>{r.value.scrollTo(m)},getIndentWidth:()=>l.value.offsetWidth});const s=q(i.value),u=q([]),c=ee(null);function d(){s.value=i.value,u.value=[],c.value=null,e.onListChangeEnd()}const p=Xg();ue([()=>a.value.slice(),i],(m,h)=>{let[b,$]=m,[C,w]=h;const S=pJ(C,b);if(S.key!==null){const{virtual:O,height:x,itemHeight:I}=e;if(S.add){const E=w.findIndex(z=>{let{key:R}=z;return R===S.key}),M=D$(T$(w,$,S.key),O,x,I),_=w.slice();_.splice(E+1,0,_$),s.value=_,u.value=M,c.value="show"}else{const E=$.findIndex(z=>{let{key:R}=z;return R===S.key}),M=D$(T$($,w,S.key),O,x,I),_=$.slice();_.splice(E+1,0,_$),s.value=_,u.value=M,c.value="hide"}}else w!==$&&(s.value=$)}),ue(()=>p.value.dragging,m=>{m||d()});const v=P(()=>e.motion===void 0?s.value:i.value),y=()=>{e.onActiveChange(null)};return()=>{const m=g(g({},e),o),{prefixCls:h,selectable:b,checkable:$,disabled:C,motion:w,height:S,itemHeight:O,virtual:x,focusable:I,activeItem:E,focused:M,tabindex:_,onKeydown:z,onFocus:R,onBlur:H,onListChangeStart:T,onListChangeEnd:D}=m,A=E$(m,["prefixCls","selectable","checkable","disabled","motion","height","itemHeight","virtual","focusable","activeItem","focused","tabindex","onKeydown","onFocus","onBlur","onListChangeStart","onListChangeEnd"]);return f(qe,null,[M&&E&&f("span",{style:M$,"aria-live":"assertive"},[gJ(E)]),f("div",null,[f("input",{style:M$,disabled:I===!1||C,tabindex:I!==!1?_:null,onKeydown:z,onFocus:R,onBlur:H,value:"",onChange:vJ,"aria-label":"for screen reader"},null)]),f("div",{class:`${h}-treenode`,"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden"}},[f("div",{class:`${h}-indent`},[f("div",{ref:l,class:`${h}-indent-unit`},null)])]),f(_2,F(F({},tt(A,["onActiveChange"])),{},{data:v.value,itemKey:A$,height:S,fullHeight:!1,virtual:x,itemHeight:O,prefixCls:`${h}-list`,ref:r,onVisibleChange:(B,N)=>{const k=new Set(B);N.filter(j=>!k.has(j)).some(j=>A$(j)===Ur)&&d()}}),{default:B=>{const{pos:N}=B,k=E$(B.data,[]),{title:L,key:j,isStart:G,isEnd:U}=B,K=$i(j,N);return delete k.key,delete k.children,f(fJ,F(F({},k),{},{eventKey:K,title:L,active:!!E&&j===E.key,data:B.data,isStart:G,isEnd:U,motion:w,motionNodes:j===Ur?u.value:null,motionType:c.value,onMotionStart:T,onMotionEnd:d,onMousemove:y}),null)}})])}}});function hJ(e){let{dropPosition:t,dropLevelOffset:n,indent:o}=e;const r={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:"2px"};switch(t){case-1:r.top=0,r.left=`${-n*o}px`;break;case 1:r.bottom=0,r.left=`${-n*o}px`;break;case 0:r.bottom=0,r.left=`${o}`;break}return f("div",{style:r},null)}const bJ=10,t6=te({compatConfig:{MODE:3},name:"Tree",inheritAttrs:!1,props:rt(j4(),{prefixCls:"vc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,expandAction:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:hJ,allowDrop:()=>!0}),setup(e,t){let{attrs:n,slots:o,expose:r}=t;const l=q(!1);let a={};const i=q(),s=q([]),u=q([]),c=q([]),d=q([]),p=q([]),v=q([]),y={},m=vt({draggingNodeKey:null,dragChildrenKeys:[],dropTargetKey:null,dropPosition:null,dropContainerKey:null,dropLevelOffset:null,dropTargetPos:null,dropAllowed:!0,dragOverNodeKey:null}),h=q([]);ue([()=>e.treeData,()=>e.children],()=>{h.value=e.treeData!==void 0?e.treeData.slice():ep(Tt(e.children))},{immediate:!0,deep:!0});const b=q({}),$=q(!1),C=q(null),w=q(!1),S=P(()=>tu(e.fieldNames)),O=q();let x=null,I=null,E=null;const M=P(()=>({expandedKeysSet:_.value,selectedKeysSet:z.value,loadedKeysSet:R.value,loadingKeysSet:H.value,checkedKeysSet:T.value,halfCheckedKeysSet:D.value,dragOverNodeKey:m.dragOverNodeKey,dropPosition:m.dropPosition,keyEntities:b.value})),_=P(()=>new Set(v.value)),z=P(()=>new Set(s.value)),R=P(()=>new Set(d.value)),H=P(()=>new Set(p.value)),T=P(()=>new Set(u.value)),D=P(()=>new Set(c.value));ke(()=>{if(h.value){const ge=Si(h.value,{fieldNames:S.value});b.value=g({[Ur]:e6},ge.keyEntities)}});let A=!1;ue([()=>e.expandedKeys,()=>e.autoExpandParent,b],(ge,he)=>{let[$e,Ee]=ge,[Re,_e]=he,Be=v.value;if(e.expandedKeys!==void 0||A&&Ee!==_e)Be=e.autoExpandParent||!A&&e.defaultExpandParent?Jf(e.expandedKeys,b.value):e.expandedKeys;else if(!A&&e.defaultExpandAll){const Ye=g({},b.value);delete Ye[Ur],Be=Object.keys(Ye).map(at=>Ye[at].key)}else!A&&e.defaultExpandedKeys&&(Be=e.autoExpandParent||e.defaultExpandParent?Jf(e.defaultExpandedKeys,b.value):e.defaultExpandedKeys);Be&&(v.value=Be),A=!0},{immediate:!0});const B=q([]);ke(()=>{B.value=aj(h.value,v.value,S.value)}),ke(()=>{e.selectable&&(e.selectedKeys!==void 0?s.value=Ky(e.selectedKeys,e):!A&&e.defaultSelectedKeys&&(s.value=Ky(e.defaultSelectedKeys,e)))});const{maxLevel:N,levelEntities:k}=lu(b);ke(()=>{if(e.checkable){let ge;if(e.checkedKeys!==void 0?ge=dd(e.checkedKeys)||{}:!A&&e.defaultCheckedKeys?ge=dd(e.defaultCheckedKeys)||{}:h.value&&(ge=dd(e.checkedKeys)||{checkedKeys:u.value,halfCheckedKeys:c.value}),ge){let{checkedKeys:he=[],halfCheckedKeys:$e=[]}=ge;e.checkStrictly||({checkedKeys:he,halfCheckedKeys:$e}=Wn(he,!0,b.value,N.value,k.value)),u.value=he,c.value=$e}}}),ke(()=>{e.loadedKeys&&(d.value=e.loadedKeys)});const L=()=>{g(m,{dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})},j=ge=>{O.value.scrollTo(ge)};ue(()=>e.activeKey,()=>{e.activeKey!==void 0&&(C.value=e.activeKey)},{immediate:!0}),ue(C,ge=>{ot(()=>{ge!==null&&j({key:ge})})},{immediate:!0,flush:"post"});const G=ge=>{e.expandedKeys===void 0&&(v.value=ge)},U=()=>{m.draggingNodeKey!==null&&g(m,{draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),x=null,E=null},K=(ge,he)=>{const{onDragend:$e}=e;m.dragOverNodeKey=null,U(),$e==null||$e({event:ge,node:he.eventData}),I=null},Y=ge=>{K(ge,null),window.removeEventListener("dragend",Y)},Q=(ge,he)=>{const{onDragstart:$e}=e,{eventKey:Ee,eventData:Re}=he;I=he,x={x:ge.clientX,y:ge.clientY};const _e=po(v.value,Ee);m.draggingNodeKey=Ee,m.dragChildrenKeys=nj(Ee,b.value),i.value=O.value.getIndentWidth(),G(_e),window.addEventListener("dragend",Y),$e&&$e({event:ge,node:Re})},J=(ge,he)=>{const{onDragenter:$e,onExpand:Ee,allowDrop:Re,direction:_e}=e,{pos:Be,eventKey:Ye}=he;if(E!==Ye&&(E=Ye),!I){L();return}const{dropPosition:at,dropLevelOffset:nt,dropTargetKey:it,dropContainerKey:ct,dropTargetPos:Dt,dropAllowed:Bt,dragOverNodeKey:zt}=Wy(ge,I,he,i.value,x,Re,B.value,b.value,_.value,_e);if(m.dragChildrenKeys.indexOf(it)!==-1||!Bt){L();return}if(a||(a={}),Object.keys(a).forEach(Et=>{clearTimeout(a[Et])}),I.eventKey!==he.eventKey&&(a[Be]=window.setTimeout(()=>{if(m.draggingNodeKey===null)return;let Et=v.value.slice();const en=b.value[he.eventKey];en&&(en.children||[]).length&&(Et=Mo(v.value,he.eventKey)),G(Et),Ee&&Ee(Et,{node:he.eventData,expanded:!0,nativeEvent:ge})},800)),I.eventKey===it&&nt===0){L();return}g(m,{dragOverNodeKey:zt,dropPosition:at,dropLevelOffset:nt,dropTargetKey:it,dropContainerKey:ct,dropTargetPos:Dt,dropAllowed:Bt}),$e&&$e({event:ge,node:he.eventData,expandedKeys:v.value})},Z=(ge,he)=>{const{onDragover:$e,allowDrop:Ee,direction:Re}=e;if(!I)return;const{dropPosition:_e,dropLevelOffset:Be,dropTargetKey:Ye,dropContainerKey:at,dropAllowed:nt,dropTargetPos:it,dragOverNodeKey:ct}=Wy(ge,I,he,i.value,x,Ee,B.value,b.value,_.value,Re);m.dragChildrenKeys.indexOf(Ye)!==-1||!nt||(I.eventKey===Ye&&Be===0?m.dropPosition===null&&m.dropLevelOffset===null&&m.dropTargetKey===null&&m.dropContainerKey===null&&m.dropTargetPos===null&&m.dropAllowed===!1&&m.dragOverNodeKey===null||L():_e===m.dropPosition&&Be===m.dropLevelOffset&&Ye===m.dropTargetKey&&at===m.dropContainerKey&&it===m.dropTargetPos&&nt===m.dropAllowed&&ct===m.dragOverNodeKey||g(m,{dropPosition:_e,dropLevelOffset:Be,dropTargetKey:Ye,dropContainerKey:at,dropTargetPos:it,dropAllowed:nt,dragOverNodeKey:ct}),$e&&$e({event:ge,node:he.eventData}))},W=(ge,he)=>{E===he.eventKey&&!ge.currentTarget.contains(ge.relatedTarget)&&(L(),E=null);const{onDragleave:$e}=e;$e&&$e({event:ge,node:he.eventData})},X=function(ge,he){let $e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var Ee;const{dragChildrenKeys:Re,dropPosition:_e,dropTargetKey:Be,dropTargetPos:Ye,dropAllowed:at}=m;if(!at)return;const{onDrop:nt}=e;if(m.dragOverNodeKey=null,U(),Be===null)return;const it=g(g({},ms(Be,Tt(M.value))),{active:((Ee=fe.value)===null||Ee===void 0?void 0:Ee.key)===Be,data:b.value[Be].node});Re.indexOf(Be);const ct=Ug(Ye),Dt={event:ge,node:hs(it),dragNode:I?I.eventData:null,dragNodesKeys:[I.eventKey].concat(Re),dropToGap:_e!==0,dropPosition:_e+Number(ct[ct.length-1])};$e||nt==null||nt(Dt),I=null},re=(ge,he)=>{const{expanded:$e,key:Ee}=he,Re=B.value.filter(Be=>Be.key===Ee)[0],_e=hs(g(g({},ms(Ee,M.value)),{data:Re.data}));G($e?po(v.value,Ee):Mo(v.value,Ee)),Ce(ge,_e)},ae=(ge,he)=>{const{onClick:$e,expandAction:Ee}=e;Ee==="click"&&re(ge,he),$e&&$e(ge,he)},pe=(ge,he)=>{const{onDblclick:$e,expandAction:Ee}=e;(Ee==="doubleclick"||Ee==="dblclick")&&re(ge,he),$e&&$e(ge,he)},ye=(ge,he)=>{let $e=s.value;const{onSelect:Ee,multiple:Re}=e,{selected:_e}=he,Be=he[S.value.key],Ye=!_e;Ye?Re?$e=Mo($e,Be):$e=[Be]:$e=po($e,Be);const at=b.value,nt=$e.map(it=>{const ct=at[it];return ct?ct.node:null}).filter(it=>it);e.selectedKeys===void 0&&(s.value=$e),Ee&&Ee($e,{event:"select",selected:Ye,node:he,selectedNodes:nt,nativeEvent:ge})},de=(ge,he,$e)=>{const{checkStrictly:Ee,onCheck:Re}=e,_e=he[S.value.key];let Be;const Ye={event:"check",node:he,checked:$e,nativeEvent:ge},at=b.value;if(Ee){const nt=$e?Mo(u.value,_e):po(u.value,_e),it=po(c.value,_e);Be={checked:nt,halfChecked:it},Ye.checkedNodes=nt.map(ct=>at[ct]).filter(ct=>ct).map(ct=>ct.node),e.checkedKeys===void 0&&(u.value=nt)}else{let{checkedKeys:nt,halfCheckedKeys:it}=Wn([...u.value,_e],!0,at,N.value,k.value);if(!$e){const ct=new Set(nt);ct.delete(_e),{checkedKeys:nt,halfCheckedKeys:it}=Wn(Array.from(ct),{checked:!1,halfCheckedKeys:it},at,N.value,k.value)}Be=nt,Ye.checkedNodes=[],Ye.checkedNodesPositions=[],Ye.halfCheckedKeys=it,nt.forEach(ct=>{const Dt=at[ct];if(!Dt)return;const{node:Bt,pos:zt}=Dt;Ye.checkedNodes.push(Bt),Ye.checkedNodesPositions.push({node:Bt,pos:zt})}),e.checkedKeys===void 0&&(u.value=nt,c.value=it)}Re&&Re(Be,Ye)},me=ge=>{const he=ge[S.value.key],$e=new Promise((Ee,Re)=>{const{loadData:_e,onLoad:Be}=e;if(!_e||R.value.has(he)||H.value.has(he))return null;_e(ge).then(()=>{const at=Mo(d.value,he),nt=po(p.value,he);Be&&Be(at,{event:"load",node:ge}),e.loadedKeys===void 0&&(d.value=at),p.value=nt,Ee()}).catch(at=>{const nt=po(p.value,he);if(p.value=nt,y[he]=(y[he]||0)+1,y[he]>=bJ){const it=Mo(d.value,he);e.loadedKeys===void 0&&(d.value=it),Ee()}Re(at)}),p.value=Mo(p.value,he)});return $e.catch(()=>{}),$e},ie=(ge,he)=>{const{onMouseenter:$e}=e;$e&&$e({event:ge,node:he})},se=(ge,he)=>{const{onMouseleave:$e}=e;$e&&$e({event:ge,node:he})},be=(ge,he)=>{const{onRightClick:$e}=e;$e&&(ge.preventDefault(),$e({event:ge,node:he}))},we=ge=>{const{onFocus:he}=e;$.value=!0,he&&he(ge)},ve=ge=>{const{onBlur:he}=e;$.value=!1,oe(null),he&&he(ge)},Ce=(ge,he)=>{let $e=v.value;const{onExpand:Ee,loadData:Re}=e,{expanded:_e}=he,Be=he[S.value.key];if(w.value)return;$e.indexOf(Be);const Ye=!_e;if(Ye?$e=Mo($e,Be):$e=po($e,Be),G($e),Ee&&Ee($e,{node:he,expanded:Ye,nativeEvent:ge}),Ye&&Re){const at=me(he);at&&at.then(()=>{}).catch(nt=>{const it=po(v.value,Be);G(it),Promise.reject(nt)})}},Te=()=>{w.value=!0},le=()=>{setTimeout(()=>{w.value=!1})},oe=ge=>{const{onActiveChange:he}=e;C.value!==ge&&(e.activeKey!==void 0&&(C.value=ge),ge!==null&&j({key:ge}),he&&he(ge))},fe=P(()=>C.value===null?null:B.value.find(ge=>{let{key:he}=ge;return he===C.value})||null),Oe=ge=>{let he=B.value.findIndex(Ee=>{let{key:Re}=Ee;return Re===C.value});he===-1&&ge<0&&(he=B.value.length),he=(he+ge+B.value.length)%B.value.length;const $e=B.value[he];if($e){const{key:Ee}=$e;oe(Ee)}else oe(null)},Ie=P(()=>hs(g(g({},ms(C.value,M.value)),{data:fe.value.data,active:!0}))),Ae=ge=>{const{onKeydown:he,checkable:$e,selectable:Ee}=e;switch(ge.which){case Se.UP:{Oe(-1),ge.preventDefault();break}case Se.DOWN:{Oe(1),ge.preventDefault();break}}const Re=fe.value;if(Re&&Re.data){const _e=Re.data.isLeaf===!1||!!(Re.data.children||[]).length,Be=Ie.value;switch(ge.which){case Se.LEFT:{_e&&_.value.has(C.value)?Ce({},Be):Re.parent&&oe(Re.parent.key),ge.preventDefault();break}case Se.RIGHT:{_e&&!_.value.has(C.value)?Ce({},Be):Re.children&&Re.children.length&&oe(Re.children[0].key),ge.preventDefault();break}case Se.ENTER:case Se.SPACE:{$e&&!Be.disabled&&Be.checkable!==!1&&!Be.disableCheckbox?de({},Be,!T.value.has(C.value)):!$e&&Ee&&!Be.disabled&&Be.selectable!==!1&&ye({},Be);break}}}he&&he(ge)};return r({onNodeExpand:Ce,scrollTo:j,onKeydown:Ae,selectedKeys:P(()=>s.value),checkedKeys:P(()=>u.value),halfCheckedKeys:P(()=>c.value),loadedKeys:P(()=>d.value),loadingKeys:P(()=>p.value),expandedKeys:P(()=>v.value)}),Bn(()=>{window.removeEventListener("dragend",Y),l.value=!0}),YH({expandedKeys:v,selectedKeys:s,loadedKeys:d,loadingKeys:p,checkedKeys:u,halfCheckedKeys:c,expandedKeysSet:_,selectedKeysSet:z,loadedKeysSet:R,loadingKeysSet:H,checkedKeysSet:T,halfCheckedKeysSet:D,flattenNodes:B}),()=>{const{draggingNodeKey:ge,dropLevelOffset:he,dropContainerKey:$e,dropTargetKey:Ee,dropPosition:Re,dragOverNodeKey:_e}=m,{prefixCls:Be,showLine:Ye,focusable:at,tabindex:nt=0,selectable:it,showIcon:ct,icon:Dt=o.icon,switcherIcon:Bt,draggable:zt,checkable:Et,checkStrictly:en,disabled:dn,motion:Nn,loadData:Zn,filterTreeNode:fn,height:hr,itemHeight:Pe,virtual:ze,dropIndicatorRender:Fe,onContextmenu:ht,onScroll:Nt,direction:Mt,rootClassName:pn,rootStyle:Ut}=e,{class:uo,style:Pn}=n,Fn=fr(g(g({},e),n),{aria:!0,data:!0});let St;return zt?typeof zt=="object"?St=zt:typeof zt=="function"?St={nodeDraggable:zt}:St={}:St=!1,f(UH,{value:{prefixCls:Be,selectable:it,showIcon:ct,icon:Dt,switcherIcon:Bt,draggable:St,draggingNodeKey:ge,checkable:Et,customCheckable:o.checkable,checkStrictly:en,disabled:dn,keyEntities:b.value,dropLevelOffset:he,dropContainerKey:$e,dropTargetKey:Ee,dropPosition:Re,dragOverNodeKey:_e,dragging:ge!==null,indent:i.value,direction:Mt,dropIndicatorRender:Fe,loadData:Zn,filterTreeNode:fn,onNodeClick:ae,onNodeDoubleClick:pe,onNodeExpand:Ce,onNodeSelect:ye,onNodeCheck:de,onNodeLoad:me,onNodeMouseEnter:ie,onNodeMouseLeave:se,onNodeContextMenu:be,onNodeDragStart:Q,onNodeDragEnter:J,onNodeDragOver:Z,onNodeDragLeave:W,onNodeDragEnd:K,onNodeDrop:X,slots:o}},{default:()=>[f("div",{role:"tree",class:ne(Be,uo,pn,{[`${Be}-show-line`]:Ye,[`${Be}-focused`]:$.value,[`${Be}-active-focused`]:C.value!==null}),style:Ut},[f(mJ,F({ref:O,prefixCls:Be,style:Pn,disabled:dn,selectable:it,checkable:!!Et,motion:Nn,height:hr,itemHeight:Pe,virtual:ze,focusable:at,focused:$.value,tabindex:nt,activeItem:fe.value,onFocus:we,onBlur:ve,onKeydown:Ae,onActiveChange:oe,onListChangeStart:Te,onListChangeEnd:le,onContextmenu:ht,onScroll:Nt},Fn),null)])]})}}});var yJ={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file",theme:"outlined"};const $J=yJ;function R$(e){for(var t=1;t({[`.${e}-switcher-icon`]:{display:"inline-block",fontSize:10,verticalAlign:"baseline",svg:{transition:`transform ${t.motionDurationSlow}`}}}),FJ=(e,t)=>({[`.${e}-drop-indicator`]:{position:"absolute",zIndex:1,height:2,backgroundColor:t.colorPrimary,borderRadius:1,pointerEvents:"none","&:after":{position:"absolute",top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:"transparent",border:`${t.lineWidthBold}px solid ${t.colorPrimary}`,borderRadius:"50%",content:'""'}}}),kJ=(e,t)=>{const{treeCls:n,treeNodeCls:o,treeNodePadding:r,treeTitleHeight:l}=t,a=(l-t.fontSizeLG)/2,i=t.paddingXS;return{[n]:g(g({},Qe(t)),{background:t.colorBgContainer,borderRadius:t.borderRadius,transition:`background-color ${t.motionDurationSlow}`,[`&${n}-rtl`]:{[`${n}-switcher`]:{"&_close":{[`${n}-switcher-icon`]:{svg:{transform:"rotate(90deg)"}}}}},[`&-focused:not(:hover):not(${n}-active-focused)`]:g({},Lo(t)),[`${n}-list-holder-inner`]:{alignItems:"flex-start"},[`&${n}-block-node`]:{[`${n}-list-holder-inner`]:{alignItems:"stretch",[`${n}-node-content-wrapper`]:{flex:"auto"},[`${o}.dragging`]:{position:"relative","&:after":{position:"absolute",top:0,insetInlineEnd:0,bottom:r,insetInlineStart:0,border:`1px solid ${t.colorPrimary}`,opacity:0,animationName:BJ,animationDuration:t.motionDurationSlow,animationPlayState:"running",animationFillMode:"forwards",content:'""',pointerEvents:"none"}}}},[`${o}`]:{display:"flex",alignItems:"flex-start",padding:`0 0 ${r}px 0`,outline:"none","&-rtl":{direction:"rtl"},"&-disabled":{[`${n}-node-content-wrapper`]:{color:t.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"}}},[`&-active ${n}-node-content-wrapper`]:g({},Lo(t)),[`&:not(${o}-disabled).filter-node ${n}-title`]:{color:"inherit",fontWeight:500},"&-draggable":{[`${n}-draggable-icon`]:{width:l,lineHeight:`${l}px`,textAlign:"center",visibility:"visible",opacity:.2,transition:`opacity ${t.motionDurationSlow}`,[`${o}:hover &`]:{opacity:.45}},[`&${o}-disabled`]:{[`${n}-draggable-icon`]:{visibility:"hidden"}}}},[`${n}-indent`]:{alignSelf:"stretch",whiteSpace:"nowrap",userSelect:"none","&-unit":{display:"inline-block",width:l}},[`${n}-draggable-icon`]:{visibility:"hidden"},[`${n}-switcher`]:g(g({},NJ(e,t)),{position:"relative",flex:"none",alignSelf:"stretch",width:l,margin:0,lineHeight:`${l}px`,textAlign:"center",cursor:"pointer",userSelect:"none","&-noop":{cursor:"default"},"&_close":{[`${n}-switcher-icon`]:{svg:{transform:"rotate(-90deg)"}}},"&-loading-icon":{color:t.colorPrimary},"&-leaf-line":{position:"relative",zIndex:1,display:"inline-block",width:"100%",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:l/2,bottom:-r,marginInlineStart:-1,borderInlineEnd:`1px solid ${t.colorBorder}`,content:'""'},"&:after":{position:"absolute",width:l/2*.8,height:l/2,borderBottom:`1px solid ${t.colorBorder}`,content:'""'}}}),[`${n}-checkbox`]:{top:"initial",marginInlineEnd:i,marginBlockStart:a},[`${n}-node-content-wrapper, ${n}-checkbox + span`]:{position:"relative",zIndex:"auto",minHeight:l,margin:0,padding:`0 ${t.paddingXS/2}px`,color:"inherit",lineHeight:`${l}px`,background:"transparent",borderRadius:t.borderRadius,cursor:"pointer",transition:`all ${t.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,"&:hover":{backgroundColor:t.controlItemBgHover},[`&${n}-node-selected`]:{backgroundColor:t.controlItemBgActive},[`${n}-iconEle`]:{display:"inline-block",width:l,height:l,lineHeight:`${l}px`,textAlign:"center",verticalAlign:"top","&:empty":{display:"none"}}},[`${n}-unselectable ${n}-node-content-wrapper:hover`]:{backgroundColor:"transparent"},[`${n}-node-content-wrapper`]:g({lineHeight:`${l}px`,userSelect:"none"},FJ(e,t)),[`${o}.drop-container`]:{"> [draggable]":{boxShadow:`0 0 0 2px ${t.colorPrimary}`}},"&-show-line":{[`${n}-indent`]:{"&-unit":{position:"relative",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:l/2,bottom:-r,borderInlineEnd:`1px solid ${t.colorBorder}`,content:'""'},"&-end":{"&:before":{display:"none"}}}},[`${n}-switcher`]:{background:"transparent","&-line-icon":{verticalAlign:"-0.15em"}}},[`${o}-leaf-last`]:{[`${n}-switcher`]:{"&-leaf-line":{"&:before":{top:"auto !important",bottom:"auto !important",height:`${l/2}px !important`}}}}})}},LJ=e=>{const{treeCls:t,treeNodeCls:n,treeNodePadding:o}=e;return{[`${t}${t}-directory`]:{[n]:{position:"relative","&:before":{position:"absolute",top:0,insetInlineEnd:0,bottom:o,insetInlineStart:0,transition:`background-color ${e.motionDurationMid}`,content:'""',pointerEvents:"none"},"&:hover":{"&:before":{background:e.controlItemBgHover}},"> *":{zIndex:1},[`${t}-switcher`]:{transition:`color ${e.motionDurationMid}`},[`${t}-node-content-wrapper`]:{borderRadius:0,userSelect:"none","&:hover":{background:"transparent"},[`&${t}-node-selected`]:{color:e.colorTextLightSolid,background:"transparent"}},"&-selected":{"\n &:hover::before,\n &::before\n ":{background:e.colorPrimary},[`${t}-switcher`]:{color:e.colorTextLightSolid},[`${t}-node-content-wrapper`]:{color:e.colorTextLightSolid,background:"transparent"}}}}}},r6=(e,t)=>{const n=`.${e}`,o=`${n}-treenode`,r=t.paddingXS/2,l=t.controlHeightSM,a=Le(t,{treeCls:n,treeNodeCls:o,treeNodePadding:r,treeTitleHeight:l});return[kJ(e,a),LJ(a)]},zJ=Je("Tree",(e,t)=>{let{prefixCls:n}=t;return[{[e.componentCls]:cu(`${n}-checkbox`,e)},r6(n,e),jc(e)]}),l6=()=>{const e=j4();return g(g({},e),{showLine:Xe([Boolean,Object]),multiple:xe(),autoExpandParent:xe(),checkStrictly:xe(),checkable:xe(),disabled:xe(),defaultExpandAll:xe(),defaultExpandParent:xe(),defaultExpandedKeys:st(),expandedKeys:st(),checkedKeys:Xe([Array,Object]),defaultCheckedKeys:st(),selectedKeys:st(),defaultSelectedKeys:st(),selectable:xe(),loadedKeys:st(),draggable:xe(),showIcon:xe(),icon:ce(),switcherIcon:V.any,prefixCls:String,replaceFields:De(),blockNode:xe(),openAnimation:V.any,onDoubleclick:e.onDblclick,"onUpdate:selectedKeys":ce(),"onUpdate:checkedKeys":ce(),"onUpdate:expandedKeys":ce()})},ws=te({compatConfig:{MODE:3},name:"ATree",inheritAttrs:!1,props:rt(l6(),{checkable:!1,selectable:!0,showIcon:!1,blockNode:!1}),slots:Object,setup(e,t){let{attrs:n,expose:o,emit:r,slots:l}=t;e.treeData===void 0&&l.default;const{prefixCls:a,direction:i,virtual:s}=Me("tree",e),[u,c]=zJ(a),d=ee();o({treeRef:d,onNodeExpand:function(){var h;(h=d.value)===null||h===void 0||h.onNodeExpand(...arguments)},scrollTo:h=>{var b;(b=d.value)===null||b===void 0||b.scrollTo(h)},selectedKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.selectedKeys}),checkedKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.checkedKeys}),halfCheckedKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.halfCheckedKeys}),loadedKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.loadedKeys}),loadingKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.loadingKeys}),expandedKeys:P(()=>{var h;return(h=d.value)===null||h===void 0?void 0:h.expandedKeys})}),ke(()=>{yt(e.replaceFields===void 0,"Tree","`replaceFields` is deprecated, please use fieldNames instead")});const v=(h,b)=>{r("update:checkedKeys",h),r("check",h,b)},y=(h,b)=>{r("update:expandedKeys",h),r("expand",h,b)},m=(h,b)=>{r("update:selectedKeys",h),r("select",h,b)};return()=>{const{showIcon:h,showLine:b,switcherIcon:$=l.switcherIcon,icon:C=l.icon,blockNode:w,checkable:S,selectable:O,fieldNames:x=e.replaceFields,motion:I=e.openAnimation,itemHeight:E=28,onDoubleclick:M,onDblclick:_}=e,z=g(g(g({},n),tt(e,["onUpdate:checkedKeys","onUpdate:expandedKeys","onUpdate:selectedKeys","onDoubleclick"])),{showLine:!!b,dropIndicatorRender:RJ,fieldNames:x,icon:C,itemHeight:E}),R=l.default?Ot(l.default()):void 0;return u(f(t6,F(F({},z),{},{virtual:s.value,motion:I,ref:d,prefixCls:a.value,class:ne({[`${a.value}-icon-hide`]:!h,[`${a.value}-block-node`]:w,[`${a.value}-unselectable`]:!O,[`${a.value}-rtl`]:i.value==="rtl"},n.class,c.value),direction:i.value,checkable:S,selectable:O,switcherIcon:H=>o6(a.value,$,H,l.leafIcon,b),onCheck:v,onExpand:y,onSelect:m,onDblclick:_||M,children:R}),g(g({},l),{checkable:()=>f("span",{class:`${a.value}-checkbox-inner`},null)})))}}});var HJ={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"}}]},name:"folder-open",theme:"outlined"};const jJ=HJ;function L$(e){for(var t=1;t{if(i===Do.End)return!1;if(s(u)){if(a.push(u),i===Do.None)i=Do.Start;else if(i===Do.Start)return i=Do.End,!1}else i===Do.Start&&a.push(u);return n.includes(u)}),a}function Bd(e,t,n){const o=[...t],r=[];return Ym(e,n,(l,a)=>{const i=o.indexOf(l);return i!==-1&&(r.push(a),o.splice(i,1)),!!o.length}),r}var qJ=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rg(g({},l6()),{expandAction:Xe([Boolean,String])});function ZJ(e){const{isLeaf:t,expanded:n}=e;return t?f(n6,null,null):n?f(WJ,null,null):f(UJ,null,null)}const Nd=te({compatConfig:{MODE:3},name:"ADirectoryTree",inheritAttrs:!1,props:rt(QJ(),{showIcon:!0,expandAction:"click"}),slots:Object,setup(e,t){let{attrs:n,slots:o,emit:r,expose:l}=t;var a;const i=ee(e.treeData||ep(Ot((a=o.default)===null||a===void 0?void 0:a.call(o))));ue(()=>e.treeData,()=>{i.value=e.treeData}),Co(()=>{ot(()=>{var E;e.treeData===void 0&&o.default&&(i.value=ep(Ot((E=o.default)===null||E===void 0?void 0:E.call(o))))})});const s=ee(),u=ee(),c=P(()=>tu(e.fieldNames)),d=ee();l({scrollTo:E=>{var M;(M=d.value)===null||M===void 0||M.scrollTo(E)},selectedKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.selectedKeys}),checkedKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.checkedKeys}),halfCheckedKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.halfCheckedKeys}),loadedKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.loadedKeys}),loadingKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.loadingKeys}),expandedKeys:P(()=>{var E;return(E=d.value)===null||E===void 0?void 0:E.expandedKeys})});const v=()=>{const{keyEntities:E}=Si(i.value,{fieldNames:c.value});let M;return e.defaultExpandAll?M=Object.keys(E):e.defaultExpandParent?M=Jf(e.expandedKeys||e.defaultExpandedKeys||[],E):M=e.expandedKeys||e.defaultExpandedKeys,M},y=ee(e.selectedKeys||e.defaultSelectedKeys||[]),m=ee(v());ue(()=>e.selectedKeys,()=>{e.selectedKeys!==void 0&&(y.value=e.selectedKeys)},{immediate:!0}),ue(()=>e.expandedKeys,()=>{e.expandedKeys!==void 0&&(m.value=e.expandedKeys)},{immediate:!0});const b=WC((E,M)=>{const{isLeaf:_}=M;_||E.shiftKey||E.metaKey||E.ctrlKey||d.value.onNodeExpand(E,M)},200,{leading:!0}),$=(E,M)=>{e.expandedKeys===void 0&&(m.value=E),r("update:expandedKeys",E),r("expand",E,M)},C=(E,M)=>{const{expandAction:_}=e;_==="click"&&b(E,M),r("click",E,M)},w=(E,M)=>{const{expandAction:_}=e;(_==="dblclick"||_==="doubleclick")&&b(E,M),r("doubleclick",E,M),r("dblclick",E,M)},S=(E,M)=>{const{multiple:_}=e,{node:z,nativeEvent:R}=M,H=z[c.value.key],T=g(g({},M),{selected:!0}),D=(R==null?void 0:R.ctrlKey)||(R==null?void 0:R.metaKey),A=R==null?void 0:R.shiftKey;let B;_&&D?(B=E,s.value=H,u.value=B,T.selectedNodes=Bd(i.value,B,c.value)):_&&A?(B=Array.from(new Set([...u.value||[],...YJ({treeData:i.value,expandedKeys:m.value,startKey:H,endKey:s.value,fieldNames:c.value})])),T.selectedNodes=Bd(i.value,B,c.value)):(B=[H],s.value=H,u.value=B,T.selectedNodes=Bd(i.value,B,c.value)),r("update:selectedKeys",B),r("select",B,T),e.selectedKeys===void 0&&(y.value=B)},O=(E,M)=>{r("update:checkedKeys",E),r("check",E,M)},{prefixCls:x,direction:I}=Me("tree",e);return()=>{const E=ne(`${x.value}-directory`,{[`${x.value}-directory-rtl`]:I.value==="rtl"},n.class),{icon:M=o.icon,blockNode:_=!0}=e,z=qJ(e,["icon","blockNode"]);return f(ws,F(F(F({},n),{},{icon:M||ZJ,ref:d,blockNode:_},z),{},{prefixCls:x.value,class:E,expandedKeys:m.value,selectedKeys:y.value,onSelect:S,onClick:C,onDblclick:w,onExpand:$,onCheck:O}),o)}}}),Fd=Zf,JJ=g(ws,{DirectoryTree:Nd,TreeNode:Fd,install:e=>(e.component(ws.name,ws),e.component(Fd.name,Fd),e.component(Nd.name,Nd),e)});function H$(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const o=new Set;function r(l,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const s=o.has(l);if(yv(!s,"Warning: There may be circular references"),s)return!1;if(l===a)return!0;if(n&&i>1)return!1;o.add(l);const u=i+1;if(Array.isArray(l)){if(!Array.isArray(a)||l.length!==a.length)return!1;for(let c=0;cr(l[d],a[d],u))}return!1}return r(e,t)}const{SubMenu:eee,Item:tee}=Ft;function nee(e){return e.some(t=>{let{children:n}=t;return n&&n.length>0})}function a6(e,t){return typeof t=="string"||typeof t=="number"?t==null?void 0:t.toString().toLowerCase().includes(e.trim().toLowerCase()):!1}function i6(e){let{filters:t,prefixCls:n,filteredKeys:o,filterMultiple:r,searchValue:l,filterSearch:a}=e;return t.map((i,s)=>{const u=String(i.value);if(i.children)return f(eee,{key:u||s,title:i.text,popupClassName:`${n}-dropdown-submenu`},{default:()=>[i6({filters:i.children,prefixCls:n,filteredKeys:o,filterMultiple:r,searchValue:l,filterSearch:a})]});const c=r?ao:hn,d=f(tee,{key:i.value!==void 0?u:s},{default:()=>[f(c,{checked:o.includes(u)},null),f("span",null,[i.text])]});return l.trim()?typeof a=="function"?a(l,i)?d:void 0:a6(l,i.text)?d:void 0:d})}const oee=te({name:"FilterDropdown",props:["tablePrefixCls","prefixCls","dropdownPrefixCls","column","filterState","filterMultiple","filterMode","filterSearch","columnKey","triggerFilter","locale","getPopupContainer"],setup(e,t){let{slots:n}=t;const o=Fm(),r=P(()=>{var j;return(j=e.filterMode)!==null&&j!==void 0?j:"menu"}),l=P(()=>{var j;return(j=e.filterSearch)!==null&&j!==void 0?j:!1}),a=P(()=>e.column.filterDropdownOpen||e.column.filterDropdownVisible),i=P(()=>e.column.onFilterDropdownOpenChange||e.column.onFilterDropdownVisibleChange),s=q(!1),u=P(()=>{var j;return!!(e.filterState&&(!((j=e.filterState.filteredKeys)===null||j===void 0)&&j.length||e.filterState.forceFiltered))}),c=P(()=>{var j;return mu((j=e.column)===null||j===void 0?void 0:j.filters)}),d=P(()=>{const{filterDropdown:j,slots:G={},customFilterDropdown:U}=e.column;return j||G.filterDropdown&&o.value[G.filterDropdown]||U&&o.value.customFilterDropdown}),p=P(()=>{const{filterIcon:j,slots:G={}}=e.column;return j||G.filterIcon&&o.value[G.filterIcon]||o.value.customFilterIcon}),v=j=>{var G;s.value=j,(G=i.value)===null||G===void 0||G.call(i,j)},y=P(()=>typeof a.value=="boolean"?a.value:s.value),m=P(()=>{var j;return(j=e.filterState)===null||j===void 0?void 0:j.filteredKeys}),h=q([]),b=j=>{let{selectedKeys:G}=j;h.value=G},$=(j,G)=>{let{node:U,checked:K}=G;e.filterMultiple?b({selectedKeys:j}):b({selectedKeys:K&&U.key?[U.key]:[]})};ue(m,()=>{s.value&&b({selectedKeys:m.value||[]})},{immediate:!0});const C=q([]),w=q(),S=j=>{w.value=setTimeout(()=>{C.value=j})},O=()=>{clearTimeout(w.value)};Ze(()=>{clearTimeout(w.value)});const x=q(""),I=j=>{const{value:G}=j.target;x.value=G};ue(s,()=>{s.value||(x.value="")});const E=j=>{const{column:G,columnKey:U,filterState:K}=e,Y=j&&j.length?j:null;if(Y===null&&(!K||!K.filteredKeys)||H$(Y,K==null?void 0:K.filteredKeys,!0))return null;e.triggerFilter({column:G,key:U,filteredKeys:Y})},M=()=>{v(!1),E(h.value)},_=function(){let{confirm:j,closeDropdown:G}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{confirm:!1,closeDropdown:!1};j&&E([]),G&&v(!1),x.value="",e.column.filterResetToDefaultFilteredValue?h.value=(e.column.defaultFilteredValue||[]).map(U=>String(U)):h.value=[]},z=function(){let{closeDropdown:j}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{closeDropdown:!0};j&&v(!1),E(h.value)},R=j=>{j&&m.value!==void 0&&(h.value=m.value||[]),v(j),!j&&!d.value&&M()},{direction:H}=Me("",e),T=j=>{if(j.target.checked){const G=c.value;h.value=G}else h.value=[]},D=j=>{let{filters:G}=j;return(G||[]).map((U,K)=>{const Y=String(U.value),Q={title:U.text,key:U.value!==void 0?Y:K};return U.children&&(Q.children=D({filters:U.children})),Q})},A=j=>{var G;return g(g({},j),{text:j.title,value:j.key,children:((G=j.children)===null||G===void 0?void 0:G.map(U=>A(U)))||[]})},B=P(()=>D({filters:e.column.filters})),N=P(()=>ne({[`${e.dropdownPrefixCls}-menu-without-submenu`]:!nee(e.column.filters||[])})),k=()=>{const j=h.value,{column:G,locale:U,tablePrefixCls:K,filterMultiple:Y,dropdownPrefixCls:Q,getPopupContainer:J,prefixCls:Z}=e;return(G.filters||[]).length===0?f(Tr,{image:Tr.PRESENTED_IMAGE_SIMPLE,description:U.filterEmptyText,imageStyle:{height:24},style:{margin:0,padding:"16px 0"}},null):r.value==="tree"?f(qe,null,[f(P$,{filterSearch:l.value,value:x.value,onChange:I,tablePrefixCls:K,locale:U},null),f("div",{class:`${K}-filter-dropdown-tree`},[Y?f(ao,{class:`${K}-filter-dropdown-checkall`,onChange:T,checked:j.length===c.value.length,indeterminate:j.length>0&&j.length[U.filterCheckall]}):null,f(JJ,{checkable:!0,selectable:!1,blockNode:!0,multiple:Y,checkStrictly:!Y,class:`${Q}-menu`,onCheck:$,checkedKeys:j,selectedKeys:j,showIcon:!1,treeData:B.value,autoExpandParent:!0,defaultExpandAll:!0,filterTreeNode:x.value.trim()?W=>typeof l.value=="function"?l.value(x.value,A(W)):a6(x.value,W.title):void 0},null)])]):f(qe,null,[f(P$,{filterSearch:l.value,value:x.value,onChange:I,tablePrefixCls:K,locale:U},null),f(Ft,{multiple:Y,prefixCls:`${Q}-menu`,class:N.value,onClick:O,onSelect:b,onDeselect:b,selectedKeys:j,getPopupContainer:J,openKeys:C.value,onOpenChange:S},{default:()=>i6({filters:G.filters||[],filterSearch:l.value,prefixCls:Z,filteredKeys:h.value,filterMultiple:Y,searchValue:x.value})})])},L=P(()=>{const j=h.value;return e.column.filterResetToDefaultFilteredValue?H$((e.column.defaultFilteredValue||[]).map(G=>String(G)),j,!0):j.length===0});return()=>{var j;const{tablePrefixCls:G,prefixCls:U,column:K,dropdownPrefixCls:Y,locale:Q,getPopupContainer:J}=e;let Z;typeof d.value=="function"?Z=d.value({prefixCls:`${Y}-custom`,setSelectedKeys:re=>b({selectedKeys:re}),selectedKeys:h.value,confirm:z,clearFilters:_,filters:K.filters,visible:y.value,column:K.__originColumn__,close:()=>{v(!1)}}):d.value?Z=d.value:Z=f(qe,null,[k(),f("div",{class:`${U}-dropdown-btns`},[f(Wt,{type:"link",size:"small",disabled:L.value,onClick:()=>_()},{default:()=>[Q.filterReset]}),f(Wt,{type:"primary",size:"small",onClick:M},{default:()=>[Q.filterConfirm]})])]);const W=f(dJ,{class:`${U}-dropdown`},{default:()=>[Z]});let X;return typeof p.value=="function"?X=p.value({filtered:u.value,column:K.__originColumn__}):p.value?X=p.value:X=f(sJ,null,null),f("div",{class:`${U}-column`},[f("span",{class:`${G}-column-title`},[(j=n.default)===null||j===void 0?void 0:j.call(n)]),f(Fo,{overlay:W,trigger:["click"],open:y.value,onOpenChange:R,getPopupContainer:J,placement:H.value==="rtl"?"bottomLeft":"bottomRight"},{default:()=>[f("span",{role:"button",tabindex:-1,class:ne(`${U}-trigger`,{active:u.value}),onClick:re=>{re.stopPropagation()}},[X])]})])}}});function Bp(e,t,n){let o=[];return(e||[]).forEach((r,l)=>{var a,i;const s=Oi(l,n),u=r.filterDropdown||((a=r==null?void 0:r.slots)===null||a===void 0?void 0:a.filterDropdown)||r.customFilterDropdown;if(r.filters||u||"onFilter"in r)if("filteredValue"in r){let c=r.filteredValue;u||(c=(i=c==null?void 0:c.map(String))!==null&&i!==void 0?i:c),o.push({column:r,key:Xr(r,s),filteredKeys:c,forceFiltered:r.filtered})}else o.push({column:r,key:Xr(r,s),filteredKeys:t&&r.defaultFilteredValue?r.defaultFilteredValue:void 0,forceFiltered:r.filtered});"children"in r&&(o=[...o,...Bp(r.children,t,s)])}),o}function s6(e,t,n,o,r,l,a,i){return n.map((s,u)=>{var c;const d=Oi(u,i),{filterMultiple:p=!0,filterMode:v,filterSearch:y}=s;let m=s;const h=s.filterDropdown||((c=s==null?void 0:s.slots)===null||c===void 0?void 0:c.filterDropdown)||s.customFilterDropdown;if(m.filters||h){const b=Xr(m,d),$=o.find(C=>{let{key:w}=C;return b===w});m=g(g({},m),{title:C=>f(oee,{tablePrefixCls:e,prefixCls:`${e}-filter`,dropdownPrefixCls:t,column:m,columnKey:b,filterState:$,filterMultiple:p,filterMode:v,filterSearch:y,triggerFilter:l,locale:r,getPopupContainer:a},{default:()=>[Hm(s.title,C)]})})}return"children"in m&&(m=g(g({},m),{children:s6(e,t,m.children,o,r,l,a,d)})),m})}function mu(e){let t=[];return(e||[]).forEach(n=>{let{value:o,children:r}=n;t.push(o),r&&(t=[...t,...mu(r)])}),t}function j$(e){const t={};return e.forEach(n=>{let{key:o,filteredKeys:r,column:l}=n;var a;const i=l.filterDropdown||((a=l==null?void 0:l.slots)===null||a===void 0?void 0:a.filterDropdown)||l.customFilterDropdown,{filters:s}=l;if(i)t[o]=r||null;else if(Array.isArray(r)){const u=mu(s);t[o]=u.filter(c=>r.includes(String(c)))}else t[o]=null}),t}function V$(e,t){return t.reduce((n,o)=>{const{column:{onFilter:r,filters:l},filteredKeys:a}=o;return r&&a&&a.length?n.filter(i=>a.some(s=>{const u=mu(l),c=u.findIndex(p=>String(p)===String(s)),d=c!==-1?u[c]:s;return r(d,i)})):n},e)}function c6(e){return e.flatMap(t=>"children"in t?[t,...c6(t.children||[])]:[t])}function ree(e){let{prefixCls:t,dropdownPrefixCls:n,mergedColumns:o,locale:r,onFilterChange:l,getPopupContainer:a}=e;const i=P(()=>c6(o.value)),[s,u]=pt(Bp(i.value,!0)),c=P(()=>{const y=Bp(i.value,!1);if(y.length===0)return y;let m=!0,h=!0;if(y.forEach(b=>{let{filteredKeys:$}=b;$!==void 0?m=!1:h=!1}),m){const b=(i.value||[]).map(($,C)=>Xr($,Oi(C)));return s.value.filter($=>{let{key:C}=$;return b.includes(C)}).map($=>{const C=i.value[b.findIndex(w=>w===$.key)];return g(g({},$),{column:g(g({},$.column),C),forceFiltered:C.filtered})})}return yt(h,"Table","Columns should all contain `filteredValue` or not contain `filteredValue`."),y}),d=P(()=>j$(c.value)),p=y=>{const m=c.value.filter(h=>{let{key:b}=h;return b!==y.key});m.push(y),u(m),l(j$(m),m)};return[y=>s6(t.value,n.value,y,c.value,r.value,p,a.value),c,d]}function u6(e,t){return e.map(n=>{const o=g({},n);return o.title=Hm(o.title,t),"children"in o&&(o.children=u6(o.children,t)),o})}function lee(e){return[n=>u6(n,e.value)]}function aee(e){return function(n){let{prefixCls:o,onExpand:r,record:l,expanded:a,expandable:i}=n;const s=`${o}-row-expand-icon`;return f("button",{type:"button",onClick:u=>{r(l,u),u.stopPropagation()},class:ne(s,{[`${s}-spaced`]:!i,[`${s}-expanded`]:i&&a,[`${s}-collapsed`]:i&&!a}),"aria-label":a?e.collapse:e.expand,"aria-expanded":a},null)}}function d6(e,t){const n=t.value;return e.map(o=>{var r;if(o===_o||o===er)return o;const l=g({},o),{slots:a={}}=l;return l.__originColumn__=o,yt(!("slots"in l),"Table","`column.slots` is deprecated. Please use `v-slot:headerCell` `v-slot:bodyCell` instead."),Object.keys(a).forEach(i=>{const s=a[i];l[i]===void 0&&n[s]&&(l[i]=n[s])}),t.value.headerCell&&!(!((r=o.slots)===null||r===void 0)&&r.title)&&(l.title=Tc(t.value,"headerCell",{title:o.title,column:o},()=>[o.title])),"children"in l&&Array.isArray(l.children)&&(l.children=d6(l.children,t)),l})}function iee(e){return[n=>d6(n,e)]}const see=e=>{const{componentCls:t}=e,n=`${e.lineWidth}px ${e.lineType} ${e.tableBorderColor}`,o=(r,l,a)=>({[`&${t}-${r}`]:{[`> ${t}-container`]:{[`> ${t}-content, > ${t}-body`]:{"> table > tbody > tr > td":{[`> ${t}-expanded-row-fixed`]:{margin:`-${l}px -${a+e.lineWidth}px`}}}}}});return{[`${t}-wrapper`]:{[`${t}${t}-bordered`]:g(g(g({[`> ${t}-title`]:{border:n,borderBottom:0},[`> ${t}-container`]:{borderInlineStart:n,[` + > ${t}-content, + > ${t}-header, + > ${t}-body, + > ${t}-summary + `]:{"> table":{"\n > thead > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n ":{borderInlineEnd:n},"> thead":{"> tr:not(:last-child) > th":{borderBottom:n},"> tr > th::before":{backgroundColor:"transparent !important"}},"\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n ":{[`> ${t}-cell-fix-right-first::after`]:{borderInlineEnd:n}},"> tbody > tr > td":{[`> ${t}-expanded-row-fixed`]:{margin:`-${e.tablePaddingVertical}px -${e.tablePaddingHorizontal+e.lineWidth}px`,"&::after":{position:"absolute",top:0,insetInlineEnd:e.lineWidth,bottom:0,borderInlineEnd:n,content:'""'}}}}},[` + > ${t}-content, + > ${t}-header + `]:{"> table":{borderTop:n}}},[`&${t}-scroll-horizontal`]:{[`> ${t}-container > ${t}-body`]:{"> table > tbody":{[` + > tr${t}-expanded-row, + > tr${t}-placeholder + `]:{"> td":{borderInlineEnd:0}}}}}},o("middle",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle)),o("small",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall)),{[`> ${t}-footer`]:{border:n,borderTop:0}}),[`${t}-cell`]:{[`${t}-container:first-child`]:{borderTop:0},"&-scrollbar:not([rowspan])":{boxShadow:`0 ${e.lineWidth}px 0 ${e.lineWidth}px ${e.tableHeaderBg}`}}}}},cee=see,uee=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-cell-ellipsis`]:g(g({},Xt),{wordBreak:"keep-all",[` + &${t}-cell-fix-left-last, + &${t}-cell-fix-right-first + `]:{overflow:"visible",[`${t}-cell-content`]:{display:"block",overflow:"hidden",textOverflow:"ellipsis"}},[`${t}-column-title`]:{overflow:"hidden",textOverflow:"ellipsis",wordBreak:"keep-all"}})}}},dee=uee,fee=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-tbody > tr${t}-placeholder`]:{textAlign:"center",color:e.colorTextDisabled,"&:hover > td":{background:e.colorBgContainer}}}}},pee=fee,vee=e=>{const{componentCls:t,antCls:n,controlInteractiveSize:o,motionDurationSlow:r,lineWidth:l,paddingXS:a,lineType:i,tableBorderColor:s,tableExpandIconBg:u,tableExpandColumnWidth:c,borderRadius:d,fontSize:p,fontSizeSM:v,lineHeight:y,tablePaddingVertical:m,tablePaddingHorizontal:h,tableExpandedRowBg:b,paddingXXS:$}=e,C=o/2-l,w=C*2+l*3,S=`${l}px ${i} ${s}`,O=$-l;return{[`${t}-wrapper`]:{[`${t}-expand-icon-col`]:{width:c},[`${t}-row-expand-icon-cell`]:{textAlign:"center",[`${t}-row-expand-icon`]:{display:"inline-flex",float:"none",verticalAlign:"sub"}},[`${t}-row-indent`]:{height:1,float:"left"},[`${t}-row-expand-icon`]:g(g({},Oc(e)),{position:"relative",float:"left",boxSizing:"border-box",width:w,height:w,padding:0,color:"inherit",lineHeight:`${w}px`,background:u,border:S,borderRadius:d,transform:`scale(${o/w})`,transition:`all ${r}`,userSelect:"none","&:focus, &:hover, &:active":{borderColor:"currentcolor"},"&::before, &::after":{position:"absolute",background:"currentcolor",transition:`transform ${r} ease-out`,content:'""'},"&::before":{top:C,insetInlineEnd:O,insetInlineStart:O,height:l},"&::after":{top:O,bottom:O,insetInlineStart:C,width:l,transform:"rotate(90deg)"},"&-collapsed::before":{transform:"rotate(-180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"},"&-spaced":{"&::before, &::after":{display:"none",content:"none"},background:"transparent",border:0,visibility:"hidden"}}),[`${t}-row-indent + ${t}-row-expand-icon`]:{marginTop:(p*y-l*3)/2-Math.ceil((v*1.4-l*3)/2),marginInlineEnd:a},[`tr${t}-expanded-row`]:{"&, &:hover":{"> td":{background:b}},[`${n}-descriptions-view`]:{display:"flex",table:{flex:"auto",width:"auto"}}},[`${t}-expanded-row-fixed`]:{position:"relative",margin:`-${m}px -${h}px`,padding:`${m}px ${h}px`}}}},gee=vee,mee=e=>{const{componentCls:t,antCls:n,iconCls:o,tableFilterDropdownWidth:r,tableFilterDropdownSearchWidth:l,paddingXXS:a,paddingXS:i,colorText:s,lineWidth:u,lineType:c,tableBorderColor:d,tableHeaderIconColor:p,fontSizeSM:v,tablePaddingHorizontal:y,borderRadius:m,motionDurationSlow:h,colorTextDescription:b,colorPrimary:$,tableHeaderFilterActiveBg:C,colorTextDisabled:w,tableFilterDropdownBg:S,tableFilterDropdownHeight:O,controlItemBgHover:x,controlItemBgActive:I,boxShadowSecondary:E}=e,M=`${n}-dropdown`,_=`${t}-filter-dropdown`,z=`${n}-tree`,R=`${u}px ${c} ${d}`;return[{[`${t}-wrapper`]:{[`${t}-filter-column`]:{display:"flex",justifyContent:"space-between"},[`${t}-filter-trigger`]:{position:"relative",display:"flex",alignItems:"center",marginBlock:-a,marginInline:`${a}px ${-y/2}px`,padding:`0 ${a}px`,color:p,fontSize:v,borderRadius:m,cursor:"pointer",transition:`all ${h}`,"&:hover":{color:b,background:C},"&.active":{color:$}}}},{[`${n}-dropdown`]:{[_]:g(g({},Qe(e)),{minWidth:r,backgroundColor:S,borderRadius:m,boxShadow:E,[`${M}-menu`]:{maxHeight:O,overflowX:"hidden",border:0,boxShadow:"none","&:empty::after":{display:"block",padding:`${i}px 0`,color:w,fontSize:v,textAlign:"center",content:'"Not Found"'}},[`${_}-tree`]:{paddingBlock:`${i}px 0`,paddingInline:i,[z]:{padding:0},[`${z}-treenode ${z}-node-content-wrapper:hover`]:{backgroundColor:x},[`${z}-treenode-checkbox-checked ${z}-node-content-wrapper`]:{"&, &:hover":{backgroundColor:I}}},[`${_}-search`]:{padding:i,borderBottom:R,"&-input":{input:{minWidth:l},[o]:{color:w}}},[`${_}-checkall`]:{width:"100%",marginBottom:a,marginInlineStart:a},[`${_}-btns`]:{display:"flex",justifyContent:"space-between",padding:`${i-u}px ${i}px`,overflow:"hidden",backgroundColor:"inherit",borderTop:R}})}},{[`${n}-dropdown ${_}, ${_}-submenu`]:{[`${n}-checkbox-wrapper + span`]:{paddingInlineStart:i,color:s},"> ul":{maxHeight:"calc(100vh - 130px)",overflowX:"hidden",overflowY:"auto"}}}]},hee=mee,bee=e=>{const{componentCls:t,lineWidth:n,colorSplit:o,motionDurationSlow:r,zIndexTableFixed:l,tableBg:a,zIndexTableSticky:i}=e,s=o;return{[`${t}-wrapper`]:{[` + ${t}-cell-fix-left, + ${t}-cell-fix-right + `]:{position:"sticky !important",zIndex:l,background:a},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{position:"absolute",top:0,right:{_skip_check_:!0,value:0},bottom:-n,width:30,transform:"translateX(100%)",transition:`box-shadow ${r}`,content:'""',pointerEvents:"none"},[`${t}-cell-fix-left-all::after`]:{display:"none"},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{position:"absolute",top:0,bottom:-n,left:{_skip_check_:!0,value:0},width:30,transform:"translateX(-100%)",transition:`box-shadow ${r}`,content:'""',pointerEvents:"none"},[`${t}-container`]:{"&::before, &::after":{position:"absolute",top:0,bottom:0,zIndex:i+1,width:30,transition:`box-shadow ${r}`,content:'""',pointerEvents:"none"},"&::before":{insetInlineStart:0},"&::after":{insetInlineEnd:0}},[`${t}-ping-left`]:{[`&:not(${t}-has-fix-left) ${t}-container`]:{position:"relative","&::before":{boxShadow:`inset 10px 0 8px -8px ${s}`}},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{boxShadow:`inset 10px 0 8px -8px ${s}`},[`${t}-cell-fix-left-last::before`]:{backgroundColor:"transparent !important"}},[`${t}-ping-right`]:{[`&:not(${t}-has-fix-right) ${t}-container`]:{position:"relative","&::after":{boxShadow:`inset -10px 0 8px -8px ${s}`}},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{boxShadow:`inset -10px 0 8px -8px ${s}`}}}}},yee=bee,$ee=e=>{const{componentCls:t,antCls:n}=e;return{[`${t}-wrapper`]:{[`${t}-pagination${n}-pagination`]:{margin:`${e.margin}px 0`},[`${t}-pagination`]:{display:"flex",flexWrap:"wrap",rowGap:e.paddingXS,"> *":{flex:"none"},"&-left":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-right":{justifyContent:"flex-end"}}}}},See=$ee,Cee=e=>{const{componentCls:t,tableRadius:n}=e;return{[`${t}-wrapper`]:{[t]:{[`${t}-title, ${t}-header`]:{borderRadius:`${n}px ${n}px 0 0`},[`${t}-title + ${t}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,table:{borderRadius:0,"> thead > tr:first-child":{"th:first-child":{borderRadius:0},"th:last-child":{borderRadius:0}}}},"&-container":{borderStartStartRadius:n,borderStartEndRadius:n,"table > thead > tr:first-child":{"> *:first-child":{borderStartStartRadius:n},"> *:last-child":{borderStartEndRadius:n}}},"&-footer":{borderRadius:`0 0 ${n}px ${n}px`}}}}},xee=Cee,wee=e=>{const{componentCls:t}=e;return{[`${t}-wrapper-rtl`]:{direction:"rtl",table:{direction:"rtl"},[`${t}-pagination-left`]:{justifyContent:"flex-end"},[`${t}-pagination-right`]:{justifyContent:"flex-start"},[`${t}-row-expand-icon`]:{"&::after":{transform:"rotate(-90deg)"},"&-collapsed::before":{transform:"rotate(180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"}}}}},Oee=wee,Pee=e=>{const{componentCls:t,antCls:n,iconCls:o,fontSizeIcon:r,paddingXS:l,tableHeaderIconColor:a,tableHeaderIconColorHover:i}=e;return{[`${t}-wrapper`]:{[`${t}-selection-col`]:{width:e.tableSelectionColumnWidth},[`${t}-bordered ${t}-selection-col`]:{width:e.tableSelectionColumnWidth+l*2},[` + table tr th${t}-selection-column, + table tr td${t}-selection-column + `]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS,textAlign:"center",[`${n}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${t}-selection-column${t}-cell-fix-left`]:{zIndex:e.zIndexTableFixed+1},[`table tr th${t}-selection-column::after`]:{backgroundColor:"transparent !important"},[`${t}-selection`]:{position:"relative",display:"inline-flex",flexDirection:"column"},[`${t}-selection-extra`]:{position:"absolute",top:0,zIndex:1,cursor:"pointer",transition:`all ${e.motionDurationSlow}`,marginInlineStart:"100%",paddingInlineStart:`${e.tablePaddingHorizontal/4}px`,[o]:{color:a,fontSize:r,verticalAlign:"baseline","&:hover":{color:i}}}}}},Iee=Pee,Tee=e=>{const{componentCls:t}=e,n=(o,r,l,a)=>({[`${t}${t}-${o}`]:{fontSize:a,[` + ${t}-title, + ${t}-footer, + ${t}-thead > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{padding:`${r}px ${l}px`},[`${t}-filter-trigger`]:{marginInlineEnd:`-${l/2}px`},[`${t}-expanded-row-fixed`]:{margin:`-${r}px -${l}px`},[`${t}-tbody`]:{[`${t}-wrapper:only-child ${t}`]:{marginBlock:`-${r}px`,marginInline:`${e.tableExpandColumnWidth-l}px -${l}px`}},[`${t}-selection-column`]:{paddingInlineStart:`${l/4}px`}}});return{[`${t}-wrapper`]:g(g({},n("middle",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle,e.tableFontSizeMiddle)),n("small",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall,e.tableFontSizeSmall))}},Eee=Tee,Mee=e=>{const{componentCls:t}=e;return{[`${t}-wrapper ${t}-resize-handle`]:{position:"absolute",top:0,height:"100% !important",bottom:0,left:" auto !important",right:" -8px",cursor:"col-resize",touchAction:"none",userSelect:"auto",width:"16px",zIndex:1,"&-line":{display:"block",width:"1px",marginLeft:"7px",height:"100% !important",backgroundColor:e.colorPrimary,opacity:0},"&:hover &-line":{opacity:1}},[`${t}-wrapper ${t}-resize-handle.dragging`]:{overflow:"hidden",[`${t}-resize-handle-line`]:{opacity:1},"&:before":{position:"absolute",top:0,bottom:0,content:'" "',width:"200vw",transform:"translateX(-50%)",opacity:0}}}},_ee=Mee,Dee=e=>{const{componentCls:t,marginXXS:n,fontSizeIcon:o,tableHeaderIconColor:r,tableHeaderIconColorHover:l}=e;return{[`${t}-wrapper`]:{[`${t}-thead th${t}-column-has-sorters`]:{outline:"none",cursor:"pointer",transition:`all ${e.motionDurationSlow}`,"&:hover":{background:e.tableHeaderSortHoverBg,"&::before":{backgroundColor:"transparent !important"}},"&:focus-visible":{color:e.colorPrimary},[` + &${t}-cell-fix-left:hover, + &${t}-cell-fix-right:hover + `]:{background:e.tableFixedHeaderSortActiveBg}},[`${t}-thead th${t}-column-sort`]:{background:e.tableHeaderSortBg,"&::before":{backgroundColor:"transparent !important"}},[`td${t}-column-sort`]:{background:e.tableBodySortBg},[`${t}-column-title`]:{position:"relative",zIndex:1,flex:1},[`${t}-column-sorters`]:{display:"flex",flex:"auto",alignItems:"center",justifyContent:"space-between","&::after":{position:"absolute",inset:0,width:"100%",height:"100%",content:'""'}},[`${t}-column-sorter`]:{marginInlineStart:n,color:r,fontSize:0,transition:`color ${e.motionDurationSlow}`,"&-inner":{display:"inline-flex",flexDirection:"column",alignItems:"center"},"&-up, &-down":{fontSize:o,"&.active":{color:e.colorPrimary}},[`${t}-column-sorter-up + ${t}-column-sorter-down`]:{marginTop:"-0.3em"}},[`${t}-column-sorters:hover ${t}-column-sorter`]:{color:l}}}},Aee=Dee,Ree=e=>{const{componentCls:t,opacityLoading:n,tableScrollThumbBg:o,tableScrollThumbBgHover:r,tableScrollThumbSize:l,tableScrollBg:a,zIndexTableSticky:i}=e,s=`${e.lineWidth}px ${e.lineType} ${e.tableBorderColor}`;return{[`${t}-wrapper`]:{[`${t}-sticky`]:{"&-holder":{position:"sticky",zIndex:i,background:e.colorBgContainer},"&-scroll":{position:"sticky",bottom:0,height:`${l}px !important`,zIndex:i,display:"flex",alignItems:"center",background:a,borderTop:s,opacity:n,"&:hover":{transformOrigin:"center bottom"},"&-bar":{height:l,backgroundColor:o,borderRadius:100,transition:`all ${e.motionDurationSlow}, transform none`,position:"absolute",bottom:0,"&:hover, &-active":{backgroundColor:r}}}}}}},Bee=Ree,Nee=e=>{const{componentCls:t,lineWidth:n,tableBorderColor:o}=e,r=`${n}px ${e.lineType} ${o}`;return{[`${t}-wrapper`]:{[`${t}-summary`]:{position:"relative",zIndex:e.zIndexTableFixed,background:e.tableBg,"> tr":{"> th, > td":{borderBottom:r}}},[`div${t}-summary`]:{boxShadow:`0 -${n}px 0 ${o}`}}}},W$=Nee,Fee=e=>{const{componentCls:t,fontWeightStrong:n,tablePaddingVertical:o,tablePaddingHorizontal:r,lineWidth:l,lineType:a,tableBorderColor:i,tableFontSize:s,tableBg:u,tableRadius:c,tableHeaderTextColor:d,motionDurationMid:p,tableHeaderBg:v,tableHeaderCellSplitColor:y,tableRowHoverBg:m,tableSelectedRowBg:h,tableSelectedRowHoverBg:b,tableFooterTextColor:$,tableFooterBg:C,paddingContentVerticalLG:w}=e,S=`${l}px ${a} ${i}`;return{[`${t}-wrapper`]:g(g({clear:"both",maxWidth:"100%"},so()),{[t]:g(g({},Qe(e)),{fontSize:s,background:u,borderRadius:`${c}px ${c}px 0 0`}),table:{width:"100%",textAlign:"start",borderRadius:`${c}px ${c}px 0 0`,borderCollapse:"separate",borderSpacing:0},[` + ${t}-thead > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{position:"relative",padding:`${w}px ${r}px`,overflowWrap:"break-word"},[`${t}-title`]:{padding:`${o}px ${r}px`},[`${t}-thead`]:{"\n > tr > th,\n > tr > td\n ":{position:"relative",color:d,fontWeight:n,textAlign:"start",background:v,borderBottom:S,transition:`background ${p} ease`,"&[colspan]:not([colspan='1'])":{textAlign:"center"},[`&:not(:last-child):not(${t}-selection-column):not(${t}-row-expand-icon-cell):not([colspan])::before`]:{position:"absolute",top:"50%",insetInlineEnd:0,width:1,height:"1.6em",backgroundColor:y,transform:"translateY(-50%)",transition:`background-color ${p}`,content:'""'}},"> tr:not(:last-child) > th[colspan]":{borderBottom:0}},[`${t}:not(${t}-bordered)`]:{[`${t}-tbody`]:{"> tr":{"> td":{borderTop:S,borderBottom:"transparent"},"&:last-child > td":{borderBottom:S},[`&:first-child > td, + &${t}-measure-row + tr > td`]:{borderTop:"none",borderTopColor:"transparent"}}}},[`${t}${t}-bordered`]:{[`${t}-tbody`]:{"> tr":{"> td":{borderBottom:S}}}},[`${t}-tbody`]:{"> tr":{"> td":{transition:`background ${p}, border-color ${p}`,[` + > ${t}-wrapper:only-child, + > ${t}-expanded-row-fixed > ${t}-wrapper:only-child + `]:{[t]:{marginBlock:`-${o}px`,marginInline:`${e.tableExpandColumnWidth-r}px -${r}px`,[`${t}-tbody > tr:last-child > td`]:{borderBottom:0,"&:first-child, &:last-child":{borderRadius:0}}}}},[` + &${t}-row:hover > td, + > td${t}-cell-row-hover + `]:{background:m},[`&${t}-row-selected`]:{"> td":{background:h},"&:hover > td":{background:b}}}},[`${t}-footer`]:{padding:`${o}px ${r}px`,color:$,background:C}})}},kee=Je("Table",e=>{const{controlItemBgActive:t,controlItemBgActiveHover:n,colorTextPlaceholder:o,colorTextHeading:r,colorSplit:l,colorBorderSecondary:a,fontSize:i,padding:s,paddingXS:u,paddingSM:c,controlHeight:d,colorFillAlter:p,colorIcon:v,colorIconHover:y,opacityLoading:m,colorBgContainer:h,borderRadiusLG:b,colorFillContent:$,colorFillSecondary:C,controlInteractiveSize:w}=e,S=new ut(v),O=new ut(y),x=t,I=2,E=new ut(C).onBackground(h).toHexString(),M=new ut($).onBackground(h).toHexString(),_=new ut(p).onBackground(h).toHexString(),z=Le(e,{tableFontSize:i,tableBg:h,tableRadius:b,tablePaddingVertical:s,tablePaddingHorizontal:s,tablePaddingVerticalMiddle:c,tablePaddingHorizontalMiddle:u,tablePaddingVerticalSmall:u,tablePaddingHorizontalSmall:u,tableBorderColor:a,tableHeaderTextColor:r,tableHeaderBg:_,tableFooterTextColor:r,tableFooterBg:_,tableHeaderCellSplitColor:a,tableHeaderSortBg:E,tableHeaderSortHoverBg:M,tableHeaderIconColor:S.clone().setAlpha(S.getAlpha()*m).toRgbString(),tableHeaderIconColorHover:O.clone().setAlpha(O.getAlpha()*m).toRgbString(),tableBodySortBg:_,tableFixedHeaderSortActiveBg:E,tableHeaderFilterActiveBg:$,tableFilterDropdownBg:h,tableRowHoverBg:_,tableSelectedRowBg:x,tableSelectedRowHoverBg:n,zIndexTableFixed:I,zIndexTableSticky:I+1,tableFontSizeMiddle:i,tableFontSizeSmall:i,tableSelectionColumnWidth:d,tableExpandIconBg:h,tableExpandColumnWidth:w+2*e.padding,tableExpandedRowBg:p,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:o,tableScrollThumbBgHover:r,tableScrollBg:l});return[Fee(z),See(z),W$(z),Aee(z),hee(z),cee(z),xee(z),gee(z),W$(z),pee(z),Iee(z),yee(z),Bee(z),dee(z),Eee(z),_ee(z),Oee(z)]}),Lee=[],f6=()=>({prefixCls:je(),columns:st(),rowKey:Xe([String,Function]),tableLayout:je(),rowClassName:Xe([String,Function]),title:ce(),footer:ce(),id:je(),showHeader:xe(),components:De(),customRow:ce(),customHeaderRow:ce(),direction:je(),expandFixed:Xe([Boolean,String]),expandColumnWidth:Number,expandedRowKeys:st(),defaultExpandedRowKeys:st(),expandedRowRender:ce(),expandRowByClick:xe(),expandIcon:ce(),onExpand:ce(),onExpandedRowsChange:ce(),"onUpdate:expandedRowKeys":ce(),defaultExpandAllRows:xe(),indentSize:Number,expandIconColumnIndex:Number,showExpandColumn:xe(),expandedRowClassName:ce(),childrenColumnName:je(),rowExpandable:ce(),sticky:Xe([Boolean,Object]),dropdownPrefixCls:String,dataSource:st(),pagination:Xe([Boolean,Object]),loading:Xe([Boolean,Object]),size:je(),bordered:xe(),locale:De(),onChange:ce(),onResizeColumn:ce(),rowSelection:De(),getPopupContainer:ce(),scroll:De(),sortDirections:st(),showSorterTooltip:Xe([Boolean,Object],!0),transformCellText:ce()}),zee=te({name:"InternalTable",inheritAttrs:!1,props:rt(g(g({},f6()),{contextSlots:De()}),{rowKey:"key"}),setup(e,t){let{attrs:n,slots:o,expose:r,emit:l}=t;yt(!(typeof e.rowKey=="function"&&e.rowKey.length>1),"Table","`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected."),ZQ(P(()=>e.contextSlots)),JQ({onResizeColumn:(de,me)=>{l("resizeColumn",de,me)}});const a=Wc(),i=P(()=>{const de=new Set(Object.keys(a.value).filter(me=>a.value[me]));return e.columns.filter(me=>!me.responsive||me.responsive.some(ie=>de.has(ie)))}),{size:s,renderEmpty:u,direction:c,prefixCls:d,configProvider:p}=Me("table",e),[v,y]=kee(d),m=P(()=>{var de;return e.transformCellText||((de=p.transformCellText)===null||de===void 0?void 0:de.value)}),[h]=xo("Table",xn.Table,Ne(e,"locale")),b=P(()=>e.dataSource||Lee),$=P(()=>p.getPrefixCls("dropdown",e.dropdownPrefixCls)),C=P(()=>e.childrenColumnName||"children"),w=P(()=>b.value.some(de=>de==null?void 0:de[C.value])?"nest":e.expandedRowRender?"row":null),S=vt({body:null}),O=de=>{g(S,de)},x=P(()=>typeof e.rowKey=="function"?e.rowKey:de=>de==null?void 0:de[e.rowKey]),[I]=KZ(b,C,x),E={},M=function(de,me){let ie=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const{pagination:se,scroll:be,onChange:we}=e,ve=g(g({},E),de);ie&&(E.resetPagination(),ve.pagination.current&&(ve.pagination.current=1),se&&se.onChange&&se.onChange(1,ve.pagination.pageSize)),be&&be.scrollToFirstRowOnChange!==!1&&S.body&&Qx(0,{getContainer:()=>S.body}),we==null||we(ve.pagination,ve.filters,ve.sorter,{currentDataSource:V$(Ap(b.value,ve.sorterStates,C.value),ve.filterStates),action:me})},_=(de,me)=>{M({sorter:de,sorterStates:me},"sort",!1)},[z,R,H,T]=rJ({prefixCls:d,mergedColumns:i,onSorterChange:_,sortDirections:P(()=>e.sortDirections||["ascend","descend"]),tableLocale:h,showSorterTooltip:Ne(e,"showSorterTooltip")}),D=P(()=>Ap(b.value,R.value,C.value)),A=(de,me)=>{M({filters:de,filterStates:me},"filter",!0)},[B,N,k]=ree({prefixCls:d,locale:h,dropdownPrefixCls:$,mergedColumns:i,onFilterChange:A,getPopupContainer:Ne(e,"getPopupContainer")}),L=P(()=>V$(D.value,N.value)),[j]=iee(Ne(e,"contextSlots")),G=P(()=>{const de={},me=k.value;return Object.keys(me).forEach(ie=>{me[ie]!==null&&(de[ie]=me[ie])}),g(g({},H.value),{filters:de})}),[U]=lee(G),K=(de,me)=>{M({pagination:g(g({},E.pagination),{current:de,pageSize:me})},"paginate")},[Y,Q]=WZ(P(()=>L.value.length),Ne(e,"pagination"),K);ke(()=>{E.sorter=T.value,E.sorterStates=R.value,E.filters=k.value,E.filterStates=N.value,E.pagination=e.pagination===!1?{}:VZ(Y.value,e.pagination),E.resetPagination=Q});const J=P(()=>{if(e.pagination===!1||!Y.value.pageSize)return L.value;const{current:de=1,total:me,pageSize:ie=Tp}=Y.value;return yt(de>0,"Table","`current` should be positive number."),L.value.lengthie?L.value.slice((de-1)*ie,de*ie):L.value:L.value.slice((de-1)*ie,de*ie)});ke(()=>{ot(()=>{const{total:de,pageSize:me=Tp}=Y.value;L.value.lengthme&&yt(!1,"Table","`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.")})},{flush:"post"});const Z=P(()=>e.showExpandColumn===!1?-1:w.value==="nest"&&e.expandIconColumnIndex===void 0?e.rowSelection?1:0:e.expandIconColumnIndex>0&&e.rowSelection?e.expandIconColumnIndex-1:e.expandIconColumnIndex),W=ee();ue(()=>e.rowSelection,()=>{W.value=e.rowSelection?g({},e.rowSelection):e.rowSelection},{deep:!0,immediate:!0});const[X,re]=XZ(W,{prefixCls:d,data:L,pageData:J,getRowKey:x,getRecordByKey:I,expandType:w,childrenColumnName:C,locale:h,getPopupContainer:P(()=>e.getPopupContainer)}),ae=(de,me,ie)=>{let se;const{rowClassName:be}=e;return typeof be=="function"?se=ne(be(de,me,ie)):se=ne(be),ne({[`${d.value}-row-selected`]:re.value.has(x.value(de,me))},se)};r({selectedKeySet:re});const pe=P(()=>typeof e.indentSize=="number"?e.indentSize:15),ye=de=>U(X(B(z(j(de)))));return()=>{var de;const{expandIcon:me=o.expandIcon||aee(h.value),pagination:ie,loading:se,bordered:be}=e;let we,ve;if(ie!==!1&&(!((de=Y.value)===null||de===void 0)&&de.total)){let oe;Y.value.size?oe=Y.value.size:oe=s.value==="small"||s.value==="middle"?"small":void 0;const fe=Ae=>f(_m,F(F({},Y.value),{},{class:[`${d.value}-pagination ${d.value}-pagination-${Ae}`,Y.value.class],size:oe}),null),Oe=c.value==="rtl"?"left":"right",{position:Ie}=Y.value;if(Ie!==null&&Array.isArray(Ie)){const Ae=Ie.find($e=>$e.includes("top")),ge=Ie.find($e=>$e.includes("bottom")),he=Ie.every($e=>`${$e}`=="none");!Ae&&!ge&&!he&&(ve=fe(Oe)),Ae&&(we=fe(Ae.toLowerCase().replace("top",""))),ge&&(ve=fe(ge.toLowerCase().replace("bottom","")))}else ve=fe(Oe)}let Ce;typeof se=="boolean"?Ce={spinning:se}:typeof se=="object"&&(Ce=g({spinning:!0},se));const Te=ne(`${d.value}-wrapper`,{[`${d.value}-wrapper-rtl`]:c.value==="rtl"},n.class,y.value),le=tt(e,["columns"]);return v(f("div",{class:Te,style:n.style},[f(Tl,F({spinning:!1},Ce),{default:()=>[we,f(HZ,F(F(F({},n),le),{},{expandedRowKeys:e.expandedRowKeys,defaultExpandedRowKeys:e.defaultExpandedRowKeys,expandIconColumnIndex:Z.value,indentSize:pe.value,expandIcon:me,columns:i.value,direction:c.value,prefixCls:d.value,class:ne({[`${d.value}-middle`]:s.value==="middle",[`${d.value}-small`]:s.value==="small",[`${d.value}-bordered`]:be,[`${d.value}-empty`]:b.value.length===0}),data:J.value,rowKey:x.value,rowClassName:ae,internalHooks:Ip,internalRefs:S,onUpdateInternalRefs:O,transformColumns:ye,transformCellText:m.value}),g(g({},o),{emptyText:()=>{var oe,fe;return((oe=o.emptyText)===null||oe===void 0?void 0:oe.call(o))||((fe=e.locale)===null||fe===void 0?void 0:fe.emptyText)||u("Table")}})),ve]})]))}}}),Hee=te({name:"ATable",inheritAttrs:!1,props:rt(f6(),{rowKey:"key"}),slots:Object,setup(e,t){let{attrs:n,slots:o,expose:r}=t;const l=ee();return r({table:l}),()=>{var a;const i=e.columns||ZO((a=o.default)===null||a===void 0?void 0:a.call(o));return f(zee,F(F(F({ref:l},n),e),{},{columns:i||[],expandedRowRender:o.expandedRowRender||e.expandedRowRender,contextSlots:g({},o)}),o)}}}),kd=Hee,Ld=te({name:"ATableColumn",slots:Object,render(){return null}}),zd=te({name:"ATableColumnGroup",slots:Object,__ANT_TABLE_COLUMN_GROUP:!0,render(){return null}}),Np=EZ,Fp=DZ,Hd=g(AZ,{Cell:Fp,Row:Np,name:"ATableSummary"}),jle=g(kd,{SELECTION_ALL:Ep,SELECTION_INVERT:Mp,SELECTION_NONE:_p,SELECTION_COLUMN:_o,EXPAND_COLUMN:er,Column:Ld,ColumnGroup:zd,Summary:Hd,install:e=>(e.component(Hd.name,Hd),e.component(Fp.name,Fp),e.component(Np.name,Np),e.component(kd.name,kd),e.component(Ld.name,Ld),e.component(zd.name,zd),e)}),jee={prefixCls:String,placeholder:String,value:String,handleClear:Function,disabled:{type:Boolean,default:void 0},onChange:Function},Vee=te({compatConfig:{MODE:3},name:"Search",inheritAttrs:!1,props:rt(jee,{placeholder:""}),emits:["change"],setup(e,t){let{emit:n}=t;const o=r=>{var l;n("change",r),r.target.value===""&&((l=e.handleClear)===null||l===void 0||l.call(e))};return()=>{const{placeholder:r,value:l,prefixCls:a,disabled:i}=e;return f(Ht,{placeholder:r,class:a,value:l,onChange:o,disabled:i,allowClear:!0},{prefix:()=>f(Nc,null,null)})}}});var Wee={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"};const Kee=Wee;function K$(e){for(var t=1;t{const{renderedText:o,renderedEl:r,item:l,checked:a,disabled:i,prefixCls:s,showRemove:u}=e,c=ne({[`${s}-content-item`]:!0,[`${s}-content-item-disabled`]:i||l.disabled});let d;return(typeof o=="string"||typeof o=="number")&&(d=String(o)),f(Ql,{componentName:"Transfer",defaultLocale:xn.Transfer},{default:p=>{const v=f("span",{class:`${s}-content-item-text`},[r]);return u?f("li",{class:c,title:d},[v,f(nc,{disabled:i||l.disabled,class:`${s}-content-item-remove`,"aria-label":p.remove,onClick:()=>{n("remove",l)}},{default:()=>[f(p6,null,null)]})]):f("li",{class:c,title:d,onClick:i||l.disabled?Xee:()=>{n("click",l)}},[f(ao,{class:`${s}-checkbox`,checked:a,disabled:i||l.disabled},null),v])}})}}}),qee={prefixCls:String,filteredRenderItems:V.array.def([]),selectedKeys:V.array,disabled:xe(),showRemove:xe(),pagination:V.any,onItemSelect:Function,onScroll:Function,onItemRemove:Function};function Qee(e){if(!e)return null;const t={pageSize:10,simple:!0,showSizeChanger:!1,showLessItems:!1};return typeof e=="object"?g(g({},t),e):t}const Zee=te({compatConfig:{MODE:3},name:"ListBody",inheritAttrs:!1,props:qee,emits:["itemSelect","itemRemove","scroll"],setup(e,t){let{emit:n,expose:o}=t;const r=ee(1),l=d=>{const{selectedKeys:p}=e,v=p.indexOf(d.key)>=0;n("itemSelect",d.key,!v)},a=d=>{n("itemRemove",[d.key])},i=d=>{n("scroll",d)},s=P(()=>Qee(e.pagination));ue([s,()=>e.filteredRenderItems],()=>{if(s.value){const d=Math.ceil(e.filteredRenderItems.length/s.value.pageSize);r.value=Math.min(r.value,d)}},{immediate:!0});const u=P(()=>{const{filteredRenderItems:d}=e;let p=d;return s.value&&(p=d.slice((r.value-1)*s.value.pageSize,r.value*s.value.pageSize)),p}),c=d=>{r.value=d};return o({items:u}),()=>{const{prefixCls:d,filteredRenderItems:p,selectedKeys:v,disabled:y,showRemove:m}=e;let h=null;s.value&&(h=f(_m,{simple:s.value.simple,showSizeChanger:s.value.showSizeChanger,showLessItems:s.value.showLessItems,size:"small",disabled:y,class:`${d}-pagination`,total:p.length,pageSize:s.value.pageSize,current:r.value,onChange:c},null));const b=u.value.map($=>{let{renderedEl:C,renderedText:w,item:S}=$;const{disabled:O}=S,x=v.indexOf(S.key)>=0;return f(Yee,{disabled:y||O,key:S.key,item:S,renderedText:w,renderedEl:C,checked:x,prefixCls:d,onClick:l,onRemove:a,showRemove:m},null)});return f(qe,null,[f("ul",{class:ne(`${d}-content`,{[`${d}-content-show-remove`]:m}),onScroll:i},[b]),h])}}}),Jee=Zee,kp=e=>{const t=new Map;return e.forEach((n,o)=>{t.set(n,o)}),t},ete=e=>{const t=new Map;return e.forEach((n,o)=>{let{disabled:r,key:l}=n;r&&t.set(l,o)}),t},tte=()=>null;function nte(e){return!!(e&&!Rt(e)&&Object.prototype.toString.call(e)==="[object Object]")}function es(e){return e.filter(t=>!t.disabled).map(t=>t.key)}const ote={prefixCls:String,dataSource:st([]),filter:String,filterOption:Function,checkedKeys:V.arrayOf(V.string),handleFilter:Function,handleClear:Function,renderItem:Function,showSearch:xe(!1),searchPlaceholder:String,notFoundContent:V.any,itemUnit:String,itemsUnit:String,renderList:V.any,disabled:xe(),direction:je(),showSelectAll:xe(),remove:String,selectAll:String,selectCurrent:String,selectInvert:String,removeAll:String,removeCurrent:String,selectAllLabel:V.any,showRemove:xe(),pagination:V.any,onItemSelect:Function,onItemSelectAll:Function,onItemRemove:Function,onScroll:Function},G$=te({compatConfig:{MODE:3},name:"TransferList",inheritAttrs:!1,props:ote,slots:Object,setup(e,t){let{attrs:n,slots:o}=t;const r=ee(""),l=ee(),a=ee(),i=(S,O)=>{let x=S?S(O):null;const I=!!x&&Ot(x).length>0;return I||(x=f(Jee,F(F({},O),{},{ref:a}),null)),{customize:I,bodyContent:x}},s=S=>{const{renderItem:O=tte}=e,x=O(S),I=nte(x);return{renderedText:I?x.value:x,renderedEl:I?x.label:x,item:S}},u=ee([]),c=ee([]);ke(()=>{const S=[],O=[];e.dataSource.forEach(x=>{const I=s(x),{renderedText:E}=I;if(r.value&&r.value.trim()&&!b(E,x))return null;S.push(x),O.push(I)}),u.value=S,c.value=O});const d=P(()=>{const{checkedKeys:S}=e;if(S.length===0)return"none";const O=kp(S);return u.value.every(x=>O.has(x.key)||!!x.disabled)?"all":"part"}),p=P(()=>es(u.value)),v=(S,O)=>Array.from(new Set([...S,...e.checkedKeys])).filter(x=>O.indexOf(x)===-1),y=S=>{let{disabled:O,prefixCls:x}=S;var I;const E=d.value==="all";return f(ao,{disabled:((I=e.dataSource)===null||I===void 0?void 0:I.length)===0||O,checked:E,indeterminate:d.value==="part",class:`${x}-checkbox`,onChange:()=>{const _=p.value;e.onItemSelectAll(v(E?[]:_,E?e.checkedKeys:[]))}},null)},m=S=>{var O;const{target:{value:x}}=S;r.value=x,(O=e.handleFilter)===null||O===void 0||O.call(e,S)},h=S=>{var O;r.value="",(O=e.handleClear)===null||O===void 0||O.call(e,S)},b=(S,O)=>{const{filterOption:x}=e;return x?x(r.value,O):S.includes(r.value)},$=(S,O)=>{const{itemsUnit:x,itemUnit:I,selectAllLabel:E}=e;if(E)return typeof E=="function"?E({selectedCount:S,totalCount:O}):E;const M=O>1?x:I;return f(qe,null,[(S>0?`${S}/`:"")+O,ko(" "),M])},C=P(()=>Array.isArray(e.notFoundContent)?e.notFoundContent[e.direction==="left"?0:1]:e.notFoundContent),w=(S,O,x,I,E,M)=>{const _=E?f("div",{class:`${S}-body-search-wrapper`},[f(Vee,{prefixCls:`${S}-search`,onChange:m,handleClear:h,placeholder:O,value:r.value,disabled:M},null)]):null;let z;const{onEvents:R}=fv(n),{bodyContent:H,customize:T}=i(I,g(g(g({},e),{filteredItems:u.value,filteredRenderItems:c.value,selectedKeys:x}),R));return T?z=f("div",{class:`${S}-body-customize-wrapper`},[H]):z=u.value.length?H:f("div",{class:`${S}-body-not-found`},[C.value]),f("div",{class:E?`${S}-body ${S}-body-with-search`:`${S}-body`,ref:l},[_,z])};return()=>{var S,O;const{prefixCls:x,checkedKeys:I,disabled:E,showSearch:M,searchPlaceholder:_,selectAll:z,selectCurrent:R,selectInvert:H,removeAll:T,removeCurrent:D,renderList:A,onItemSelectAll:B,onItemRemove:N,showSelectAll:k=!0,showRemove:L,pagination:j}=e,G=(S=o.footer)===null||S===void 0?void 0:S.call(o,g({},e)),U=ne(x,{[`${x}-with-pagination`]:!!j,[`${x}-with-footer`]:!!G}),K=w(x,_,I,A,M,E),Y=G?f("div",{class:`${x}-footer`},[G]):null,Q=!L&&!j&&y({disabled:E,prefixCls:x});let J=null;L?J=f(Ft,null,{default:()=>[j&&f(Ft.Item,{key:"removeCurrent",onClick:()=>{const W=es((a.value.items||[]).map(X=>X.item));N==null||N(W)}},{default:()=>[D]}),f(Ft.Item,{key:"removeAll",onClick:()=>{N==null||N(p.value)}},{default:()=>[T]})]}):J=f(Ft,null,{default:()=>[f(Ft.Item,{key:"selectAll",onClick:()=>{const W=p.value;B(v(W,[]))}},{default:()=>[z]}),j&&f(Ft.Item,{onClick:()=>{const W=es((a.value.items||[]).map(X=>X.item));B(v(W,[]))}},{default:()=>[R]}),f(Ft.Item,{key:"selectInvert",onClick:()=>{let W;j?W=es((a.value.items||[]).map(pe=>pe.item)):W=p.value;const X=new Set(I),re=[],ae=[];W.forEach(pe=>{X.has(pe)?ae.push(pe):re.push(pe)}),B(v(re,ae))}},{default:()=>[H]})]});const Z=f(Fo,{class:`${x}-header-dropdown`,overlay:J,disabled:E},{default:()=>[f(vi,null,null)]});return f("div",{class:U,style:n.style},[f("div",{class:`${x}-header`},[k?f(qe,null,[Q,Z]):null,f("span",{class:`${x}-header-selected`},[f("span",null,[$(I.length,u.value.length)]),f("span",{class:`${x}-header-title`},[(O=o.titleText)===null||O===void 0?void 0:O.call(o)])])]),K,Y])}}});function X$(){}const Qm=e=>{const{disabled:t,moveToLeft:n=X$,moveToRight:o=X$,leftArrowText:r="",rightArrowText:l="",leftActive:a,rightActive:i,class:s,style:u,direction:c,oneWay:d}=e;return f("div",{class:s,style:u},[f(Wt,{type:"primary",size:"small",disabled:t||!i,onClick:o,icon:c!=="rtl"?f(So,null,null):f(dr,null,null)},{default:()=>[l]}),!d&&f(Wt,{type:"primary",size:"small",disabled:t||!a,onClick:n,icon:c!=="rtl"?f(dr,null,null):f(So,null,null)},{default:()=>[r]})])};Qm.displayName="Operation";Qm.inheritAttrs=!1;const rte=Qm,lte=e=>{const{antCls:t,componentCls:n,listHeight:o,controlHeightLG:r,marginXXS:l,margin:a}=e,i=`${t}-table`,s=`${t}-input`;return{[`${n}-customize-list`]:{[`${n}-list`]:{flex:"1 1 50%",width:"auto",height:"auto",minHeight:o},[`${i}-wrapper`]:{[`${i}-small`]:{border:0,borderRadius:0,[`${i}-selection-column`]:{width:r,minWidth:r}},[`${i}-pagination${i}-pagination`]:{margin:`${a}px 0 ${l}px`}},[`${s}[disabled]`]:{backgroundColor:"transparent"}}}},U$=(e,t)=>{const{componentCls:n,colorBorder:o}=e;return{[`${n}-list`]:{borderColor:t,"&-search:not([disabled])":{borderColor:o}}}},ate=e=>{const{componentCls:t}=e;return{[`${t}-status-error`]:g({},U$(e,e.colorError)),[`${t}-status-warning`]:g({},U$(e,e.colorWarning))}},ite=e=>{const{componentCls:t,colorBorder:n,colorSplit:o,lineWidth:r,transferItemHeight:l,transferHeaderHeight:a,transferHeaderVerticalPadding:i,transferItemPaddingVertical:s,controlItemBgActive:u,controlItemBgActiveHover:c,colorTextDisabled:d,listHeight:p,listWidth:v,listWidthLG:y,fontSizeIcon:m,marginXS:h,paddingSM:b,lineType:$,iconCls:C,motionDurationSlow:w}=e;return{display:"flex",flexDirection:"column",width:v,height:p,border:`${r}px ${$} ${n}`,borderRadius:e.borderRadiusLG,"&-with-pagination":{width:y,height:"auto"},"&-search":{[`${C}-search`]:{color:d}},"&-header":{display:"flex",flex:"none",alignItems:"center",height:a,padding:`${i-r}px ${b}px ${i}px`,color:e.colorText,background:e.colorBgContainer,borderBottom:`${r}px ${$} ${o}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,"> *:not(:last-child)":{marginInlineEnd:4},"> *":{flex:"none"},"&-title":g(g({},Xt),{flex:"auto",textAlign:"end"}),"&-dropdown":g(g({},Jl()),{fontSize:m,transform:"translateY(10%)",cursor:"pointer","&[disabled]":{cursor:"not-allowed"}})},"&-body":{display:"flex",flex:"auto",flexDirection:"column",overflow:"hidden",fontSize:e.fontSize,"&-search-wrapper":{position:"relative",flex:"none",padding:b}},"&-content":{flex:"auto",margin:0,padding:0,overflow:"auto",listStyle:"none","&-item":{display:"flex",alignItems:"center",minHeight:l,padding:`${s}px ${b}px`,transition:`all ${w}`,"> *:not(:last-child)":{marginInlineEnd:h},"> *":{flex:"none"},"&-text":g(g({},Xt),{flex:"auto"}),"&-remove":{position:"relative",color:n,cursor:"pointer",transition:`all ${w}`,"&:hover":{color:e.colorLinkHover},"&::after":{position:"absolute",insert:`-${s}px -50%`,content:'""'}},[`&:not(${t}-list-content-item-disabled)`]:{"&:hover":{backgroundColor:e.controlItemBgHover,cursor:"pointer"},[`&${t}-list-content-item-checked:hover`]:{backgroundColor:c}},"&-checked":{backgroundColor:u},"&-disabled":{color:d,cursor:"not-allowed"}},[`&-show-remove ${t}-list-content-item:not(${t}-list-content-item-disabled):hover`]:{background:"transparent",cursor:"default"}},"&-pagination":{padding:`${e.paddingXS}px 0`,textAlign:"end",borderTop:`${r}px ${$} ${o}`},"&-body-not-found":{flex:"none",width:"100%",margin:"auto 0",color:d,textAlign:"center"},"&-footer":{borderTop:`${r}px ${$} ${o}`},"&-checkbox":{lineHeight:1}}},ste=e=>{const{antCls:t,iconCls:n,componentCls:o,transferHeaderHeight:r,marginXS:l,marginXXS:a,fontSizeIcon:i,fontSize:s,lineHeight:u}=e;return{[o]:g(g({},Qe(e)),{position:"relative",display:"flex",alignItems:"stretch",[`${o}-disabled`]:{[`${o}-list`]:{background:e.colorBgContainerDisabled}},[`${o}-list`]:ite(e),[`${o}-operation`]:{display:"flex",flex:"none",flexDirection:"column",alignSelf:"center",margin:`0 ${l}px`,verticalAlign:"middle",[`${t}-btn`]:{display:"block","&:first-child":{marginBottom:a},[n]:{fontSize:i}}},[`${t}-empty-image`]:{maxHeight:r/2-Math.round(s*u)}})}},cte=e=>{const{componentCls:t}=e;return{[`${t}-rtl`]:{direction:"rtl"}}},ute=Je("Transfer",e=>{const{fontSize:t,lineHeight:n,lineWidth:o,controlHeightLG:r,controlHeight:l}=e,a=Math.round(t*n),i=r,s=l,u=Le(e,{transferItemHeight:s,transferHeaderHeight:i,transferHeaderVerticalPadding:Math.ceil((i-o-a)/2),transferItemPaddingVertical:(s-a)/2});return[ste(u),lte(u),ate(u),cte(u)]},{listWidth:180,listHeight:200,listWidthLG:250}),dte=()=>({id:String,prefixCls:String,dataSource:st([]),disabled:xe(),targetKeys:st(),selectedKeys:st(),render:ce(),listStyle:Xe([Function,Object],()=>({})),operationStyle:De(void 0),titles:st(),operations:st(),showSearch:xe(!1),filterOption:ce(),searchPlaceholder:String,notFoundContent:V.any,locale:De(),rowKey:ce(),showSelectAll:xe(),selectAllLabels:st(),children:ce(),oneWay:xe(),pagination:Xe([Object,Boolean]),status:je(),onChange:ce(),onSelectChange:ce(),onSearch:ce(),onScroll:ce(),"onUpdate:targetKeys":ce(),"onUpdate:selectedKeys":ce()}),fte=te({compatConfig:{MODE:3},name:"ATransfer",inheritAttrs:!1,props:dte(),slots:Object,setup(e,t){let{emit:n,attrs:o,slots:r,expose:l}=t;const{configProvider:a,prefixCls:i,direction:s}=Me("transfer",e),[u,c]=ute(i),d=ee([]),p=ee([]),v=Lt(),y=rn.useInject(),m=P(()=>wo(y.status,e.status));ue(()=>e.selectedKeys,()=>{var K,Y;d.value=((K=e.selectedKeys)===null||K===void 0?void 0:K.filter(Q=>e.targetKeys.indexOf(Q)===-1))||[],p.value=((Y=e.selectedKeys)===null||Y===void 0?void 0:Y.filter(Q=>e.targetKeys.indexOf(Q)>-1))||[]},{immediate:!0});const h=(K,Y)=>{const Q={notFoundContent:Y("Transfer")},J=At(r,e,"notFoundContent");return J&&(Q.notFoundContent=J),e.searchPlaceholder!==void 0&&(Q.searchPlaceholder=e.searchPlaceholder),g(g(g({},K),Q),e.locale)},b=K=>{const{targetKeys:Y=[],dataSource:Q=[]}=e,J=K==="right"?d.value:p.value,Z=ete(Q),W=J.filter(pe=>!Z.has(pe)),X=kp(W),re=K==="right"?W.concat(Y):Y.filter(pe=>!X.has(pe)),ae=K==="right"?"left":"right";K==="right"?d.value=[]:p.value=[],n("update:targetKeys",re),x(ae,[]),n("change",re,K,W),v.onFieldChange()},$=()=>{b("left")},C=()=>{b("right")},w=(K,Y)=>{x(K,Y)},S=K=>w("left",K),O=K=>w("right",K),x=(K,Y)=>{K==="left"?(e.selectedKeys||(d.value=Y),n("update:selectedKeys",[...Y,...p.value]),n("selectChange",Y,Tt(p.value))):(e.selectedKeys||(p.value=Y),n("update:selectedKeys",[...Y,...d.value]),n("selectChange",Tt(d.value),Y))},I=(K,Y)=>{const Q=Y.target.value;n("search",K,Q)},E=K=>{I("left",K)},M=K=>{I("right",K)},_=K=>{n("search",K,"")},z=()=>{_("left")},R=()=>{_("right")},H=(K,Y,Q)=>{const J=K==="left"?[...d.value]:[...p.value],Z=J.indexOf(Y);Z>-1&&J.splice(Z,1),Q&&J.push(Y),x(K,J)},T=(K,Y)=>H("left",K,Y),D=(K,Y)=>H("right",K,Y),A=K=>{const{targetKeys:Y=[]}=e,Q=Y.filter(J=>!K.includes(J));n("update:targetKeys",Q),n("change",Q,"left",[...K])},B=(K,Y)=>{n("scroll",K,Y)},N=K=>{B("left",K)},k=K=>{B("right",K)},L=(K,Y)=>typeof K=="function"?K({direction:Y}):K,j=ee([]),G=ee([]);ke(()=>{const{dataSource:K,rowKey:Y,targetKeys:Q=[]}=e,J=[],Z=new Array(Q.length),W=kp(Q);K.forEach(X=>{Y&&(X.key=Y(X)),W.has(X.key)?Z[W.get(X.key)]=X:J.push(X)}),j.value=J,G.value=Z}),l({handleSelectChange:x});const U=K=>{var Y,Q,J,Z,W,X;const{disabled:re,operations:ae=[],showSearch:pe,listStyle:ye,operationStyle:de,filterOption:me,showSelectAll:ie,selectAllLabels:se=[],oneWay:be,pagination:we,id:ve=v.id.value}=e,{class:Ce,style:Te}=o,le=r.children,oe=!le&&we,fe=a.renderEmpty,Oe=h(K,fe),{footer:Ie}=r,Ae=e.render||r.render,ge=p.value.length>0,he=d.value.length>0,$e=ne(i.value,Ce,{[`${i.value}-disabled`]:re,[`${i.value}-customize-list`]:!!le,[`${i.value}-rtl`]:s.value==="rtl"},bn(i.value,m.value,y.hasFeedback),c.value),Ee=e.titles,Re=(J=(Y=Ee&&Ee[0])!==null&&Y!==void 0?Y:(Q=r.leftTitle)===null||Q===void 0?void 0:Q.call(r))!==null&&J!==void 0?J:(Oe.titles||["",""])[0],_e=(X=(Z=Ee&&Ee[1])!==null&&Z!==void 0?Z:(W=r.rightTitle)===null||W===void 0?void 0:W.call(r))!==null&&X!==void 0?X:(Oe.titles||["",""])[1];return f("div",F(F({},o),{},{class:$e,style:Te,id:ve}),[f(G$,F({key:"leftList",prefixCls:`${i.value}-list`,dataSource:j.value,filterOption:me,style:L(ye,"left"),checkedKeys:d.value,handleFilter:E,handleClear:z,onItemSelect:T,onItemSelectAll:S,renderItem:Ae,showSearch:pe,renderList:le,onScroll:N,disabled:re,direction:s.value==="rtl"?"right":"left",showSelectAll:ie,selectAllLabel:se[0]||r.leftSelectAllLabel,pagination:oe},Oe),{titleText:()=>Re,footer:Ie}),f(rte,{key:"operation",class:`${i.value}-operation`,rightActive:he,rightArrowText:ae[0],moveToRight:C,leftActive:ge,leftArrowText:ae[1],moveToLeft:$,style:de,disabled:re,direction:s.value,oneWay:be},null),f(G$,F({key:"rightList",prefixCls:`${i.value}-list`,dataSource:G.value,filterOption:me,style:L(ye,"right"),checkedKeys:p.value,handleFilter:M,handleClear:R,onItemSelect:D,onItemSelectAll:O,onItemRemove:A,renderItem:Ae,showSearch:pe,renderList:le,onScroll:k,disabled:re,direction:s.value==="rtl"?"left":"right",showSelectAll:ie,selectAllLabel:se[1]||r.rightSelectAllLabel,showRemove:be,pagination:oe},Oe),{titleText:()=>_e,footer:Ie})])};return()=>u(f(Ql,{componentName:"Transfer",defaultLocale:xn.Transfer,children:U},null))}}),Vle=Gt(fte);function pte(e){return Array.isArray(e)?e:e!==void 0?[e]:[]}function vte(e){const{label:t,value:n,children:o}=e||{},r=n||"value";return{_title:t?[t]:["title","label"],value:r,key:r,children:o||"children"}}function Lp(e){return e.disabled||e.disableCheckbox||e.checkable===!1}function gte(e,t){const n=[];function o(r){r.forEach(l=>{n.push(l[t.value]);const a=l[t.children];a&&o(a)})}return o(e),n}function Y$(e){return e==null}const v6=Symbol("TreeSelectContextPropsKey");function mte(e){return We(v6,e)}function hte(){return Ke(v6,{})}const bte={width:0,height:0,display:"flex",overflow:"hidden",opacity:0,border:0,padding:0,margin:0},yte=te({compatConfig:{MODE:3},name:"OptionList",inheritAttrs:!1,setup(e,t){let{slots:n,expose:o}=t;const r=pi(),l=Ac(),a=hte(),i=ee(),s=Lv(()=>a.treeData,[()=>r.open,()=>a.treeData],S=>S[0]),u=P(()=>{const{checkable:S,halfCheckedKeys:O,checkedKeys:x}=l;return S?{checked:x,halfChecked:O}:null});ue(()=>r.open,()=>{ot(()=>{var S;r.open&&!r.multiple&&l.checkedKeys.length&&((S=i.value)===null||S===void 0||S.scrollTo({key:l.checkedKeys[0]}))})},{immediate:!0,flush:"post"});const c=P(()=>String(r.searchValue).toLowerCase()),d=S=>c.value?String(S[l.treeNodeFilterProp]).toLowerCase().includes(c.value):!1,p=q(l.treeDefaultExpandedKeys),v=q(null);ue(()=>r.searchValue,()=>{r.searchValue&&(v.value=gte(Tt(a.treeData),Tt(a.fieldNames)))},{immediate:!0});const y=P(()=>l.treeExpandedKeys?l.treeExpandedKeys.slice():r.searchValue?v.value:p.value),m=S=>{var O;p.value=S,v.value=S,(O=l.onTreeExpand)===null||O===void 0||O.call(l,S)},h=S=>{S.preventDefault()},b=(S,O)=>{let{node:x}=O;var I,E;const{checkable:M,checkedKeys:_}=l;M&&Lp(x)||((I=a.onSelect)===null||I===void 0||I.call(a,x.key,{selected:!_.includes(x.key)}),r.multiple||(E=r.toggleOpen)===null||E===void 0||E.call(r,!1))},$=ee(null),C=P(()=>l.keyEntities[$.value]),w=S=>{$.value=S};return o({scrollTo:function(){for(var S,O,x=arguments.length,I=new Array(x),E=0;E{var O;const{which:x}=S;switch(x){case Se.UP:case Se.DOWN:case Se.LEFT:case Se.RIGHT:(O=i.value)===null||O===void 0||O.onKeydown(S);break;case Se.ENTER:{if(C.value){const{selectable:I,value:E}=C.value.node||{};I!==!1&&b(null,{node:{key:$.value},selected:!l.checkedKeys.includes(E)})}break}case Se.ESC:r.toggleOpen(!1)}},onKeyup:()=>{}}),()=>{var S;const{prefixCls:O,multiple:x,searchValue:I,open:E,notFoundContent:M=(S=n.notFoundContent)===null||S===void 0?void 0:S.call(n)}=r,{listHeight:_,listItemHeight:z,virtual:R,dropdownMatchSelectWidth:H,treeExpandAction:T}=a,{checkable:D,treeDefaultExpandAll:A,treeIcon:B,showTreeIcon:N,switcherIcon:k,treeLine:L,loadData:j,treeLoadedKeys:G,treeMotion:U,onTreeLoad:K,checkedKeys:Y}=l;if(s.value.length===0)return f("div",{role:"listbox",class:`${O}-empty`,onMousedown:h},[M]);const Q={fieldNames:a.fieldNames};return G&&(Q.loadedKeys=G),y.value&&(Q.expandedKeys=y.value),f("div",{onMousedown:h},[C.value&&E&&f("span",{style:bte,"aria-live":"assertive"},[C.value.node.value]),f(t6,F(F({ref:i,focusable:!1,prefixCls:`${O}-tree`,treeData:s.value,height:_,itemHeight:z,virtual:R!==!1&&H!==!1,multiple:x,icon:B,showIcon:N,switcherIcon:k,showLine:L,loadData:I?null:j,motion:U,activeKey:$.value,checkable:D,checkStrictly:!0,checkedKeys:u.value,selectedKeys:D?[]:Y,defaultExpandAll:A},Q),{},{onActiveChange:w,onSelect:b,onCheck:b,onExpand:m,onLoad:K,filterTreeNode:d,expandAction:T}),g(g({},n),{checkable:l.customSlots.treeCheckable}))])}}}),$te="SHOW_ALL",g6="SHOW_PARENT",Zm="SHOW_CHILD";function q$(e,t,n,o){const r=new Set(e);return t===Zm?e.filter(l=>{const a=n[l];return!(a&&a.children&&a.children.some(i=>{let{node:s}=i;return r.has(s[o.value])})&&a.children.every(i=>{let{node:s}=i;return Lp(s)||r.has(s[o.value])}))}):t===g6?e.filter(l=>{const a=n[l],i=a?a.parent:null;return!(i&&!Lp(i.node)&&r.has(i.key))}):e}const hu=()=>null;hu.inheritAttrs=!1;hu.displayName="ATreeSelectNode";hu.isTreeSelectNode=!0;const Jm=hu;var Ste=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r0&&arguments[0]!==void 0?arguments[0]:[];return Ot(n).map(o=>{var r,l,a;if(!Cte(o))return null;const i=o.children||{},s=o.key,u={};for(const[x,I]of Object.entries(o.props))u[Zr(x)]=I;const{isLeaf:c,checkable:d,selectable:p,disabled:v,disableCheckbox:y}=u,m={isLeaf:c||c===""||void 0,checkable:d||d===""||void 0,selectable:p||p===""||void 0,disabled:v||v===""||void 0,disableCheckbox:y||y===""||void 0},h=g(g({},u),m),{title:b=(r=i.title)===null||r===void 0?void 0:r.call(i,h),switcherIcon:$=(l=i.switcherIcon)===null||l===void 0?void 0:l.call(i,h)}=u,C=Ste(u,["title","switcherIcon"]),w=(a=i.default)===null||a===void 0?void 0:a.call(i),S=g(g(g({},C),{title:b,switcherIcon:$,key:s,isLeaf:c}),m),O=t(w);return O.length&&(S.children=O),S})}return t(e)}function zp(e){if(!e)return e;const t=g({},e);return"props"in t||Object.defineProperty(t,"props",{get(){return t}}),t}function wte(e,t,n,o,r,l){let a=null,i=null;function s(){function u(c){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"0",p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return c.map((v,y)=>{const m=`${d}-${y}`,h=v[l.value],b=n.includes(h),$=u(v[l.children]||[],m,b),C=f(Jm,v,{default:()=>[$.map(w=>w.node)]});if(t===h&&(a=C),b){const w={pos:m,node:C,children:$};return p||i.push(w),w}return null}).filter(v=>v)}i||(i=[],u(o),i.sort((c,d)=>{let{node:{props:{value:p}}}=c,{node:{props:{value:v}}}=d;const y=n.indexOf(p),m=n.indexOf(v);return y-m}))}Object.defineProperty(e,"triggerNode",{get(){return s(),a}}),Object.defineProperty(e,"allCheckedNodes",{get(){return s(),r?i:i.map(u=>{let{node:c}=u;return c})}})}function Ote(e,t){let{id:n,pId:o,rootPId:r}=t;const l={},a=[];return e.map(s=>{const u=g({},s),c=u[n];return l[c]=u,u.key=u.key||c,u}).forEach(s=>{const u=s[o],c=l[u];c&&(c.children=c.children||[],c.children.push(s)),(u===r||!c&&r===null)&&a.push(s)}),a}function Pte(e,t,n){const o=q();return ue([n,e,t],()=>{const r=n.value;e.value?o.value=n.value?Ote(Tt(e.value),g({id:"id",pId:"pId",rootPId:null},r!==!0?r:{})):Tt(e.value).slice():o.value=xte(Tt(t.value))},{immediate:!0,deep:!0}),o}const Ite=e=>{const t=q({valueLabels:new Map}),n=q();return ue(e,()=>{n.value=Tt(e.value)},{immediate:!0}),[P(()=>{const{valueLabels:r}=t.value,l=new Map,a=n.value.map(i=>{var s;const{value:u}=i,c=(s=i.label)!==null&&s!==void 0?s:r.get(u);return l.set(u,c),g(g({},i),{label:c})});return t.value.valueLabels=l,a})]},Tte=(e,t)=>{const n=q(new Map),o=q({});return ke(()=>{const r=t.value,l=Si(e.value,{fieldNames:r,initWrapper:a=>g(g({},a),{valueEntities:new Map}),processEntity:(a,i)=>{const s=a.node[r.value];i.valueEntities.set(s,a)}});n.value=l.valueEntities,o.value=l.keyEntities}),{valueEntities:n,keyEntities:o}},Ete=(e,t,n,o,r,l)=>{const a=q([]),i=q([]);return ke(()=>{let s=e.value.map(d=>{let{value:p}=d;return p}),u=t.value.map(d=>{let{value:p}=d;return p});const c=s.filter(d=>!o.value[d]);n.value&&({checkedKeys:s,halfCheckedKeys:u}=Wn(s,!0,o.value,r.value,l.value)),a.value=Array.from(new Set([...c,...s])),i.value=u}),[a,i]},Mte=(e,t,n)=>{let{treeNodeFilterProp:o,filterTreeNode:r,fieldNames:l}=n;return P(()=>{const{children:a}=l.value,i=t.value,s=o==null?void 0:o.value;if(!i||r.value===!1)return e.value;let u;if(typeof r.value=="function")u=r.value;else{const d=i.toUpperCase();u=(p,v)=>{const y=v[s];return String(y).toUpperCase().includes(d)}}function c(d){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const v=[];for(let y=0,m=d.length;ye.treeCheckable&&!e.treeCheckStrictly),i=P(()=>e.treeCheckable||e.treeCheckStrictly),s=P(()=>e.treeCheckStrictly||e.labelInValue),u=P(()=>i.value||e.multiple),c=P(()=>vte(e.fieldNames)),[d,p]=wt("",{value:P(()=>e.searchValue!==void 0?e.searchValue:e.inputValue),postState:ve=>ve||""}),v=ve=>{var Ce;p(ve),(Ce=e.onSearch)===null||Ce===void 0||Ce.call(e,ve)},y=Pte(Ne(e,"treeData"),Ne(e,"children"),Ne(e,"treeDataSimpleMode")),{keyEntities:m,valueEntities:h}=Tte(y,c),b=ve=>{const Ce=[],Te=[];return ve.forEach(le=>{h.value.has(le)?Te.push(le):Ce.push(le)}),{missingRawValues:Ce,existRawValues:Te}},$=Mte(y,d,{fieldNames:c,treeNodeFilterProp:Ne(e,"treeNodeFilterProp"),filterTreeNode:Ne(e,"filterTreeNode")}),C=ve=>{if(ve){if(e.treeNodeLabelProp)return ve[e.treeNodeLabelProp];const{_title:Ce}=c.value;for(let Te=0;Tepte(ve).map(Te=>_te(Te)?{value:Te}:Te),S=ve=>w(ve).map(Te=>{let{label:le}=Te;const{value:oe,halfChecked:fe}=Te;let Oe;const Ie=h.value.get(oe);return Ie&&(le=le!=null?le:C(Ie.node),Oe=Ie.node.disabled),{label:le,value:oe,halfChecked:fe,disabled:Oe}}),[O,x]=wt(e.defaultValue,{value:Ne(e,"value")}),I=P(()=>w(O.value)),E=q([]),M=q([]);ke(()=>{const ve=[],Ce=[];I.value.forEach(Te=>{Te.halfChecked?Ce.push(Te):ve.push(Te)}),E.value=ve,M.value=Ce});const _=P(()=>E.value.map(ve=>ve.value)),{maxLevel:z,levelEntities:R}=lu(m),[H,T]=Ete(E,M,a,m,z,R),D=P(()=>{const Te=q$(H.value,e.showCheckedStrategy,m.value,c.value).map(fe=>{var Oe,Ie,Ae;return(Ae=(Ie=(Oe=m.value[fe])===null||Oe===void 0?void 0:Oe.node)===null||Ie===void 0?void 0:Ie[c.value.value])!==null&&Ae!==void 0?Ae:fe}).map(fe=>{const Oe=E.value.find(Ie=>Ie.value===fe);return{value:fe,label:Oe==null?void 0:Oe.label}}),le=S(Te),oe=le[0];return!u.value&&oe&&Y$(oe.value)&&Y$(oe.label)?[]:le.map(fe=>{var Oe;return g(g({},fe),{label:(Oe=fe.label)!==null&&Oe!==void 0?Oe:fe.value})})}),[A]=Ite(D),B=(ve,Ce,Te)=>{const le=S(ve);if(x(le),e.autoClearSearchValue&&p(""),e.onChange){let oe=ve;a.value&&(oe=q$(ve,e.showCheckedStrategy,m.value,c.value).map(Re=>{const _e=h.value.get(Re);return _e?_e.node[c.value.value]:Re}));const{triggerValue:fe,selected:Oe}=Ce||{triggerValue:void 0,selected:void 0};let Ie=oe;if(e.treeCheckStrictly){const Ee=M.value.filter(Re=>!oe.includes(Re.value));Ie=[...Ie,...Ee]}const Ae=S(Ie),ge={preValue:E.value,triggerValue:fe};let he=!0;(e.treeCheckStrictly||Te==="selection"&&!Oe)&&(he=!1),wte(ge,fe,ve,y.value,he,c.value),i.value?ge.checked=Oe:ge.selected=Oe;const $e=s.value?Ae:Ae.map(Ee=>Ee.value);e.onChange(u.value?$e:$e[0],s.value?null:Ae.map(Ee=>Ee.label),ge)}},N=(ve,Ce)=>{let{selected:Te,source:le}=Ce;var oe,fe,Oe;const Ie=Tt(m.value),Ae=Tt(h.value),ge=Ie[ve],he=ge==null?void 0:ge.node,$e=(oe=he==null?void 0:he[c.value.value])!==null&&oe!==void 0?oe:ve;if(!u.value)B([$e],{selected:!0,triggerValue:$e},"option");else{let Ee=Te?[..._.value,$e]:H.value.filter(Re=>Re!==$e);if(a.value){const{missingRawValues:Re,existRawValues:_e}=b(Ee),Be=_e.map(at=>Ae.get(at).key);let Ye;Te?{checkedKeys:Ye}=Wn(Be,!0,Ie,z.value,R.value):{checkedKeys:Ye}=Wn(Be,{checked:!1,halfCheckedKeys:T.value},Ie,z.value,R.value),Ee=[...Re,...Ye.map(at=>Ie[at].node[c.value.value])]}B(Ee,{selected:Te,triggerValue:$e},le||"option")}Te||!u.value?(fe=e.onSelect)===null||fe===void 0||fe.call(e,$e,zp(he)):(Oe=e.onDeselect)===null||Oe===void 0||Oe.call(e,$e,zp(he))},k=ve=>{if(e.onDropdownVisibleChange){const Ce={};Object.defineProperty(Ce,"documentClickClose",{get(){return!1}}),e.onDropdownVisibleChange(ve,Ce)}},L=(ve,Ce)=>{const Te=ve.map(le=>le.value);if(Ce.type==="clear"){B(Te,{},"selection");return}Ce.values.length&&N(Ce.values[0].value,{selected:!1,source:"selection"})},{treeNodeFilterProp:j,loadData:G,treeLoadedKeys:U,onTreeLoad:K,treeDefaultExpandAll:Y,treeExpandedKeys:Q,treeDefaultExpandedKeys:J,onTreeExpand:Z,virtual:W,listHeight:X,listItemHeight:re,treeLine:ae,treeIcon:pe,showTreeIcon:ye,switcherIcon:de,treeMotion:me,customSlots:ie,dropdownMatchSelectWidth:se,treeExpandAction:be}=Nr(e);PA(zs({checkable:i,loadData:G,treeLoadedKeys:U,onTreeLoad:K,checkedKeys:H,halfCheckedKeys:T,treeDefaultExpandAll:Y,treeExpandedKeys:Q,treeDefaultExpandedKeys:J,onTreeExpand:Z,treeIcon:pe,treeMotion:me,showTreeIcon:ye,switcherIcon:de,treeLine:ae,treeNodeFilterProp:j,keyEntities:m,customSlots:ie})),mte(zs({virtual:W,listHeight:X,listItemHeight:re,treeData:$,fieldNames:c,onSelect:N,dropdownMatchSelectWidth:se,treeExpandAction:be}));const we=ee();return o({focus(){var ve;(ve=we.value)===null||ve===void 0||ve.focus()},blur(){var ve;(ve=we.value)===null||ve===void 0||ve.blur()},scrollTo(ve){var Ce;(Ce=we.value)===null||Ce===void 0||Ce.scrollTo(ve)}}),()=>{var ve;const Ce=tt(e,["id","prefixCls","customSlots","value","defaultValue","onChange","onSelect","onDeselect","searchValue","inputValue","onSearch","autoClearSearchValue","filterTreeNode","treeNodeFilterProp","showCheckedStrategy","treeNodeLabelProp","multiple","treeCheckable","treeCheckStrictly","labelInValue","fieldNames","treeDataSimpleMode","treeData","children","loadData","treeLoadedKeys","onTreeLoad","treeDefaultExpandAll","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","virtual","listHeight","listItemHeight","onDropdownVisibleChange","treeLine","treeIcon","showTreeIcon","switcherIcon","treeMotion"]);return f(kv,F(F(F({ref:we},n),Ce),{},{id:l,prefixCls:e.prefixCls,mode:u.value?"multiple":void 0,displayValues:A.value,onDisplayValuesChange:L,searchValue:d.value,onSearch:v,OptionList:yte,emptyOptions:!y.value.length,onDropdownVisibleChange:k,tagRender:e.tagRender||r.tagRender,dropdownMatchSelectWidth:(ve=e.dropdownMatchSelectWidth)!==null&&ve!==void 0?ve:!0}),r)}}}),Ate=e=>{const{componentCls:t,treePrefixCls:n,colorBgElevated:o}=e,r=`.${n}`;return[{[`${t}-dropdown`]:[{padding:`${e.paddingXS}px ${e.paddingXS/2}px`},r6(n,Le(e,{colorBgContainer:o})),{[r]:{borderRadius:0,"&-list-holder-inner":{alignItems:"stretch",[`${r}-treenode`]:{[`${r}-node-content-wrapper`]:{flex:"auto"}}}}},cu(`${n}-checkbox`,e),{"&-rtl":{direction:"rtl",[`${r}-switcher${r}-switcher_close`]:{[`${r}-switcher-icon svg`]:{transform:"rotate(90deg)"}}}}]}]};function Rte(e,t){return Je("TreeSelect",n=>{const o=Le(n,{treePrefixCls:t.value});return[Ate(o)]})(e)}const Q$=(e,t,n)=>n!==void 0?n:`${e}-${t}`;function Bte(){return g(g({},tt(m6(),["showTreeIcon","treeMotion","inputIcon","getInputElement","treeLine","customSlots"])),{suffixIcon:V.any,size:je(),bordered:xe(),treeLine:Xe([Boolean,Object]),replaceFields:De(),placement:je(),status:je(),popupClassName:String,dropdownClassName:String,"onUpdate:value":ce(),"onUpdate:treeExpandedKeys":ce(),"onUpdate:searchValue":ce()})}const jd=te({compatConfig:{MODE:3},name:"ATreeSelect",inheritAttrs:!1,props:rt(Bte(),{choiceTransitionName:"",listHeight:256,treeIcon:!1,listItemHeight:26,bordered:!0}),slots:Object,setup(e,t){let{attrs:n,slots:o,expose:r,emit:l}=t;e.treeData===void 0&&o.default,yt(e.multiple!==!1||!e.treeCheckable,"TreeSelect","`multiple` will always be `true` when `treeCheckable` is true"),yt(e.replaceFields===void 0,"TreeSelect","`replaceFields` is deprecated, please use fieldNames instead"),yt(!e.dropdownClassName,"TreeSelect","`dropdownClassName` is deprecated. Please use `popupClassName` instead.");const a=Lt(),i=rn.useInject(),s=P(()=>wo(i.status,e.status)),{prefixCls:u,renderEmpty:c,direction:d,virtual:p,dropdownMatchSelectWidth:v,size:y,getPopupContainer:m,getPrefixCls:h,disabled:b}=Me("select",e),{compactSize:$,compactItemClassnames:C}=pr(u,d),w=P(()=>$.value||y.value),S=Cn(),O=P(()=>{var U;return(U=b.value)!==null&&U!==void 0?U:S.value}),x=P(()=>h()),I=P(()=>e.placement!==void 0?e.placement:d.value==="rtl"?"bottomRight":"bottomLeft"),E=P(()=>Q$(x.value,Av(I.value),e.transitionName)),M=P(()=>Q$(x.value,"",e.choiceTransitionName)),_=P(()=>h("select-tree",e.prefixCls)),z=P(()=>h("tree-select",e.prefixCls)),[R,H]=og(u),[T]=Rte(z,_),D=P(()=>ne(e.popupClassName||e.dropdownClassName,`${z.value}-dropdown`,{[`${z.value}-dropdown-rtl`]:d.value==="rtl"},H.value)),A=P(()=>!!(e.treeCheckable||e.multiple)),B=P(()=>e.showArrow!==void 0?e.showArrow:e.loading||!A.value),N=ee();r({focus(){var U,K;(K=(U=N.value).focus)===null||K===void 0||K.call(U)},blur(){var U,K;(K=(U=N.value).blur)===null||K===void 0||K.call(U)}});const k=function(){for(var U=arguments.length,K=new Array(U),Y=0;Y{l("update:treeExpandedKeys",U),l("treeExpand",U)},j=U=>{l("update:searchValue",U),l("search",U)},G=U=>{l("blur",U),a.onFieldBlur()};return()=>{var U,K,Y;const{notFoundContent:Q=(U=o.notFoundContent)===null||U===void 0?void 0:U.call(o),prefixCls:J,bordered:Z,listHeight:W,listItemHeight:X,multiple:re,treeIcon:ae,treeLine:pe,showArrow:ye,switcherIcon:de=(K=o.switcherIcon)===null||K===void 0?void 0:K.call(o),fieldNames:me=e.replaceFields,id:ie=a.id.value,placeholder:se=(Y=o.placeholder)===null||Y===void 0?void 0:Y.call(o)}=e,{isFormItemInput:be,hasFeedback:we,feedbackIcon:ve}=i,{suffixIcon:Ce,removeIcon:Te,clearIcon:le}=Jv(g(g({},e),{multiple:A.value,showArrow:B.value,hasFeedback:we,feedbackIcon:ve,prefixCls:u.value}),o);let oe;Q!==void 0?oe=Q:oe=c("Select");const fe=tt(e,["suffixIcon","itemIcon","removeIcon","clearIcon","switcherIcon","bordered","status","onUpdate:value","onUpdate:treeExpandedKeys","onUpdate:searchValue"]),Oe=ne(!J&&z.value,{[`${u.value}-lg`]:w.value==="large",[`${u.value}-sm`]:w.value==="small",[`${u.value}-rtl`]:d.value==="rtl",[`${u.value}-borderless`]:!Z,[`${u.value}-in-form-item`]:be},bn(u.value,s.value,we),C.value,n.class,H.value),Ie={};return e.treeData===void 0&&o.default&&(Ie.children=bt(o.default())),R(T(f(Dte,F(F(F(F({},n),fe),{},{disabled:O.value,virtual:p.value,dropdownMatchSelectWidth:v.value,id:ie,fieldNames:me,ref:N,prefixCls:u.value,class:Oe,listHeight:W,listItemHeight:X,treeLine:!!pe,inputIcon:Ce,multiple:re,removeIcon:Te,clearIcon:le,switcherIcon:Ae=>o6(_.value,de,Ae,o.leafIcon,pe),showTreeIcon:ae,notFoundContent:oe,getPopupContainer:m==null?void 0:m.value,treeMotion:null,dropdownClassName:D.value,choiceTransitionName:M.value,onChange:k,onBlur:G,onSearch:j,onTreeExpand:L},Ie),{},{transitionName:E.value,customSlots:g(g({},o),{treeCheckable:()=>f("span",{class:`${u.value}-tree-checkbox-inner`},null)}),maxTagPlaceholder:e.maxTagPlaceholder||o.maxTagPlaceholder,placement:I.value,showArrow:we||ye,placeholder:se}),g(g({},o),{treeCheckable:()=>f("span",{class:`${u.value}-tree-checkbox-inner`},null)}))))}}}),Z$=Jm,Wle=g(jd,{TreeNode:Jm,SHOW_ALL:$te,SHOW_PARENT:g6,SHOW_CHILD:Zm,install:e=>(e.component(jd.name,jd),e.component(Z$.displayName,Z$),e)}),Vd=()=>({format:String,showNow:xe(),showHour:xe(),showMinute:xe(),showSecond:xe(),use12Hours:xe(),hourStep:Number,minuteStep:Number,secondStep:Number,hideDisabledOptions:xe(),popupClassName:String,status:je()});function Nte(e){const t=H3(e,g(g({},Vd()),{order:{type:Boolean,default:!0}})),{TimePicker:n,RangePicker:o}=t,r=te({name:"ATimePicker",inheritAttrs:!1,props:g(g(g(g({},ec()),k3()),Vd()),{addon:{type:Function}}),slots:Object,setup(a,i){let{slots:s,expose:u,emit:c,attrs:d}=i;const p=a,v=Lt();yt(!(s.addon||p.addon),"TimePicker","`addon` is deprecated. Please use `v-slot:renderExtraFooter` instead.");const y=ee();u({focus:()=>{var w;(w=y.value)===null||w===void 0||w.focus()},blur:()=>{var w;(w=y.value)===null||w===void 0||w.blur()}});const m=(w,S)=>{c("update:value",w),c("change",w,S),v.onFieldChange()},h=w=>{c("update:open",w),c("openChange",w)},b=w=>{c("focus",w)},$=w=>{c("blur",w),v.onFieldBlur()},C=w=>{c("ok",w)};return()=>{const{id:w=v.id.value}=p;return f(n,F(F(F({},d),tt(p,["onUpdate:value","onUpdate:open"])),{},{id:w,dropdownClassName:p.popupClassName,mode:void 0,ref:y,renderExtraFooter:p.addon||s.addon||p.renderExtraFooter||s.renderExtraFooter,onChange:m,onOpenChange:h,onFocus:b,onBlur:$,onOk:C}),s)}}}),l=te({name:"ATimeRangePicker",inheritAttrs:!1,props:g(g(g(g({},ec()),L3()),Vd()),{order:{type:Boolean,default:!0}}),slots:Object,setup(a,i){let{slots:s,expose:u,emit:c,attrs:d}=i;const p=a,v=ee(),y=Lt();u({focus:()=>{var O;(O=v.value)===null||O===void 0||O.focus()},blur:()=>{var O;(O=v.value)===null||O===void 0||O.blur()}});const m=(O,x)=>{c("update:value",O),c("change",O,x),y.onFieldChange()},h=O=>{c("update:open",O),c("openChange",O)},b=O=>{c("focus",O)},$=O=>{c("blur",O),y.onFieldBlur()},C=(O,x)=>{c("panelChange",O,x)},w=O=>{c("ok",O)},S=(O,x,I)=>{c("calendarChange",O,x,I)};return()=>{const{id:O=y.id.value}=p;return f(o,F(F(F({},d),tt(p,["onUpdate:open","onUpdate:value"])),{},{id:O,dropdownClassName:p.popupClassName,picker:"time",mode:void 0,ref:v,onChange:m,onOpenChange:h,onFocus:b,onBlur:$,onPanelChange:C,onOk:w,onCalendarChange:S}),s)}}});return{TimePicker:r,TimeRangePicker:l}}const{TimePicker:ts,TimeRangePicker:Wd}=Nte(Uw),Kle=g(ts,{TimePicker:ts,TimeRangePicker:Wd,install:e=>(e.component(ts.name,ts),e.component(Wd.name,Wd),e)});var Fte={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"};const kte=Fte;function J$(e){for(var t=1;t{const{sizeMarginHeadingVerticalEnd:r,fontWeightStrong:l}=o;return{marginBottom:r,color:n,fontWeight:l,fontSize:e,lineHeight:t}},jte=e=>{const t=[1,2,3,4,5],n={};return t.forEach(o=>{n[` + h${o}&, + div&-h${o}, + div&-h${o} > textarea, + h${o} + `]=Hte(e[`fontSizeHeading${o}`],e[`lineHeightHeading${o}`],e.colorTextHeading,e)}),n},Vte=e=>{const{componentCls:t}=e;return{"a&, a":g(g({},Oc(e)),{textDecoration:e.linkDecoration,"&:active, &:hover":{textDecoration:e.linkHoverDecoration},[`&[disabled], &${t}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed","&:active, &:hover":{color:e.colorTextDisabled},"&:active":{pointerEvents:"none"}}})}},Wte=()=>({code:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.2em 0.1em",fontSize:"85%",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3},kbd:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.15em 0.1em",fontSize:"90%",background:"rgba(150, 150, 150, 0.06)",border:"1px solid rgba(100, 100, 100, 0.2)",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:e_[2]},"u, ins":{textDecoration:"underline",textDecorationSkipInk:"auto"},"s, del":{textDecoration:"line-through"},strong:{fontWeight:600},"ul, ol":{marginInline:0,marginBlock:"0 1em",padding:0,li:{marginInline:"20px 0",marginBlock:0,paddingInline:"4px 0",paddingBlock:0}},ul:{listStyleType:"circle",ul:{listStyleType:"disc"}},ol:{listStyleType:"decimal"},"pre, blockquote":{margin:"1em 0"},pre:{padding:"0.4em 0.6em",whiteSpace:"pre-wrap",wordWrap:"break-word",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3,code:{display:"inline",margin:0,padding:0,fontSize:"inherit",fontFamily:"inherit",background:"transparent",border:0}},blockquote:{paddingInline:"0.6em 0",paddingBlock:0,borderInlineStart:"4px solid rgba(100, 100, 100, 0.2)",opacity:.85}}),Kte=e=>{const{componentCls:t}=e,o=bi(e).inputPaddingVertical+1;return{"&-edit-content":{position:"relative","div&":{insetInlineStart:-e.paddingSM,marginTop:-o,marginBottom:`calc(1em - ${o}px)`},[`${t}-edit-content-confirm`]:{position:"absolute",insetInlineEnd:e.marginXS+2,insetBlockEnd:e.marginXS,color:e.colorTextDescription,fontWeight:"normal",fontSize:e.fontSize,fontStyle:"normal",pointerEvents:"none"},textarea:{margin:"0!important",MozTransition:"none",height:"1em"}}}},Gte=e=>({"&-copy-success":{"\n &,\n &:hover,\n &:focus":{color:e.colorSuccess}}}),Xte=()=>({"\n a&-ellipsis,\n span&-ellipsis\n ":{display:"inline-block",maxWidth:"100%"},"&-single-line":{whiteSpace:"nowrap"},"&-ellipsis-single-line":{overflow:"hidden",textOverflow:"ellipsis","a&, span&":{verticalAlign:"bottom"}},"&-ellipsis-multiple-line":{display:"-webkit-box",overflow:"hidden",WebkitLineClamp:3,WebkitBoxOrient:"vertical"}}),Ute=e=>{const{componentCls:t,sizeMarginHeadingVerticalStart:n}=e;return{[t]:g(g(g(g(g(g(g(g(g({color:e.colorText,wordBreak:"break-word",lineHeight:e.lineHeight,[`&${t}-secondary`]:{color:e.colorTextDescription},[`&${t}-success`]:{color:e.colorSuccess},[`&${t}-warning`]:{color:e.colorWarning},[`&${t}-danger`]:{color:e.colorError,"a&:active, a&:focus":{color:e.colorErrorActive},"a&:hover":{color:e.colorErrorHover}},[`&${t}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed",userSelect:"none"},"\n div&,\n p\n ":{marginBottom:"1em"}},jte(e)),{[` + & + h1${t}, + & + h2${t}, + & + h3${t}, + & + h4${t}, + & + h5${t} + `]:{marginTop:n},"\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5":{"\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n ":{marginTop:n}}}),Wte()),Vte(e)),{[` + ${t}-expand, + ${t}-edit, + ${t}-copy + `]:g(g({},Oc(e)),{marginInlineStart:e.marginXXS})}),Kte(e)),Gte(e)),Xte()),{"&-rtl":{direction:"rtl"}})}},h6=Je("Typography",e=>[Ute(e)],{sizeMarginHeadingVerticalStart:"1.2em",sizeMarginHeadingVerticalEnd:"0.5em"}),Yte=()=>({prefixCls:String,value:String,maxlength:Number,autoSize:{type:[Boolean,Object]},onSave:Function,onCancel:Function,onEnd:Function,onChange:Function,originContent:String,direction:String,component:String}),qte=te({compatConfig:{MODE:3},name:"Editable",inheritAttrs:!1,props:Yte(),setup(e,t){let{emit:n,slots:o,attrs:r}=t;const{prefixCls:l}=Nr(e),a=vt({current:e.value||"",lastKeyCode:void 0,inComposition:!1,cancelFlag:!1});ue(()=>e.value,$=>{a.current=$});const i=ee();Ve(()=>{var $;if(i.value){const C=($=i.value)===null||$===void 0?void 0:$.resizableTextArea,w=C==null?void 0:C.textArea;w.focus();const{length:S}=w.value;w.setSelectionRange(S,S)}});function s($){i.value=$}function u($){let{target:{value:C}}=$;a.current=C.replace(/[\r\n]/g,""),n("change",a.current)}function c(){a.inComposition=!0}function d(){a.inComposition=!1}function p($){const{keyCode:C}=$;C===Se.ENTER&&$.preventDefault(),!a.inComposition&&(a.lastKeyCode=C)}function v($){const{keyCode:C,ctrlKey:w,altKey:S,metaKey:O,shiftKey:x}=$;a.lastKeyCode===C&&!a.inComposition&&!w&&!S&&!O&&!x&&(C===Se.ENTER?(m(),n("end")):C===Se.ESC&&(a.current=e.originContent,n("cancel")))}function y(){m()}function m(){n("save",a.current.trim())}const[h,b]=h6(l);return()=>{const $=ne({[`${l.value}`]:!0,[`${l.value}-edit-content`]:!0,[`${l.value}-rtl`]:e.direction==="rtl",[e.component?`${l.value}-${e.component}`:""]:!0},r.class,b.value);return h(f("div",F(F({},r),{},{class:$}),[f(eO,{ref:s,maxlength:e.maxlength,value:a.current,onChange:u,onKeydown:p,onKeyup:v,onCompositionstart:c,onCompositionend:d,onBlur:y,rows:1,autoSize:e.autoSize===void 0||e.autoSize},null),o.enterIcon?o.enterIcon({className:`${e.prefixCls}-edit-content-confirm`}):f(zte,{class:`${e.prefixCls}-edit-content-confirm`},null)]))}}}),Qte=qte,Zte=3,Jte=8;let gn;const Kd={padding:0,margin:0,display:"inline",lineHeight:"inherit"};function b6(e,t){e.setAttribute("aria-hidden","true");const n=window.getComputedStyle(t),o=uA(n);e.setAttribute("style",o),e.style.position="fixed",e.style.left="0",e.style.height="auto",e.style.minHeight="auto",e.style.maxHeight="auto",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.borderTopWidth="0",e.style.borderBottomWidth="0",e.style.top="-999999px",e.style.zIndex="-1000",e.style.textOverflow="clip",e.style.whiteSpace="normal",e.style.webkitLineClamp="none"}function ene(e){const t=document.createElement("div");b6(t,e),t.appendChild(document.createTextNode("text")),document.body.appendChild(t);const n=t.getBoundingClientRect().height;return document.body.removeChild(t),n}const tne=(e,t,n,o,r)=>{gn||(gn=document.createElement("div"),gn.setAttribute("aria-hidden","true"),document.body.appendChild(gn));const{rows:l,suffix:a=""}=t,i=ene(e),s=Math.round(i*l*100)/100;b6(gn,e);const u=G6({render(){return f("div",{style:Kd},[f("span",{style:Kd},[n,a]),f("span",{style:Kd},[o])])}});u.mount(gn);function c(){return Math.round(gn.getBoundingClientRect().height*100)/100-.1<=s}if(c())return u.unmount(),{content:n,text:gn.innerHTML,ellipsis:!1};const d=Array.prototype.slice.apply(gn.childNodes[0].childNodes[0].cloneNode(!0).childNodes).filter(C=>{let{nodeType:w,data:S}=C;return w!==Jte&&S!==""}),p=Array.prototype.slice.apply(gn.childNodes[0].childNodes[1].cloneNode(!0).childNodes);u.unmount();const v=[];gn.innerHTML="";const y=document.createElement("span");gn.appendChild(y);const m=document.createTextNode(r+a);y.appendChild(m),p.forEach(C=>{gn.appendChild(C)});function h(C){y.insertBefore(C,m)}function b(C,w){let S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,O=arguments.length>3&&arguments[3]!==void 0?arguments[3]:w.length,x=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;const I=Math.floor((S+O)/2),E=w.slice(0,I);if(C.textContent=E,S>=O-1)for(let M=O;M>=S;M-=1){const _=w.slice(0,M);if(C.textContent=_,c()||!_)return M===w.length?{finished:!1,vNode:w}:{finished:!0,vNode:_}}return c()?b(C,w,I,O,I):b(C,w,S,I,x)}function $(C){if(C.nodeType===Zte){const S=C.textContent||"",O=document.createTextNode(S);return h(O),b(O,S)}return{finished:!1,vNode:null}}return d.some(C=>{const{finished:w,vNode:S}=$(C);return S&&v.push(S),w}),{content:v,text:gn.innerHTML,ellipsis:!0}};var nne=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r({prefixCls:String,direction:String,component:String}),rne=te({name:"ATypography",inheritAttrs:!1,props:one(),setup(e,t){let{slots:n,attrs:o}=t;const{prefixCls:r,direction:l}=Me("typography",e),[a,i]=h6(r);return()=>{var s;const u=g(g({},e),o),{prefixCls:c,direction:d,component:p="article"}=u,v=nne(u,["prefixCls","direction","component"]);return a(f(p,F(F({},v),{},{class:ne(r.value,{[`${r.value}-rtl`]:l.value==="rtl"},o.class,i.value)}),{default:()=>[(s=n.default)===null||s===void 0?void 0:s.call(n)]}))}}}),_n=rne,lne=()=>{const e=document.getSelection();if(!e.rangeCount)return function(){};let t=document.activeElement;const n=[];for(let o=0;o({editable:{type:[Boolean,Object],default:void 0},copyable:{type:[Boolean,Object],default:void 0},prefixCls:String,component:String,type:String,disabled:{type:Boolean,default:void 0},ellipsis:{type:[Boolean,Object],default:void 0},code:{type:Boolean,default:void 0},mark:{type:Boolean,default:void 0},underline:{type:Boolean,default:void 0},delete:{type:Boolean,default:void 0},strong:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},content:String,"onUpdate:content":Function}),$ne=te({compatConfig:{MODE:3},name:"TypographyBase",inheritAttrs:!1,props:Pi(),setup(e,t){let{slots:n,attrs:o,emit:r}=t;const{prefixCls:l,direction:a}=Me("typography",e),i=vt({copied:!1,ellipsisText:"",ellipsisContent:null,isEllipsis:!1,expanded:!1,clientRendered:!1,expandStr:"",copyStr:"",copiedStr:"",editStr:"",copyId:void 0,rafId:void 0,prevProps:void 0,originContent:""}),s=ee(),u=ee(),c=P(()=>{const T=e.ellipsis;return T?g({rows:1,expandable:!1},typeof T=="object"?T:null):{}});Ve(()=>{i.clientRendered=!0,I()}),Ze(()=>{clearTimeout(i.copyId),He.cancel(i.rafId)}),ue([()=>c.value.rows,()=>e.content],()=>{ot(()=>{O()})},{flush:"post",deep:!0}),ke(()=>{e.content===void 0&&($t(!e.editable),$t(!e.ellipsis))});function d(){var T;return e.ellipsis||e.editable?e.content:(T=sn(s.value))===null||T===void 0?void 0:T.innerText}function p(T){const{onExpand:D}=c.value;i.expanded=!0,D==null||D(T)}function v(T){T.preventDefault(),i.originContent=e.content,S(!0)}function y(T){m(T),S(!1)}function m(T){const{onChange:D}=$.value;T!==e.content&&(r("update:content",T),D==null||D(T))}function h(){var T,D;(D=(T=$.value).onCancel)===null||D===void 0||D.call(T),S(!1)}function b(T){T.preventDefault(),T.stopPropagation();const{copyable:D}=e,A=g({},typeof D=="object"?D:null);A.text===void 0&&(A.text=d()),cne(A.text||""),i.copied=!0,ot(()=>{A.onCopy&&A.onCopy(T),i.copyId=setTimeout(()=>{i.copied=!1},3e3)})}const $=P(()=>{const T=e.editable;return T?g({},typeof T=="object"?T:null):{editing:!1}}),[C,w]=wt(!1,{value:P(()=>$.value.editing)});function S(T){const{onStart:D}=$.value;T&&D&&D(),w(T)}ue(C,T=>{var D;T||(D=u.value)===null||D===void 0||D.focus()},{flush:"post"});function O(T){if(T){const{width:D,height:A}=T;if(!D||!A)return}He.cancel(i.rafId),i.rafId=He(()=>{I()})}const x=P(()=>{const{rows:T,expandable:D,suffix:A,onEllipsis:B,tooltip:N}=c.value;return A||N||e.editable||e.copyable||D||B?!1:T===1?yne:bne}),I=()=>{const{ellipsisText:T,isEllipsis:D}=i,{rows:A,suffix:B,onEllipsis:N}=c.value;if(!A||A<0||!sn(s.value)||i.expanded||e.content===void 0||x.value)return;const{content:k,text:L,ellipsis:j}=tne(sn(s.value),{rows:A,suffix:B},e.content,H(!0),oS);(T!==L||i.isEllipsis!==j)&&(i.ellipsisText=L,i.ellipsisContent=k,i.isEllipsis=j,D!==j&&N&&N(j))};function E(T,D){let{mark:A,code:B,underline:N,delete:k,strong:L,keyboard:j}=T,G=D;function U(K,Y){if(!K)return;const Q=function(){return G}();G=f(Y,null,{default:()=>[Q]})}return U(L,"strong"),U(N,"u"),U(k,"del"),U(B,"code"),U(A,"mark"),U(j,"kbd"),G}function M(T){const{expandable:D,symbol:A}=c.value;if(!D||!T&&(i.expanded||!i.isEllipsis))return null;const B=(n.ellipsisSymbol?n.ellipsisSymbol():A)||i.expandStr;return f("a",{key:"expand",class:`${l.value}-expand`,onClick:p,"aria-label":i.expandStr},[B])}function _(){if(!e.editable)return;const{tooltip:T,triggerType:D=["icon"]}=e.editable,A=n.editableIcon?n.editableIcon():f(mne,{role:"button"},null),B=n.editableTooltip?n.editableTooltip():i.editStr,N=typeof B=="string"?B:"";return D.indexOf("icon")!==-1?f(Vn,{key:"edit",title:T===!1?"":B},{default:()=>[f(nc,{ref:u,class:`${l.value}-edit`,onClick:v,"aria-label":N},{default:()=>[A]})]}):null}function z(){if(!e.copyable)return;const{tooltip:T}=e.copyable,D=i.copied?i.copiedStr:i.copyStr,A=n.copyableTooltip?n.copyableTooltip({copied:i.copied}):D,B=typeof A=="string"?A:"",N=i.copied?f(Yv,null,null):f(fne,null,null),k=n.copyableIcon?n.copyableIcon({copied:!!i.copied}):N;return f(Vn,{key:"copy",title:T===!1?"":A},{default:()=>[f(nc,{class:[`${l.value}-copy`,{[`${l.value}-copy-success`]:i.copied}],onClick:b,"aria-label":B},{default:()=>[k]})]})}function R(){const{class:T,style:D}=o,{maxlength:A,autoSize:B,onEnd:N}=$.value;return f(Qte,{class:T,style:D,prefixCls:l.value,value:e.content,originContent:i.originContent,maxlength:A,autoSize:B,onSave:y,onChange:m,onCancel:h,onEnd:N,direction:a.value,component:e.component},{enterIcon:n.editableEnterIcon})}function H(T){return[M(T),_(),z()].filter(D=>D)}return()=>{var T;const{triggerType:D=["icon"]}=$.value,A=e.ellipsis||e.editable?e.content!==void 0?e.content:(T=n.default)===null||T===void 0?void 0:T.call(n):n.default?n.default():e.content;return C.value?R():f(Ql,{componentName:"Text",children:B=>{const N=g(g({},e),o),{type:k,disabled:L,content:j,class:G,style:U}=N,K=hne(N,["type","disabled","content","class","style"]),{rows:Y,suffix:Q,tooltip:J}=c.value,{edit:Z,copy:W,copied:X,expand:re}=B;i.editStr=Z,i.copyStr=W,i.copiedStr=X,i.expandStr=re;const ae=tt(K,["prefixCls","editable","copyable","ellipsis","mark","code","delete","underline","strong","keyboard","onUpdate:content"]),pe=x.value,ye=Y===1&&pe,de=Y&&Y>1&&pe;let me=A,ie;if(Y&&i.isEllipsis&&!i.expanded&&!pe){const{title:we}=K;let ve=we||"";!we&&(typeof A=="string"||typeof A=="number")&&(ve=String(A)),ve=ve==null?void 0:ve.slice(String(i.ellipsisContent||"").length),me=f(qe,null,[Tt(i.ellipsisContent),f("span",{title:ve,"aria-hidden":"true"},[oS]),Q])}else me=f(qe,null,[A,Q]);me=E(e,me);const se=J&&Y&&i.isEllipsis&&!i.expanded&&!pe,be=n.ellipsisTooltip?n.ellipsisTooltip():J;return f(io,{onResize:O,disabled:!Y},{default:()=>[f(_n,F({ref:s,class:[{[`${l.value}-${k}`]:k,[`${l.value}-disabled`]:L,[`${l.value}-ellipsis`]:Y,[`${l.value}-single-line`]:Y===1&&!i.isEllipsis,[`${l.value}-ellipsis-single-line`]:ye,[`${l.value}-ellipsis-multiple-line`]:de},G],style:g(g({},U),{WebkitLineClamp:de?Y:void 0}),"aria-label":ie,direction:a.value,onClick:D.indexOf("text")!==-1?v:()=>{}},ae),{default:()=>[se?f(Vn,{title:J===!0?A:be},{default:()=>[f("span",null,[me])]}):me,H()]})]})}},null)}}}),Ii=$ne;var Sne=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rtt(g(g({},Pi()),{ellipsis:{type:Boolean,default:void 0}}),["component"]),bu=(e,t)=>{let{slots:n,attrs:o}=t;const r=g(g({},e),o),{ellipsis:l,rel:a}=r,i=Sne(r,["ellipsis","rel"]);$t();const s=g(g({},i),{rel:a===void 0&&i.target==="_blank"?"noopener noreferrer":a,ellipsis:!!l,component:"a"});return delete s.navigate,f(Ii,s,n)};bu.displayName="ATypographyLink";bu.inheritAttrs=!1;bu.props=Cne();const $6=bu,xne=()=>tt(Pi(),["component"]),yu=(e,t)=>{let{slots:n,attrs:o}=t;const r=g(g(g({},e),{component:"div"}),o);return f(Ii,r,n)};yu.displayName="ATypographyParagraph";yu.inheritAttrs=!1;yu.props=xne();const S6=yu,wne=()=>g(g({},tt(Pi(),["component"])),{ellipsis:{type:[Boolean,Object],default:void 0}}),$u=(e,t)=>{let{slots:n,attrs:o}=t;const{ellipsis:r}=e;$t();const l=g(g(g({},e),{ellipsis:r&&typeof r=="object"?tt(r,["expandable","rows"]):r,component:"span"}),o);return f(Ii,l,n)};$u.displayName="ATypographyText";$u.inheritAttrs=!1;$u.props=wne();const C6=$u;var One=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rg(g({},tt(Pi(),["component","strong"])),{level:Number}),Su=(e,t)=>{let{slots:n,attrs:o}=t;const{level:r=1}=e,l=One(e,["level"]);let a;Pne.includes(r)?a=`h${r}`:($t(),a="h1");const i=g(g(g({},l),{component:a}),o);return f(Ii,i,n)};Su.displayName="ATypographyTitle";Su.inheritAttrs=!1;Su.props=Ine();const x6=Su;_n.Text=C6;_n.Title=x6;_n.Paragraph=S6;_n.Link=$6;_n.Base=Ii;_n.install=function(e){return e.component(_n.name,_n),e.component(_n.Text.displayName,C6),e.component(_n.Title.displayName,x6),e.component(_n.Paragraph.displayName,S6),e.component(_n.Link.displayName,$6),e};function Tne(e,t){const n=`cannot ${e.method} ${e.action} ${t.status}'`,o=new Error(n);return o.status=t.status,o.method=e.method,o.url=e.action,o}function rS(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(n){return t}}function Ene(e){const t=new XMLHttpRequest;e.onProgress&&t.upload&&(t.upload.onprogress=function(l){l.total>0&&(l.percent=l.loaded/l.total*100),e.onProgress(l)});const n=new FormData;e.data&&Object.keys(e.data).forEach(r=>{const l=e.data[r];if(Array.isArray(l)){l.forEach(a=>{n.append(`${r}[]`,a)});return}n.append(r,l)}),e.file instanceof Blob?n.append(e.filename,e.file,e.file.name):n.append(e.filename,e.file),t.onerror=function(l){e.onError(l)},t.onload=function(){return t.status<200||t.status>=300?e.onError(Tne(e,t),rS(t)):e.onSuccess(rS(t),t)},t.open(e.method,e.action,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const o=e.headers||{};return o["X-Requested-With"]!==null&&t.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(o).forEach(r=>{o[r]!==null&&t.setRequestHeader(r,o[r])}),t.send(n),{abort(){t.abort()}}}const Mne=+new Date;let _ne=0;function Gd(){return`vc-upload-${Mne}-${++_ne}`}const Xd=(e,t)=>{if(e&&t){const n=Array.isArray(t)?t:t.split(","),o=e.name||"",r=e.type||"",l=r.replace(/\/.*$/,"");return n.some(a=>{const i=a.trim();if(/^\*(\/\*)?$/.test(a))return!0;if(i.charAt(0)==="."){const s=o.toLowerCase(),u=i.toLowerCase();let c=[u];return(u===".jpg"||u===".jpeg")&&(c=[".jpg",".jpeg"]),c.some(d=>s.endsWith(d))}return/\/\*$/.test(i)?l===i.replace(/\/.*$/,""):!!(r===i||/^\w+$/.test(i))})}return!0};function Dne(e,t){const n=e.createReader();let o=[];function r(){n.readEntries(l=>{const a=Array.prototype.slice.apply(l);o=o.concat(a),!a.length?t(o):r()})}r()}const Ane=(e,t,n)=>{const o=(r,l)=>{r.path=l||"",r.isFile?r.file(a=>{n(a)&&(r.fullPath&&!a.webkitRelativePath&&(Object.defineProperties(a,{webkitRelativePath:{writable:!0}}),a.webkitRelativePath=r.fullPath.replace(/^\//,""),Object.defineProperties(a,{webkitRelativePath:{writable:!1}})),t([a]))}):r.isDirectory&&Dne(r,a=>{a.forEach(i=>{o(i,`${l}${r.name}/`)})})};e.forEach(r=>{o(r.webkitGetAsEntry())})},Rne=Ane,w6=()=>({capture:[Boolean,String],multipart:{type:Boolean,default:void 0},name:String,disabled:{type:Boolean,default:void 0},componentTag:String,action:[String,Function],method:String,directory:{type:Boolean,default:void 0},data:[Object,Function],headers:Object,accept:String,multiple:{type:Boolean,default:void 0},onBatchStart:Function,onReject:Function,onStart:Function,onError:Function,onSuccess:Function,onProgress:Function,beforeUpload:Function,customRequest:Function,withCredentials:{type:Boolean,default:void 0},openFileDialogOnClick:{type:Boolean,default:void 0},prefixCls:String,id:String,onMouseenter:Function,onMouseleave:Function,onClick:Function});var Bne=globalThis&&globalThis.__awaiter||function(e,t,n,o){function r(l){return l instanceof n?l:new n(function(a){a(l)})}return new(n||(n=Promise))(function(l,a){function i(c){try{u(o.next(c))}catch(d){a(d)}}function s(c){try{u(o.throw(c))}catch(d){a(d)}}function u(c){c.done?l(c.value):r(c.value).then(i,s)}u((o=o.apply(e,t||[])).next())})},Nne=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);rBne(this,void 0,void 0,function*(){const{beforeUpload:w}=e;let S=$;if(w){try{S=yield w($,C)}catch(R){S=!1}if(S===!1)return{origin:$,parsedFile:null,action:null,data:null}}const{action:O}=e;let x;typeof O=="function"?x=yield O($):x=O;const{data:I}=e;let E;typeof I=="function"?E=yield I($):E=I;const M=(typeof S=="object"||typeof S=="string")&&S?S:$;let _;M instanceof File?_=M:_=new File([M],$.name,{type:$.type});const z=_;return z.uid=$.uid,{origin:$,data:E,parsedFile:z,action:x}}),c=$=>{let{data:C,origin:w,action:S,parsedFile:O}=$;if(!s)return;const{onStart:x,customRequest:I,name:E,headers:M,withCredentials:_,method:z}=e,{uid:R}=w,H=I||Ene,T={action:S,filename:E,data:C,file:O,headers:M,withCredentials:_,method:z||"post",onProgress:D=>{const{onProgress:A}=e;A==null||A(D,O)},onSuccess:(D,A)=>{const{onSuccess:B}=e;B==null||B(D,O,A),delete a[R]},onError:(D,A)=>{const{onError:B}=e;B==null||B(D,A,O),delete a[R]}};x(w),a[R]=H(T)},d=()=>{l.value=Gd()},p=$=>{if($){const C=$.uid?$.uid:$;a[C]&&a[C].abort&&a[C].abort(),delete a[C]}else Object.keys(a).forEach(C=>{a[C]&&a[C].abort&&a[C].abort(),delete a[C]})};Ve(()=>{s=!0}),Ze(()=>{s=!1,p()});const v=$=>{const C=[...$],w=C.map(S=>(S.uid=Gd(),u(S,C)));Promise.all(w).then(S=>{const{onBatchStart:O}=e;O==null||O(S.map(x=>{let{origin:I,parsedFile:E}=x;return{file:I,parsedFile:E}})),S.filter(x=>x.parsedFile!==null).forEach(x=>{c(x)})})},y=$=>{const{accept:C,directory:w}=e,{files:S}=$.target,O=[...S].filter(x=>!w||Xd(x,C));v(O),d()},m=$=>{const C=i.value;if(!C)return;const{onClick:w}=e;C.click(),w&&w($)},h=$=>{$.key==="Enter"&&m($)},b=$=>{const{multiple:C}=e;if($.preventDefault(),$.type!=="dragover")if(e.directory)Rne(Array.prototype.slice.call($.dataTransfer.items),v,w=>Xd(w,e.accept));else{const w=AE(Array.prototype.slice.call($.dataTransfer.files),x=>Xd(x,e.accept));let S=w[0];const O=w[1];C===!1&&(S=S.slice(0,1)),v(S),O.length&&e.onReject&&e.onReject(O)}};return r({abort:p}),()=>{var $;const{componentTag:C,prefixCls:w,disabled:S,id:O,multiple:x,accept:I,capture:E,directory:M,openFileDialogOnClick:_,onMouseenter:z,onMouseleave:R}=e,H=Nne(e,["componentTag","prefixCls","disabled","id","multiple","accept","capture","directory","openFileDialogOnClick","onMouseenter","onMouseleave"]),T={[w]:!0,[`${w}-disabled`]:S,[o.class]:!!o.class},D=M?{directory:"directory",webkitdirectory:"webkitdirectory"}:{};return f(C,F(F({},S?{}:{onClick:_?m:()=>{},onKeydown:_?h:()=>{},onMouseenter:z,onMouseleave:R,onDrop:b,onDragover:b,tabindex:"0"}),{},{class:T,role:"button",style:o.style}),{default:()=>[f("input",F(F(F({},fr(H,{aria:!0,data:!0})),{},{id:O,type:"file",ref:i,onClick:B=>B.stopPropagation(),onCancel:B=>B.stopPropagation(),key:l.value,style:{display:"none"},accept:I},D),{},{multiple:x,onChange:y},E!=null?{capture:E}:{}),null),($=n.default)===null||$===void 0?void 0:$.call(n)]})}}});function Ud(){}const lS=te({compatConfig:{MODE:3},name:"Upload",inheritAttrs:!1,props:rt(w6(),{componentTag:"span",prefixCls:"rc-upload",data:{},headers:{},name:"file",multipart:!1,onStart:Ud,onError:Ud,onSuccess:Ud,multiple:!1,beforeUpload:null,customRequest:null,withCredentials:!1,openFileDialogOnClick:!0}),setup(e,t){let{slots:n,attrs:o,expose:r}=t;const l=ee();return r({abort:i=>{var s;(s=l.value)===null||s===void 0||s.abort(i)}}),()=>f(Fne,F(F(F({},e),o),{},{ref:l}),n)}});var kne={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"}}]},name:"paper-clip",theme:"outlined"};const Lne=kne;function aS(e){for(var t=1;t{let{uid:l}=r;return l===e.uid});return o===-1?n.push(e):n[o]=e,n}function Yd(e,t){const n=e.uid!==void 0?"uid":"name";return t.filter(o=>o[n]===e[n])[0]}function Qne(e,t){const n=e.uid!==void 0?"uid":"name",o=t.filter(r=>r[n]!==e[n]);return o.length===t.length?null:o}const Zne=function(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").split("/"),o=t[t.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(o)||[""])[0]},P6=e=>e.indexOf("image/")===0,Jne=e=>{if(e.type&&!e.thumbUrl)return P6(e.type);const t=e.thumbUrl||e.url||"",n=Zne(t);return/^data:image\//.test(t)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n)?!0:!(/^data:/.test(t)||n)},Zo=200;function eoe(e){return new Promise(t=>{if(!e.type||!P6(e.type)){t("");return}const n=document.createElement("canvas");n.width=Zo,n.height=Zo,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${Zo}px; height: ${Zo}px; z-index: 9999; display: none;`,document.body.appendChild(n);const o=n.getContext("2d"),r=new Image;if(r.onload=()=>{const{width:l,height:a}=r;let i=Zo,s=Zo,u=0,c=0;l>a?(s=a*(Zo/l),c=-(s-i)/2):(i=l*(Zo/a),u=-(i-s)/2),o.drawImage(r,u,c,i,s);const d=n.toDataURL();document.body.removeChild(n),t(d)},r.crossOrigin="anonymous",e.type.startsWith("image/svg+xml")){const l=new FileReader;l.addEventListener("load",()=>{l.result&&(r.src=l.result)}),l.readAsDataURL(e)}else r.src=window.URL.createObjectURL(e)})}var toe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"};const I6=toe;function cS(e){for(var t=1;t({prefixCls:String,locale:De(void 0),file:De(),items:st(),listType:je(),isImgUrl:ce(),showRemoveIcon:xe(),showDownloadIcon:xe(),showPreviewIcon:xe(),removeIcon:ce(),downloadIcon:ce(),previewIcon:ce(),iconRender:ce(),actionIconRender:ce(),itemRender:ce(),onPreview:ce(),onClose:ce(),onDownload:ce(),progress:De()}),loe=te({compatConfig:{MODE:3},name:"ListItem",inheritAttrs:!1,props:roe(),setup(e,t){let{slots:n,attrs:o}=t;var r;const l=q(!1),a=q();Ve(()=>{a.value=setTimeout(()=>{l.value=!0},300)}),Ze(()=>{clearTimeout(a.value)});const i=q((r=e.file)===null||r===void 0?void 0:r.status);ue(()=>{var c;return(c=e.file)===null||c===void 0?void 0:c.status},c=>{c!=="removed"&&(i.value=c)});const{rootPrefixCls:s}=Me("upload",e),u=P(()=>Yn(`${s.value}-fade`));return()=>{var c,d;const{prefixCls:p,locale:v,listType:y,file:m,items:h,progress:b,iconRender:$=n.iconRender,actionIconRender:C=n.actionIconRender,itemRender:w=n.itemRender,isImgUrl:S,showPreviewIcon:O,showRemoveIcon:x,showDownloadIcon:I,previewIcon:E=n.previewIcon,removeIcon:M=n.removeIcon,downloadIcon:_=n.downloadIcon,onPreview:z,onDownload:R,onClose:H}=e,{class:T,style:D}=o,A=$({file:m});let B=f("div",{class:`${p}-text-icon`},[A]);if(y==="picture"||y==="picture-card")if(i.value==="uploading"||!m.thumbUrl&&!m.url){const ae={[`${p}-list-item-thumbnail`]:!0,[`${p}-list-item-file`]:i.value!=="uploading"};B=f("div",{class:ae},[A])}else{const ae=S!=null&&S(m)?f("img",{src:m.thumbUrl||m.url,alt:m.name,class:`${p}-list-item-image`,crossorigin:m.crossOrigin},null):A,pe={[`${p}-list-item-thumbnail`]:!0,[`${p}-list-item-file`]:S&&!S(m)};B=f("a",{class:pe,onClick:ye=>z(m,ye),href:m.url||m.thumbUrl,target:"_blank",rel:"noopener noreferrer"},[ae])}const N={[`${p}-list-item`]:!0,[`${p}-list-item-${i.value}`]:!0},k=typeof m.linkProps=="string"?JSON.parse(m.linkProps):m.linkProps,L=x?C({customIcon:M?M({file:m}):f(p6,null,null),callback:()=>H(m),prefixCls:p,title:v.removeFile}):null,j=I&&i.value==="done"?C({customIcon:_?_({file:m}):f(ooe,null,null),callback:()=>R(m),prefixCls:p,title:v.downloadFile}):null,G=y!=="picture-card"&&f("span",{key:"download-delete",class:[`${p}-list-item-actions`,{picture:y==="picture"}]},[j,L]),U=`${p}-list-item-name`,K=m.url?[f("a",F(F({key:"view",target:"_blank",rel:"noopener noreferrer",class:U,title:m.name},k),{},{href:m.url,onClick:ae=>z(m,ae)}),[m.name]),G]:[f("span",{key:"view",class:U,onClick:ae=>z(m,ae),title:m.name},[m.name]),G],Y={pointerEvents:"none",opacity:.5},Q=O?f("a",{href:m.url||m.thumbUrl,target:"_blank",rel:"noopener noreferrer",style:m.url||m.thumbUrl?void 0:Y,onClick:ae=>z(m,ae),title:v.previewFile},[E?E({file:m}):f(vm,null,null)]):null,J=y==="picture-card"&&i.value!=="uploading"&&f("span",{class:`${p}-list-item-actions`},[Q,i.value==="done"&&j,L]),Z=f("div",{class:N},[B,K,J,l.value&&f(Jt,u.value,{default:()=>[cn(f("div",{class:`${p}-list-item-progress`},["percent"in m?f(zq,F(F({},b),{},{type:"line",percent:m.percent}),null):null]),[[yn,i.value==="uploading"]])]})]),W={[`${p}-list-item-container`]:!0,[`${T}`]:!!T},X=m.response&&typeof m.response=="string"?m.response:((c=m.error)===null||c===void 0?void 0:c.statusText)||((d=m.error)===null||d===void 0?void 0:d.message)||v.uploadError,re=i.value==="error"?f(Vn,{title:X,getPopupContainer:ae=>ae.parentNode},{default:()=>[Z]}):Z;return f("div",{class:W,style:D},[w?w({originNode:re,file:m,fileList:h,actions:{download:R.bind(null,m),preview:z.bind(null,m),remove:H.bind(null,m)}}):re])}}}),aoe=(e,t)=>{let{slots:n}=t;var o;return Ot((o=n.default)===null||o===void 0?void 0:o.call(n))[0]},ioe=te({compatConfig:{MODE:3},name:"AUploadList",props:rt(qne(),{listType:"text",progress:{strokeWidth:2,showInfo:!1},showRemoveIcon:!0,showDownloadIcon:!1,showPreviewIcon:!0,previewFile:eoe,isImageUrl:Jne,items:[],appendActionVisible:!0}),setup(e,t){let{slots:n,expose:o}=t;const r=q(!1);Ve(()=>{r.value==!0});const l=q([]);ue(()=>e.items,function(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];l.value=m.slice()},{immediate:!0,deep:!0}),ke(()=>{if(e.listType!=="picture"&&e.listType!=="picture-card")return;let m=!1;(e.items||[]).forEach((h,b)=>{typeof document=="undefined"||typeof window=="undefined"||!window.FileReader||!window.File||!(h.originFileObj instanceof File||h.originFileObj instanceof Blob)||h.thumbUrl!==void 0||(h.thumbUrl="",e.previewFile&&e.previewFile(h.originFileObj).then($=>{const C=$||"";C!==h.thumbUrl&&(l.value[b].thumbUrl=C,m=!0)}))}),m&&tC(l)});const a=(m,h)=>{if(e.onPreview)return h==null||h.preventDefault(),e.onPreview(m)},i=m=>{typeof e.onDownload=="function"?e.onDownload(m):m.url&&window.open(m.url)},s=m=>{var h;(h=e.onRemove)===null||h===void 0||h.call(e,m)},u=m=>{let{file:h}=m;const b=e.iconRender||n.iconRender;if(b)return b({file:h,listType:e.listType});const $=h.status==="uploading",C=e.isImageUrl&&e.isImageUrl(h)?f(Kne,null,null):f(Yne,null,null);let w=$?f(qn,null,null):f(Hne,null,null);return e.listType==="picture"?w=$?f(qn,null,null):C:e.listType==="picture-card"&&(w=$?e.locale.uploading:C),w},c=m=>{const{customIcon:h,callback:b,prefixCls:$,title:C}=m,w={type:"text",size:"small",title:C,onClick:()=>{b()},class:`${$}-list-item-action`};return Rt(h)?f(Wt,w,{icon:()=>h}):f(Wt,w,{default:()=>[f("span",null,[h])]})};o({handlePreview:a,handleDownload:i});const{prefixCls:d,rootPrefixCls:p}=Me("upload",e),v=P(()=>({[`${d.value}-list`]:!0,[`${d.value}-list-${e.listType}`]:!0})),y=P(()=>{const m=g({},Gc(`${p.value}-motion-collapse`));delete m.onAfterAppear,delete m.onAfterEnter,delete m.onAfterLeave;const h=g(g({},Mc(`${d.value}-${e.listType==="picture-card"?"animate-inline":"animate"}`)),{class:v.value,appear:r.value});return e.listType!=="picture-card"?g(g({},m),h):h});return()=>{const{listType:m,locale:h,isImageUrl:b,showPreviewIcon:$,showRemoveIcon:C,showDownloadIcon:w,removeIcon:S,previewIcon:O,downloadIcon:x,progress:I,appendAction:E,itemRender:M,appendActionVisible:_}=e,z=E==null?void 0:E(),R=l.value;return f(ac,F(F({},y.value),{},{tag:"div"}),{default:()=>[R.map(H=>{const{uid:T}=H;return f(loe,{key:T,locale:h,prefixCls:d.value,file:H,items:R,progress:I,listType:m,isImgUrl:b,showPreviewIcon:$,showRemoveIcon:C,showDownloadIcon:w,onPreview:a,onDownload:i,onClose:s,removeIcon:S,previewIcon:O,downloadIcon:x,itemRender:M},g(g({},n),{iconRender:u,actionIconRender:c}))}),E?cn(f(aoe,{key:"__ant_upload_appendAction"},{default:()=>z}),[[yn,!!_]]):null]})}}}),soe=e=>{const{componentCls:t,iconCls:n}=e;return{[`${t}-wrapper`]:{[`${t}-drag`]:{position:"relative",width:"100%",height:"100%",textAlign:"center",background:e.colorFillAlter,border:`${e.lineWidth}px dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:"pointer",transition:`border-color ${e.motionDurationSlow}`,[t]:{padding:`${e.padding}px 0`},[`${t}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none"},[`${t}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimaryHover},[`p${t}-drag-icon`]:{marginBottom:e.margin,[n]:{color:e.colorPrimary,fontSize:e.uploadThumbnailSize}},[`p${t}-text`]:{margin:`0 0 ${e.marginXXS}px`,color:e.colorTextHeading,fontSize:e.fontSizeLG},[`p${t}-hint`]:{color:e.colorTextDescription,fontSize:e.fontSize},[`&${t}-disabled`]:{cursor:"not-allowed",[`p${t}-drag-icon ${n}, + p${t}-text, + p${t}-hint + `]:{color:e.colorTextDisabled}}}}}},coe=soe,uoe=e=>{const{componentCls:t,antCls:n,iconCls:o,fontSize:r,lineHeight:l}=e,a=`${t}-list-item`,i=`${a}-actions`,s=`${a}-action`,u=Math.round(r*l);return{[`${t}-wrapper`]:{[`${t}-list`]:g(g({},so()),{lineHeight:e.lineHeight,[a]:{position:"relative",height:e.lineHeight*r,marginTop:e.marginXS,fontSize:r,display:"flex",alignItems:"center",transition:`background-color ${e.motionDurationSlow}`,"&:hover":{backgroundColor:e.controlItemBgHover},[`${a}-name`]:g(g({},Xt),{padding:`0 ${e.paddingXS}px`,lineHeight:l,flex:"auto",transition:`all ${e.motionDurationSlow}`}),[i]:{[s]:{opacity:0},[`${s}${n}-btn-sm`]:{height:u,border:0,lineHeight:1,"> span":{transform:"scale(1)"}},[` + ${s}:focus, + &.picture ${s} + `]:{opacity:1},[o]:{color:e.colorTextDescription,transition:`all ${e.motionDurationSlow}`},[`&:hover ${o}`]:{color:e.colorText}},[`${t}-icon ${o}`]:{color:e.colorTextDescription,fontSize:r},[`${a}-progress`]:{position:"absolute",bottom:-e.uploadProgressOffset,width:"100%",paddingInlineStart:r+e.paddingXS,fontSize:r,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${a}:hover ${s}`]:{opacity:1,color:e.colorText},[`${a}-error`]:{color:e.colorError,[`${a}-name, ${t}-icon ${o}`]:{color:e.colorError},[i]:{[`${o}, ${o}:hover`]:{color:e.colorError},[s]:{opacity:1}}},[`${t}-list-item-container`]:{transition:`opacity ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},doe=uoe,uS=new Ue("uploadAnimateInlineIn",{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),dS=new Ue("uploadAnimateInlineOut",{to:{width:0,height:0,margin:0,padding:0,opacity:0}}),foe=e=>{const{componentCls:t}=e,n=`${t}-animate-inline`;return[{[`${t}-wrapper`]:{[`${n}-appear, ${n}-enter, ${n}-leave`]:{animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseInOutCirc,animationFillMode:"forwards"},[`${n}-appear, ${n}-enter`]:{animationName:uS},[`${n}-leave`]:{animationName:dS}}},uS,dS]},poe=foe,voe=e=>{const{componentCls:t,iconCls:n,uploadThumbnailSize:o,uploadProgressOffset:r}=e,l=`${t}-list`,a=`${l}-item`;return{[`${t}-wrapper`]:{[`${l}${l}-picture, ${l}${l}-picture-card`]:{[a]:{position:"relative",height:o+e.lineWidth*2+e.paddingXS*2,padding:e.paddingXS,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusLG,"&:hover":{background:"transparent"},[`${a}-thumbnail`]:g(g({},Xt),{width:o,height:o,lineHeight:`${o+e.paddingSM}px`,textAlign:"center",flex:"none",[n]:{fontSize:e.fontSizeHeading2,color:e.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${a}-progress`]:{bottom:r,width:`calc(100% - ${e.paddingSM*2}px)`,marginTop:0,paddingInlineStart:o+e.paddingXS}},[`${a}-error`]:{borderColor:e.colorError,[`${a}-thumbnail ${n}`]:{"svg path[fill='#e6f7ff']":{fill:e.colorErrorBg},"svg path[fill='#1890ff']":{fill:e.colorError}}},[`${a}-uploading`]:{borderStyle:"dashed",[`${a}-name`]:{marginBottom:r}}}}}},goe=e=>{const{componentCls:t,iconCls:n,fontSizeLG:o,colorTextLightSolid:r}=e,l=`${t}-list`,a=`${l}-item`,i=e.uploadPicCardSize;return{[`${t}-wrapper${t}-picture-card-wrapper`]:g(g({},so()),{display:"inline-block",width:"100%",[`${t}${t}-select`]:{width:i,height:i,marginInlineEnd:e.marginXS,marginBottom:e.marginXS,textAlign:"center",verticalAlign:"top",backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:"pointer",transition:`border-color ${e.motionDurationSlow}`,[`> ${t}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimary}},[`${l}${l}-picture-card`]:{[`${l}-item-container`]:{display:"inline-block",width:i,height:i,marginBlock:`0 ${e.marginXS}px`,marginInline:`0 ${e.marginXS}px`,verticalAlign:"top"},"&::after":{display:"none"},[a]:{height:"100%",margin:0,"&::before":{position:"absolute",zIndex:1,width:`calc(100% - ${e.paddingXS*2}px)`,height:`calc(100% - ${e.paddingXS*2}px)`,backgroundColor:e.colorBgMask,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'" "'}},[`${a}:hover`]:{[`&::before, ${a}-actions`]:{opacity:1}},[`${a}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${e.motionDurationSlow}`,[`${n}-eye, ${n}-download, ${n}-delete`]:{zIndex:10,width:o,margin:`0 ${e.marginXXS}px`,fontSize:o,cursor:"pointer",transition:`all ${e.motionDurationSlow}`}},[`${a}-actions, ${a}-actions:hover`]:{[`${n}-eye, ${n}-download, ${n}-delete`]:{color:new ut(r).setAlpha(.65).toRgbString(),"&:hover":{color:r}}},[`${a}-thumbnail, ${a}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${a}-name`]:{display:"none",textAlign:"center"},[`${a}-file + ${a}-name`]:{position:"absolute",bottom:e.margin,display:"block",width:`calc(100% - ${e.paddingXS*2}px)`},[`${a}-uploading`]:{[`&${a}`]:{backgroundColor:e.colorFillAlter},[`&::before, ${n}-eye, ${n}-download, ${n}-delete`]:{display:"none"}},[`${a}-progress`]:{bottom:e.marginXL,width:`calc(100% - ${e.paddingXS*2}px)`,paddingInlineStart:0}}})}},moe=e=>{const{componentCls:t}=e;return{[`${t}-rtl`]:{direction:"rtl"}}},hoe=moe,boe=e=>{const{componentCls:t,colorTextDisabled:n}=e;return{[`${t}-wrapper`]:g(g({},Qe(e)),{[t]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${t}-select`]:{display:"inline-block"},[`${t}-disabled`]:{color:n,cursor:"not-allowed"}})}},yoe=Je("Upload",e=>{const{fontSizeHeading3:t,fontSize:n,lineHeight:o,lineWidth:r,controlHeightLG:l}=e,a=Math.round(n*o),i=Le(e,{uploadThumbnailSize:t*2,uploadProgressOffset:a/2+r,uploadPicCardSize:l*2.55});return[boe(i),coe(i),voe(i),goe(i),doe(i),poe(i),hoe(i),jc(i)]});var $oe=globalThis&&globalThis.__awaiter||function(e,t,n,o){function r(l){return l instanceof n?l:new n(function(a){a(l)})}return new(n||(n=Promise))(function(l,a){function i(c){try{u(o.next(c))}catch(d){a(d)}}function s(c){try{u(o.throw(c))}catch(d){a(d)}}function u(c){c.done?l(c.value):r(c.value).then(i,s)}u((o=o.apply(e,t||[])).next())})},Soe=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{var _;return(_=s.value)!==null&&_!==void 0?_:d.value}),[v,y]=wt(e.defaultFileList||[],{value:Ne(e,"fileList"),postState:_=>{const z=Date.now();return(_!=null?_:[]).map((R,H)=>(!R.uid&&!Object.isFrozen(R)&&(R.uid=`__AUTO__${z}_${H}__`),R))}}),m=ee("drop"),h=ee(null);Ve(()=>{yt(e.fileList!==void 0||o.value===void 0,"Upload","`value` is not a valid prop, do you mean `fileList`?"),yt(e.transformFile===void 0,"Upload","`transformFile` is deprecated. Please use `beforeUpload` directly."),yt(e.remove===void 0,"Upload","`remove` props is deprecated. Please use `remove` event.")});const b=(_,z,R)=>{var H,T;let D=[...z];e.maxCount===1?D=D.slice(-1):e.maxCount&&(D=D.slice(0,e.maxCount)),y(D);const A={file:_,fileList:D};R&&(A.event=R),(H=e["onUpdate:fileList"])===null||H===void 0||H.call(e,A.fileList),(T=e.onChange)===null||T===void 0||T.call(e,A),l.onFieldChange()},$=(_,z)=>$oe(this,void 0,void 0,function*(){const{beforeUpload:R,transformFile:H}=e;let T=_;if(R){const D=yield R(_,z);if(D===!1)return!1;if(delete _[wa],D===wa)return Object.defineProperty(_,wa,{value:!0,configurable:!0}),!1;typeof D=="object"&&D&&(T=D)}return H&&(T=yield H(T)),T}),C=_=>{const z=_.filter(T=>!T.file[wa]);if(!z.length)return;const R=z.map(T=>ns(T.file));let H=[...v.value];R.forEach(T=>{H=os(T,H)}),R.forEach((T,D)=>{let A=T;if(z[D].parsedFile)T.status="uploading";else{const{originFileObj:B}=T;let N;try{N=new File([B],B.name,{type:B.type})}catch(k){N=new Blob([B],{type:B.type}),N.name=B.name,N.lastModifiedDate=new Date,N.lastModified=new Date().getTime()}N.uid=T.uid,A=N}b(A,H)})},w=(_,z,R)=>{try{typeof _=="string"&&(_=JSON.parse(_))}catch(D){}if(!Yd(z,v.value))return;const H=ns(z);H.status="done",H.percent=100,H.response=_,H.xhr=R;const T=os(H,v.value);b(H,T)},S=(_,z)=>{if(!Yd(z,v.value))return;const R=ns(z);R.status="uploading",R.percent=_.percent;const H=os(R,v.value);b(R,H,_)},O=(_,z,R)=>{if(!Yd(R,v.value))return;const H=ns(R);H.error=_,H.response=z,H.status="error";const T=os(H,v.value);b(H,T)},x=_=>{let z;const R=e.onRemove||e.remove;Promise.resolve(typeof R=="function"?R(_):R).then(H=>{var T,D;if(H===!1)return;const A=Qne(_,v.value);A&&(z=g(g({},_),{status:"removed"}),(T=v.value)===null||T===void 0||T.forEach(B=>{const N=z.uid!==void 0?"uid":"name";B[N]===z[N]&&!Object.isFrozen(B)&&(B.status="removed")}),(D=h.value)===null||D===void 0||D.abort(z),b(z,A))})},I=_=>{var z;m.value=_.type,_.type==="drop"&&((z=e.onDrop)===null||z===void 0||z.call(e,_))};r({onBatchStart:C,onSuccess:w,onProgress:S,onError:O,fileList:v,upload:h});const[E]=xo("Upload",xn.Upload,P(()=>e.locale)),M=(_,z)=>{const{removeIcon:R,previewIcon:H,downloadIcon:T,previewFile:D,onPreview:A,onDownload:B,isImageUrl:N,progress:k,itemRender:L,iconRender:j,showUploadList:G}=e,{showDownloadIcon:U,showPreviewIcon:K,showRemoveIcon:Y}=typeof G=="boolean"?{}:G;return G?f(ioe,{prefixCls:a.value,listType:e.listType,items:v.value,previewFile:D,onPreview:A,onDownload:B,onRemove:x,showRemoveIcon:!p.value&&Y,showPreviewIcon:K,showDownloadIcon:U,removeIcon:R,previewIcon:H,downloadIcon:T,iconRender:j,locale:E.value,isImageUrl:N,progress:k,itemRender:L,appendActionVisible:z,appendAction:_},g({},n)):_==null?void 0:_()};return()=>{var _,z,R;const{listType:H,type:T}=e,{class:D,style:A}=o,B=Soe(o,["class","style"]),N=g(g(g({onBatchStart:C,onError:O,onProgress:S,onSuccess:w},B),e),{id:(_=e.id)!==null&&_!==void 0?_:l.id.value,prefixCls:a.value,beforeUpload:$,onChange:void 0,disabled:p.value});delete N.remove,(!n.default||p.value)&&delete N.id;const k={[`${a.value}-rtl`]:i.value==="rtl"};if(T==="drag"){const U=ne(a.value,{[`${a.value}-drag`]:!0,[`${a.value}-drag-uploading`]:v.value.some(K=>K.status==="uploading"),[`${a.value}-drag-hover`]:m.value==="dragover",[`${a.value}-disabled`]:p.value,[`${a.value}-rtl`]:i.value==="rtl"},o.class,c.value);return u(f("span",F(F({},o),{},{class:ne(`${a.value}-wrapper`,k,D,c.value)}),[f("div",{class:U,onDrop:I,onDragover:I,onDragleave:I,style:o.style},[f(lS,F(F({},N),{},{ref:h,class:`${a.value}-btn`}),F({default:()=>[f("div",{class:`${a.value}-drag-container`},[(z=n.default)===null||z===void 0?void 0:z.call(n)])]},n))]),M()]))}const L=ne(a.value,{[`${a.value}-select`]:!0,[`${a.value}-select-${H}`]:!0,[`${a.value}-disabled`]:p.value,[`${a.value}-rtl`]:i.value==="rtl"}),j=bt((R=n.default)===null||R===void 0?void 0:R.call(n)),G=U=>f("div",{class:L,style:U},[f(lS,F(F({},N),{},{ref:h}),n)]);return u(H==="picture-card"?f("span",F(F({},o),{},{class:ne(`${a.value}-wrapper`,`${a.value}-picture-card-wrapper`,k,o.class,c.value)}),[M(G,!!(j&&j.length))]):f("span",F(F({},o),{},{class:ne(`${a.value}-wrapper`,k,o.class,c.value)}),[G(j&&j.length?void 0:{display:"none"}),M()]))}}});var fS=globalThis&&globalThis.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r{const{height:r}=e,l=fS(e,["height"]),{style:a}=o,i=fS(o,["style"]),s=g(g(g({},l),i),{type:"drag",style:g(g({},a),{height:typeof r=="number"?`${r}px`:r})});return f(Os,s,n)}}}),Gle=g(Os,{Dragger:qd,LIST_IGNORE:wa,install(e){return e.component(Os.name,Os),e.component(qd.name,qd),e}});var Coe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z"}}]},name:"bell",theme:"outlined"};const xoe=Coe;var woe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 00-11.3 0L403.6 366.3a7.23 7.23 0 005.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"}}]},name:"column-height",theme:"outlined"};const Ooe=woe;var Poe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.3 506.3L781.7 405.6a7.23 7.23 0 00-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 00-11.3 0L405.6 242.3a7.23 7.23 0 005.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 00.1-11.4z"}}]},name:"drag",theme:"outlined"};const Ioe=Poe;var Toe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z"}}]},name:"form",theme:"outlined"};const Eoe=Toe;var Moe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 000 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 00391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 00-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z"}}]},name:"fullscreen-exit",theme:"outlined"};const _oe=Moe;var Doe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M290 236.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0013.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 000 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 00-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z"}}]},name:"fullscreen",theme:"outlined"};const Aoe=Doe;var Roe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"}}]},name:"github",theme:"filled"};const Boe=Roe;var Noe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"}}]},name:"lock",theme:"outlined"};const Foe=Noe;var koe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};const Loe=koe;var zoe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"}}]},name:"menu",theme:"outlined"};const Hoe=zoe;var joe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z"}}]},name:"menu-unfold",theme:"outlined"};const Voe=joe;var Woe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"more",theme:"outlined"};const Koe=Woe;var Goe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z"}}]},name:"redo",theme:"outlined"};const Xoe=Goe;var Uoe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};const Yoe=Uoe;var qoe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 00288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"}}]},name:"scissor",theme:"outlined"};const Qoe=qoe;var Zoe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"};const Joe=Zoe;var ere={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z"}}]},name:"sync",theme:"outlined"};const tre=ere;var pS=[],ya=[],nre="insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).";function ore(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}function rre(e,t){if(t=t||{},e===void 0)throw new Error(nre);var n=t.prepend===!0?"prepend":"append",o=t.container!==void 0?t.container:document.querySelector("head"),r=pS.indexOf(o);r===-1&&(r=pS.push(o)-1,ya[r]={});var l;return ya[r]!==void 0&&ya[r][n]!==void 0?l=ya[r][n]:(l=ya[r][n]=ore(),n==="prepend"?o.insertBefore(l,o.childNodes[0]):o.appendChild(l)),e.charCodeAt(0)===65279&&(e=e.substr(1,e.length)),l.styleSheet?l.styleSheet.cssText+=e:l.textContent+=e,l}function vS(e){for(var t=1;t * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,mS=!1,ire=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:are;ot(function(){mS||(typeof window!="undefined"&&window.document&&window.document.documentElement&&rre(t,{prepend:!0}),mS=!0)})},sre=["icon","primaryColor","secondaryColor"];function cre(e,t){if(e==null)return{};var n=ure(e,t),o,r;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function ure(e,t){if(e==null)return{};var n={},o=Object.keys(e),r,l;for(l=0;l=0)&&(n[r]=e[r]);return n}function Ps(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,o=new Array(t);ne.length)&&(t=e.length);for(var n=0,o=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function Ire(e,t){if(e==null)return{};var n={},o=Object.keys(e),r,l;for(l=0;l=0)&&(n[r]=e[r]);return n}M6("#1890ff");var ua=function(t,n){var o,r=yS({},t,n.attrs),l=r.class,a=r.icon,i=r.spin,s=r.rotate,u=r.tabindex,c=r.twoToneColor,d=r.onClick,p=Pre(r,$re),v=(o={anticon:!0},jp(o,"anticon-".concat(a.name),!!a.name),jp(o,l,l),o),y=i===""||i||a.name==="loading"?"anticon-spin":"",m=u;m===void 0&&d&&(m=-1,p.tabindex=m);var h=s?{msTransform:"rotate(".concat(s,"deg)"),transform:"rotate(".concat(s,"deg)")}:void 0,b=E6(c),$=Sre(b,2),C=$[0],w=$[1];return f("span",yS({role:"img","aria-label":a.name},p,{onClick:d,class:v}),[f(ih,{class:y,icon:a,primaryColor:C,secondaryColor:w,style:h},null)])};ua.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:String};ua.displayName="AntdIcon";ua.inheritAttrs=!1;ua.getTwoToneColor=yre;ua.setTwoToneColor=M6;const mt=ua;function $S(e){for(var t=1;ta.post({url:`${s}/`,data:t}),l=(t,e=!1)=>a.put({url:`${s}/`,data:t,params:{updateAllFields:e}}),u=t=>a.delete({url:`${s}/${t}`}),c=t=>a.get({url:`${s}/search`,params:t}),d=t=>a.get({url:`${s}/all`,params:t}),p=t=>a.get({url:`${s}/${t}`});export{o as a,d as b,p as g,u as r,c as s,l as u}; diff --git a/detect.gui/Embedded/dist/assets/copyTextToClipboard-96e9be8c.js b/detect.gui/Embedded/dist/assets/copyTextToClipboard-96e9be8c.js new file mode 100644 index 0000000..1fef1d4 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/copyTextToClipboard-96e9be8c.js @@ -0,0 +1 @@ +import{f as o}from"./antd-eedb3ef5.js";function n(s,e="已成功复制到剪切板!"){navigator.clipboard.writeText(s).then(function(){e&&o.success(e)},function(t){o.error("复制失败!"+t.message)})}export{n as c}; diff --git a/detect.gui/Embedded/dist/assets/detail-051eeade.js b/detect.gui/Embedded/dist/assets/detail-051eeade.js new file mode 100644 index 0000000..55df046 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-051eeade.js @@ -0,0 +1 @@ +import{d as D,ai as I,f as $,o as w,c as F,a6 as _,Z as n,a4 as c,a5 as l,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-72a104e4.js";import{n as L,_ as N}from"./index.js";import{g as P,d as R}from"./schema-f8c0dfeb.js";import{G as S,H as v,W as V}from"./antd-eedb3ef5.js";const A={key:0},E=D({__name:"detail",setup(M){var m;const p=I(),g=$((m=p.params)==null?void 0:m.id),k=p.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=_("a-button"),r=_("Image");return n(),c(a(V),{bordered:!1,loading:a(x)},{default:l(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:l(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:l(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:l(()=>[(n(!0),u(f,null,G(B.value,t=>(n(),c(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:l(()=>[t.key==="avatar"?(n(),u("span",A,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(n(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const q=N(E,[["__scopeId","data-v-d6db8810"]]);export{q as default}; diff --git a/detect.gui/Embedded/dist/assets/detail-13d6fddc.js b/detect.gui/Embedded/dist/assets/detail-13d6fddc.js new file mode 100644 index 0000000..7947276 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-13d6fddc.js @@ -0,0 +1 @@ +import{d as D,ai as I,f as $,o as w,c as F,a6 as m,Z as n,a4 as _,a5 as l,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-72a104e4.js";import{n as L,_ as N}from"./index.js";import{g as P,d as R}from"./taskProgressApi-a25fdfc1.js";import{G as S,H as v,W as V}from"./antd-eedb3ef5.js";const A={key:0},E=D({__name:"detail",setup(M){var p;const c=I(),g=$((p=c.params)==null?void 0:p.id),k=c.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=m("a-button"),r=m("Image");return n(),_(a(V),{bordered:!1,loading:a(x)},{default:l(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:l(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:l(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:l(()=>[(n(!0),u(f,null,G(B.value,t=>(n(),_(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:l(()=>[t.key==="avatar"?(n(),u("span",A,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(n(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const q=N(E,[["__scopeId","data-v-d1edec20"]]);export{q as default}; diff --git a/detect.gui/Embedded/dist/assets/detail-1e8c1678.js b/detect.gui/Embedded/dist/assets/detail-1e8c1678.js new file mode 100644 index 0000000..616c347 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-1e8c1678.js @@ -0,0 +1 @@ +import{d as D,ai as I,f as $,o as w,c as F,a6 as _,Z as r,a4 as c,a5 as n,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-72a104e4.js";import{n as L,_ as N}from"./index.js";import{d as P}from"./schema-9d07929f.js";import{g as R}from"./authorityApi-323b0ce5.js";import{G as S,H as v,W as V}from"./antd-eedb3ef5.js";const A={key:0},E=D({__name:"detail",setup(M){var p;const m=I(),g=$((p=m.params)==null?void 0:p.id),k=m.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(R(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?P.map(({title:e,dataIndex:o="",customRender:l})=>({key:o,title:e,value:l?l({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=_("a-button"),l=_("Image");return r(),c(a(V),{bordered:!1,loading:a(x)},{default:n(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:n(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:n(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:n(()=>[(r(!0),u(f,null,G(B.value,t=>(r(),c(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:n(()=>[t.key==="avatar"?(r(),u("span",A,[i(l,{style:{width:"100px"},src:t.value},null,8,["src"])])):(r(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const z=N(E,[["__scopeId","data-v-d041459a"]]);export{z as default}; diff --git a/detect.gui/Embedded/dist/assets/detail-1f6e90cd.css b/detect.gui/Embedded/dist/assets/detail-1f6e90cd.css new file mode 100644 index 0000000..d4451f7 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-1f6e90cd.css @@ -0,0 +1 @@ +.header[data-v-25dfbe97]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-25dfbe97]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-25dfbe97] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-25dfbe97] .ant-table-wrapper{background:transparent}[data-v-25dfbe97] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-25dfbe97] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-25dfbe97] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-25dfbe97] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-25dfbe97] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-25dfbe97] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-25dfbe97] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-25dfbe97] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-25dfbe97] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-25dfbe97] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-25dfbe97] .ant-select-selector .ant-select-selection-item,[data-v-25dfbe97] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-25dfbe97] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-25dfbe97] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-25dfbe97] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-25dfbe97] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-25dfbe97] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-25dfbe97] .ant-empty-description{color:#999}[data-v-25dfbe97] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-25dfbe97] .ant-pagination-options-quick-jumper>input:hover,[data-v-25dfbe97] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-25dfbe97] .ant-input-clear-icon,[data-v-25dfbe97] .ant-input-password-icon{color:#fff!important}[data-v-25dfbe97] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-25dfbe97] .vben-basic-table-action button:disabled{color:#999!important}[data-v-25dfbe97] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-25dfbe97] .vben-tree-header{border-bottom:1px solid #183171}[data-v-25dfbe97] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-tree-list{background:#13265a!important}[data-v-25dfbe97] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-tree-switcher-icon{color:#fff!important}[data-v-25dfbe97] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-25dfbe97] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-25dfbe97] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-25dfbe97] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-picker,[data-v-25dfbe97] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-25dfbe97] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-25dfbe97] .ant-picker-focused,[data-v-25dfbe97] .ant-picker-range:hover,[data-v-25dfbe97] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-25dfbe97] .vben-basic-table .ant-picker-range{width:100%}[data-v-25dfbe97] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-25dfbe97] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-25dfbe97] .anticon{color:#fff!important}[data-v-25dfbe97] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-25dfbe97] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-25dfbe97] .ant-picker-cell-in-view{color:#fff!important}[data-v-25dfbe97] .ant-picker-content th,[data-v-25dfbe97] .ant-picker-header-super-prev-btn,[data-v-25dfbe97] .ant-picker-header-prev-btn,[data-v-25dfbe97] .ant-picker-header-super-next-btn,[data-v-25dfbe97] .ant-picker-header-next-btn,[data-v-25dfbe97] .ant-picker-year-btn,[data-v-25dfbe97] .ant-picker-month-btn,[data-v-25dfbe97] .ant-picker-decade-btn,[data-v-25dfbe97] .ant-picker-header-view,[data-v-25dfbe97] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-25dfbe97] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-25dfbe97] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-25dfbe97] .ant-card-body{padding:0!important}[data-v-25dfbe97] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-25dfbe97] .ant-descriptions-view{border:1px solid #183171!important}[data-v-25dfbe97] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-25dfbe97] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-25dfbe97] .ant-descriptions-item-label,[data-v-25dfbe97] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-25dfbe97] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-25dfbe97] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-25dfbe97] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-25dfbe97] .CodeMirror-cursor{border-left:1px solid white}[data-v-25dfbe97] .cm-string{color:#ff8c00!important}[data-v-25dfbe97] .ant-descriptions-item-label{width:120px}.detail-container[data-v-25dfbe97]{padding:10px} diff --git a/detect.gui/Embedded/dist/assets/detail-3e8569aa.js b/detect.gui/Embedded/dist/assets/detail-3e8569aa.js new file mode 100644 index 0000000..e489edd --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-3e8569aa.js @@ -0,0 +1 @@ +import{d as b,ai as C,f as x,o as B,c as D,a6 as $,Z as i,_ as p,k as l,a5 as r,u as a,G as m,F,a7 as G,a4 as H,a0 as L}from"./vue-72a104e4.js";import{n as N,_ as P}from"./index.js";import{g as R,d as S}from"./schema-f1b33936.js";import{G as V,H as _,W as w}from"./antd-eedb3ef5.js";import"./deviceApi-af691457.js";const A={class:"detail-container"},E=b({__name:"detail",setup(I){var u;const d=C(),c=x((u=d.params)==null?void 0:u.id),f=d.meta.title,{state:n,isReady:y,isLoading:v,execute:g}=N(R(c.value).then(o=>o),null,{immediate:!1});B(()=>{g()});const k=D(()=>y.value?S.map(({title:e,dataIndex:s="",customRender:t})=>({key:s,title:e,value:t?t({text:n.value[s],record:n.value}):n.value[s]})):{});return(o,e)=>{const s=$("a-button");return i(),p("div",A,[l(a(w),{bordered:!1,loading:a(v)},{default:r(()=>[l(a(V),{title:a(f),onBack:e[1]||(e[1]=()=>o.$router.go(-1))},{extra:r(()=>[l(s,{type:"primary",onClick:e[0]||(e[0]=t=>o.$router.go(-1))},{default:r(()=>e[2]||(e[2]=[m("返回上一页面")])),_:1})]),_:1},8,["title"]),l(a(_),{bordered:"",column:1},{default:r(()=>[(i(!0),p(F,null,G(k.value,t=>(i(),H(a(_).Item,{key:t.key,label:t.title},{default:r(()=>[m(L(t.value),1)]),_:2},1032,["label"]))),128))]),_:1})]),_:1},8,["loading"])])}}});const q=P(E,[["__scopeId","data-v-25dfbe97"]]);export{q as default}; diff --git a/detect.gui/Embedded/dist/assets/detail-ede9e136.js b/detect.gui/Embedded/dist/assets/detail-ede9e136.js new file mode 100644 index 0000000..9113e66 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/detail-ede9e136.js @@ -0,0 +1 @@ +import{d as D,ai as I,f as $,o as w,c as F,a6 as m,Z as n,a4 as _,a5 as l,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-72a104e4.js";import{n as L,_ as N}from"./index.js";import{g as P,d as R}from"./userAuthorityApi-e5a30d38.js";import{G as S,H as v,W as V}from"./antd-eedb3ef5.js";const A={key:0},E=D({__name:"detail",setup(M){var p;const c=I(),g=$((p=c.params)==null?void 0:p.id),k=c.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=m("a-button"),r=m("Image");return n(),_(a(V),{bordered:!1,loading:a(x)},{default:l(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:l(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:l(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:l(()=>[(n(!0),u(f,null,G(B.value,t=>(n(),_(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:l(()=>[t.key==="avatar"?(n(),u("span",A,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(n(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const q=N(E,[["__scopeId","data-v-cd78e7b3"]]);export{q as default}; diff --git a/detect.gui/Embedded/dist/assets/deviceApi-af691457.js b/detect.gui/Embedded/dist/assets/deviceApi-af691457.js new file mode 100644 index 0000000..7019ada --- /dev/null +++ b/detect.gui/Embedded/dist/assets/deviceApi-af691457.js @@ -0,0 +1 @@ +import{o as s}from"./index.js";const t="/v1/data/device",o=a=>s.post({url:`${t}/`,data:a}),l=(a,e=!1)=>s.put({url:`${t}/`,data:a,params:{updateAllFields:e}}),c=a=>s.delete({url:`${t}/${a}`}),d=a=>s.get({url:`${t}/search`,params:a}),p=a=>s.get({url:`${t}/all`,params:a});export{o as a,p as b,c as r,d as s,l as u}; diff --git a/detect.gui/Embedded/dist/assets/drawer-170ccb98.js b/detect.gui/Embedded/dist/assets/drawer-170ccb98.js new file mode 100644 index 0000000..06d193d --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-170ccb98.js @@ -0,0 +1 @@ +var Je=Object.defineProperty,Ge=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var ke=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var me=(e,t,s)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,B=(e,t)=>{for(var s in t||(t={}))ke.call(t,s)&&me(e,s,t[s]);if(J)for(var s of J(t))ve.call(t,s)&&me(e,s,t[s]);return e},G=(e,t)=>Ge(e,Qe(t));var xe=(e,t)=>{var s={};for(var h in e)ke.call(e,h)&&t.indexOf(h)<0&&(s[h]=e[h]);if(e!=null&&J)for(var h of J(e))t.indexOf(h)<0&&ve.call(e,h)&&(s[h]=e[h]);return s};var Q=(e,t,s)=>new Promise((h,m)=>{var v=g=>{try{i(s.next(g))}catch(S){m(S)}},l=g=>{try{i(s.throw(g))}catch(S){m(S)}},i=g=>g.done?h(g.value):Promise.resolve(g.value).then(v,l);i((s=s.apply(e,t)).next())});import{u as Ze,B as et}from"./useForm-df5105ea.js";import{a as tt,B as nt}from"./index-e60b7cd2.js";import{an as lt,d as se,f as j,ae as at,c as N,w as R,Z as P,_ as Y,u as r,ab as st,a8 as V,a4 as te,a5 as U,G as Se,a0 as _e,a1 as be,k as x,F as le,a7 as rt,a9 as he,B as ct,l as it,o as Pe,y as ot,b as Ne,i as Me,x as ut,g as dt,r as Ce,J as Z,h as X,m as Ke,A as Le}from"./vue-72a104e4.js";import{aS as ht,v as ft,U as yt,az as pt,I as ae,aT as we,aU as gt,at as mt,f as ie,aV as kt,au as vt,aW as xt,aQ as St,a3 as _t,aP as bt,Q as Ae,e as Ct,aX as Ee,aY as Kt,aZ as Lt,_ as wt}from"./index.js";import{aP as At,aQ as Et,aR as Tt,aS as It,aT as Dt,q as ne,D as Bt,aU as Ft,e as ue,aq as Pt,aV as Nt,o as Mt,y as Ot,az as $t,ax as Te,J as jt,j as Ut}from"./antd-eedb3ef5.js";import{b as Ht}from"./authorityApi-323b0ce5.js";const Vt={xs:{span:24},sm:{span:24},lg:{span:8}},ee={span:24},mn=[{title:"姓名",dataIndex:"realName",width:200},{title:"用户名",dataIndex:"username",width:180},{title:"创建时间",dataIndex:"createTime",width:180},{title:"更新时间",dataIndex:"updateTime",width:180}],kn=[{field:"realName",label:"姓名",component:"Input",componentProps:{allowClear:!0,placeholder:"姓名"},colProps:Vt}],Rt=[{label:"姓名",field:"realName",componentProps:{allowClear:!1,placeholder:"姓名"},colProps:ee,component:"Input",rules:[{required:!0,message:"请输入姓名!"}]},{label:"用户名",field:"username",componentProps:{allowClear:!1,placeholder:"用户名"},colProps:ee,component:"Input",rules:[{required:!0,message:"请输入用户名!"}]},{label:"密码",field:"password",componentProps:{allowClear:!1,placeholder:"密码"},colProps:ee,component:"InputPassword",rules:[{required:!0,message:"请输入密码!"}]},{label:" ",field:"menu",slot:"menu",component:"Input",colProps:ee}];function de(e,t){return t?typeof t=="string"?` ${e}--${t}`:Array.isArray(t)?t.reduce((s,h)=>s+de(e,h),""):Object.keys(t).reduce((s,h)=>s+(t[h]?de(e,h):""),""):""}function Yt(e){return(t,s)=>(t&&typeof t!="string"&&(s=t,t=""),t=t?`${e}__${t}`:e,`${t}${de(t,s)}`)}function Oe(e){return[Yt(`${ht}-${e}`)]}const Ie=Symbol(),De=Symbol();function Xt(e,t){if(!Et(e)||e[De])return e;const{values:s,required:h,default:m,type:v,validator:l}=e,i=s||l?g=>{let S=!1,_=[];if(s&&(_=[...s,m],S||(S=_.includes(g))),l&&(S||(S=l(g))),!S&&_.length>0){const f=[...new Set(_)].map(d=>JSON.stringify(d)).join(", ");lt(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${f}], got value ${JSON.stringify(g)}.`)}return S}:void 0;return{type:typeof v=="object"&&Object.getOwnPropertySymbols(v).includes(Ie)&&v?v[Ie]:v,required:!!h,default:m,validator:i,[De]:!0}}const qt=e=>At(Object.entries(e).map(([t,s])=>[t,Xt(s,t)]));var T=(e=>(e[e.SELECT_ALL=0]="SELECT_ALL",e[e.UN_SELECT_ALL=1]="UN_SELECT_ALL",e[e.EXPAND_ALL=2]="EXPAND_ALL",e[e.UN_EXPAND_ALL=3]="UN_EXPAND_ALL",e[e.CHECK_STRICTLY=4]="CHECK_STRICTLY",e[e.CHECK_UN_STRICTLY=5]="CHECK_UN_STRICTLY",e))(T||{});const zt=["update:expandedKeys","update:selectedKeys","update:value","change","check","update:searchValue"],Wt=qt({value:{type:[Object,Array]},renderIcon:{type:Function},helpMessage:{type:[String,Array],default:""},title:{type:String,default:""},toolbar:Boolean,search:Boolean,searchValue:{type:String,default:""},checkStrictly:Boolean,clickRowToExpand:{type:Boolean,default:!1},checkable:Boolean,defaultExpandLevel:{type:[String,Number],default:""},defaultExpandAll:Boolean,fieldNames:{type:Object},treeData:{type:Array},actionList:{type:Array,default:()=>[]},expandedKeys:{type:Array,default:()=>[]},selectedKeys:{type:Array,default:()=>[]},checkedKeys:{type:[Array,Object],default:()=>[]},beforeRightClick:{type:Function,default:void 0},rightMenuList:{type:Array},filterFn:{type:Function,default:void 0},highlight:{type:[Boolean,String],default:!1},expandOnSearch:Boolean,checkOnSearch:Boolean,selectedOnSearch:Boolean,loading:{type:Boolean,default:!1},treeWrapperClassName:String}),Jt={key:2,class:"flex items-center flex-1 cursor-pointer justify-self-stretch"},Gt=se({__name:"TreeHeader",props:{helpMessage:{type:[String,Array],default:""},title:{type:String,default:""},toolbar:{type:Boolean,default:!1},checkable:{type:Boolean,default:!1},search:{type:Boolean,default:!1},searchText:{type:String,default:""},checkAll:{type:Function,default:void 0},expandAll:{type:Function,default:void 0}},emits:["strictly-change","search"],setup(e,{emit:t}){const s=j(""),[h]=Oe("tree-header"),m=e,v=t,l=at(),{t:i}=ft(),g=N(()=>["mr-1","w-full",{"ml-5":l.headerTitle||m.title}]),S=N(()=>{const{checkable:n}=m,o=[{label:i("component.tree.expandAll"),value:T.EXPAND_ALL},{label:i("component.tree.unExpandAll"),value:T.UN_EXPAND_ALL,divider:n}];return n?[{label:i("component.tree.selectAll"),value:T.SELECT_ALL},{label:i("component.tree.unSelectAll"),value:T.UN_SELECT_ALL,divider:n},...o,{label:i("component.tree.checkStrictly"),value:T.CHECK_STRICTLY},{label:i("component.tree.checkUnStrictly"),value:T.CHECK_UN_STRICTLY}]:o});function _(n){var u,y,a,p;const{key:o}=n;switch(o){case T.SELECT_ALL:(u=m.checkAll)==null||u.call(m,!0);break;case T.UN_SELECT_ALL:(y=m.checkAll)==null||y.call(m,!1);break;case T.EXPAND_ALL:(a=m.expandAll)==null||a.call(m,!0);break;case T.UN_EXPAND_ALL:(p=m.expandAll)==null||p.call(m,!1);break;case T.CHECK_STRICTLY:v("strictly-change",!1);break;case T.CHECK_UN_STRICTLY:v("strictly-change",!0);break}}function f(n){v("search",n)}const d=yt(f,200);return R(()=>s.value,n=>{d(n)}),R(()=>m.searchText,n=>{n!==s.value&&(s.value=n)}),(n,o)=>(P(),Y("div",{class:be([r(h)(),"flex px-2 py-1.5 items-center"])},[r(l).headerTitle?st(n.$slots,"headerTitle",{key:0}):V("",!0),!r(l).headerTitle&&n.title?(P(),te(r(pt),{key:1,helpMessage:n.helpMessage},{default:U(()=>[Se(_e(n.title),1)]),_:1},8,["helpMessage"])):V("",!0),n.search||n.toolbar?(P(),Y("div",Jt,[n.search?(P(),Y("div",{key:0,class:be(g.value)},[x(r(Tt),{placeholder:r(i)("common.searchText"),size:"small",allowClear:"",value:s.value,"onUpdate:value":o[0]||(o[0]=u=>s.value=u)},null,8,["placeholder","value"])],2)):V("",!0),n.toolbar?(P(),te(r(Bt),{key:1,onClick:o[1]||(o[1]=ct(()=>{},["prevent"]))},{overlay:U(()=>[x(r(ne),{onClick:_},{default:U(()=>[(P(!0),Y(le,null,rt(S.value,u=>(P(),Y(le,{key:u.value},[x(r(It),he({ref_for:!0},{key:u.value}),{default:U(()=>[Se(_e(u.label),1)]),_:2},1040),u.divider?(P(),te(r(Dt),{key:0})):V("",!0)],64))),128))]),_:1})]),default:U(()=>[x(ae,{icon:"ion:ellipsis-vertical"})]),_:1})):V("",!0)])):V("",!0)],2))}}),Qt=({icon:e})=>e?Ft(e)?it(ae,{icon:e,class:"mr-1"}):ae:null;function Zt(e,t){function s(f){const d=[],n=f||r(e),{key:o,children:u}=r(t);if(!u||!o)return d;for(let y=0;y{if(a[u]===f)return a[y]=a[y]||[],a[y][n](d),!0}),e.value=o)}function g({parentKey:f=null,list:d,push:n="push"}){const o=ue(r(e));if(!(!d||d.length<1))if(f){const{key:u,children:y}=r(t);if(!y||!u)return;we(o,a=>{if(a[u]===f){a[y]=a[y]||[];for(let p=0;p{if(n!=null&&n.key||(n==null?void 0:n.key)===0)return n;if(a[u]===f){n=a;return}a[y]&&a[y].length&&(n=_(f,a[y],n))}),n||null}return{deleteNodeByKey:S,insertNodeByKey:i,insertNodesByKey:g,filterByLevel:l,updateNodeByKey:v,getAllKeys:s,getChildrenKeys:m,getEnabledKeys:h,getSelectedNode:_}}function en(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Me(e)}const oe="context-menu",tn={width:{type:Number,default:156},customEvent:{type:Object,default:null},styles:{type:Object},showIcon:{type:Boolean,default:!0},axis:{type:Object,default(){return{x:0,y:0}}},items:{type:Array,default(){return[]}}},Be=e=>{const{item:t}=e;return x("span",{style:"display: inline-block; width: 100%; ",class:"px-4",onClick:e.handler.bind(null,t)},[e.showIcon&&t.icon&&x(ae,{class:"mr-2",icon:t.icon},null),x("span",null,[t.label])])},nn=se({name:"ContextMenu",props:tn,setup(e){const t=j(null),s=j(!1),h=N(()=>{const{axis:l,items:i,styles:g,width:S}=e,{x:_,y:f}=l||{x:0,y:0},d=(i||[]).length*40,n=S,o=document.body,u=o.clientWidth<_+n?_-n:_,y=o.clientHeight{ot(()=>s.value=!0)}),Ne(()=>{const l=r(t);l&&document.body.removeChild(l)});function m(l,i){const{handler:g,disabled:S}=l;S||(s.value=!1,i==null||i.stopPropagation(),i==null||i.preventDefault(),g==null||g())}function v(l){return l.filter(g=>!g.hidden).map(g=>{const{disabled:S,label:_,children:f,divider:d=!1}=g,n={item:g,handler:m,showIcon:e.showIcon};return!f||f.length===0?x(le,null,[x(ne.Item,{disabled:S,class:`${oe}__item`,key:_},{default:()=>[x(Be,n,null)]}),d?x(Pt,{key:`d-${_}`},null):null]):r(s)?x(ne.SubMenu,{key:_,disabled:S,popupClassName:`${oe}__popup`},{title:()=>x(Be,n,null),default:()=>v(f)}):null})}return()=>{let l;if(!r(s))return null;const{items:i}=e;return x(ne,{inlineIndent:12,mode:"vertical",class:oe,ref:t,style:r(h)},en(l=v(i))?l:{default:()=>[l]})}}});const H={domList:[],resolve:()=>{}},ln=function(e){const{event:t}=e||{};if(t&&(t==null||t.preventDefault()),!!gt)return new Promise(s=>{const h=document.body,m=document.createElement("div"),v={};e.styles&&(v.styles=e.styles),e.items&&(v.items=e.items),e.event&&(v.customEvent=t,v.axis={x:t.clientX,y:t.clientY});const l=x(nn,v);ut(l,m);const i=function(){H.resolve("")};H.domList.push(m);const g=function(){H.domList.forEach(S=>{try{S&&h.removeChild(S)}catch(_){}}),h.removeEventListener("click",i),h.removeEventListener("scroll",i)};H.resolve=function(S){g(),s(S)},g(),h.appendChild(m),h.addEventListener("click",i),h.addEventListener("scroll",i)})},Fe=function(){H&&(H.resolve(""),H.domList=[])};function an(e=!0){return dt()&&e&&Ne(()=>{Fe()}),[ln,Fe]}function sn(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Me(e)}const rn=se({name:"BasicTree",inheritAttrs:!1,props:Wt,emits:zt,setup(e,{attrs:t,slots:s,emit:h,expose:m}){const[v]=Oe("tree"),l=Ce({checkStrictly:e.checkStrictly,expandedKeys:e.expandedKeys||[],selectedKeys:e.selectedKeys||[],checkedKeys:e.checkedKeys||[]}),i=Ce({startSearch:!1,searchText:"",searchData:[]}),g=j([]),[S]=an(),_=N(()=>{const{fieldNames:c}=e;return B({children:"children",title:"title",key:"key"},c)}),f=N(()=>{let c=G(B(B({blockNode:!0},t),e),{expandedKeys:l.expandedKeys,selectedKeys:l.selectedKeys,checkedKeys:l.checkedKeys,checkStrictly:l.checkStrictly,fieldNames:r(_),"onUpdate:expandedKeys":k=>{l.expandedKeys=k,h("update:expandedKeys",k)},"onUpdate:selectedKeys":k=>{l.selectedKeys=k,h("update:selectedKeys",k)},onCheck:(k,L)=>{let C=Z(l.checkedKeys);if(mt(C)&&i.startSearch){const w=L.node.eventKey;C=Nt(C,A(w)),L.checked&&C.push(w),l.checkedKeys=C}else l.checkedKeys=k;const K=Z(l.checkedKeys);h("update:value",K),h("check",K,L)},onRightClick:je});return Mt(c,"treeData","class")}),d=N(()=>i.startSearch?i.searchData:r(g)),n=N(()=>!d.value||d.value.length===0),{deleteNodeByKey:o,insertNodeByKey:u,insertNodesByKey:y,filterByLevel:a,updateNodeByKey:p,getAllKeys:b,getChildrenKeys:A,getEnabledKeys:E,getSelectedNode:F}=Zt(g,_);function $e(c,k){return!k&&e.renderIcon&&ie(e.renderIcon)?e.renderIcon(c):k}function je(L){return Q(this,arguments,function*({event:c,node:k}){var M;const{rightMenuList:C=[],beforeRightClick:K}=e;let w={event:c,items:[]};if(K&&ie(K)){let I=yield K(k,c);Array.isArray(I)?w.items=I:Object.assign(w,I)}else w.items=C;(M=w.items)!=null&&M.length&&(w.items=w.items.filter(I=>!I.hidden),S(w))})}function q(c){l.expandedKeys=c}function Ue(){return l.expandedKeys}function fe(c){l.selectedKeys=c}function He(){return l.selectedKeys}function ye(c){l.checkedKeys=c}function Ve(){return l.checkedKeys}function pe(c){l.checkedKeys=c?E():[]}function re(c){l.expandedKeys=c?b():[]}function Re(c){l.checkStrictly=c}R(()=>e.searchValue,c=>{c!==i.searchText&&(i.searchText=c)},{immediate:!0}),R(()=>e.treeData,c=>{c&&ce(i.searchText)});function ce(c){if(c!==i.searchText&&(i.searchText=c),h("update:searchValue",c),!c){i.startSearch=!1;return}const{filterFn:k,checkable:L,expandOnSearch:C,checkOnSearch:K,selectedOnSearch:w}=r(e);i.startSearch=!0;const{title:M,key:I}=r(_),O=[];if(i.searchData=kt(r(g),D=>{var z,W;const $=k?k(c,D,r(_)):(W=(z=D[M])==null?void 0:z.includes(c))!=null?W:!1;return $&&O.push(D[I]),$},r(_)),C){const D=vt(i.searchData).map($=>$[I]);D&&D.length&&q(D)}K&&L&&O.length&&ye(O),w&&O.length&&fe(O)}function Ye(c,k){if(!(!e.clickRowToExpand||!k||k.length===0))if(!l.expandedKeys.includes(c))q([...l.expandedKeys,c]);else{const L=[...l.expandedKeys],C=L.findIndex(K=>K===c);C!==-1&&L.splice(C,1),q(L)}}X(()=>{g.value=e.treeData}),Pe(()=>{const c=parseInt(e.defaultExpandLevel);c>0?l.expandedKeys=a(c):e.defaultExpandAll&&re(!0)}),X(()=>{l.expandedKeys=e.expandedKeys}),X(()=>{l.selectedKeys=e.selectedKeys}),X(()=>{l.checkedKeys=e.checkedKeys}),R(()=>e.value,()=>{l.checkedKeys=Z(e.value||[])},{immediate:!0}),R(()=>l.checkedKeys,()=>{const c=Z(l.checkedKeys);h("update:value",c),h("change",c)}),X(()=>{l.checkStrictly=e.checkStrictly});const Xe={setExpandedKeys:q,getExpandedKeys:Ue,setSelectedKeys:fe,getSelectedKeys:He,setCheckedKeys:ye,getCheckedKeys:Ve,insertNodeByKey:u,insertNodesByKey:y,deleteNodeByKey:o,updateNodeByKey:p,getSelectedNode:F,checkAll:pe,expandAll:re,filterByLevel:c=>{l.expandedKeys=a(c)},setSearchValue:c=>{ce(c)},getSearchValue:()=>i.searchText};function qe(c){const{actionList:k}=e;if(!(!k||k.length===0))return k.map((L,C)=>{var w;let K=!0;return ie(L.show)?K=(w=L.show)==null?void 0:w.call(L,c):Ae(L.show)&&(K=L.show),K?x("span",{key:C,class:v("action")},[L.render(c)]):null})}const ze=N(()=>{const c=ue(d.value);return xt(c,(k,L)=>{var ge;const C=i.searchText,{highlight:K}=r(e),{title:w,key:M,children:I}=r(_),O=$e(k,k.icon),D=jt(k,w),$=C?D.indexOf(C):-1,z=i.startSearch&&!bt(C)&&K&&$!==-1,W=`color: ${Ae(K)?"#f50":K}`,We=z?x("span",{class:(ge=r(f))!=null&&ge.blockNode?`${v("content")}`:""},[x("span",null,[D.substr(0,$)]),x("span",{style:W},[C]),x("span",null,[D.substr($+C.length)])]):D;return k[w]=x("span",{class:`${v("title")} pl-2`,onClick:Ye.bind(null,k[M],k[I])},[s!=null&&s.title?Ct(s,"title",k):x(le,null,[O&&x(Qt,{icon:O},null),We,x("span",{class:v("actions")},[qe(k)])])]),k}),c});return m(Xe),()=>{let c;const{title:k,helpMessage:L,toolbar:C,search:K,checkable:w}=e,M=k||C||K||s.headerTitle,I={height:"calc(100% - 38px)"};return x("div",{class:[v(),"h-full",t.class]},[M&&x(Gt,{checkable:w,checkAll:pe,expandAll:re,title:k,search:K,toolbar:C,helpMessage:L,onStrictlyChange:Re,onSearch:ce,searchText:i.searchText},sn(c=St(s))?c:{default:()=>[c]}),x(Ot,{wrapperClassName:r(e.treeWrapperClassName),spinning:r(e.loading),tip:"加载中..."},{default:()=>[Ke(x(_t,{style:I},{default:()=>[x($t,he(r(f),{showIcon:!1,treeData:ze.value}),null)]}),[[Le,!r(n)]]),Ke(x(Te,{image:Te.PRESENTED_IMAGE_SIMPLE,class:"!mt-4"},null),[[Le,r(n)]])]})])}}});const cn=se({__name:"drawer",emits:["success","register"],setup(e,{emit:t}){const s=t,h=j(!0),m=j(),v=j([]),l=j([]),[i,{resetFields:g,setFieldsValue:S,validate:_}]=Ze({labelWidth:60,baseColProps:{span:24},schemas:Rt,showActionButtonGroup:!1}),[f,{setDrawerProps:d,closeDrawer:n}]=tt(a=>Q(this,null,function*(){if(yield g(),d({confirmLoading:!1}),r(v).length===0){let p=yield Ht({authorityId:0,orderByClause:"sort_order asc"});const b=A=>B({key:A.id,title:A.name},A);p=p.map(b),p=Ee(p,"parentId"),v.value=p}if(h.value=!!(a!=null&&a.isUpdate),h.value&&(m.value=a.record),a.record)if(a.record.authorityList.length){const p=[],b=[],A=Ee(a.record.authorityList,"parentId"),E=F=>{F.children&&F.children.length>0?(p.push(F.id),F.children.forEach(E)):b.push(F.id)};A.forEach(E),a.record.menu=b,l.value=p}else a.record.menu=[],l.value=[];r(h)&&(yield S(B({},a.record)))})),o=(a,{halfCheckedKeys:p})=>{l.value=p},u=N(()=>r(h)?"编辑用户":"新增用户");function y(){return Q(this,null,function*(){try{const p=yield _();d({confirmLoading:!0});const a=p,{menu:b=[]}=a,A=xe(a,["menu"]),E=G(B({},A),{authorityList:[...b,...l.value].map(F=>({id:F}))});r(h)?yield Kt(G(B(B({},r(m)),E),{updateTime:Ut().format("YYYY-MM-DD HH:mm:ss")})):yield Lt(E),n(),s("success")}catch(p){}finally{d({confirmLoading:!1})}})}return(a,p)=>(P(),te(r(nt),he(a.$attrs,{onRegister:r(f),destroyOnClose:"",showFooter:"",title:u.value,width:"500px",onOk:y}),{default:U(()=>[x(r(et),{onRegister:r(i),name:"EditForm"},{menu:U(({model:b,field:A})=>[x(r(rn),{value:b[A],"onUpdate:value":E=>b[A]=E,treeData:v.value,fieldNames:{title:"title",key:"key"},onCheck:o,checkable:"",toolbar:"",title:"权限分配"},null,8,["value","onUpdate:value","treeData"])]),_:1},8,["onRegister"])]),_:1},16,["onRegister","title"]))}});const on=wt(cn,[["__scopeId","data-v-c26f9374"]]),vn=Object.freeze(Object.defineProperty({__proto__:null,default:on},Symbol.toStringTag,{value:"Module"}));export{on as R,mn as c,vn as d,kn as s}; diff --git a/detect.gui/Embedded/dist/assets/drawer-236fe6cc.js b/detect.gui/Embedded/dist/assets/drawer-236fe6cc.js new file mode 100644 index 0000000..ecd8e80 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-236fe6cc.js @@ -0,0 +1 @@ +import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js";import"./useForm-df5105ea.js";import"./vue-72a104e4.js";import"./index.js";import"./antd-eedb3ef5.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";import"./userAuthorityApi-e5a30d38.js";import"./index-e60b7cd2.js";export{o as default}; diff --git a/detect.gui/Embedded/dist/assets/drawer-a273df39.css b/detect.gui/Embedded/dist/assets/drawer-a273df39.css new file mode 100644 index 0000000..459f732 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-a273df39.css @@ -0,0 +1 @@ +.header[data-v-d2e691bb]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-d2e691bb]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-d2e691bb] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-d2e691bb] .ant-table-wrapper{background:transparent}[data-v-d2e691bb] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-d2e691bb] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-d2e691bb] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-d2e691bb] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-d2e691bb] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-d2e691bb] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-d2e691bb] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-d2e691bb] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-d2e691bb] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-d2e691bb] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-d2e691bb] .ant-select-selector .ant-select-selection-item,[data-v-d2e691bb] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-d2e691bb] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-d2e691bb] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-d2e691bb] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-d2e691bb] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-d2e691bb] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-d2e691bb] .ant-empty-description{color:#999}[data-v-d2e691bb] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-d2e691bb] .ant-pagination-options-quick-jumper>input:hover,[data-v-d2e691bb] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-d2e691bb] .ant-input-clear-icon,[data-v-d2e691bb] .ant-input-password-icon{color:#fff!important}[data-v-d2e691bb] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-d2e691bb] .vben-basic-table-action button:disabled{color:#999!important}[data-v-d2e691bb] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-d2e691bb] .vben-tree-header{border-bottom:1px solid #183171}[data-v-d2e691bb] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-tree-list{background:#13265a!important}[data-v-d2e691bb] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-tree-switcher-icon{color:#fff!important}[data-v-d2e691bb] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-d2e691bb] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-d2e691bb] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-d2e691bb] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-picker,[data-v-d2e691bb] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-d2e691bb] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-d2e691bb] .ant-picker-focused,[data-v-d2e691bb] .ant-picker-range:hover,[data-v-d2e691bb] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-d2e691bb] .vben-basic-table .ant-picker-range{width:100%}[data-v-d2e691bb] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-d2e691bb] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-d2e691bb] .anticon{color:#fff!important}[data-v-d2e691bb] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-d2e691bb] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-d2e691bb] .ant-picker-cell-in-view{color:#fff!important}[data-v-d2e691bb] .ant-picker-content th,[data-v-d2e691bb] .ant-picker-header-super-prev-btn,[data-v-d2e691bb] .ant-picker-header-prev-btn,[data-v-d2e691bb] .ant-picker-header-super-next-btn,[data-v-d2e691bb] .ant-picker-header-next-btn,[data-v-d2e691bb] .ant-picker-year-btn,[data-v-d2e691bb] .ant-picker-month-btn,[data-v-d2e691bb] .ant-picker-decade-btn,[data-v-d2e691bb] .ant-picker-header-view,[data-v-d2e691bb] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-d2e691bb] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-d2e691bb] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-d2e691bb] .ant-card-body{padding:0!important}[data-v-d2e691bb] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-d2e691bb] .ant-descriptions-view{border:1px solid #183171!important}[data-v-d2e691bb] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-d2e691bb] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-d2e691bb] .ant-descriptions-item-label,[data-v-d2e691bb] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-d2e691bb] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-d2e691bb] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-d2e691bb] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-d2e691bb] .CodeMirror-cursor{border-left:1px solid white}[data-v-d2e691bb] .cm-string{color:#ff8c00!important}[data-v-d2e691bb] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/drawer-a27519c5.js b/detect.gui/Embedded/dist/assets/drawer-a27519c5.js new file mode 100644 index 0000000..d07549c --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-a27519c5.js @@ -0,0 +1 @@ +import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js";import"./useForm-df5105ea.js";import"./vue-72a104e4.js";import"./index.js";import"./antd-eedb3ef5.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";import"./schema-f8c0dfeb.js";import"./index-e60b7cd2.js";export{o as default}; diff --git a/detect.gui/Embedded/dist/assets/drawer-a6f8c2fc.js b/detect.gui/Embedded/dist/assets/drawer-a6f8c2fc.js new file mode 100644 index 0000000..33103fc --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-a6f8c2fc.js @@ -0,0 +1 @@ +import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-b206d10f.js";import"./useForm-df5105ea.js";import"./vue-72a104e4.js";import"./index.js";import"./antd-eedb3ef5.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";import"./schema-9d07929f.js";import"./index-e60b7cd2.js";import"./authorityApi-323b0ce5.js";export{o as default}; diff --git a/detect.gui/Embedded/dist/assets/drawer-a775275a.js b/detect.gui/Embedded/dist/assets/drawer-a775275a.js new file mode 100644 index 0000000..23ab520 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-a775275a.js @@ -0,0 +1 @@ +var Y=Object.defineProperty;var y=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var C=(o,s,t)=>s in o?Y(o,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[s]=t,d=(o,s)=>{for(var t in s||(s={}))R.call(s,t)&&C(o,t,s[t]);if(y)for(var t of y(s))D.call(s,t)&&C(o,t,s[t]);return o};var I=(o,s)=>{var t={};for(var i in o)R.call(o,i)&&s.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&y)for(var i of y(o))s.indexOf(i)<0&&D.call(o,i)&&(t[i]=o[i]);return t};var h=(o,s,t)=>new Promise((i,f)=>{var v=r=>{try{m(t.next(r))}catch(c){f(c)}},l=r=>{try{m(t.throw(r))}catch(c){f(c)}},m=r=>r.done?i(r.value):Promise.resolve(r.value).then(v,l);m((t=t.apply(o,s)).next())});import{u as Z,B as q,T as H}from"./useForm-df5105ea.js";import{f as Q,b as ee,u as te}from"./schema-f1b33936.js";import{a as ae,B as oe}from"./index-e60b7cd2.js";import{u as se,B as ne}from"./useTable-3e054214.js";import ie from"./modal-fe4687ff.js";import{u as re}from"./index-ccf6944d.js";import{N as le,R as de}from"./antd-eedb3ef5.js";import{d as ce,f as _,c as ue,u as n,a6 as me,Z as B,a4 as F,a5 as g,k as x,l as O,G as T,$ as S,a8 as pe,a9 as fe}from"./vue-72a104e4.js";import{_ as we}from"./index.js";import"./copyTextToClipboard-96e9be8c.js";import"./deviceApi-af691457.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";const ge=ce({__name:"drawer",emits:["success","register","ocrClick"],setup(o,{expose:s,emit:t}){const[i,{openModal:f}]=re(),v=[{title:"预埋件编号",dataIndex:"code",key:"code"},{title:"类型",dataIndex:"type",key:"type"},{title:"X(mm)",dataIndex:"x",key:"x",width:"80px"},{title:"Y(mm)",dataIndex:"y",key:"y",width:"80px"},{title:"w(mm)",dataIndex:"w",key:"w",width:"80px"},{title:"h(mm)",dataIndex:"h",key:"h",width:"80px"}],l=_([]),m=t,r=_(!0),c=_(),[N,{resetFields:V,setFieldsValue:E,validate:J,getFieldsValue:P}]=Z({labelWidth:120,schemas:Q,showActionButtonGroup:!1}),[U,{setDrawerProps:b,closeDrawer:L}]=ae(e=>h(this,null,function*(){yield V(),b({confirmLoading:!1}),r.value=!!(e!=null&&e.isUpdate),c.value=e==null?void 0:e.record,l.value=[],(c.value&&c.value.paramJson?JSON.parse(c.value.paramJson):[]).forEach((u,p)=>{l.value.push(d({index:p},u))}),yield E(d({},e.record))})),M=e=>{l.value=[],e.forEach((a,u)=>{l.value.push(d({index:u},a))})},[j]=se({title:"预埋件列表",columns:v,dataSource:l,useSearchForm:!1,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,pagination:!1,rowKey:e=>e.code,actionColumn:{width:180,title:"操作",dataIndex:"action",fixed:void 0}}),A=ue(()=>n(r)?"编辑":"新增");function G(){return h(this,null,function*(){const e=yield J();b({confirmLoading:!0});const a=I(e,[]),u=n(r)?te:ee,p=n(r)?Object.assign({},d(d({},n(c)),a)):d({},a);let w=[];l.value.forEach(k=>{delete k.index,w.push(k)}),p.paramJson=JSON.stringify(w),yield u(p),L(),m("success"),b({confirmLoading:!1})})}const $=()=>{f(!0,{isUpdate:!1})},z=(e,a)=>{f(!0,{record:e,isUpdate:!0})},K=e=>{l.value=l.value.filter(a=>a.code!==e.code)},W=()=>{const e=P(),a=n(r)?Object.assign({},d(d({},n(c)),e)):d({},e);m("ocrClick",a)},X=e=>h(this,null,function*(){l.value[e.index]=d({},e)});return s({setParamData:M}),(e,a)=>{const u=me("a-button");return B(),F(n(oe),fe(e.$attrs,{onRegister:n(U),showFooter:"",title:A.value,width:"900px",onOk:G}),{default:g(()=>[x(n(q),{onRegister:n(N)},null,8,["onRegister"]),x(n(ne),{onRegister:n(j)},{toolbar:g(()=>[x(u,{type:"primary",onClick:$,icon:O(n(le))},{default:g(()=>a[0]||(a[0]=[T("新 增")])),_:1},8,["icon"]),a[2]||(a[2]=S("div",{style:{width:"5px"}},null,-1)),x(u,{type:"primary",icon:O(n(de)),onClick:W},{default:g(()=>a[1]||(a[1]=[T("OCR识别")])),_:1},8,["icon"]),a[3]||(a[3]=S("div",{style:{width:"5px"}},null,-1))]),bodyCell:g(({column:p,record:w})=>[p.dataIndex==="action"?(B(),F(n(H),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:z.bind(null,w),divider:!0},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:K.bind(null,w),placement:"topRight"},divider:!0}]},null,8,["actions"])):pe("",!0)]),_:1},8,["onRegister"]),x(ie,{onRegister:n(i),onSuccess:X},null,8,["onRegister"])]),_:1},16,["onRegister","title"])}}});const Se=we(ge,[["__scopeId","data-v-d2e691bb"]]);export{Se as default}; diff --git a/detect.gui/Embedded/dist/assets/drawer-a93dee93.js b/detect.gui/Embedded/dist/assets/drawer-a93dee93.js new file mode 100644 index 0000000..1a8e52f --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-a93dee93.js @@ -0,0 +1 @@ +var O=Object.defineProperty,j=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var m=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var b=(e,t,a)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,n=(e,t)=>{for(var a in t||(t={}))h.call(t,a)&&b(e,a,t[a]);if(m)for(var a of m(t))D.call(t,a)&&b(e,a,t[a]);return e},I=(e,t)=>j(e,L(t));var _=(e,t)=>{var a={};for(var o in e)h.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&m)for(var o of m(e))t.indexOf(o)<0&&D.call(e,o)&&(a[o]=e[o]);return a};var x=(e,t,a)=>new Promise((o,i)=>{var f=r=>{try{d(a.next(r))}catch(p){i(p)}},g=r=>{try{d(a.throw(r))}catch(p){i(p)}},d=r=>r.done?o(r.value):Promise.resolve(r.value).then(f,g);d((a=a.apply(e,t)).next())});import{u as U,B as N}from"./useForm-df5105ea.js";import{a as z,B as G}from"./index-e60b7cd2.js";import{a as W,u as Z}from"./deviceApi-af691457.js";import{d as $,f as F,c as E,u as l,Z as H,a4 as J,a5 as K,k as Q,a9 as X}from"./vue-72a104e4.js";import{_ as ee}from"./index.js";const c={xs:{span:24},sm:{span:24},lg:{span:6}},te={span:24},u={model:"Device",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:c,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"name",label:"设备名称",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"设备名称"},colProps:c,component:"Input",rules:[{required:!0,message:"请输入设备名称!"}]},table:{}},{field:"deviceSn",label:"设备序列号",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"设备序列号"},colProps:c,component:"Input"},table:{}},{field:"deviceIp",label:"设备IP地址",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"设备IP地址"},colProps:c,component:"Input"},table:{}},{field:"createTime",label:"创建时间",defaultValue:void 0,form:{colProps:c,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{}},{field:"updateTime",label:"更新时间",defaultValue:void 0,form:{colProps:c,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},y=["name","deviceSn","deviceIp"],B=["name","deviceSn","deviceIp"],S=["name","deviceSn","deviceIp","createTime","updateTime"],C=["name","deviceSn","deviceIp","createTime","updateTime"],M=new Map(y.map((e,t)=>[e,t])),pe=u.properties.filter(e=>y.includes(e.field)).map(o=>{var{field:e,label:t,form:i}=o,a=_(i,[]);return I(n({field:e,label:t,defaultValue:void 0},a),{required:!1,rules:[{required:!1}]})}).sort((e,t)=>{const a=M.get(e.field),o=M.get(t.field);return a-o}),P=new Map(B.map((e,t)=>[e,t])),ae=u.properties.filter(e=>B.includes(e.field)).map(({field:e,label:t,defaultValue:a,form:o})=>I(n({field:e,label:t,defaultValue:a},o),{colProps:te})).sort((e,t)=>{const a=P.get(e.field),o=P.get(t.field);return a-o}),Y=new Map(S.map((e,t)=>[e,t])),me=u.properties.filter(e=>S.includes(e.field)).map(({field:e,label:t,table:a})=>n({dataIndex:e,title:t},a)).sort((e,t)=>{const a=Y.get(e.dataIndex),o=Y.get(t.dataIndex);return a-o}),T=new Map(C.map((e,t)=>[e,t]));u.properties.filter(e=>C.includes(e.field)).map(({field:e,label:t,table:a})=>n({dataIndex:e,title:t},a)).sort((e,t)=>{const a=T.get(e.dataIndex),o=T.get(t.dataIndex);return a-o});const oe=$({__name:"drawer",emits:["success","register"],setup(e,{emit:t}){const a=t,o=F(!0),i=F(),[f,{resetFields:g,setFieldsValue:d,validate:r}]=U({labelWidth:100,schemas:ae,showActionButtonGroup:!1}),[p,{setDrawerProps:v,closeDrawer:V}]=z(s=>x(this,null,function*(){yield g(),v({confirmLoading:!1}),o.value=!!(s!=null&&s.isUpdate),i.value=s==null?void 0:s.record,l(o)&&(yield d(n({},s.record)))})),q=E(()=>l(o)?"编辑":"新增");function k(){return x(this,null,function*(){try{const s=yield r();v({confirmLoading:!0});const w=_(s,[]),R=l(o)?Z:W,A=l(o)?Object.assign({},n(n({},l(i)),w)):n({},w);yield R(A),V(),a("success")}catch(s){}finally{v({confirmLoading:!1})}})}return(s,w)=>(H(),J(l(G),X(s.$attrs,{onRegister:l(p),showFooter:"",title:q.value,width:"600px",onOk:k}),{default:K(()=>[Q(l(N),{onRegister:l(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});const se=ee(oe,[["__scopeId","data-v-9eee9ae2"]]),ue=Object.freeze(Object.defineProperty({__proto__:null,default:se},Symbol.toStringTag,{value:"Module"}));export{se as D,me as c,ue as d,pe as s}; diff --git a/detect.gui/Embedded/dist/assets/drawer-b5b146ff.css b/detect.gui/Embedded/dist/assets/drawer-b5b146ff.css new file mode 100644 index 0000000..d286abf --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-b5b146ff.css @@ -0,0 +1 @@ +.header[data-v-9eee9ae2]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-9eee9ae2]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-9eee9ae2] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-9eee9ae2] .ant-table-wrapper{background:transparent}[data-v-9eee9ae2] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-9eee9ae2] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-9eee9ae2] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-9eee9ae2] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-9eee9ae2] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-9eee9ae2] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-9eee9ae2] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-9eee9ae2] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-9eee9ae2] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-9eee9ae2] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-9eee9ae2] .ant-select-selector .ant-select-selection-item,[data-v-9eee9ae2] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-9eee9ae2] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-9eee9ae2] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-9eee9ae2] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-9eee9ae2] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-9eee9ae2] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-9eee9ae2] .ant-empty-description{color:#999}[data-v-9eee9ae2] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-9eee9ae2] .ant-pagination-options-quick-jumper>input:hover,[data-v-9eee9ae2] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-9eee9ae2] .ant-input-clear-icon,[data-v-9eee9ae2] .ant-input-password-icon{color:#fff!important}[data-v-9eee9ae2] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-9eee9ae2] .vben-basic-table-action button:disabled{color:#999!important}[data-v-9eee9ae2] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-9eee9ae2] .vben-tree-header{border-bottom:1px solid #183171}[data-v-9eee9ae2] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-tree-list{background:#13265a!important}[data-v-9eee9ae2] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-tree-switcher-icon{color:#fff!important}[data-v-9eee9ae2] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-9eee9ae2] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-9eee9ae2] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-9eee9ae2] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-picker,[data-v-9eee9ae2] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-9eee9ae2] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-9eee9ae2] .ant-picker-focused,[data-v-9eee9ae2] .ant-picker-range:hover,[data-v-9eee9ae2] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-9eee9ae2] .vben-basic-table .ant-picker-range{width:100%}[data-v-9eee9ae2] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-9eee9ae2] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-9eee9ae2] .anticon{color:#fff!important}[data-v-9eee9ae2] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-9eee9ae2] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-9eee9ae2] .ant-picker-cell-in-view{color:#fff!important}[data-v-9eee9ae2] .ant-picker-content th,[data-v-9eee9ae2] .ant-picker-header-super-prev-btn,[data-v-9eee9ae2] .ant-picker-header-prev-btn,[data-v-9eee9ae2] .ant-picker-header-super-next-btn,[data-v-9eee9ae2] .ant-picker-header-next-btn,[data-v-9eee9ae2] .ant-picker-year-btn,[data-v-9eee9ae2] .ant-picker-month-btn,[data-v-9eee9ae2] .ant-picker-decade-btn,[data-v-9eee9ae2] .ant-picker-header-view,[data-v-9eee9ae2] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-9eee9ae2] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-9eee9ae2] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-9eee9ae2] .ant-card-body{padding:0!important}[data-v-9eee9ae2] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-9eee9ae2] .ant-descriptions-view{border:1px solid #183171!important}[data-v-9eee9ae2] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-9eee9ae2] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-9eee9ae2] .ant-descriptions-item-label,[data-v-9eee9ae2] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-9eee9ae2] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-9eee9ae2] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-9eee9ae2] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-9eee9ae2] .CodeMirror-cursor{border-left:1px solid white}[data-v-9eee9ae2] .cm-string{color:#ff8c00!important}[data-v-9eee9ae2] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/drawer-d8f88ec0.css b/detect.gui/Embedded/dist/assets/drawer-d8f88ec0.css new file mode 100644 index 0000000..71f1113 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-d8f88ec0.css @@ -0,0 +1 @@ +.context-menu{display:block;position:fixed;z-index:200;top:0;left:0;width:156px;margin:0;border:1px solid rgba(0,0,0,.08);border-radius:8px;background-clip:padding-box;background-color:#fff;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001a,0 1px 5px #0000000f;list-style:none;user-select:none}.context-menu__item{margin:0!important}.context-menu li{display:inline-block;width:100%!important;height:42px!important;margin:0!important;line-height:42px!important}.context-menu li span{line-height:42px!important}.context-menu li>div{width:100%!important;height:100%!important;margin:0!important}.context-menu li:not(.ant-menu-item-disabled):hover{background-color:#0000000a;color:#000000e0}.context-menu .ant-divider,.context-menu__popup .ant-divider{margin:0}.context-menu__popup li{display:inline-block;width:100%!important;height:42px!important;margin:0!important;line-height:42px!important}.context-menu__popup li span{line-height:42px!important}.context-menu__popup li>div{width:100%!important;height:100%!important;margin:0!important}.context-menu__popup li:not(.ant-menu-item-disabled):hover{background-color:#0000000a;color:#000000e0}.context-menu .ant-menu-submenu-title,.context-menu .ant-menu-item{padding:0!important}.vben-tree{background-color:#fff}.vben-tree .ant-tree-node-content-wrapper{position:relative}.vben-tree__title{display:flex;position:relative;align-items:center;width:100%;padding-right:10px}.vben-tree__title:hover .vben-tree__action{visibility:visible}.vben-tree__content{overflow:hidden}.vben-tree__actions{display:flex;position:absolute;right:3px}.vben-tree__action{visibility:hidden;margin-left:4px}.vben-tree-header{border-bottom:1px solid #d9d9d9}.header[data-v-c26f9374]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-c26f9374]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-c26f9374] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-c26f9374] .ant-table-wrapper{background:transparent}[data-v-c26f9374] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-c26f9374] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-c26f9374] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-c26f9374] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-c26f9374] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-c26f9374] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-c26f9374] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-c26f9374] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-c26f9374] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-c26f9374] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-c26f9374] .ant-select-selector .ant-select-selection-item,[data-v-c26f9374] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-c26f9374] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-c26f9374] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-c26f9374] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-c26f9374] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-c26f9374] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-c26f9374] .ant-empty-description{color:#999}[data-v-c26f9374] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-c26f9374] .ant-pagination-options-quick-jumper>input:hover,[data-v-c26f9374] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-c26f9374] .ant-input-clear-icon,[data-v-c26f9374] .ant-input-password-icon{color:#fff!important}[data-v-c26f9374] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-c26f9374] .vben-basic-table-action button:disabled{color:#999!important}[data-v-c26f9374] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-c26f9374] .vben-tree-header{border-bottom:1px solid #183171}[data-v-c26f9374] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-tree-list{background:#13265a!important}[data-v-c26f9374] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-tree-switcher-icon{color:#fff!important}[data-v-c26f9374] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-c26f9374] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-c26f9374] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-c26f9374] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-picker,[data-v-c26f9374] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-c26f9374] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-c26f9374] .ant-picker-focused,[data-v-c26f9374] .ant-picker-range:hover,[data-v-c26f9374] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-c26f9374] .vben-basic-table .ant-picker-range{width:100%}[data-v-c26f9374] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-c26f9374] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-c26f9374] .anticon{color:#fff!important}[data-v-c26f9374] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-c26f9374] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-c26f9374] .ant-picker-cell-in-view{color:#fff!important}[data-v-c26f9374] .ant-picker-content th,[data-v-c26f9374] .ant-picker-header-super-prev-btn,[data-v-c26f9374] .ant-picker-header-prev-btn,[data-v-c26f9374] .ant-picker-header-super-next-btn,[data-v-c26f9374] .ant-picker-header-next-btn,[data-v-c26f9374] .ant-picker-year-btn,[data-v-c26f9374] .ant-picker-month-btn,[data-v-c26f9374] .ant-picker-decade-btn,[data-v-c26f9374] .ant-picker-header-view,[data-v-c26f9374] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-c26f9374] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-c26f9374] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-c26f9374] .ant-card-body{padding:0!important}[data-v-c26f9374] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-c26f9374] .ant-descriptions-view{border:1px solid #183171!important}[data-v-c26f9374] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-c26f9374] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-c26f9374] .ant-descriptions-item-label,[data-v-c26f9374] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-c26f9374] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-c26f9374] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-c26f9374] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-c26f9374] .CodeMirror-cursor{border-left:1px solid white}[data-v-c26f9374] .cm-string{color:#ff8c00!important}[data-v-c26f9374] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/drawer-ef4c8309.js b/detect.gui/Embedded/dist/assets/drawer-ef4c8309.js new file mode 100644 index 0000000..2a85154 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer-ef4c8309.js @@ -0,0 +1 @@ +import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js";import"./useForm-df5105ea.js";import"./vue-72a104e4.js";import"./index.js";import"./antd-eedb3ef5.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";import"./taskProgressApi-a25fdfc1.js";import"./index-e60b7cd2.js";export{o as default}; diff --git a/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js new file mode 100644 index 0000000..2932932 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js @@ -0,0 +1 @@ +var x=Object.defineProperty;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?x(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s};var F=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as L,B as C}from"./useForm-df5105ea.js";import{f as O,e as P,u as S}from"./taskProgressApi-a25fdfc1.js";import{a as U,B as V}from"./index-e60b7cd2.js";import{d as j,f as v,u as i,c as A,Z as G,a4 as I,a5 as N,k as T,a9 as W}from"./vue-72a104e4.js";const H=j({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=v(!0),n=v(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=L({labelWidth:120,schemas:O,showActionButtonGroup:!1}),[m,{setDrawerProps:w,closeDrawer:y}]=U(o=>g(this,null,function*(){yield p(),w({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),D=A(()=>i(t)?"编辑":"新增");function k(){return g(this,null,function*(){try{const o=yield a();w({confirmLoading:!0});const d=F(o,[]),R=i(t)?S:P,b=i(t)?Object.assign({},u(u({},i(n)),d)):u({},d);yield R(b),y(),e("success")}finally{w({confirmLoading:!1})}})}return(o,d)=>(G(),I(i(V),W(o.$attrs,{onRegister:i(m),showFooter:"",title:D.value,width:"600px",onOk:k}),{default:N(()=>[T(i(C),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{H as _}; diff --git a/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-b206d10f.js b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-b206d10f.js new file mode 100644 index 0000000..0f039f7 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-b206d10f.js @@ -0,0 +1 @@ +var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-df5105ea.js";import{f as M}from"./schema-9d07929f.js";import{a as O,B as P}from"./index-e60b7cd2.js";import{a as S,u as T}from"./authorityApi-323b0ce5.js";import{j as U}from"./antd-eedb3ef5.js";import{d as V,f as F,u as i,c as A,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-72a104e4.js";const X=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=O(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),k=A(()=>i(t)?"编辑":"新增");function R(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),Y=i(t)?T:S,b=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield Y(b),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(P),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:k.value,width:"600px",onOk:R}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{X as _}; diff --git a/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js new file mode 100644 index 0000000..e23009f --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js @@ -0,0 +1 @@ +var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-df5105ea.js";import{f as M,a as O,u as P}from"./userAuthorityApi-e5a30d38.js";import{a as S,B as T}from"./index-e60b7cd2.js";import{j as U}from"./antd-eedb3ef5.js";import{d as V,f as F,u as i,c as A,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-72a104e4.js";const Q=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=S(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),k=A(()=>i(t)?"编辑":"新增");function R(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),Y=i(t)?P:O,b=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield Y(b),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(T),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:k.value,width:"600px",onOk:R}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{Q as _}; diff --git a/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js new file mode 100644 index 0000000..38d73a3 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js @@ -0,0 +1 @@ +var x=Object.defineProperty;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?x(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s};var F=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as L,B as C}from"./useForm-df5105ea.js";import{f as O,b as P,u as S}from"./schema-f8c0dfeb.js";import{a as U,B as V}from"./index-e60b7cd2.js";import{d as j,f as v,c as A,u as i,Z as G,a4 as I,a5 as N,k as T,a9 as W}from"./vue-72a104e4.js";const H=j({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=v(!0),n=v(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=L({labelWidth:120,schemas:O,showActionButtonGroup:!1}),[m,{setDrawerProps:w,closeDrawer:y}]=U(o=>g(this,null,function*(){yield p(),w({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),D=A(()=>i(t)?"编辑":"新增");function b(){return g(this,null,function*(){try{const o=yield a();w({confirmLoading:!0});const d=F(o,[]),k=i(t)?S:P,R=i(t)?Object.assign({},u(u({},i(n)),d)):u({},d);yield k(R),y(),e("success")}finally{w({confirmLoading:!1})}})}return(o,d)=>(G(),I(i(V),W(o.$attrs,{onRegister:i(m),showFooter:"",title:D.value,width:"600px",onOk:b}),{default:N(()=>[T(i(C),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{H as _}; diff --git a/detect.gui/Embedded/dist/assets/en-62bd803a.js b/detect.gui/Embedded/dist/assets/en-62bd803a.js new file mode 100644 index 0000000..f22e6e1 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/en-62bd803a.js @@ -0,0 +1 @@ +var l=Object.defineProperty,s=Object.defineProperties;var c=Object.getOwnPropertyDescriptors;var r=Object.getOwnPropertySymbols;var d=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var a=(t,e,o)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,n=(t,e)=>{for(var o in e||(e={}))d.call(e,o)&&a(t,o,e[o]);if(r)for(var o of r(e))u.call(e,o)&&a(t,o,e[o]);return t},i=(t,e)=>s(t,c(e));import{g as m}from"./index.js";import{E as p}from"./antd-eedb3ef5.js";import"./vue-72a104e4.js";const g={okText:"OK",closeText:"Close",cancelText:"Cancel",loadingText:"Loading...",saveText:"Save",delText:"Delete",resetText:"Reset",searchText:"Search Menu",queryText:"Search",inputText:"Please enter ",chooseText:"Please choose ",redo:"Refresh",back:"Back",light:"Light",dark:"Dark"},b=Object.freeze(Object.defineProperty({__proto__:null,default:g},Symbol.toStringTag,{value:"Module"})),h={app:{searchNotData:"No search results yet",toSearch:"to search",toNavigate:"to navigate"},countdown:{normalText:"Get SMS code",sendText:"Reacquire in {0}s"},cropper:{selectImage:"Select Image",uploadSuccess:"Uploaded success!",imageTooBig:"Image too big",modalTitle:"Avatar upload",okText:"Confirm and upload",btn_reset:"Reset",btn_rotate_left:"Counterclockwise rotation",btn_rotate_right:"Clockwise rotation",btn_scale_x:"Flip horizontal",btn_scale_y:"Flip vertical",btn_zoom_in:"Zoom in",btn_zoom_out:"Zoom out",preview:"Preivew"},drawer:{loadingText:"Loading...",cancelText:"Close",okText:"Confirm"},excel:{exportModalTitle:"Export data",fileType:"File type",fileName:"File name"},form:{putAway:"Put away",unfold:"Unfold",maxTip:"The number of characters should be less than {0}",apiSelectNotFound:"Wait for data loading to complete..."},icon:{placeholder:"Click the select icon",search:"Search icon",copy:"Copy icon successfully!"},menu:{search:"Menu search"},modal:{cancelText:"Close",okText:"Confirm",close:"Close",maximize:"Maximize",restore:"Restore"},table:{settingDens:"Density",settingDensDefault:"Default",settingDensMiddle:"Middle",settingDensSmall:"Compact",settingColumn:"Column settings",settingColumnShow:"Column display",settingIndexColumnShow:"Index Column",settingSelectColumnShow:"Selection Column",settingFixedLeft:"Fixed Left",settingFixedRight:"Fixed Right",settingFullScreen:"Full Screen",index:"Index",total:"total of {total}"},time:{before:" ago",after:" after",just:"just now",seconds:" seconds",minutes:" minutes",hours:" hours",days:" days"},tree:{selectAll:"Select All",unSelectAll:"Cancel Select",expandAll:"Expand All",unExpandAll:"Collapse all",checkStrictly:"Hierarchical association",checkUnStrictly:"Hierarchical independence"},upload:{save:"Save",upload:"Upload",imgUpload:"ImageUpload",uploaded:"Uploaded",operating:"Operating",del:"Delete",download:"download",saveWarn:"Please wait for the file to upload and save!",saveError:"There is no file successfully uploaded and cannot be saved!",preview:"Preview",choose:"Select the file",accept:"Support {0} format",acceptUpload:"Only upload files in {0} format",maxSize:"A single file does not exceed {0}MB ",maxSizeMultiple:"Only upload files up to {0}MB!",maxNumber:"Only upload up to {0} files",legend:"Legend",fileName:"File name",fileSize:"File size",fileStatue:"File status",startUpload:"Start upload",uploadSuccess:"Upload successfully",uploadError:"Upload failed",uploading:"Uploading",uploadWait:"Please wait for the file upload to finish",reUploadFailed:"Re-upload failed files"},verify:{error:"verification failed!",time:"The verification is successful and it takes {time} seconds!",redoTip:"Click the picture to refresh",dragText:"Hold down the slider and drag",successText:"Verified"}},f=Object.freeze(Object.defineProperty({__proto__:null,default:h},Symbol.toStringTag,{value:"Module"})),T={footer:{onlinePreview:"Preview",onlineDocument:"Document"},header:{dropdownItemDoc:"Document",dropdownItemLoginOut:"Log Out",tooltipErrorLog:"Error log",tooltipLock:"Lock screen",tooltipChangePassword:"Change password",tooltipNotify:"Notification",tooltipEntryFull:"Full Screen",tooltipExitFull:"Exit Full Screen",lockScreenPassword:"Lock screen password",lockScreen:"Lock screen",lockScreenBtn:"Locking",home:"Home"},multipleTab:{reload:"Refresh current",close:"Close current",closeLeft:"Close Left",closeRight:"Close Right",closeOther:"Close Other",closeAll:"Close All"},setting:{contentModeFull:"Full",contentModeFixed:"Fixed width",topMenuAlignLeft:"Left",topMenuAlignRight:"Center",topMenuAlignCenter:"Right",menuTriggerNone:"Not Show",menuTriggerBottom:"Bottom",menuTriggerTop:"Top",menuTypeSidebar:"Left menu mode",menuTypeMixSidebar:"Left menu mixed mode",menuTypeMix:"Top Menu Mix mode",menuTypeTopMenu:"Top menu mode",on:"On",off:"Off",minute:"Minute",operatingTitle:"Successful!",operatingContent:"The copy is successful, please go to src/settings/projectSetting.ts to modify the configuration!",resetSuccess:"Successfully reset!",copyBtn:"Copy",clearBtn:"Clear cache and to the login page",drawerTitle:"Configuration",darkMode:"Dark mode",navMode:"Navigation mode",interfaceFunction:"Interface function",interfaceDisplay:"Interface display",animation:"Animation",splitMenu:"Split menu",closeMixSidebarOnChange:"Switch page to close menu",sysTheme:"System theme",headerTheme:"Header theme",sidebarTheme:"Menu theme",menuDrag:"Drag Sidebar",menuSearch:"Menu search",menuAccordion:"Sidebar accordion",menuCollapse:"Collapse menu",collapseMenuDisplayName:"Collapse menu display name",topMenuLayout:"Top menu layout",menuCollapseButton:"Menu collapse button",contentMode:"Content area width",expandedMenuWidth:"Expanded menu width",breadcrumb:"Breadcrumbs",breadcrumbIcon:"Breadcrumbs Icon",tabs:"Tabs",tabDetail:"Tab Detail",tabsQuickBtn:"Tabs quick button",tabsRedoBtn:"Tabs redo button",tabsFoldBtn:"Tabs flod button",sidebar:"Sidebar",header:"Header",footer:"Footer",fullContent:"Full content",grayMode:"Gray mode",colorWeak:"Color Weak Mode",progress:"Progress",switchLoading:"Switch Loading",switchAnimation:"Switch animation",animationType:"Animation type",autoScreenLock:"Auto screen lock",notAutoScreenLock:"Not auto lock",fixedHeader:"Fixed header",fixedSideBar:"Fixed Sidebar",mixSidebarTrigger:"Mixed menu Trigger",triggerHover:"Hover",triggerClick:"Click",mixSidebarFixed:"Fixed expanded menu"}},S=Object.freeze(Object.defineProperty({__proto__:null,default:T},Symbol.toStringTag,{value:"Module"})),y={login:"Login",changePassword:"ChangePassword",errorLogList:"Error Log"},w=Object.freeze(Object.defineProperty({__proto__:null,default:y},Symbol.toStringTag,{value:"Module"})),x={dashboard:"Dashboard",about:"About",workbench:"Workbench",analysis:"Analysis"},k=Object.freeze(Object.defineProperty({__proto__:null,default:x},Symbol.toStringTag,{value:"Module"})),M={charts:{baiduMap:"Baidu map",aMap:"A map",googleMap:"Google map",charts:"Chart",map:"Map",line:"Line",pie:"Pie"},comp:{comp:"Component",basic:"Basic",transition:"Animation",countTo:"Count To",scroll:"Scroll",scrollBasic:"Basic",scrollAction:"Scroll Function",virtualScroll:"Virtual Scroll",tree:"Tree",treeBasic:"Basic",editTree:"Searchable/toolbar",actionTree:"Function operation",modal:"Modal",drawer:"Drawer",desc:"Desc",verify:"Verify",verifyDrag:"Drag ",verifyRotate:"Picture Restore",qrcode:"QR code",strength:"Password strength",upload:"Upload",loading:"Loading",time:"Relative Time",cropperImage:"Cropper Image",cardList:"Card List"},editor:{editor:"Editor",jsonEditor:"Json editor",markdown:"Markdown editor",tinymce:"Rich text",tinymceBasic:"Basic",tinymceForm:"embeded form"},excel:{excel:"Excel",customExport:"Select export format",jsonExport:"JSON data export",arrayExport:"Array data export",importExcel:"Import"},feat:{feat:"Page Function",icon:"Icon",tabs:"Tabs",tabDetail:"Tab Detail",sessionTimeout:"Session Timeout",print:"Print",contextMenu:"Context Menu",download:"Download",clickOutSide:"ClickOutSide",imgPreview:"Picture Preview",copy:"Clipboard",msg:"Message prompt",watermark:"Watermark",ripple:"Ripple",fullScreen:"Full Screen",errorLog:"Error Log",tab:"Tab with parameters",tab1:"Tab with parameter 1",tab2:"Tab with parameter 2",menu:"Menu with parameters",menu1:"Menu with parameters 1",menu2:"Menu with parameters 2",ws:"Websocket test",breadcrumb:"Breadcrumbs",breadcrumbFlat:"Flat Mode",breadcrumbFlatDetail:"Flat mode details",requestDemo:"Retry request demo",breadcrumbChildren:"Level mode",breadcrumbChildrenDetail:"Level mode detail"},flow:{name:"Graphics editor",flowChart:"FlowChart"},form:{form:"Form",basic:"Basic",useForm:"useForm",refForm:"RefForm",advancedForm:"Shrinkable",ruleForm:"Form validation",dynamicForm:"Dynamic",customerForm:"Custom",appendForm:"Append",tabsForm:"TabsForm"},iframe:{frame:"External",antv:"antVue doc (embeded)",doc:"Project doc (embeded)",docExternal:"Project doc (external)"},level:{level:"MultiMenu"},page:{page:"Page",form:"Form",formBasic:"Basic Form",formStep:"Step Form",formHigh:"Advanced Form",desc:"Details",descBasic:"Basic Details",descHigh:"Advanced Details",result:"Result",resultSuccess:"Success",resultFail:"Failed",account:"Personal",accountCenter:"Personal Center",accountSetting:"Personal Settings",exception:"Exception",netWorkError:"Network Error",notData:"No data",list:"List page",listCard:"Card list",basic:"Basic list",listBasic:"Basic list",listSearch:"Search list"},permission:{permission:"Permission",front:"front-end",frontPage:"Page",frontBtn:"Button",frontTestA:"Test page A",frontTestB:"Test page B",back:"background",backPage:"Page",backBtn:"Button"},setup:{page:"Intro page"},system:{moduleName:"System management",account:"Account management",account_detail:"Account detail",password:"Change password",dept:"Department management",menu:"Menu management",role:"Role management"},table:{table:"Table",basic:"Basic",treeTable:"Tree",fetchTable:"Remote loading",fixedColumn:"Fixed column",customerCell:"Custom column",formTable:"Open search",useTable:"UseTable",refTable:"RefTable",multipleHeader:"MultiLevel header",mergeHeader:"Merge cells",expandTable:"Expandable table",fixedHeight:"Fixed height",footerTable:"Footer",editCellTable:"Editable cell",editRowTable:"Editable row",authColumn:"Auth column",resizeParentHeightTable:"resizeParentHeightTable",vxeTable:"VxeTable"}},C=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"})),_={api:{operationSuccess:"Operation Success",operationFailed:"Operation failed",errorTip:"Error Tip",successTip:"Success Tip",errorMessage:"The operation failed, the system is abnormal!",timeoutMessage:"Login timed out, please log in again!",apiTimeoutMessage:"The interface request timed out, please refresh the page and try again!",apiRequestFailed:"The interface request failed, please try again later!",networkException:"network anomaly",networkExceptionMsg:"Please check if your network connection is normal! The network is abnormal",errMsg401:"The user does not have permission (token, user name, password error)!",errMsg403:"The user is authorized, but access is forbidden!",errMsg404:"Network request error, the resource was not found!",errMsg405:"Network request error, request method not allowed!",errMsg408:"Network request timed out!",errMsg500:"Server error, please contact the administrator!",errMsg501:"The network is not implemented!",errMsg502:"Network Error!",errMsg503:"The service is unavailable, the server is temporarily overloaded or maintained!",errMsg504:"Network timeout!",errMsg505:"The http version does not support the request!"},app:{logoutTip:"Reminder",logoutMessage:"Confirm to exit the system?",menuLoading:"Menu loading..."},errorLog:{tableTitle:"Error log list",tableColumnType:"Type",tableColumnDate:"Time",tableColumnFile:"File",tableColumnMsg:"Error message",tableColumnStackMsg:"Stack info",tableActionDesc:"Details",modalTitle:"Error details",fireVueError:"Fire vue error",fireResourceError:"Fire resource error",fireAjaxError:"Fire ajax error",enableMessage:"Only effective when useErrorHandle=true in `/src/settings/projectSetting.ts`."},exception:{backLogin:"Back Login",backHome:"Back Home",subTitle403:"Sorry, you don't have access to this page.",subTitle404:"Sorry, the page you visited does not exist.",subTitle500:"Sorry, the server is reporting an error.",noDataTitle:"No data on the current page.",networkErrorTitle:"Network Error",networkErrorSubTitle:"Sorry,Your network connection has been disconnected, please check your network!"},lock:{unlock:"Click to unlock",alert:"Lock screen password error",backToLogin:"Back to login",entry:"Enter the system",placeholder:"Please enter the lock screen password or user password"},login:{backSignIn:"Back sign in",mobileSignInFormTitle:"Mobile sign in",qrSignInFormTitle:"Qr code sign in",signInFormTitle:"Sign in",signUpFormTitle:"Sign up",forgetFormTitle:"Reset password",signInTitle:"Backstage management system",signInDesc:"Enter your personal details and get started!",policy:"I agree to the xxx Privacy Policy",scanSign:"scanning the code to complete the login",loginButton:"Sign in",registerButton:"Sign up",rememberMe:"Remember me",forgetPassword:"Forget Password?",otherSignIn:"Sign in with",loginSuccessTitle:"Login successful",loginSuccessDesc:"Welcome back",accountPlaceholder:"Please input username",passwordPlaceholder:"Please input password",smsPlaceholder:"Please input sms code",mobilePlaceholder:"Please input mobile",policyPlaceholder:"Register after checking",diffPwd:"The two passwords are inconsistent",userName:"Username",password:"Password",confirmPassword:"Confirm Password",email:"Email",smsCode:"SMS code",mobile:"Mobile"}},F=Object.freeze(Object.defineProperty({__proto__:null,default:_},Symbol.toStringTag,{value:"Module"})),v=Object.assign({"./en/common.ts":b,"./en/component.ts":f,"./en/layout.ts":S,"./en/routes/basic.ts":w,"./en/routes/dashboard.ts":k,"./en/routes/demo.ts":C,"./en/sys.ts":F}),D={message:i(n({},m(v,"en")),{antdLocale:p}),dateLocale:null,dateLocaleName:"en"};export{D as default}; diff --git a/detect.gui/Embedded/dist/assets/index-05011eb9.css b/detect.gui/Embedded/dist/assets/index-05011eb9.css new file mode 100644 index 0000000..683c3a2 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-05011eb9.css @@ -0,0 +1 @@ +.header[data-v-0024f4f5]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-0024f4f5]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-0024f4f5] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-0024f4f5] .ant-table-wrapper{background:transparent}[data-v-0024f4f5] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-0024f4f5] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-0024f4f5] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-0024f4f5] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-0024f4f5] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-0024f4f5] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-0024f4f5] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-0024f4f5] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-0024f4f5] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-0024f4f5] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-0024f4f5] .ant-select-selector .ant-select-selection-item,[data-v-0024f4f5] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-0024f4f5] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-0024f4f5] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-0024f4f5] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-0024f4f5] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-0024f4f5] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-0024f4f5] .ant-empty-description{color:#999}[data-v-0024f4f5] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-0024f4f5] .ant-pagination-options-quick-jumper>input:hover,[data-v-0024f4f5] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-0024f4f5] .ant-input-clear-icon,[data-v-0024f4f5] .ant-input-password-icon{color:#fff!important}[data-v-0024f4f5] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-0024f4f5] .vben-basic-table-action button:disabled{color:#999!important}[data-v-0024f4f5] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-0024f4f5] .vben-tree-header{border-bottom:1px solid #183171}[data-v-0024f4f5] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-tree-list{background:#13265a!important}[data-v-0024f4f5] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-tree-switcher-icon{color:#fff!important}[data-v-0024f4f5] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-0024f4f5] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-0024f4f5] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0024f4f5] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-picker,[data-v-0024f4f5] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-0024f4f5] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-0024f4f5] .ant-picker-focused,[data-v-0024f4f5] .ant-picker-range:hover,[data-v-0024f4f5] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-0024f4f5] .vben-basic-table .ant-picker-range{width:100%}[data-v-0024f4f5] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0024f4f5] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-0024f4f5] .anticon{color:#fff!important}[data-v-0024f4f5] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0024f4f5] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-0024f4f5] .ant-picker-cell-in-view{color:#fff!important}[data-v-0024f4f5] .ant-picker-content th,[data-v-0024f4f5] .ant-picker-header-super-prev-btn,[data-v-0024f4f5] .ant-picker-header-prev-btn,[data-v-0024f4f5] .ant-picker-header-super-next-btn,[data-v-0024f4f5] .ant-picker-header-next-btn,[data-v-0024f4f5] .ant-picker-year-btn,[data-v-0024f4f5] .ant-picker-month-btn,[data-v-0024f4f5] .ant-picker-decade-btn,[data-v-0024f4f5] .ant-picker-header-view,[data-v-0024f4f5] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-0024f4f5] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-0024f4f5] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0024f4f5] .ant-card-body{padding:0!important}[data-v-0024f4f5] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-0024f4f5] .ant-descriptions-view{border:1px solid #183171!important}[data-v-0024f4f5] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-0024f4f5] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-0024f4f5] .ant-descriptions-item-label,[data-v-0024f4f5] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-0024f4f5] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-0024f4f5] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-0024f4f5] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-0024f4f5] .CodeMirror-cursor{border-left:1px solid white}[data-v-0024f4f5] .cm-string{color:#ff8c00!important}[data-v-0024f4f5] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-07b093f7.js b/detect.gui/Embedded/dist/assets/index-07b093f7.js new file mode 100644 index 0000000..83e5e00 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-07b093f7.js @@ -0,0 +1 @@ +var Ft=Object.defineProperty;var ke=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;var Qe=(e,n,s)=>n in e?Ft(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s,re=(e,n)=>{for(var s in n||(n={}))Ye.call(n,s)&&Qe(e,s,n[s]);if(ke)for(var s of ke(n))Je.call(n,s)&&Qe(e,s,n[s]);return e};var et=(e,n)=>{var s={};for(var o in e)Ye.call(e,o)&&n.indexOf(o)<0&&(s[o]=e[o]);if(e!=null&&ke)for(var o of ke(e))n.indexOf(o)<0&&Je.call(e,o)&&(s[o]=e[o]);return s};var j=(e,n,s)=>new Promise((o,r)=>{var a=l=>{try{c(s.next(l))}catch(d){r(d)}},i=l=>{try{c(s.throw(l))}catch(d){r(d)}},c=l=>l.done?o(l.value):Promise.resolve(l.value).then(a,i);c((s=s.apply(e,n)).next())});import{y as Dt,z as it,A as We,a as U,B as we,M as ae,p as T,D as rt,T as Bt,I as he,u as F,v as Se,_ as z,F as ut,G as Ee,H as Ne,R as ze,J as Re,f as ct,K as Kt,L as Wt,N as dt,O as zt,Q as xt,l as jt,m as le,U as pt,V as mt,W as gt,X as pe,Y as ft,Z as ht,$ as Y,a0 as Oe,a1 as Ut,a2 as Be,k as Pe,a3 as St,a4 as xe,a5 as Vt,a6 as Gt,a7 as tt,a8 as qt,a9 as Zt,aa as Xt,ab as nt,ac as Qt,ad as Yt,ae as Jt,af as en,ag as Ae,ah as yt,ai as tn,aj as nn,ak as on,al as ot,am as _t}from"./index.js";import{aj as sn,k as I,c as p,u as t,d as P,a6 as b,Z as m,_ as L,a4 as $,a1 as M,a8 as R,G as an,a0 as ne,a5 as N,a9 as q,ag as Ct,F as X,a7 as ye,J as je,f as B,r as Te,I as ge,S as _e,w as se,g as Ue,h as Ke,p as bt,o as Ve,y as Ie,ab as oe,B as Ge,ad as ie,$ as W,e as ln,D as rn,m as ue,A as fe,ah as un,z as cn,n as Mt,l as dn,aa as vt,b as pn}from"./vue-72a104e4.js";import{y as mn,q as qe,Y as $t,T as Tt,Z as gn,$ as fn,a0 as hn,a1 as Sn,a2 as yn,a3 as _n,a4 as Cn,L as Ze,a5 as bn,a6 as Mn,a7 as st}from"./antd-eedb3ef5.js";import{P as vn,u as It}from"./index-cb1b7a92.js";import{a as $n,u as Tn}from"./useContentViewHeight-af1e3bfb.js";import{u as In}from"./lock-ba03254e.js";function ce(e,n={}){const{size:s="small",delay:o=100,timeout:r=3e4,loading:a=!1,retry:i=!0}=n;return sn({loader:e,loadingComponent:a?I(mn,{spinning:!0,size:s},null):void 0,timeout:r,delay:o,onError:i?(c,l,d,u)=>{c.message.match(/fetch/)&&u<=3?l():d()}:Dt})}function Fe(){const{getFullContent:e}=it(),n=We(),s=p(()=>!t(e)&&t(h)&&t(_)&&!t(u)&&!t(d)),o=p(()=>!t(C)&&!t(s)),r=p(()=>{const Z=!t(e)&&t(_);return Z&&!t(h)||Z&&t(u)||Z&&t(d)}),{getMenuMode:a,getSplit:i,getShowHeaderTrigger:c,getIsSidebarType:l,getIsMixSidebar:d,getIsTopMenu:u}=U(),{getShowBreadCrumb:g,getShowLogo:f}=we(),h=p(()=>!t(l)&&t(_)),S=p(()=>n.getHeaderSetting.showDoc),y=p(()=>n.getHeaderSetting.theme),_=p(()=>n.getHeaderSetting.show),C=p(()=>n.getHeaderSetting.fixed),v=p(()=>n.getHeaderSetting.bgColor),O=p(()=>n.getHeaderSetting.showSearch),K=p(()=>n.getHeaderSetting.useLockPage),k=p(()=>n.getHeaderSetting.showFullScreen),w=p(()=>n.getHeaderSetting.showNotice),E=p(()=>t(a)!==ae.HORIZONTAL&&t(g)&&!t(i)),D=p(()=>t(f)&&!t(l)&&!t(d)),G=p(()=>t(E)||t(c));function x(Z){n.setProjectConfig({headerSetting:Z})}return{setHeaderSetting:x,getShowDoc:S,getShowSearch:O,getHeaderTheme:y,getUseLockPage:K,getShowFullScreen:k,getShowNotice:w,getShowBread:E,getShowContent:G,getShowHeaderLogo:D,getShowHeader:_,getFixed:C,getShowMixHeaderRef:h,getShowFullHeaderRef:s,getShowInsetHeaderRef:r,getUnFixedAndFull:o,getHeaderBgColor:v}}const wn={items:{type:Array,default:()=>[]},collapsedShowTitle:T.bool,inlineIndent:T.number.def(20),mode:{type:String,default:ae.INLINE},type:{type:String,default:rt.MIX},theme:{type:String,default:Bt.DARK},inlineCollapsed:T.bool,mixSider:T.bool,isHorizontal:T.bool,accordion:T.bool.def(!0),beforeClickFn:{type:Function}},wt={item:{type:Object,default:()=>({})},level:T.number,theme:T.oneOf(["dark","light"]),showTitle:T.bool,isHorizontal:T.bool},Ln={item:{type:Object,default:null},showTitle:T.bool.def(!0),level:T.number.def(0),isHorizontal:T.bool.def(!0)},{t:kn}=Se(),On=P({name:"MenuItemContent",components:{Icon:he},props:Ln,setup(e){const{prefixCls:n}=F("basic-menu-item-content"),s=p(()=>{var r;return kn((r=e.item)==null?void 0:r.name)}),o=p(()=>{var r;return(r=e.item)==null?void 0:r.icon});return{prefixCls:n,getI18nName:s,getIcon:o}}});function En(e,n,s,o,r,a){const i=b("Icon");return m(),L("span",{class:M(`${e.prefixCls}- flex items-center `)},[e.getIcon?(m(),$(i,{key:0,icon:e.getIcon,size:18,class:M(`${e.prefixCls}-wrapper__icon mr-2`)},null,8,["icon","class"])):R("",!0),an(" "+ne(e.getI18nName),1)],2)}const Lt=z(On,[["render",En]]),Rn=P({name:"BasicMenuItem",components:{MenuItem:qe.Item,MenuItemContent:Lt},props:wt,setup(){return{}}});function Hn(e,n,s,o,r,a){const i=b("MenuItemContent"),c=b("MenuItem");return m(),$(c,{key:e.item.path},{default:N(()=>[I(i,q(e.$props,{item:e.item}),null,16,["item"])]),_:1})}const Nn=z(Rn,[["render",Hn]]),Pn=P({name:"BasicSubMenuItem",isSubMenu:!0,components:{BasicMenuItem:Nn,SubMenu:qe.SubMenu,MenuItemContent:Lt},props:wt,setup(e){const{prefixCls:n}=F("basic-menu-item"),s=p(()=>{var r;return!((r=e.item.meta)!=null&&r.hideMenu)});function o(r){var a;return!((a=r.meta)!=null&&a.hideChildrenInMenu)&&Reflect.has(r,"children")&&!!r.children&&r.children.length>0}return{prefixCls:n,menuHasChildren:o,getShowMenu:s}}});function An(e,n,s,o,r,a){const i=b("BasicMenuItem"),c=b("MenuItemContent"),l=b("BasicSubMenuItem",!0),d=b("SubMenu");return m(),L(X,null,[!e.menuHasChildren(e.item)&&e.getShowMenu?(m(),$(i,Ct(q({key:0},e.$props)),null,16)):R("",!0),e.menuHasChildren(e.item)&&e.getShowMenu?(m(),$(d,{class:M([e.theme]),key:`submenu-${e.item.path}`,popupClassName:"app-top-menu-popup"},{title:N(()=>[I(c,q(e.$props,{item:e.item}),null,16,["item"])]),default:N(()=>[(m(!0),L(X,null,ye(e.item.children||[],u=>(m(),$(l,q({key:u.path,ref_for:!0},e.$props,{item:u}),null,16,["item"]))),128))]),_:1},8,["class"])):R("",!0)],64)}const Fn=z(Pn,[["render",An]]);function Dn(e,n,s,o){const{getCollapsed:r,getIsMixSidebar:a}=U();function i(u){return j(this,null,function*(){if(s.value===ae.HORIZONTAL)return;const g=t(a),f=()=>{const h=je(n.value);if((h==null?void 0:h.length)===0){e.openKeys=[];return}t(o)?e.openKeys=Ee(h,u):e.openKeys=$t([...e.openKeys,...Ee(h,u)])};g?f():ut(f,16)})}const c=p(()=>(t(a)?!1:t(r))?e.collapsedOpenKeys:e.openKeys);function l(){e.selectedKeys=[],e.openKeys=[]}function d(u){if(t(s)===ae.HORIZONTAL||!t(o)||t(a))e.openKeys=u;else{const g=[];for(const{children:f,path:h}of t(n))f&&f.length>0&&g.push(h);if(t(r))e.collapsedOpenKeys=u;else{const f=u.find(h=>e.openKeys.indexOf(h)===-1);g.indexOf(f)===-1?e.openKeys=u:e.openKeys=f?[f]:[]}}}return{setOpenKeys:i,resetKeys:l,getOpenKeys:c,handleOpenChange:d}}const Bn=P({name:"BasicMenu",components:{Menu:qe,BasicSubMenuItem:Fn},props:wn,emits:["menuClick"],setup(e,{emit:n}){const s=B(!1),o=B(""),r=Te({defaultSelectedKeys:[],openKeys:[],selectedKeys:[],collapsedOpenKeys:[]}),{prefixCls:a}=F("basic-menu"),{items:i,mode:c,accordion:l}=ge(e),{getCollapsed:d,getTopMenuAlign:u,getSplit:g}=U(),{currentRoute:f}=_e(),{handleOpenChange:h,setOpenKeys:S,getOpenKeys:y}=Dn(r,i,c,l),_=p(()=>{const{type:k,mode:w}=e;return k===rt.TOP_MENU&&w===ae.HORIZONTAL||e.isHorizontal&&t(g)}),C=p(()=>{const k=e.isHorizontal&&t(g)?"start":t(u);return[a,`justify-${k}`,{[`${a}__second`]:!e.isHorizontal&&t(g),[`${a}__sidebar-hor`]:t(_)}]}),v=p(()=>{const k=e.mode===ae.INLINE,w={};return k&&(w.inlineCollapsed=e.mixSider?!1:t(d)),w});Ne(k=>{var w;k.name!==ze&&(K(k),o.value=(w=k.meta)==null?void 0:w.currentActiveMenu,t(o)&&(r.selectedKeys=[t(o)],S(t(o))))}),!e.mixSider&&se(()=>e.items,()=>{K()});function O(w){return j(this,arguments,function*({key:k}){const{beforeClickFn:E}=e;E&&ct(E)&&!(yield E(k))||(n("menuClick",k),s.value=!0,r.selectedKeys=[k])})}function K(k){return j(this,null,function*(){var E;if(t(s)){s.value=!1;return}const w=((E=(k||t(f)).meta)==null?void 0:E.currentActiveMenu)||(k||t(f)).path;if(S(w),!t(o))if(e.isHorizontal&&t(g)){const D=yield Re(w);r.selectedKeys=[D]}else{const D=yield Ee(e.items,w);r.selectedKeys=D}})}return re({handleMenuClick:O,getInlineCollapseOptions:v,getMenuClass:C,handleOpenChange:h,getOpenKeys:y},ge(r))}});function Kn(e,n,s,o,r,a){const i=b("BasicSubMenuItem"),c=b("Menu");return m(),$(c,q({selectedKeys:e.selectedKeys,defaultSelectedKeys:e.defaultSelectedKeys,mode:e.mode,openKeys:e.getOpenKeys,inlineIndent:e.inlineIndent,theme:e.theme,onOpenChange:e.handleOpenChange,class:e.getMenuClass,onClick:e.handleMenuClick,subMenuOpenDelay:.2},e.getInlineCollapseOptions),{default:N(()=>[(m(!0),L(X,null,ye(e.items,l=>(m(),$(i,{key:l.path,item:l,theme:e.theme,isHorizontal:e.isHorizontal},null,8,["item","theme","isHorizontal"]))),128))]),_:1},16,["selectedKeys","defaultSelectedKeys","mode","openKeys","inlineIndent","theme","onOpenChange","class","onClick"])}const Wn=z(Bn,[["render",Kn]]),kt=Symbol();function zn(e){return Kt(e,kt,{readonly:!1,native:!0})}function Ot(){return Wt(kt)}const xn=P({name:"Menu",props:{theme:T.oneOf(["light","dark"]).def("light"),activeName:T.oneOfType([T.string,T.number]),openNames:{type:Array,default:()=>[]},accordion:T.bool.def(!0),width:T.string.def("100%"),collapsedWidth:T.string.def("48px"),indentSize:T.number.def(16),collapse:T.bool.def(!0),activeSubMenuNames:{type:Array,default:()=>[]}},emits:["select","open-change"],setup(e,{emit:n}){const s=dt(),o=Ue(),r=B(""),a=B([]),{prefixCls:i}=F("menu"),c=B(!1);zn({rootMenuEmitter:s,activeName:r});const l=p(()=>{const{theme:S}=e;return[i,`${i}-${S}`,`${i}-vertical`,{[`${i}-collapse`]:e.collapse}]});Ke(()=>{a.value=e.openNames}),Ke(()=>{e.activeName&&(r.value=e.activeName)}),se(()=>e.openNames,()=>{Ie(()=>{d()})});function d(){s.emit("on-update-opened",a.value)}function u(S){a.value.includes(S)||(a.value.push(S),d())}function g(S){a.value=a.value.filter(y=>y!==S),d()}function f(){a.value=[],d()}function h(S){S!==-1&&(a.value=a.value.slice(0,S+1),d())}return bt(`subMenu:${o==null?void 0:o.uid}`,{addSubMenu:u,removeSubMenu:g,getOpenNames:()=>a.value,removeAll:f,isRemoveAllPopup:c,sliceIndex:h,level:0,props:e}),Ve(()=>{a.value=e.collapse?[]:[...e.openNames],d(),s.on("on-menu-item-select",S=>{r.value=S,Ie(()=>{e.collapse&&f()}),n("select",S)}),s.on("open-name-change",({name:S,opened:y})=>{if(y&&!a.value.includes(S))a.value.push(S);else if(!y){const _=a.value.findIndex(C=>C===S);_!==-1&&a.value.splice(_,1)}})}),{getClass:l,openedNames:a}}});function jn(e,n,s,o,r,a){return m(),L("ul",{class:M(e.getClass)},[oe(e.$slots,"default")],2)}const Un=z(xn,[["render",jn]]);function Et(e){const n=p(()=>a(["Menu","SubMenu"])),s=p(()=>a(["Menu"])),o=p(()=>a(["SubMenu"])),r=p(()=>{var g,f,h;let l=e==null?void 0:e.parent;if(!l)return{};const d=(f=(g=t(s))==null?void 0:g.props.indentSize)!=null?f:20;let u=d;if((h=t(s))!=null&&h.props.collapse)u=d;else for(;l&&l.type.name!=="Menu";)l.type.name==="SubMenu"&&(u+=d),l=l.parent;return{paddingLeft:u+"px"}});function a(l){let d=e==null?void 0:e.parent;if(!d)return null;for(;d&&l.indexOf(d.type.name)===-1;)d=d.parent;return d}function i(){let l=e;if(!l)return{uidList:[],list:[]};const d=[];for(;l&&l.type.name!=="Menu";)l.type.name==="SubMenu"&&d.push(l),l=l.parent;return{uidList:d.map(u=>u.uid),list:d}}function c(l,d="SubMenu"){let u=l.parent;for(;u;){if(u.type.name!==d)return u;u=u.parent}return u}return{getParentMenu:n,getParentInstance:c,getParentRootMenu:s,getParentList:i,getParentSubMenu:o,getItemStyle:r}}const Vn=P({name:"MenuItem",components:{Tooltip:Tt},props:{name:{type:[String,Number],required:!0},disabled:T.bool},setup(e,{slots:n}){const s=Ue(),o=B(!1),{getItemStyle:r,getParentList:a,getParentMenu:i,getParentRootMenu:c}=Et(s),{prefixCls:l}=F("menu"),{rootMenuEmitter:d,activeName:u}=Ot(),g=p(()=>[`${l}-item`,{[`${l}-item-active`]:t(o),[`${l}-item-selected`]:t(o),[`${l}-item-disabled`]:!!e.disabled}]),f=p(()=>{var y;return(y=t(c))==null?void 0:y.props.collapse}),h=p(()=>{var y;return((y=t(i))==null?void 0:y.type.name)==="Menu"&&t(f)&&n.title});function S(){const{disabled:y}=e;if(y||(d.emit("on-menu-item-select",e.name),t(f)))return;const{uidList:_}=a();d.emit("on-update-opened",{opend:!1,parent:s==null?void 0:s.parent,uidList:_})}return se(()=>u.value,y=>{if(y===e.name){const{list:_,uidList:C}=a();o.value=!0,_.forEach(v=>{v.proxy&&(v.proxy.active=!0)}),d.emit("on-update-active-name:submenu",C)}else o.value=!1},{immediate:!0}),{getClass:g,prefixCls:l,getItemStyle:r,getCollapse:f,handleClickItem:S,showTooptip:h}}});function Gn(e,n,s,o,r,a){const i=b("Tooltip");return m(),L("li",{class:M(e.getClass),onClick:n[0]||(n[0]=Ge((...c)=>e.handleClickItem&&e.handleClickItem(...c),["stop"])),style:ie(e.getCollapse?{}:e.getItemStyle)},[e.showTooptip?(m(),$(i,{key:0,placement:"right"},{title:N(()=>[oe(e.$slots,"title")]),default:N(()=>[W("div",{class:M(`${e.prefixCls}-tooltip`)},[oe(e.$slots,"default")],2)]),_:3})):(m(),L(X,{key:1},[oe(e.$slots,"default"),oe(e.$slots,"title")],64))],6)}const qn=z(Vn,[["render",Gn]]),at=200,Zn=P({name:"SubMenu",components:{Icon:he,CollapseTransition:zt,Popover:gn},props:{name:{type:[String,Number],required:!0},disabled:T.bool,collapsedShowTitle:T.bool},setup(e){var de;const n=Ue(),s=Te({active:!1,opened:!1}),o=Te({timeout:null,mouseInChild:!1,isChild:!1}),{getParentSubMenu:r,getItemStyle:a,getParentMenu:i,getParentList:c}=Et(n),{prefixCls:l}=F("menu"),d=dt(),{rootMenuEmitter:u}=Ot(),{addSubMenu:g,removeSubMenu:f,removeAll:h,getOpenNames:S,isRemoveAllPopup:y,sliceIndex:_,level:C,props:v,handleMouseleave:O}=ln(`subMenu:${(de=i.value)==null?void 0:de.uid}`),K=p(()=>[`${l}-submenu`,{[`${l}-item-active`]:s.active,[`${l}-opened`]:s.opened,[`${l}-submenu-disabled`]:e.disabled,[`${l}-submenu-has-parent-submenu`]:t(r),[`${l}-child-item-active`]:s.active}]),k=p(()=>v.accordion),w=p(()=>v.collapse),E=p(()=>v.theme),D=p(()=>({minWidth:"200px"})),G=p(()=>{const A=e.name;return t(w)?S().includes(A):s.opened}),x=p(()=>{const A=v.activeSubMenuNames.includes(e.name);return[`${l}-submenu-title`,{[`${l}-submenu-active`]:A,[`${l}-submenu-active-border`]:A&&C===0,[`${l}-submenu-collapse`]:t(w)&&C===0}]});function Z(A){return t(w)?{onMouseenter:Le,onMouseleave:()=>Ce(A)}:{}}function V(){const{disabled:A}=e;if(A||t(w))return;const ee=s.opened;if(t(k)){const{uidList:te}=c();u.emit("on-update-opened",{opend:!1,parent:n==null?void 0:n.parent,uidList:te})}else u.emit("open-name-change",{name:e.name,opened:!ee});s.opened=!ee}function Le(){if(e.disabled)return;d.emit("submenu:mouse-enter-child");const ee=S().findIndex(Me=>Me===e.name);_(ee),C===0&&S().length===2&&h(),o.isChild=S().includes(e.name),clearTimeout(o.timeout),o.timeout=setTimeout(()=>{g(e.name)},at)}function Ce(A=!1){var te;((te=i.value)==null?void 0:te.props.name)||(y.value=!0),S().slice(-1)[0]===e.name&&(o.isChild=!1),d.emit("submenu:mouse-leave-child"),o.timeout&&(clearTimeout(o.timeout),o.timeout=setTimeout(()=>{y.value?h():o.mouseInChild||f(e.name)},at)),A&&r.value&&(O==null||O(!0))}rn(()=>{d.on("submenu:mouse-enter-child",()=>{o.mouseInChild=!0,y.value=!1,clearTimeout(o.timeout)}),d.on("submenu:mouse-leave-child",()=>{o.isChild||(o.mouseInChild=!1,clearTimeout(o.timeout))}),u.on("on-update-opened",A=>{if(!t(w)){if(xt(A)){s.opened=A;return}if(jt(A)&&v.accordion){const{opend:ee,parent:te,uidList:Me}=A;te===(n==null?void 0:n.parent)?s.opened=ee:Me.includes(n==null?void 0:n.uid)||(s.opened=!1);return}e.name&&Array.isArray(A)&&(s.opened=A.includes(e.name))}}),u.on("on-update-active-name:submenu",A=>{n!=null&&n.uid&&(s.active=A.includes(n==null?void 0:n.uid))})});function be(A){s.opened=A}return bt(`subMenu:${n==null?void 0:n.uid}`,{addSubMenu:g,removeSubMenu:f,getOpenNames:S,removeAll:h,isRemoveAllPopup:y,sliceIndex:_,level:C+1,handleMouseleave:Ce,props:v}),re(re({getClass:K,prefixCls:l,getCollapse:w,getItemStyle:a,handleClick:V,handleVisibleChange:be,getParentSubMenu:r,getOverlayStyle:D,getTheme:E,getIsOpend:G,getEvents:Z,getSubClass:x},ge(s)),ge(o))}});function Xn(e,n,s,o,r,a){const i=b("Icon"),c=b("CollapseTransition"),l=b("Popover");return m(),L("li",{class:M(e.getClass)},[e.getCollapse?(m(),$(l,{key:1,placement:"right",overlayClassName:`${e.prefixCls}-menu-popover`,open:e.getIsOpend,onOnOpenChange:e.handleVisibleChange,overlayStyle:e.getOverlayStyle,overlayInnerStyle:{padding:0},align:{offset:[0,0]}},{content:N(()=>[W("div",Ct(un(e.getEvents(!0))),[W("ul",{class:M([e.prefixCls,`${e.prefixCls}-${e.getTheme}`,`${e.prefixCls}-popup`])},[oe(e.$slots,"default")],2)],16)]),default:N(()=>[W("div",q({class:e.getSubClass},e.getEvents(!1)),[W("div",{class:M([{[`${e.prefixCls}-submenu-popup`]:!e.getParentSubMenu,[`${e.prefixCls}-submenu-collapsed-show-tit`]:e.collapsedShowTitle}])},[oe(e.$slots,"title")],2),e.getParentSubMenu?(m(),$(i,{key:0,icon:"eva:arrow-ios-downward-outline",size:14,class:M(`${e.prefixCls}-submenu-title-icon`)},null,8,["class"])):R("",!0)],16)]),_:3},8,["overlayClassName","open","onOnOpenChange","overlayStyle"])):(m(),L(X,{key:0},[W("div",{class:M(`${e.prefixCls}-submenu-title`),onClick:n[0]||(n[0]=Ge((...d)=>e.handleClick&&e.handleClick(...d),["stop"])),style:ie(e.getItemStyle)},[oe(e.$slots,"title"),I(i,{icon:"eva:arrow-ios-downward-outline",size:14,class:M(`${e.prefixCls}-submenu-title-icon`)},null,8,["class"])],6),I(c,null,{default:N(()=>[ue(W("ul",{class:M(e.prefixCls)},[oe(e.$slots,"default")],2),[[fe,e.opened]])]),_:3})],64))],2)}const Qn=z(Zn,[["render",Xn]]),Yn=P({name:"SimpleSubMenu",components:{SubMenu:Qn,MenuItem:qn,SimpleMenuTag:ce(()=>le(()=>Promise.resolve().then(()=>ro),void 0,import.meta.url)),Icon:he},props:{item:{type:Object,default:()=>({})},parent:T.bool,collapsedShowTitle:T.bool,collapse:T.bool,theme:T.oneOf(["dark","light"])},setup(e){const{t:n}=Se(),{prefixCls:s}=F("simple-menu"),o=p(()=>{var u,g;return!((g=(u=e.item)==null?void 0:u.meta)!=null&&g.hideMenu)}),r=p(()=>{var u;return(u=e.item)==null?void 0:u.icon}),a=p(()=>{var u;return n((u=e.item)==null?void 0:u.name)}),i=p(()=>!e.collapse||!e.parent),c=p(()=>!!e.collapse&&!!e.parent),l=p(()=>[{[`${s}__parent`]:e.parent,[`${s}__children`]:!e.parent}]);function d(u){var g;return!((g=u.meta)!=null&&g.hideChildrenInMenu)&&Reflect.has(u,"children")&&!!u.children&&u.children.length>0}return{prefixCls:s,menuHasChildren:d,getShowMenu:o,getIcon:r,getI18nName:a,getShowSubTitle:i,getLevelClass:l,getIsCollapseParent:c}}}),Jn={key:1,class:"mt-1 collapse-title"},eo={key:1,class:"mt-2 collapse-title"};function to(e,n,s,o,r,a){const i=b("Icon"),c=b("SimpleMenuTag"),l=b("MenuItem"),d=b("SimpleSubMenu",!0),u=b("SubMenu");return m(),L(X,null,[!e.menuHasChildren(e.item)&&e.getShowMenu?(m(),$(l,q({key:0,name:e.item.path},e.$props,{class:e.getLevelClass}),{title:N(()=>[W("span",{class:M(["ml-2",`${e.prefixCls}-sub-title`])},ne(e.getI18nName),3),I(c,{item:e.item,collapseParent:e.getIsCollapseParent},null,8,["item","collapseParent"])]),default:N(()=>[e.getIcon?(m(),$(i,{key:0,icon:e.getIcon,size:16},null,8,["icon"])):R("",!0),e.collapsedShowTitle&&e.getIsCollapseParent?(m(),L("div",Jn,ne(e.getI18nName),1)):R("",!0)]),_:1},16,["name","class"])):R("",!0),e.menuHasChildren(e.item)&&e.getShowMenu?(m(),$(u,{key:1,name:e.item.path,class:M([e.getLevelClass,e.theme]),collapsedShowTitle:e.collapsedShowTitle},{title:N(()=>[e.getIcon?(m(),$(i,{key:0,icon:e.getIcon,size:16},null,8,["icon"])):R("",!0),e.collapsedShowTitle&&e.getIsCollapseParent?(m(),L("div",eo,ne(e.getI18nName),1)):R("",!0),ue(W("span",{class:M(["ml-2",`${e.prefixCls}-sub-title`])},ne(e.getI18nName),3),[[fe,e.getShowSubTitle]]),I(c,{item:e.item,collapseParent:!!e.collapse&&!!e.parent},null,8,["item","collapseParent"])]),default:N(()=>[(m(!0),L(X,null,ye(e.item.children||[],g=>(m(),$(d,q({key:g.paramPath||g.path,ref_for:!0},e.$props,{item:g,parent:!1}),null,16,["item"]))),128))]),_:1},8,["name","class","collapsedShowTitle"])):R("",!0)],64)}const no=z(Yn,[["render",to]]);function oo(e,n,s,o,r){const a=pt(i,50);function i(l){return j(this,null,function*(){const d=!o.value,u=je(n.value),g=()=>{if((u==null?void 0:u.length)===0){e.activeSubMenuNames=[],e.openNames=[];return}const f=Ee(u,l);t(s)?e.openNames=f:e.openNames=$t([...e.openNames,...f]),e.activeSubMenuNames=e.openNames};d?g():ut(g,30)})}const c=p(()=>t(r)?[]:e.openNames);return{setOpenKeys:a,getOpenKeys:c}}const so=P({name:"SimpleMenu",components:{Menu:Un,SimpleSubMenu:no},inheritAttrs:!1,props:{items:{type:Array,default:()=>[]},collapse:T.bool,mixSider:T.bool,theme:T.string,accordion:T.bool.def(!0),collapsedShowTitle:T.bool,beforeClickFn:{type:Function},isSplitMenu:T.bool},emits:["menuClick"],setup(e,{attrs:n,emit:s}){const o=B(""),r=B(!1),a=Te({activeName:"",openNames:[],activeSubMenuNames:[]}),{currentRoute:i}=_e(),{prefixCls:c}=F("simple-menu"),{items:l,accordion:d,mixSider:u,collapse:g}=ge(e),{setOpenKeys:f,getOpenKeys:h}=oo(a,l,d,u,g),S=p(()=>re(re({},n),e));se(()=>e.collapse,C=>{C?a.openNames=[]:f(i.value.path)},{immediate:!0}),se(()=>e.items,()=>{e.isSplitMenu&&f(i.value.path)},{flush:"post"}),Ne(C=>{var v;C.name!==ze&&(o.value=(v=C.meta)==null?void 0:v.currentActiveMenu,y(C),t(o)&&(a.activeName=t(o),f(t(o))))});function y(C){return j(this,null,function*(){if(t(r)){r.value=!1;return}const v=(C||t(i)).path;a.activeName=v,f(v)})}function _(C){return j(this,null,function*(){if(mt(C)){gt(C);return}const{beforeClickFn:v}=e;v&&ct(v)&&!(yield v(C))||(s("menuClick",C),r.value=!0,f(C),a.activeName=C)})}return re({prefixCls:c,getBindValues:S,handleSelect:_,getOpenKeys:h},ge(a))}});function ao(e,n,s,o,r,a){const i=b("SimpleSubMenu"),c=b("Menu");return m(),$(c,q(e.getBindValues,{activeName:e.activeName,openNames:e.getOpenKeys,class:e.prefixCls,activeSubMenuNames:e.activeSubMenuNames,onSelect:e.handleSelect}),{default:N(()=>[(m(!0),L(X,null,ye(e.items,l=>(m(),$(i,{key:l.path,item:l,parent:!0,collapsedShowTitle:e.collapsedShowTitle,collapse:e.collapse},null,8,["item","collapsedShowTitle","collapse"]))),128))]),_:1},16,["activeName","openNames","class","activeSubMenuNames","onSelect"])}const Rt=z(so,[["render",ao]]),lo=P({name:"SimpleMenuTag",props:{item:{type:Object,default:()=>({})},dot:T.bool,collapseParent:T.bool},setup(e){const{prefixCls:n}=F("simple-menu"),s=p(()=>{const{item:a}=e;if(!a)return!1;const{tag:i}=a;if(!i)return!1;const{dot:c,content:l}=i;return!(!c&&!l)}),o=p(()=>{if(!s.value)return"";const{item:a,collapseParent:i}=e,{tag:c}=a,{dot:l,content:d}=c;return l||i?"":d});return{getTagClass:p(()=>{const{item:a,collapseParent:i}=e,{tag:c={}}=a||{},{dot:l,type:d="error"}=c,u=`${n}-tag`;return[u,[`${u}--${d}`],{[`${u}--collapse`]:i,[`${u}--dot`]:l||e.dot}]}),getShowTag:s,getContent:o}}});function io(e,n,s,o,r,a){return e.getShowTag?(m(),L("span",{key:0,class:M(e.getTagClass)},ne(e.getContent),3)):R("",!0)}const Ht=z(lo,[["render",io]]),ro=Object.freeze(Object.defineProperty({__proto__:null,default:Ht},Symbol.toStringTag,{value:"Module"}));function uo(e){const n=B([]),{currentRoute:s}=_e(),{getIsMobile:o}=pe(),r=ft(),{setMenuSetting:a,getIsHorizontal:i,getSplit:c}=U(),l=ht(h,50),d=p(()=>t(e)!==Y.LEFT&&!t(i)),u=p(()=>!t(c)||t(e)!==Y.LEFT),g=p(()=>t(e)===Y.TOP),f=p(()=>t(e)===Y.NONE||!t(c));se([()=>t(s).path,()=>t(e)],_=>j(this,[_],function*([y]){if(t(d)||t(o))return;const{meta:C}=t(s),v=C.currentActiveMenu;let O=yield Re(y);O||(O=yield Re(v)),O&&l(O)}),{immediate:!0}),se([()=>r.getLastBuildMenuTime,()=>r.getBackMenuList],()=>{S()},{immediate:!0}),se(()=>c.value,()=>{t(d)||S()});function h(y){return j(this,null,function*(){if(t(u)||t(o))return;const _=yield Oe(y);if(!_||!_.length){a({hidden:!0}),n.value=[];return}a({hidden:!1}),n.value=_})}function S(){return j(this,null,function*(){if(t(f)||t(o)){n.value=yield Ut();return}if(t(g)){const y=yield Be();n.value=y;return}})}return{menusRef:n}}const Nt=P({name:"LayoutMenu",props:{theme:T.oneOf(["light","dark"]),splitType:{type:Number,default:Y.NONE},isHorizontal:T.bool,menuMode:{type:[String],default:""}},setup(e){const n=Pe(),{getMenuMode:s,getMenuType:o,getMenuTheme:r,getCollapsed:a,getCollapsedShowTitle:i,getAccordion:c,getIsHorizontal:l,getIsSidebarType:d,getSplit:u}=U(),{getShowLogo:g}=we(),{prefixCls:f}=F("layout-menu"),{menusRef:h}=uo(cn(e,"splitType")),{getIsMobile:S}=pe(),y=p(()=>t(S)?ae.INLINE:e.menuMode||t(s)),_=p(()=>e.theme||t(r)),C=p(()=>t(g)&&t(d)),v=p(()=>!t(l)&&(t(d)||e.splitType===Y.LEFT||e.splitType===Y.NONE)),O=p(()=>({height:`calc(100% - ${t(C)?"48px":"0px"})`})),K=p(()=>[`${f}-logo`,t(_),{[`${f}--mobile`]:t(S)}]),k=p(()=>{const x=t(h);return{menus:x,beforeClickFn:E,items:x,theme:t(_),accordion:t(c),collapse:t(a),collapsedShowTitle:t(i),onMenuClick:w}});function w(x){n(x)}function E(x){return j(this,null,function*(){return mt(x)?(gt(x),!1):!0})}function D(){return!t(C)&&!t(S)?null:I(xe,{showTitle:!t(a),class:t(K),theme:t(_)},null)}function G(){const V=t(k),{menus:x}=V,Z=et(V,["menus"]);return!x||!x.length?null:e.isHorizontal?I(Wn,q(Z,{isHorizontal:e.isHorizontal,type:t(o),showLogo:t(C),mode:t(y),items:x}),null):I(Rt,q(Z,{isSplitMenu:t(u),items:x}),null)}return()=>I(X,null,[D(),t(v)?I(St,{style:t(O)},{default:()=>G()}):G()])}});const co=P({__name:"HeaderTrigger",props:{theme:T.oneOf(["light","dark"])},setup(e){const{getCollapsed:n,toggleCollapsed:s}=U(),{prefixCls:o}=F("layout-header-trigger");return(r,a)=>(m(),L("span",{class:M([t(o),e.theme]),onClick:a[0]||(a[0]=(...i)=>t(s)&&t(s)(...i))},[t(n)?(m(),$(t(fn),{key:0})):(m(),$(t(hn),{key:1}))],2))}}),po=P({__name:"SiderTrigger",setup(e){const{getCollapsed:n,toggleCollapsed:s}=U();return(o,r)=>(m(),L("div",{onClick:r[0]||(r[0]=Ge((...a)=>t(s)&&t(s)(...a),["stop"]))},[t(n)?(m(),$(t(Sn),{key:0})):(m(),$(t(yn),{key:1}))]))}}),He=P({__name:"index",props:{sider:T.bool.def(!0),theme:T.oneOf(["light","dark"])},setup(e){return(n,s)=>e.sider?(m(),$(po,{key:0})):(m(),$(co,{key:1,theme:e.theme},null,8,["theme"]))}}),mo=P({name:"FullScreen",components:{FullscreenExitOutlined:_n,FullscreenOutlined:Cn,Tooltip:Tt},setup(){const{t:e}=Se(),{toggle:n,isFullscreen:s}=Vt();return s.value=!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement),{getTitle:p(()=>t(s)?e("layout.header.tooltipExitFull"):e("layout.header.tooltipEntryFull")),isFullscreen:s,toggle:n}}});function go(e,n,s,o,r,a){const i=b("FullscreenOutlined"),c=b("FullscreenExitOutlined"),l=b("Tooltip");return m(),$(l,{title:e.getTitle,placement:"bottom",mouseEnterDelay:.5},{default:N(()=>[W("span",{onClick:n[0]||(n[0]=(...d)=>e.toggle&&e.toggle(...d))},[e.isFullscreen?(m(),$(c,{key:1})):(m(),$(i,{key:0}))])]),_:1},8,["title"])}const fo=z(mo,[["render",go]]),ho=ce(()=>le(()=>import("./index-df6647e6.js"),["./index-df6647e6.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./siteSetting-efd6ab5b.js","./index-ccf6944d.js","./useWindowSizeFn-46f0db92.js","./index-7064e331.css","./header-b90f4bbc.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./index-054645fa.css","./lock-ba03254e.js","./index-a0adfb49.css"],import.meta.url),{loading:!0}),So=ce(()=>le(()=>import("./Breadcrumb-241d4dce.js"),["./Breadcrumb-241d4dce.js","./vue-72a104e4.js","./index.js","./antd-eedb3ef5.js","./index-a17248e3.css","./Breadcrumb-11cf8efe.css"],import.meta.url)),yo=ce(()=>le(()=>import("./index-c1cedbf9.js"),["./index-c1cedbf9.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-742a2b26.css"],import.meta.url)),_o=ce(()=>le(()=>import("./ErrorAction-c543d074.js"),["./ErrorAction-c543d074.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css"],import.meta.url)),Pt=P({name:"LayoutHeader",__name:"index",props:{fixed:T.bool},setup(e){const n=ce(()=>le(()=>import("./index-8e331aa4.js").then(V=>V.i),["./index-8e331aa4.js","./index-e60b7cd2.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-ac2d527c.css","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css"],import.meta.url),{loading:!0}),s=e,{prefixCls:o}=F("layout-header"),{getShowTopMenu:r,getShowHeaderTrigger:a,getSplit:i,getIsMixMode:c,getMenuWidth:l,getIsMixSidebar:d}=U(),{getUseErrorHandle:u,getShowSettingButton:g,getSettingButtonPosition:f}=we(),{getHeaderTheme:h,getShowFullScreen:S,getShowNotice:y,getShowContent:_,getShowBread:C,getShowHeaderLogo:v,getShowHeader:O,getShowSearch:K}=Fe(),{getShowLocalePicker:k}=Gt(),{getIsMobile:w}=pe(),E=p(()=>{const V=t(h);return[o,{[`${o}--fixed`]:s.fixed,[`${o}--mobile`]:t(w),[`${o}--${V}`]:V}]}),D=p(()=>{if(!t(g))return!1;const V=t(f);return V===tt.AUTO?t(O):V===tt.HEADER}),G=p(()=>!t(c)||t(w)?{}:{width:`${t(l)<180?180:t(l)}px`}),x=p(()=>t(i)?Y.TOP:Y.NONE),Z=p(()=>t(i)?ae.HORIZONTAL:null);return Pe(),B(""),(V,Le)=>(m(),$(t(Ze).Header,{class:M(E.value)},{default:N(()=>[W("div",{class:M(`${t(o)}-left`)},[t(v)||t(w)?(m(),$(t(xe),{key:0,class:M(`${t(o)}-logo`),theme:t(h),style:ie(G.value)},null,8,["class","theme","style"])):R("",!0),t(_)&&t(a)&&!t(i)&&!t(d)||t(w)?(m(),$(He,{key:1,theme:t(h),sider:!1},null,8,["theme"])):R("",!0),t(_)&&t(C)?(m(),$(t(So),{key:2,theme:t(h)},null,8,["theme"])):R("",!0)],2),t(r)&&!t(w)?(m(),L("div",{key:0,class:M(`${t(o)}-menu`)},[I(Nt,{isHorizontal:!0,theme:t(h),splitType:x.value,menuMode:Z.value},null,8,["theme","splitType","menuMode"])],2)):R("",!0),W("div",{class:M(`${t(o)}-action`)},[t(K)?(m(),$(t(qt),{key:0,class:M(`${t(o)}-action__item `)},null,8,["class"])):R("",!0),t(u)?(m(),$(t(_o),{key:1,class:M(`${t(o)}-action__item error-action`)},null,8,["class"])):R("",!0),t(y)?(m(),$(t(yo),{key:2,class:M(`${t(o)}-action__item notify-item`)},null,8,["class"])):R("",!0),t(S)?(m(),$(t(fo),{key:3,class:M(`${t(o)}-action__item fullscreen-item`)},null,8,["class"])):R("",!0),t(k)?(m(),$(t(Zt),{key:4,reload:!0,showText:!1,class:M(`${t(o)}-action__item`)},null,8,["class"])):R("",!0),I(t(ho),{theme:t(h)},null,8,["theme"]),D.value?(m(),$(t(n),{key:5,class:M(`${t(o)}-action__item`)},null,8,["class"])):R("",!0)],2)]),_:1},8,["class"]))}});const Co=P({name:"LayoutContent",components:{PageLayout:vn},setup(){const{prefixCls:e}=F("layout-content"),{getOpenPageLoading:n}=Xt(),{getLayoutContentMode:s,getPageLoading:o}=we();return $n(),{prefixCls:e,getOpenPageLoading:n,getLayoutContentMode:s,getPageLoading:o}}});function bo(e,n,s,o,r,a){const i=b("PageLayout"),c=Mt("loading");return ue((m(),L("div",{class:M([e.prefixCls,e.getLayoutContentMode])},[I(i)],2)),[[c,e.getOpenPageLoading&&e.getPageLoading]])}const Mo=z(Co,[["render",bo]]),vo=P({name:"DargBar",props:{mobile:Boolean},setup(e){const{getMiniWidthNumber:n,getCollapsed:s,getCanDrag:o}=U(),{prefixCls:r}=F("darg-bar"),a=p(()=>t(s)?{left:`${t(n)}px`}:{}),i=p(()=>[r,{[`${r}--hide`]:!t(o)||e.mobile}]);return{prefixCls:r,getDragBarStyle:a,getClass:i}}});function $o(e,n,s,o,r,a){return m(),L("div",{class:M(e.getClass),style:ie(e.getDragBarStyle)},null,6)}const To=z(vo,[["render",$o],["__scopeId","data-v-0eab3262"]]);function Io(){const e=We(),{getMiniWidthNumber:n}=U(),s=p(()=>t(n));function o(r){e.setProjectConfig({menuSetting:{siderHidden:r}})}return{getCollapsedWidth:s,onBreakpointChange:o}}function wo(e){const{getTrigger:n,getSplit:s}=U(),o=p(()=>{const a=t(n);return a!==nt.NONE&&!t(e)&&(a===nt.FOOTER||t(s))});return{getTriggerAttr:p(()=>t(o)?{}:{trigger:null}),getShowTrigger:o}}function At(e,n,s=!1){const{getMiniWidthNumber:o,getCollapsed:r,setMenuSetting:a}=U();Ve(()=>{Ie(()=>{pt(d,80)()})});function i(u){var f;const g=t(u);return g?Reflect.has(g,"$el")?(f=t(u))==null?void 0:f.$el:t(u):null}function c(u,g,f){document.onmousemove=function(h){let S=u.left+(h.clientX-f);h=h||window.event;const y=800,_=t(o);return S<0&&(S=0),S>y&&(S=y),S<_&&(S=_),u.style.left=g.style.width=S+"px",!1}}function l(u){const g=i(e);document.onmouseup=function(){var h;document.onmousemove=null,document.onmouseup=null,g.style.transition="width 0.2s";const f=parseInt(g.style.width);if(s)a({menuWidth:f});else{const S=t(o);t(r)?f>S&&a({collapsed:!1,menuWidth:f}):f>S+20?a({menuWidth:f}):a({collapsed:!0})}(h=u.releaseCapture)==null||h.call(u)}}function d(){const u=i(n);if(!u)return;const g=i(e);g&&(u.onmousedown=f=>{var S;g.style.transition="unset";const h=f==null?void 0:f.clientX;return u.left=u.offsetLeft,c(u,g,h),l(u),(S=u.setCapture)==null||S.call(u),!1})}return{}}const Lo=P({name:"LayoutSideBar",__name:"LayoutSider",setup(e){const n=B(null),s=B(null),{getCollapsed:o,getMenuWidth:r,getSplit:a,getMenuTheme:i,getRealWidth:c,getMenuHidden:l,getMenuFixed:d,getIsMixMode:u}=U(),{prefixCls:g}=F("layout-sideBar"),{getIsMobile:f}=pe(),{getTriggerAttr:h,getShowTrigger:S}=wo(f);At(s,n);const{getCollapsedWidth:y,onBreakpointChange:_}=Io(),C=p(()=>t(a)?ae.INLINE:null),v=p(()=>t(a)?Y.LEFT:Y.NONE),O=p(()=>t(a)?!t(l):!0),K=p(()=>[g,{[`${g}--fixed`]:t(d),[`${g}--mix`]:t(u)&&!t(f)}]),k=p(()=>{const E=`${t(c)}px`;return{width:E,overflow:"hidden",flex:`0 0 ${E}`,maxWidth:E,minWidth:E,transition:"all 0.2s"}}),w=dn(He);return(E,D)=>(m(),L(X,null,[t(d)&&!t(f)?ue((m(),L("div",{key:0,style:ie(k.value)},null,4)),[[fe,O.value]]):R("",!0),ue(I(t(Ze).Sider,q({ref_key:"sideRef",ref:s,breakpoint:"lg",collapsible:"",class:K.value,width:t(r),collapsed:t(o),collapsedWidth:t(y),theme:t(i),trigger:t(w)},t(h),{onBreakpoint:t(_)}),vt({default:N(()=>[I(Nt,{theme:t(i),menuMode:C.value,splitType:v.value},null,8,["theme","menuMode","splitType"]),I(To,{ref_key:"dragBarRef",ref:n},null,512)]),_:2},[t(S)?{name:"trigger",fn:N(()=>[I(He)]),key:"0"}:void 0]),1040,["class","width","collapsed","collapsedWidth","theme","trigger","onBreakpoint"]),[[fe,O.value]])],64))}});const ko=P({name:"LayoutMixSider",components:{ScrollContainer:St,AppLogo:xe,SimpleMenu:Rt,Icon:he,LayoutTrigger:He,SimpleMenuTag:Ht},directives:{clickOutside:Qt},setup(){let e=B([]);const n=B(""),s=B([]),o=B(!1),r=B(null),a=B(null),i=B(null),{prefixCls:c}=F("layout-mix-sider"),l=Pe(),{t:d}=Se(),{getMenuWidth:u,getCanDrag:g,getCloseMixSidebarOnChange:f,getMenuTheme:h,getMixSideTrigger:S,getRealWidth:y,getMixSideFixed:_,mixSideHasChildren:C,setMenuSetting:v,getIsMixSidebar:O,getCollapsed:K}=U(),{title:k}=Yt(),w=ft();At(a,r,!0);const E=p(()=>({width:t(o)?`${t(u)}px`:0,left:`${t(G)}px`})),D=p(()=>{C.value=t(s).length>0;const H=t(_)&&t(C);return H&&(o.value=!0),H}),G=p(()=>t(K)?Jt:en),x=p(()=>{const H=t(D)?t(y):0,J=`${t(G)+H}px`;return Ce(J)}),Z=p(()=>{const H=`${t(G)}px`;return Ce(H)}),V=p(()=>t(_)?{}:{onMouseleave:()=>{de(!0),ve()}}),Le=p(()=>t(g));Ve(()=>j(this,null,function*(){e.value=yield Be()})),se([()=>w.getLastBuildMenuTime,()=>w.getBackMenuList],()=>j(this,null,function*(){e.value=yield Be()}),{immediate:!0}),Ne(H=>{i.value=H,de(!0),t(f)&&ve()});function Ce(H){return{width:H,maxWidth:H,minWidth:H,flex:`0 0 ${H}`}}function be(H,J=!1){return j(this,null,function*(){const me=yield Oe(H);if(t(n)===H?(J?t(o)||(o.value=!0):t(o)?ve():o.value=!0,t(o)||de()):(o.value=!0,n.value=H),!me||me.length===0){J||l(H),s.value=[],ve();return}s.value=me})}function de(H=!1){return j(this,null,function*(){var me;const J=(me=i.value)==null?void 0:me.path;if(J&&(n.value=yield Re(J),t(O))){const De=t(e).find($e=>$e.path===t(n)),Xe=De==null?void 0:De.path;if(Xe){const $e=yield Oe(Xe);H&&(s.value=$e,t(_)&&(o.value=$e.length>0)),$e.length===0&&(s.value=[])}}})}function A(H){l(H)}function ee(){de(!0),ve()}function te(H){return t(S)==="hover"?{onMouseenter:()=>be(H.path,!0),onClick:()=>j(this,null,function*(){const J=yield Oe(H.path);H.path&&(!J||J.length===0)&&l(H.path)})}:{onClick:()=>be(H.path)}}function Me(){v({mixSideFixed:!t(D)})}function ve(){t(D)||(o.value=!1)}return{t:d,prefixCls:c,menuModules:e,handleModuleClick:be,activePath:n,childrenMenus:s,getShowDragBar:Le,handleMenuClick:A,getMenuStyle:E,handleClickOutside:ee,sideRef:a,dragBarRef:r,title:k,openMenu:o,getMenuTheme:h,getItemEvents:te,getMenuEvents:V,getDomStyle:x,handleFixedMenu:Me,getMixSideFixed:_,getWrapStyle:Z,getCollapsed:K}}});const Oo={class:"text"};function Eo(e,n,s,o,r,a){const i=b("AppLogo"),c=b("LayoutTrigger"),l=b("SimpleMenuTag"),d=b("Icon"),u=b("ScrollContainer"),g=b("SimpleMenu"),f=Mt("click-outside");return m(),L(X,null,[W("div",{class:M(`${e.prefixCls}-dom`),style:ie(e.getDomStyle)},null,6),ue((m(),L("div",q({style:e.getWrapStyle,class:[e.prefixCls,e.getMenuTheme,{open:e.openMenu,mini:e.getCollapsed}]},e.getMenuEvents),[I(i,{showTitle:!1,class:M(`${e.prefixCls}-logo`)},null,8,["class"]),I(c,{class:M(`${e.prefixCls}-trigger`)},null,8,["class"]),I(u,null,{default:N(()=>[W("ul",{class:M(`${e.prefixCls}-module`)},[(m(!0),L(X,null,ye(e.menuModules,h=>(m(),L("li",q({class:[`${e.prefixCls}-module__item `,{[`${e.prefixCls}-module__item--active`]:h.path===e.activePath}],ref_for:!0},e.getItemEvents(h),{key:h.path}),[I(l,{item:h,collapseParent:"",dot:""},null,8,["item"]),I(d,{class:M(`${e.prefixCls}-module__icon`),size:e.getCollapsed?16:20,icon:h.icon||h.meta&&h.meta.icon},null,8,["class","size","icon"]),W("p",{class:M(`${e.prefixCls}-module__name`)},ne(e.t(h.name)),3)],16))),128))],2)]),_:1}),W("div",{class:M(`${e.prefixCls}-menu-list`),ref:"sideRef",style:ie(e.getMenuStyle)},[ue(W("div",{class:M([`${e.prefixCls}-menu-list__title`,{show:e.openMenu}])},[W("span",Oo,ne(e.title),1),I(d,{size:16,icon:e.getMixSideFixed?"ri:pushpin-2-fill":"ri:pushpin-2-line",class:"pushpin",onClick:e.handleFixedMenu},null,8,["icon","onClick"])],2),[[fe,e.openMenu]]),I(u,{class:M(`${e.prefixCls}-menu-list__content`)},{default:N(()=>[I(g,{items:e.childrenMenus,theme:e.getMenuTheme,mixSider:"",onMenuClick:e.handleMenuClick},null,8,["items","theme","onMenuClick"])]),_:1},8,["class"]),ue(W("div",{class:M(`${e.prefixCls}-drag-bar`),ref:"dragBarRef"},null,2),[[fe,e.getShowDragBar&&e.openMenu]])],6)],16)),[[f,e.handleClickOutside]])],64)}const Ro=z(ko,[["render",Eo]]),Ho=P({name:"SiderWrapper",components:{Sider:Lo,Drawer:bn,MixSider:Ro},setup(){const{prefixCls:e}=F("layout-sider-wrapper"),{getIsMobile:n}=pe(),{setMenuSetting:s,getCollapsed:o,getMenuWidth:r,getIsMixSidebar:a}=U();function i(){s({collapsed:!0})}return{prefixCls:e,getIsMobile:n,getCollapsed:o,handleClose:i,getMenuWidth:r,getIsMixSidebar:a}}});function No(e,n,s,o,r,a){const i=b("Sider"),c=b("Drawer"),l=b("MixSider");return e.getIsMobile?(m(),$(c,{key:0,placement:"left",class:M(e.prefixCls),width:e.getMenuWidth,getContainer:!1,open:!e.getCollapsed,onClose:e.handleClose},{default:N(()=>[I(i)]),_:1},8,["class","width","open","onClose"])):e.getIsMixSidebar?(m(),$(l,{key:1})):(m(),$(i,{key:2}))}const Po=z(Ho,[["render",No]]);var Q=(e=>(e[e.REFRESH_PAGE=0]="REFRESH_PAGE",e[e.CLOSE_CURRENT=1]="CLOSE_CURRENT",e[e.CLOSE_LEFT=2]="CLOSE_LEFT",e[e.CLOSE_RIGHT=3]="CLOSE_RIGHT",e[e.CLOSE_OTHER=4]="CLOSE_OTHER",e[e.CLOSE_ALL=5]="CLOSE_ALL",e[e.SCALE=6]="SCALE",e))(Q||{});function Ao(e,n){const s=Te({current:null,currentIndex:0}),{t:o}=Se(),r=Ae(),{currentRoute:a}=_e(),{refreshPage:i,closeAll:c,close:l,closeLeft:d,closeOther:u,closeRight:g}=yt(),f=p(()=>t(n)?e.tabItem:t(a)),h=p(()=>{if(!t(f))return;const{meta:_}=t(f),{path:C}=t(a),v=s.current,O=v?v.path===C:!1,K=s.currentIndex,k=!O,w=K===0||!O,E=r.getTabList.length===1,D=!O||K===r.getTabList.length-1&&r.getLastDragEndIndex>=0;return[{icon:"ion:reload-sharp",event:Q.REFRESH_PAGE,text:o("layout.multipleTab.reload"),disabled:k},{icon:"clarity:close-line",event:Q.CLOSE_CURRENT,text:o("layout.multipleTab.close"),disabled:!!(_!=null&&_.affix)||E,divider:!0},{icon:"line-md:arrow-close-left",event:Q.CLOSE_LEFT,text:o("layout.multipleTab.closeLeft"),disabled:w,divider:!1},{icon:"line-md:arrow-close-right",event:Q.CLOSE_RIGHT,text:o("layout.multipleTab.closeRight"),disabled:D,divider:!0},{icon:"dashicons:align-center",event:Q.CLOSE_OTHER,text:o("layout.multipleTab.closeOther"),disabled:E||!O},{icon:"clarity:minus-line",event:Q.CLOSE_ALL,text:o("layout.multipleTab.closeAll"),disabled:E}]});function S(_){return C=>{if(!_)return;C==null||C.preventDefault();const v=r.getTabList.findIndex(O=>O.path===_.path);s.current=_,s.currentIndex=v}}function y(_){const{event:C}=_;switch(C){case Q.REFRESH_PAGE:i();break;case Q.CLOSE_CURRENT:l(e.tabItem);break;case Q.CLOSE_LEFT:d();break;case Q.CLOSE_RIGHT:g();break;case Q.CLOSE_OTHER:u();break;case Q.CLOSE_ALL:c();break}}return{getDropMenuList:h,handleMenuEvent:y,handleContextMenu:S}}const Fo=P({name:"TabContent",components:{Dropdown:tn,Icon:he},props:{tabItem:{type:Object,default:null},isExtra:Boolean},setup(e){const{prefixCls:n}=F("multiple-tabs-content"),{t:s}=Se(),o=p(()=>{const{tabItem:{meta:u}={}}=e;return u&&s(u.title)}),r=p(()=>!e.isExtra),a=p(()=>t(r)?["contextmenu"]:["click"]),{getDropMenuList:i,handleMenuEvent:c,handleContextMenu:l}=Ao(e,r);function d(u){e.tabItem&&l(e.tabItem)(u)}return{prefixCls:n,getDropMenuList:i,handleMenuEvent:c,handleContext:d,getTrigger:a,getIsTabs:r,getTitle:o}}}),Do={class:"ml-1"};function Bo(e,n,s,o,r,a){const i=b("Icon"),c=b("Dropdown");return m(),$(c,{dropMenuList:e.getDropMenuList,trigger:e.getTrigger,placement:"bottom",overlayClassName:"multiple-tabs__dropdown",onMenuEvent:e.handleMenuEvent},{default:N(()=>[e.getIsTabs?(m(),L("div",{key:0,class:M(`${e.prefixCls}__info`),onContextmenu:n[0]||(n[0]=(...l)=>e.handleContext&&e.handleContext(...l))},[W("span",Do,ne(e.getTitle),1)],34)):(m(),L("span",{key:1,class:M(`${e.prefixCls}__extra-quick`),onClick:n[1]||(n[1]=(...l)=>e.handleContext&&e.handleContext(...l))},[I(i,{icon:"ion:chevron-down"})],2))]),_:1},8,["dropMenuList","trigger","onMenuEvent"])}const Ko=z(Fo,[["render",Bo]]),Wo=P({name:"FoldButton",components:{Icon:he},setup(){const{prefixCls:e}=F("multiple-tabs-content"),{getShowMenu:n,setMenuSetting:s}=U(),{getShowHeader:o,setHeaderSetting:r}=Fe(),a=p(()=>!t(n)&&!t(o)),i=p(()=>t(a)?"codicon:screen-normal":"codicon:screen-full");function c(){const l=t(a);s({show:l,hidden:!l}),r({show:l}),nn()}return{prefixCls:e,getIcon:i,handleFold:c}}});function zo(e,n,s,o,r,a){const i=b("Icon");return m(),L("span",{class:M(`${e.prefixCls}__extra-fold`),onClick:n[0]||(n[0]=(...c)=>e.handleFold&&e.handleFold(...c))},[I(i,{icon:e.getIcon},null,8,["icon"])],2)}const xo=z(Wo,[["render",zo]]),jo=P({name:"TabRedo",components:{RedoOutlined:Mn},setup(){const e=B(!1),{prefixCls:n}=F("multiple-tabs-content"),{refreshPage:s}=yt();function o(){return j(this,null,function*(){e.value=!0,yield s(),setTimeout(()=>{e.value=!1},1200)})}return{prefixCls:n,handleRedo:o,loading:e}}});function Uo(e,n,s,o,r,a){const i=b("RedoOutlined");return m(),L("span",{class:M(`${e.prefixCls}__extra-redo`),onClick:n[0]||(n[0]=(...c)=>e.handleRedo&&e.handleRedo(...c))},[I(i,{spin:e.loading},null,8,["spin"])],2)}const Vo=z(jo,[["render",Uo],["__scopeId","data-v-60ca7037"]]);function Go(e,n){function s(){Ie(()=>j(this,null,function*(){if(!e)return;(yield le(()=>import("./sortable.esm-15c0a34e.js"),[],import.meta.url)).default.create(t(e),re({animation:500,delay:400,delayOnTouchOnly:!0},n))}))}return{initSortable:s}}function qo(){const e=B([]),n=Ae(),s=_e();function o(i){const c=[];return i&&i.forEach(l=>{l.meta&&l.meta.affix&&c.push(je(l))}),c}function r(){const i=o(s.getRoutes());e.value=i;for(const c of i)n.addTab({meta:c.meta,name:c.name,path:c.path})}let a=!1;return a||(r(),a=!0),e.value.map(i=>{var c;return(c=i.meta)==null?void 0:c.title}).filter(Boolean)}function Zo(e){const n=Ae(),{multiTabsSetting:s}=on,{prefixCls:o}=F("multiple-tabs");Ie(()=>{var i;if(!s.canDrag)return;const r=(i=document.querySelectorAll(`.${o} .ant-tabs-nav-wrap > div`))==null?void 0:i[0],{initSortable:a}=Go(r,{filter:c=>{var d;const l=(d=c==null?void 0:c.target)==null?void 0:d.innerText;return l?e.includes(l):!1},onEnd:c=>{const{oldIndex:l,newIndex:d}=c;ot(l)||ot(d)||l===d||n.sortTabs(l,d)}});a()})}const Xo=P({name:"MultipleTabs",components:{TabRedo:Vo,FoldButton:xo,Tabs:st,TabPane:st.TabPane,TabContent:Ko},setup(){const e=qo(),n=B("");Zo(e);const s=Ae(),o=_t(),r=_e(),{prefixCls:a}=F("multiple-tabs"),i=Pe(),{getShowQuick:c,getShowRedo:l,getShowFold:d}=It(),u=p(()=>s.getTabList.filter(y=>{var _;return!((_=y.meta)!=null&&_.hideTab)})),g=p(()=>t(u).length===1),f=p(()=>[a,{[`${a}--hide-close`]:t(g)}]);Ne(y=>{const{name:_}=y;if(_===ze||!y||!o.getToken)return;const{path:C,fullPath:v,meta:O={}}=y,{currentActiveMenu:K,hideTab:k}=O,w=k?K:null,E=w||v||C;if(n.value!==E&&(n.value=E),w){const D=r.getRoutes().find(G=>G.path===K);D&&s.addTab(D)}else s.addTab(t(y))});function h(y){n.value=y,i(y,!1)}function S(y){t(g)||s.closeTabByKey(y,r)}return{getWrapClass:f,handleEdit:S,handleChange:h,activeKeyRef:n,getTabsState:u,getShowQuick:c,getShowRedo:l,getShowFold:d}}});function Qo(e,n,s,o,r,a){const i=b("TabContent"),c=b("TabPane"),l=b("TabRedo"),d=b("FoldButton"),u=b("Tabs");return m(),L("div",{class:M(e.getWrapClass)},[I(u,{type:"editable-card",size:"small",animated:!1,hideAdd:!0,tabBarGutter:3,activeKey:e.activeKeyRef,onChange:e.handleChange,onEdit:e.handleEdit},vt({default:N(()=>[(m(!0),L(X,null,ye(e.getTabsState,g=>(m(),$(c,{key:g.query?g.fullPath:g.path,closable:!(g&&g.meta&&g.meta.affix)},{tab:N(()=>[I(i,{tabItem:g},null,8,["tabItem"])]),_:2},1032,["closable"]))),128))]),_:2},[e.getShowRedo||e.getShowQuick?{name:"rightExtra",fn:N(()=>[e.getShowRedo?(m(),$(l,{key:0})):R("",!0),e.getShowQuick?(m(),$(i,{key:1,isExtra:"",tabItem:e.$route},null,8,["tabItem"])):R("",!0),e.getShowFold?(m(),$(d,{key:2})):R("",!0)]),key:"0"}:void 0]),1032,["activeKey","onChange","onEdit"])],2)}const Yo=z(Xo,[["render",Qo]]),lt=48,Jo=32,es=P({name:"LayoutMultipleHeader",components:{LayoutHeader:Pt,MultipleTabs:Yo},setup(){const{setHeaderHeight:e}=Tn(),{prefixCls:n}=F("layout-multiple-header"),{getCalcContentWidth:s,getSplit:o}=U(),{getIsMobile:r}=pe(),{getFixed:a,getShowInsetHeaderRef:i,getShowFullHeaderRef:c,getHeaderTheme:l,getShowHeader:d}=Fe(),{getFullContent:u}=it(),{getShowMultipleTab:g}=It(),f=p(()=>t(g)&&!t(u)),h=p(()=>t(a)||t(c)),S=p(()=>{const v={};return t(a)&&(v.width=t(r)?"100%":t(s)),t(c)&&(v.top=`${lt}px`),v}),y=p(()=>t(a)||t(c)),_=p(()=>{let v=0;return(t(c)||!t(o))&&t(d)&&!t(u)&&(v+=lt),t(g)&&!t(u)&&(v+=Jo),e(v),{height:`${v}px`}});return{getClass:p(()=>[n,`${n}--${t(l)}`,{[`${n}--fixed`]:t(y)}]),prefixCls:n,getPlaceholderDomStyle:_,getIsFixed:y,getWrapStyle:S,getIsShowPlaceholderDom:h,getShowTabs:f,getShowInsetHeaderRef:i}}});function ts(e,n,s,o,r,a){const i=b("LayoutHeader"),c=b("MultipleTabs");return m(),L(X,null,[e.getIsShowPlaceholderDom?(m(),L("div",{key:0,style:ie(e.getPlaceholderDomStyle)},null,4)):R("",!0),W("div",{style:ie(e.getWrapStyle),class:M(e.getClass)},[e.getShowInsetHeaderRef?(m(),$(i,{key:0})):R("",!0),e.getShowTabs?(m(),$(c,{key:1})):R("",!0)],6)],64)}const ns=z(es,[["render",ts],["__scopeId","data-v-6cd50746"]]);function os(){const{getLockTime:e}=we(),n=In(),s=_t(),o=We();let r;function a(){window.clearTimeout(r)}function i(){if(!s.getToken){a();return}const d=o.getProjectConfig.lockTime;if(!d||d<1){a();return}a(),r=setTimeout(()=>{c()},d*60*1e3)}function c(){n.setLockInfo({isLock:!0,pwd:void 0})}Ke(d=>{s.getToken?i():a(),d(()=>{a()})}),pn(()=>{a()});const l=ht(i,2e3);return p(()=>t(e)?{onKeyup:l,onMousemove:l}:(a(),{}))}const ss=P({name:"DefaultLayout",components:{LayoutFeatures:ce(()=>le(()=>import("./index-3ec4e6b2.js"),["./index-3ec4e6b2.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-1ae94a8a.css"],import.meta.url)),LayoutFooter:ce(()=>le(()=>import("./index-6255defe.js"),["./index-6255defe.js","./siteSetting-efd6ab5b.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-c86b7053.css"],import.meta.url)),LayoutHeader:Pt,LayoutContent:Mo,LayoutSideBar:Po,LayoutMultipleHeader:ns,Layout:Ze},setup(){const{prefixCls:e}=F("default-layout"),{getIsMobile:n}=pe(),{getShowFullHeaderRef:s}=Fe(),{getShowSidebar:o,getIsMixSidebar:r,getShowMenu:a}=U(),i=os(),c=p(()=>{let l=["ant-layout"];return(t(r)||t(a))&&l.push("ant-layout-has-sider"),l});return{getShowFullHeaderRef:s,getShowSidebar:o,prefixCls:e,getIsMobile:n,getIsMixSidebar:r,layoutClass:c,lockEvents:i}}});function as(e,n,s,o,r,a){const i=b("LayoutFeatures"),c=b("LayoutHeader"),l=b("LayoutSideBar"),d=b("LayoutMultipleHeader"),u=b("LayoutContent"),g=b("LayoutFooter"),f=b("Layout");return m(),$(f,q({class:e.prefixCls},e.lockEvents),{default:N(()=>[I(i),e.getShowFullHeaderRef?(m(),$(c,{key:0,fixed:""})):R("",!0),I(f,{class:M([e.layoutClass])},{default:N(()=>[e.getShowSidebar||e.getIsMobile?(m(),$(l,{key:0})):R("",!0),I(f,{class:M(`${e.prefixCls}-main`)},{default:N(()=>[I(d),I(u),I(g)]),_:1},8,["class"])]),_:1},8,["class"])]),_:1},16,["class"])}const ls=z(ss,[["render",as]]),gs=Object.freeze(Object.defineProperty({__proto__:null,default:ls},Symbol.toStringTag,{value:"Module"}));export{ce as c,gs as i,Fe as u}; diff --git a/detect.gui/Embedded/dist/assets/index-17c9f9c0.css b/detect.gui/Embedded/dist/assets/index-17c9f9c0.css new file mode 100644 index 0000000..1c3308b --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-17c9f9c0.css @@ -0,0 +1 @@ +.box[data-v-738129f4]{position:absolute;left:0;top:0;width:100vw;height:100vh;background-color:#0d1540;z-index:9999}.box .pdf-viewer[data-v-738129f4]{text-align:center;position:absolute;left:0;top:0;width:100vw;height:100vh;background-color:#0d1540;overflow:auto}.box .pdf-viewer .selection-box[data-v-738129f4]{position:absolute;border:1px dashed red}.box .btn[data-v-738129f4]{position:absolute;border-radius:0;left:0;top:0}.box .btn-close[data-v-738129f4]{position:absolute;border-radius:0;left:50%;top:5px;transform:translate(-50%)}.header[data-v-5d81c316]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-5d81c316]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-5d81c316] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-5d81c316] .ant-table-wrapper{background:transparent}[data-v-5d81c316] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-5d81c316] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-5d81c316] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-5d81c316] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-5d81c316] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-5d81c316] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-5d81c316] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-5d81c316] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-5d81c316] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-5d81c316] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-5d81c316] .ant-select-selector .ant-select-selection-item,[data-v-5d81c316] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-5d81c316] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-5d81c316] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-5d81c316] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-5d81c316] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-5d81c316] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-5d81c316] .ant-empty-description{color:#999}[data-v-5d81c316] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-5d81c316] .ant-pagination-options-quick-jumper>input:hover,[data-v-5d81c316] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-5d81c316] .ant-input-clear-icon,[data-v-5d81c316] .ant-input-password-icon{color:#fff!important}[data-v-5d81c316] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-5d81c316] .vben-basic-table-action button:disabled{color:#999!important}[data-v-5d81c316] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-5d81c316] .vben-tree-header{border-bottom:1px solid #183171}[data-v-5d81c316] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-tree-list{background:#13265a!important}[data-v-5d81c316] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-tree-switcher-icon{color:#fff!important}[data-v-5d81c316] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-5d81c316] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-5d81c316] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-5d81c316] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-picker,[data-v-5d81c316] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-5d81c316] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-5d81c316] .ant-picker-focused,[data-v-5d81c316] .ant-picker-range:hover,[data-v-5d81c316] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-5d81c316] .vben-basic-table .ant-picker-range{width:100%}[data-v-5d81c316] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-5d81c316] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-5d81c316] .anticon{color:#fff!important}[data-v-5d81c316] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-5d81c316] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-5d81c316] .ant-picker-cell-in-view{color:#fff!important}[data-v-5d81c316] .ant-picker-content th,[data-v-5d81c316] .ant-picker-header-super-prev-btn,[data-v-5d81c316] .ant-picker-header-prev-btn,[data-v-5d81c316] .ant-picker-header-super-next-btn,[data-v-5d81c316] .ant-picker-header-next-btn,[data-v-5d81c316] .ant-picker-year-btn,[data-v-5d81c316] .ant-picker-month-btn,[data-v-5d81c316] .ant-picker-decade-btn,[data-v-5d81c316] .ant-picker-header-view,[data-v-5d81c316] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-5d81c316] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-5d81c316] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-5d81c316] .ant-card-body{padding:0!important}[data-v-5d81c316] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-5d81c316] .ant-descriptions-view{border:1px solid #183171!important}[data-v-5d81c316] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-5d81c316] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-5d81c316] .ant-descriptions-item-label,[data-v-5d81c316] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-5d81c316] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-5d81c316] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-5d81c316] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-5d81c316] .CodeMirror-cursor{border-left:1px solid white}[data-v-5d81c316] .cm-string{color:#ff8c00!important}[data-v-5d81c316] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-1adbc50a.js b/detect.gui/Embedded/dist/assets/index-1adbc50a.js new file mode 100644 index 0000000..4d1b276 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-1adbc50a.js @@ -0,0 +1 @@ +var H=Object.defineProperty,N=Object.defineProperties;var O=Object.getOwnPropertyDescriptors;var m=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable;var x=(e,t,a)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,c=(e,t)=>{for(var a in t||(t={}))_.call(t,a)&&x(e,a,t[a]);if(m)for(var a of m(t))w.call(t,a)&&x(e,a,t[a]);return e},I=(e,t)=>N(e,O(t));var Y=(e,t)=>{var a={};for(var o in e)_.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&m)for(var o of m(e))t.indexOf(o)<0&&w.call(e,o)&&(a[o]=e[o]);return a};import{o as z,j as K,k as E,S as U,l as G,_ as L}from"./index.js";import{u as W,B as Z}from"./useTable-3e054214.js";import"./useForm-df5105ea.js";import{j as b}from"./antd-eedb3ef5.js";import{d as J,Z as Q,_ as X,$ as M,k as D,u as h}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const ee="/v1/data/task-log",te=e=>z.get({url:`${ee}/search`,params:e}),i={xs:{span:24},sm:{span:24},lg:{span:6}},ae={span:24},u={model:"TaskLog",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:i,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"taskId",label:"任务ID",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"dat_detect_task.id"},colProps:i,component:"InputNumber",rules:[{required:!0,message:"请输入dat_detect_task.id!"}]},table:{width:140}},{field:"deviceSn",label:"设备序列号",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"设备序列号"},colProps:i,component:"Input"},table:{width:200}},{field:"content",label:"处理信息",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"处理信息"},colProps:i,component:"Input"},table:{ellipsis:!0}},{field:"createTime",label:"创建时间",defaultValue:void 0,form:{colProps:i,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{width:150}},{field:"updateTime",label:"UpdateTime",defaultValue:void 0,form:{colProps:i,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},B=["deviceSn","createTime"],C=["taskId","deviceSn","content"],V=["taskId","deviceSn","content","createTime"],q=["taskId","deviceSn","content","createTime"],P=new Map(B.map((e,t)=>[e,t])),T=u.properties.filter(e=>B.includes(e.field)).map(o=>{var{field:e,label:t,form:f}=o,a=Y(f,[]);return I(c({field:e,label:t,defaultValue:void 0},a),{required:!1,rules:[{required:!1}]})}).sort((e,t)=>{const a=P.get(e.field),o=P.get(t.field);return a-o}),k=new Map(C.map((e,t)=>[e,t]));u.properties.filter(e=>C.includes(e.field)).map(({field:e,label:t,defaultValue:a,form:o})=>I(c({field:e,label:t,defaultValue:a},o),{colProps:ae})).sort((e,t)=>{const a=k.get(e.field),o=k.get(t.field);return a-o});const S=new Map(V.map((e,t)=>[e,t])),oe=u.properties.filter(e=>V.includes(e.field)).map(({field:e,label:t,table:a})=>c({dataIndex:e,title:t},a)).sort((e,t)=>{const a=S.get(e.dataIndex),o=S.get(t.dataIndex);return a-o}),F=new Map(q.map((e,t)=>[e,t]));u.properties.filter(e=>q.includes(e.field)).map(({field:e,label:t,table:a})=>c({dataIndex:e,title:t},a)).sort((e,t)=>{const a=F.get(e.dataIndex),o=F.get(t.dataIndex);return a-o});const se={class:"header"},le=J({__name:"index",setup(e){K(),E();const[t,{reload:a,setSelectedRowKeys:o}]=W({api:n=>te(f(n)),columns:oe,formConfig:{labelWidth:0,schemas:T,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:n=>n.id}),f=n=>{const v=n,{pageNum:p,pageSize:y,field:A="id",order:R="descend"}=v,$=Y(v,["pageNum","pageSize","field","order"]),l={pageNum:p,pageSize:y,orderByClause:`${A} ${R==="descend"?"desc":"asc"}`};return Object.keys($).forEach(g=>{const d=T.find(j=>j.field===g),s=n[g],r=g;d?s!==void 0&&s!==""&&(d.component==="Input"?l[r]=`%${s.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(d.component)?l[r]=G(s)?s.value:s:d.component==="RangePicker"?(l[`${r}From`]=b(s[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),l[`${r}To`]=b(s[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):d.component==="DatePicker"?l[r]=b(s).format(d.componentProps.format||"YYYY-MM-DD"):l[r]=s):l[r]=s}),l};return(n,p)=>(Q(),X("div",null,[M("div",se,[D(h(U),{size:"19",name:"list"}),p[0]||(p[0]=M("div",{class:"title"},"检测日志",-1))]),D(h(Z),{onRegister:h(t)},null,8,["onRegister"])]))}});const Ye=L(le,[["__scopeId","data-v-fdc90b07"]]);export{Ye as default}; diff --git a/detect.gui/Embedded/dist/assets/index-1ebc386f.js b/detect.gui/Embedded/dist/assets/index-1ebc386f.js new file mode 100644 index 0000000..956ed12 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-1ebc386f.js @@ -0,0 +1 @@ +var w=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var x=(n,d)=>{var i={};for(var t in n)N.call(n,t)&&d.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&w)for(var t of w(n))d.indexOf(t)<0&&P.call(n,t)&&(i[t]=n[t]);return i};import{j as $,k as j,l as H,_ as I}from"./index.js";import{u as O,B as E}from"./useTable-3e054214.js";import{T as V}from"./useForm-df5105ea.js";import{j as _}from"./antd-eedb3ef5.js";import{r as F,s as K,c as U,a as y}from"./schema-f8c0dfeb.js";import{u as z}from"./index-e60b7cd2.js";import{_ as G}from"./drawer.vue_vue_type_script_setup_true_lang-d0381ea7.js";import{d as W,a6 as Z,Z as D,_ as q,k as b,a5 as h,G as J,a4 as L,u as m,a8 as Q}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const X=W({name:"AUTH_SYSTEM_CONSTANT",__name:"index",setup(n){$();const d=j(),[i,{openDrawer:t}]=z(),[S,{reload:g,setSelectedRowKeys:ee}]=O({title:"常量表",api:e=>K(T(e)),columns:U,formConfig:{labelWidth:120,schemas:y,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!1,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),T=e=>{const C=e,{pageNum:l,pageSize:p,field:u="id",order:c="descend"}=C,B=x(C,["pageNum","pageSize","field","order"]),s={pageNum:l,pageSize:p,orderByClause:`${u} ${c==="descend"?"desc":"asc"}`};return Object.keys(B).forEach(f=>{const r=y.find(M=>M.field===f),o=e[f],a=f;r?o!==void 0&&o!==""&&(r.component==="Input"?s[a]=`%${o.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?s[a]=H(o)?o.value:o:r.component==="RangePicker"?(s[`${a}From`]=_(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),s[`${a}To`]=_(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?s[a]=_(o).format(r.componentProps.format||"YYYY-MM-DD"):s[a]=o):s[a]=o}),s},Y=()=>{t(!0,{isUpdate:!1})},v=e=>{t(!0,{record:e,isUpdate:!0})},k=e=>{F(e.id).then(l=>{g()})},A=()=>{g()},R=e=>{d("/system/constant/detail/"+e.id)};return(e,l)=>{const p=Z("a-button");return D(),q("div",null,[b(m(E),{onRegister:m(S)},{toolbar:h(()=>[b(p,{type:"primary",onClick:Y},{default:h(()=>l[0]||(l[0]=[J(" 新增")])),_:1})]),bodyCell:h(({column:u,record:c})=>[u.dataIndex==="action"?(D(),L(m(V),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:v.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:R.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:k.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):Q("",!0)]),_:1},8,["onRegister"]),b(G,{onRegister:m(i),onSuccess:A},null,8,["onRegister"])])}}});const _e=I(X,[["__scopeId","data-v-db988f1b"]]);export{_e as default}; diff --git a/detect.gui/Embedded/dist/assets/index-1faa983d.js b/detect.gui/Embedded/dist/assets/index-1faa983d.js new file mode 100644 index 0000000..67aa699 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-1faa983d.js @@ -0,0 +1 @@ +var N=Object.defineProperty,R=Object.defineProperties;var j=Object.getOwnPropertyDescriptors;var m=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var _=(e,t,s)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,c=(e,t)=>{for(var s in t||(t={}))w.call(t,s)&&_(e,s,t[s]);if(m)for(var s of m(t))v.call(t,s)&&_(e,s,t[s]);return e},b=(e,t)=>R(e,j(t));var g=(e,t)=>{var s={};for(var o in e)w.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(e!=null&&m)for(var o of m(e))t.indexOf(o)<0&&v.call(e,o)&&(s[o]=e[o]);return s};import{u as O,B as z}from"./useTable-3e054214.js";import"./useForm-df5105ea.js";import{o as E,S as K,l as L,_ as W}from"./index.js";import{j as I}from"./antd-eedb3ef5.js";import{d as Z,o as G,Z as J,_ as Q,$ as Y,k as M,u as h}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const U="/v1/system/log",X=e=>E.get({url:`${U}/search`,params:e}),d={xs:{span:24},sm:{span:24},lg:{span:6}},ee={span:24},u={model:"Log",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:d,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"userId",label:"操作人",defaultValue:0,form:{componentProps:{allowClear:!1,placeholder:"操作人"},colProps:d,component:"InputNumber",rules:[{required:!0,message:"请输入操作人!"}]},table:{}},{field:"description",label:"描述",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"描述"},component:"Input",colProps:d,rules:[{required:!0,message:"请输入描述!"}]},table:{ellipsis:!0}},{field:"remark",label:"说明",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"说明"},colProps:d,component:"Input"},table:{width:400,ellipsis:!0}},{field:"username",label:"操作人",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"操作人"},colProps:d,component:"Input"},table:{width:150}},{field:"createTime",label:"日志时间",defaultValue:void 0,form:{colProps:d,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请选择日志时间!"}]},table:{width:150}}]},T=["createTime"],C=["description","userId","remark"],V=["description","remark","username","createTime"],k=["description","userId","username","remark","createTime"],P=new Map(T.map((e,t)=>[e,t])),D=u.properties.filter(e=>T.includes(e.field)).map(o=>{var{field:e,label:t,form:n}=o,s=g(n,[]);return b(c({field:e,label:t,defaultValue:void 0},s),{required:!1,rules:[{required:!1}]})}).sort((e,t)=>{const s=P.get(e.field),o=P.get(t.field);return s-o}),F=new Map(C.map((e,t)=>[e,t]));u.properties.filter(e=>C.includes(e.field)).map(({field:e,label:t,defaultValue:s,form:o})=>b(c({field:e,label:t,defaultValue:s},o),{colProps:ee})).sort((e,t)=>{const s=F.get(e.field),o=F.get(t.field);return s-o});const B=new Map(V.map((e,t)=>[e,t])),te=u.properties.filter(e=>V.includes(e.field)).map(({field:e,label:t,table:s})=>c({dataIndex:e,title:t},s)).sort((e,t)=>{const s=B.get(e.dataIndex),o=B.get(t.dataIndex);return s-o}),S=new Map(k.map((e,t)=>[e,t]));u.properties.filter(e=>k.includes(e.field)).map(({field:e,label:t,table:s})=>c({dataIndex:e,title:t},s)).sort((e,t)=>{const s=S.get(e.dataIndex),o=S.get(t.dataIndex);return s-o});const se={class:"header"},oe=Z({__name:"index",setup(e){const[t]=O({api:o=>X(s(o)),columns:te,formConfig:{labelWidth:0,schemas:D,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:o=>o.id});G(()=>{WebViewService.setIsLoading(!1).then(()=>{})});const s=(o,n=!0)=>{const x=o,{pageNum:$,pageSize:q,field:y="id",order:A="descend"}=x,H=g(x,["pageNum","pageSize","field","order"]),r={pageNum:$,pageSize:q,orderByClause:`${y} ${A==="descend"?"desc":"asc"}`};return Object.keys(H).forEach(f=>{const i=D.find(p=>p.field===f),a=o[f],l=f;if(i){if(a!==void 0&&a!=="")if(i.component==="Input"){const p=n?"":"%";r[l]=`${p}${a.trim()}${p}`}else["Select","ApiSelect","ApiTreeSelect"].includes(i.component)?r[l]=L(a)?a.value:a:i.component==="RangePicker"?(r[`${l}From`]=I(a[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),r[`${l}To`]=I(a[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):i.component==="DatePicker"?r[l]=I(a).format(i.componentProps.format||"YYYY-MM-DD"):r[l]=a}else r[l]=a}),r};return(o,n)=>(J(),Q("div",null,[Y("div",se,[M(h(K),{size:"19",name:"list"}),n[0]||(n[0]=Y("div",{class:"title"},"日志列表",-1))]),M(h(z),{onRegister:h(t)},null,8,["onRegister"])]))}});const be=W(oe,[["__scopeId","data-v-75abe5ab"]]);export{be as default}; diff --git a/detect.gui/Embedded/dist/assets/index-248ee10e.js b/detect.gui/Embedded/dist/assets/index-248ee10e.js new file mode 100644 index 0000000..f420cf2 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-248ee10e.js @@ -0,0 +1 @@ +import{p as h,u as y,_ as v}from"./index.js";import{u as x}from"./useContentViewHeight-af1e3bfb.js";import{y as w}from"./antd-eedb3ef5.js";import{d as H,f as a,c as S,u as e,Z as R,_ as k,k as z,a5 as C,ad as l,a1 as u,$}from"./vue-72a104e4.js";import{u as B}from"./useWindowSizeFn-46f0db92.js";const L=["src"],E=H({__name:"index",props:{frameSrc:h.string.def("")},setup(m){const n=a(!0),p=a(50),i=a(window.innerHeight),o=a(),{headerHeightRef:d}=x(),{prefixCls:r}=y("iframe-page");B(f,{wait:150,immediate:!0});const c=S(()=>({height:`${e(i)}px`}));function f(){const s=e(o);if(!s)return;const t=d.value;p.value=t,i.value=window.innerHeight-t;const g=document.documentElement.clientHeight-t;s.style.height=`${g}px`}function _(){n.value=!1,f()}return(s,t)=>(R(),k("div",{class:u(e(r)),style:l(c.value)},[z(e(w),{spinning:n.value,size:"large",style:l(c.value)},{default:C(()=>[$("iframe",{src:m.frameSrc,class:u(`${e(r)}__main`),ref_key:"frameRef",ref:o,onLoad:_},null,42,L)]),_:1},8,["spinning","style"])],6))}});const I=v(E,[["__scopeId","data-v-c7e0c85f"]]);export{I as default}; diff --git a/detect.gui/Embedded/dist/assets/index-2883a0d6.css b/detect.gui/Embedded/dist/assets/index-2883a0d6.css new file mode 100644 index 0000000..0dc2cad --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-2883a0d6.css @@ -0,0 +1 @@ +.header[data-v-0e16eaba]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-0e16eaba]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-0e16eaba] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-0e16eaba] .ant-table-wrapper{background:transparent}[data-v-0e16eaba] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-0e16eaba] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-0e16eaba] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-0e16eaba] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-0e16eaba] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-0e16eaba] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-0e16eaba] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-0e16eaba] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-0e16eaba] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-0e16eaba] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-0e16eaba] .ant-select-selector .ant-select-selection-item,[data-v-0e16eaba] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-0e16eaba] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-0e16eaba] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-0e16eaba] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-0e16eaba] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-0e16eaba] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-0e16eaba] .ant-empty-description{color:#999}[data-v-0e16eaba] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-0e16eaba] .ant-pagination-options-quick-jumper>input:hover,[data-v-0e16eaba] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-0e16eaba] .ant-input-clear-icon,[data-v-0e16eaba] .ant-input-password-icon{color:#fff!important}[data-v-0e16eaba] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-0e16eaba] .vben-basic-table-action button:disabled{color:#999!important}[data-v-0e16eaba] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-0e16eaba] .vben-tree-header{border-bottom:1px solid #183171}[data-v-0e16eaba] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-tree-list{background:#13265a!important}[data-v-0e16eaba] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-tree-switcher-icon{color:#fff!important}[data-v-0e16eaba] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-0e16eaba] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-0e16eaba] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0e16eaba] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-picker,[data-v-0e16eaba] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-0e16eaba] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-0e16eaba] .ant-picker-focused,[data-v-0e16eaba] .ant-picker-range:hover,[data-v-0e16eaba] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-0e16eaba] .vben-basic-table .ant-picker-range{width:100%}[data-v-0e16eaba] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-0e16eaba] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-0e16eaba] .anticon{color:#fff!important}[data-v-0e16eaba] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0e16eaba] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-0e16eaba] .ant-picker-cell-in-view{color:#fff!important}[data-v-0e16eaba] .ant-picker-content th,[data-v-0e16eaba] .ant-picker-header-super-prev-btn,[data-v-0e16eaba] .ant-picker-header-prev-btn,[data-v-0e16eaba] .ant-picker-header-super-next-btn,[data-v-0e16eaba] .ant-picker-header-next-btn,[data-v-0e16eaba] .ant-picker-year-btn,[data-v-0e16eaba] .ant-picker-month-btn,[data-v-0e16eaba] .ant-picker-decade-btn,[data-v-0e16eaba] .ant-picker-header-view,[data-v-0e16eaba] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-0e16eaba] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-0e16eaba] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-0e16eaba] .ant-card-body{padding:0!important}[data-v-0e16eaba] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-0e16eaba] .ant-descriptions-view{border:1px solid #183171!important}[data-v-0e16eaba] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-0e16eaba] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-0e16eaba] .ant-descriptions-item-label,[data-v-0e16eaba] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-0e16eaba] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-0e16eaba] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-0e16eaba] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-0e16eaba] .CodeMirror-cursor{border-left:1px solid white}[data-v-0e16eaba] .cm-string{color:#ff8c00!important}[data-v-0e16eaba] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-2c8532c7.js b/detect.gui/Embedded/dist/assets/index-2c8532c7.js new file mode 100644 index 0000000..225da26 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-2c8532c7.js @@ -0,0 +1 @@ +import{d as m,c as n,Z as a,a4 as s,a5 as c,q as i,a8 as p}from"./vue-72a104e4.js";import u from"./LockPage-649852bd.js";import{u as f}from"./lock-ba03254e.js";import"./index.js";import"./antd-eedb3ef5.js";import"./header-b90f4bbc.js";const C=m({__name:"index",setup(d){const o=f(),r=n(()=>{var e,t;return(t=(e=o==null?void 0:o.getLockInfo)==null?void 0:e.isLock)!=null?t:!1});return(e,t)=>(a(),s(i,{name:"fade-bottom",mode:"out-in"},{default:c(()=>[r.value?(a(),s(u,{key:0})):p("",!0)]),_:1}))}});export{C as default}; diff --git a/detect.gui/Embedded/dist/assets/index-3ec4e6b2.js b/detect.gui/Embedded/dist/assets/index-3ec4e6b2.js new file mode 100644 index 0000000..a0e34ba --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-3ec4e6b2.js @@ -0,0 +1 @@ +import{m as _,B,a_ as T,u as y,a7 as l,_ as D}from"./index.js";import{c as d,u as L}from"./index-07b093f7.js";import{aW as P}from"./antd-eedb3ef5.js";import{d as w,c as f,u as t,Z as s,_ as C,k as E,a4 as S,a8 as k,a1 as F,F as v,a6 as a}from"./vue-72a104e4.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const x=w({name:"LayoutFeatures",components:{BackTop:P,LayoutLockPage:d(()=>_(()=>import("./index-2c8532c7.js"),["./index-2c8532c7.js","./vue-72a104e4.js","./LockPage-649852bd.js","./index.js","./antd-eedb3ef5.js","./index-a17248e3.css","./lock-ba03254e.js","./header-b90f4bbc.js","./LockPage-b0b08e00.css"],import.meta.url)),SettingDrawer:d(()=>_(()=>import("./index-8e331aa4.js").then(e=>e.i),["./index-8e331aa4.js","./index-e60b7cd2.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-ac2d527c.css","./index-07b093f7.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-fffcad33.css"],import.meta.url))},setup(){const{getUseOpenBackTop:e,getShowSettingButton:i,getSettingButtonPosition:u,getFullContent:c}=B(),m=T(),{prefixCls:p}=y("setting-drawer-feature"),{getShowHeader:o}=L(),n=f(()=>m.getSessionTimeout),r=f(()=>{if(!t(i))return!1;const g=t(u);return g===l.AUTO?!t(o)||t(c):g===l.FIXED});return{getTarget:()=>document.body,getUseOpenBackTop:e,getIsFixedSettingDrawer:r,prefixCls:p,getIsSessionTimeout:n}}});function I(e,i,u,c,m,p){const o=a("LayoutLockPage"),n=a("BackTop"),r=a("SettingDrawer");return s(),C(v,null,[E(o),e.getUseOpenBackTop?(s(),S(n,{key:0,target:e.getTarget},null,8,["target"])):k("",!0),e.getIsFixedSettingDrawer?(s(),S(r,{key:1,class:F(e.prefixCls)},null,8,["class"])):k("",!0)],64)}const W=D(x,[["render",I]]);export{W as default}; diff --git a/detect.gui/Embedded/dist/assets/index-6255defe.js b/detect.gui/Embedded/dist/assets/index-6255defe.js new file mode 100644 index 0000000..abfad87 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-6255defe.js @@ -0,0 +1 @@ +import{D as C,G as _,S as y}from"./siteSetting-efd6ab5b.js";import{B as F,u as g,W as L,v,_ as R}from"./index.js";import{d as $,S as w,f as S,c as k,u as n,Z as U,a4 as h,a5 as B,a1 as u,a8 as D,a6 as m,$ as a,a0 as c,k as G}from"./vue-72a104e4.js";import{u as I}from"./useContentViewHeight-af1e3bfb.js";import{L as b,aX as H}from"./antd-eedb3ef5.js";import"./useWindowSizeFn-46f0db92.js";const W=$({name:"LayoutFooter",components:{Footer:b.Footer,GithubFilled:H},setup(){const{t:o}=v(),{getShowFooter:e}=F(),{currentRoute:f}=w(),{prefixCls:p}=g("layout-footer"),r=S(null),{setFooterHeight:i}=I();return{getShowLayoutFooter:k(()=>{var s,t;if(n(e)){const l=(s=n(r))==null?void 0:s.$el;i((l==null?void 0:l.offsetHeight)||0)}else i(0);return n(e)&&!((t=n(f).meta)!=null&&t.hiddenFooter)}),prefixCls:p,t:o,DOC_URL:C,GITHUB_URL:_,SITE_URL:y,openWindow:L,footerRef:r}}});function T(o,e,f,p,r,i){const d=m("GithubFilled"),s=m("Footer");return o.getShowLayoutFooter?(U(),h(s,{key:0,class:u(o.prefixCls),ref:"footerRef"},{default:B(()=>[a("div",{class:u(`${o.prefixCls}__links`)},[a("a",{onClick:e[0]||(e[0]=t=>o.openWindow(o.SITE_URL))},c(o.t("layout.footer.onlinePreview")),1),G(d,{onClick:e[1]||(e[1]=t=>o.openWindow(o.GITHUB_URL)),class:u(`${o.prefixCls}__github`)},null,8,["class"]),a("a",{onClick:e[2]||(e[2]=t=>o.openWindow(o.DOC_URL))},c(o.t("layout.footer.onlineDocument")),1)],2),e[3]||(e[3]=a("div",null,"Copyright ©2020 Vben Admin",-1))]),_:1},8,["class"])):D("",!0)}const P=R(W,[["render",T],["__scopeId","data-v-0f5faecd"]]);export{P as default}; diff --git a/detect.gui/Embedded/dist/assets/index-6f972d40.js b/detect.gui/Embedded/dist/assets/index-6f972d40.js new file mode 100644 index 0000000..05eb6e1 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-6f972d40.js @@ -0,0 +1 @@ +var pe=Object.defineProperty,fe=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var X=Object.getOwnPropertySymbols;var he=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var Q=(s,t,r)=>t in s?pe(s,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[t]=r,k=(s,t)=>{for(var r in t||(t={}))he.call(t,r)&&Q(s,r,t[r]);if(X)for(var r of X(t))me.call(t,r)&&Q(s,r,t[r]);return s},V=(s,t)=>fe(s,ge(t));var Y=(s,t,r)=>new Promise((a,m)=>{var b=d=>{try{g(r.next(d))}catch(H){m(H)}},y=d=>{try{g(r.throw(d))}catch(H){m(H)}},g=d=>d.done?a(d.value):Promise.resolve(d.value).then(b,y);g((r=r.apply(s,t)).next())});import{u as K,a as ye,_ as ve,b as be,i as _e,c as ke,p as x,P as He,w as Z,d as xe,e as we,C as Ce,f as A,h as Re}from"./index.js";import{d as N,Z as E,_ as U,$ as I,ab as B,a1 as z,u as e,ad as re,f as D,y as M,w as ae,H as Se,K as je,ae as $e,p as Pe,c as _,a4 as q,aa as Fe,a7 as De,a5 as O,ag as Be,ah as Te,F as Ee,G as ie,a0 as ce,a9 as le,a8 as ee,k as F,i as Oe,I as Ie,g as We,l as te}from"./vue-72a104e4.js";import{u as ue}from"./useContentViewHeight-af1e3bfb.js";import{o as ze}from"./onMountedOrActivated-ee461833.js";import{u as Ve}from"./useWindowSizeFn-46f0db92.js";import{o as ne,G as Ne,H as se,J as Ae,K as Me}from"./antd-eedb3ef5.js";import{G as oe,D as Ge,S as Le}from"./siteSetting-efd6ab5b.js";const Ue=N({name:"PageFooter",inheritAttrs:!1,__name:"PageFooter",setup(s){const{prefixCls:t}=K("page-footer"),{getCalcContentWidth:r}=ye();return(a,m)=>(E(),U("div",{class:z(e(t)),style:re({width:e(r)})},[I("div",{class:z(`${e(t)}__left`)},[B(a.$slots,"left",{},void 0,!0)],2),B(a.$slots,"default",{},void 0,!0),I("div",{class:z(`${e(t)}__right`)},[B(a.$slots,"right",{},void 0,!0)],2)],6))}});const de=ve(Ue,[["__scopeId","data-v-7277d5d2"]]);function qe(s,t,r,a,m=0,b=D(0)){const y=D(null),{footerHeightRef:g}=ue();let d={useLayoutFooter:!0};const H=c=>{d=c};function P(){M(()=>{S()})}function w(c,j="all"){var f,v,C,l;function p(o){return Number(o.replace(/[^\d]/g,""))}let n=0;const h="0px";if(c){const o=getComputedStyle(c),u=p((f=o==null?void 0:o.marginTop)!=null?f:h),i=p((v=o==null?void 0:o.marginBottom)!=null?v:h),T=p((C=o==null?void 0:o.paddingTop)!=null?C:h),$=p((l=o==null?void 0:o.paddingBottom)!=null?l:h);j==="all"?(n+=u,n+=i,n+=T,n+=$):j==="top"?(n+=u,n+=T):(n+=i,n+=$)}return n}function R(c){return c==null?null:c instanceof HTMLDivElement?c:c.$el}function S(){return Y(this,null,function*(){var l;if(!s.value)return;yield M();const c=R(e(t));if(!c)return;const{bottomIncludeBody:j}=be(c);let p=0;r.forEach(o=>{var u,i;p+=(i=(u=R(e(o)))==null?void 0:u.offsetHeight)!=null?i:0});let n=(l=w(c))!=null?l:0;a.forEach(o=>{n+=w(R(e(o)))});let h=0;function f(o,u){if(o&&u){const i=o.parentElement;i&&(_e(u)?i.classList.contains(u)?h+=w(i,"bottom"):(h+=w(i,"bottom"),f(i,u)):ke(u)&&u>0&&(h+=w(i,"bottom"),f(i,--u)))}}Se(m)?f(c,e(m)):f(c,m);let v=j-e(g)-e(b)-p-n-h;const C=()=>{var o;(o=d.elements)==null||o.forEach(u=>{var i,T;v+=(T=(i=R(e(u)))==null?void 0:i.offsetHeight)!=null?T:0})};d.useLayoutFooter&&e(g)>0,C(),y.value=v})}return ze(()=>{M(()=>{S()})}),Ve(()=>{S()},{wait:50,immediate:!0}),ae(()=>[g.value],()=>{S()},{flush:"post",immediate:!0}),{redoHeight:P,setCompensation:H,contentHeight:y}}const Ke=N({name:"PageWrapper",inheritAttrs:!1,__name:"PageWrapper",props:{title:x.string,dense:x.bool,ghost:x.bool,headerSticky:x.bool,headerStyle:Object,content:x.string,contentStyle:{type:Object},contentBackground:x.bool,contentFullHeight:x.bool.def(!1),contentClass:x.string,fixedHeight:x.bool,upwardSpace:x.oneOfType([x.number,x.string]).def(0)},setup(s){const t=s,r=je(),a=$e(),m=D(null),b=D(null),y=D(null),g=D(null),{prefixCls:d}=K("page-wrapper");Pe(He,_(()=>t.fixedHeight));const H=_(()=>t.contentFullHeight),P=_(()=>t.upwardSpace),{redoHeight:w,setCompensation:R,contentHeight:S}=qe(H,m,[b,g],[y],P);R({useLayoutFooter:!0,elements:[g]});const c=_(()=>{var l;return[d,{[`${d}--dense`]:t.dense},(l=r.class)!=null?l:{}]}),{headerHeightRef:j}=ue(),p=_(()=>{const{headerSticky:l}=t;return l?k({position:"sticky",top:`${e(j)}px`},t.headerStyle):{}}),n=_(()=>t.content||(a==null?void 0:a.headerContent)||t.title||f.value.length),h=_(()=>(a==null?void 0:a.leftFooter)||(a==null?void 0:a.rightFooter)),f=_(()=>Object.keys(ne(a,"default","leftFooter","rightFooter","headerContent"))),v=_(()=>{const{contentFullHeight:l,contentStyle:o,fixedHeight:u}=t;if(!l)return k({},o);const i=`${e(S)}px`;return k(V(k({},o),{minHeight:i}),u?{height:i}:{})}),C=_(()=>{const{contentBackground:l,contentClass:o}=t;return[`${d}-content`,o,{[`${d}-content-bg`]:l}]});return ae(()=>[h.value],()=>{w()},{flush:"post",immediate:!0}),(l,o)=>(E(),U("div",{class:z(c.value),ref_key:"wrapperRef",ref:m},[n.value?(E(),q(e(Ne),le({key:0,ghost:s.ghost,title:s.title},e(ne)(l.$attrs,"class"),{style:p.value,ref_key:"headerRef",ref:b}),Fe({default:O(()=>[s.content?(E(),U(Ee,{key:0},[ie(ce(s.content),1)],64)):B(l.$slots,"headerContent",{key:1})]),_:2},[De(f.value,u=>({name:u,fn:O(i=>[B(l.$slots,u,Be(Te(i||{})))])}))]),1040,["ghost","title","style"])):ee("",!0),I("div",{class:z(["overflow-hidden",C.value]),style:re(v.value),ref_key:"contentRef",ref:y},[B(l.$slots,"default")],6),h.value?(E(),q(de,{key:1,ref_key:"footerRef",ref:g},{left:O(()=>[B(l.$slots,"leftFooter")]),right:O(()=>[B(l.$slots,"rightFooter")]),_:3},512)):ee("",!0)],2))}});Z(de);const Ze=Z(Ke);function Je(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Object]"&&!Oe(s)}const Xe={useCollapse:{type:Boolean,default:!0},title:{type:String,default:""},size:{type:String,validator:s=>["small","default","middle",void 0].includes(s),default:"small"},bordered:{type:Boolean,default:!0},column:{type:[Number,Object],default:()=>({xxl:4,xl:3,lg:3,md:3,sm:2,xs:1})},collapseOptions:{type:Object,default:null},schema:{type:Array,default:()=>[]},data:{type:Object}},Qe=N({name:"Description",props:Xe,emits:["register"],setup(s,{slots:t,emit:r}){const a=D(null),{prefixCls:m}=K("description"),b=xe(),y=_(()=>k(k({},s),e(a))),g=_(()=>V(k({},e(y)),{title:void 0})),d=_(()=>!!e(y).title),H=_(()=>k({canExpand:!1},e(g).collapseOptions)),P=_(()=>k(k({},e(b)),e(g)));function w(n){a.value=k(k({},e(a)),n)}function R({label:n,labelMinWidth:h,labelStyle:f}){if(!f&&!h)return n;const v=V(k({},f),{minWidth:`${h}px `});return F("div",{style:v},[n])}function S(){const{schema:n,data:h}=e(g);return e(n).map(f=>{const{render:v,field:C,span:l,show:o,contentMinWidth:u}=f;if(o&&A(o)&&!o(h))return null;const i=()=>{var J;const $=(J=e(g))==null?void 0:J.data;if(!$)return null;const W=Ae($,C);return W&&!Ie($).hasOwnProperty(C)?A(v)?v("",$):"":A(v)?v(W,$):W!=null?W:""},T=u;return F(se.Item,{label:R(f),key:C,span:l},{default:()=>{if(!u)return i();const $={minWidth:`${T}px`};return F("div",{style:$},[i()])}})}).filter(f=>!!f)}const c=()=>{let n;return F(se,le({class:`${m}`},e(P)),Je(n=S())?n:{default:()=>[n]})},j=()=>{const n=s.useCollapse?c():F("div",null,[c()]);if(!s.useCollapse)return n;const{canExpand:h,helpMessage:f}=e(H),{title:v}=e(y);return F(Ce,{title:v,canExpan:h,helpMessage:f},{default:()=>n,action:()=>we(t,"action")})};return r("register",{setDescProps:w}),()=>e(d)?j():c()}});function G(s){if(!We())throw new Error("useDescription() can only be used inside setup() or functional components!");const t=D(null),r=D(!1);function a(b){e(r)&&Re()||(t.value=b,s&&b.setDescProps(s),r.value=!0)}return[a,{setDescProps:b=>{var y;(y=e(t))==null||y.setDescProps(b)}}]}const L=Z(Qe),Ye={class:"flex justify-between items-center"},et={class:"flex-1"},tt=["href"],ut=N({__name:"index",setup(s){const{pkg:t,lastBuildTime:r}={pkg:{dependencies:{"@ant-design/icons-vue":"^6.1.0","@iconify/iconify":"^3.1.1","@vben/hooks":"workspace:*","@vue/shared":"^3.3.4","@vueuse/core":"^10.2.1","@vueuse/shared":"^10.2.1","@zxcvbn-ts/core":"^3.0.2","ant-design-vue":"^4.0.3",axios:"^1.4.0",codemirror:"^5.65.12",cropperjs:"^1.5.13","crypto-js":"^4.1.1",dayjs:"^1.11.9",echarts:"^5.4.2","lodash-es":"^4.17.21","lodash.get":"^4.4.2",mockjs:"^1.1.0",nprogress:"^0.2.0","path-to-regexp":"^6.2.1","pdfjs-dist":"^4.10.38",pinia:"2.1.4",qrcode:"^1.5.3",qs:"^6.11.2","resize-observer-polyfill":"^1.5.1",showdown:"^2.1.0",sortablejs:"^1.15.0",vue:"^3.3.4","vue-i18n":"^9.2.2","vue-json-pretty":"^2.2.4","vue-router":"^4.2.3","vue-types":"^5.1.0",vuedraggable:"^4.1.0","vxe-table":"^4.4.5","vxe-table-plugin-export-xlsx":"^3.0.4","xe-utils":"^3.5.11"},devDependencies:{"@commitlint/cli":"^17.6.6","@commitlint/config-conventional":"^17.6.6","@iconify/json":"^2.2.87","@purge-icons/generated":"^0.9.0","@types/codemirror":"^5.60.8","@types/crypto-js":"^4.1.1","@types/intro.js":"^5.1.1","@types/lodash-es":"^4.17.7","@types/lodash.get":"^4.4.7","@types/mockjs":"^1.0.7","@types/nprogress":"^0.2.0","@types/qrcode":"^1.5.1","@types/qs":"^6.9.7","@types/showdown":"^2.0.1","@types/sortablejs":"^1.15.1","@vben/eslint-config":"workspace:*","@vben/stylelint-config":"workspace:*","@vben/ts-config":"workspace:*","@vben/types":"workspace:*","@vben/vite-config":"workspace:*","@vue/compiler-sfc":"^3.3.4","@vue/test-utils":"^2.4.0","cross-env":"^7.0.3","cz-git":"^1.6.1",czg:"^1.6.1","lint-staged":"13.2.3",prettier:"^2.8.8","prettier-plugin-packagejson":"^2.4.4",rimraf:"^5.0.1",turbo:"^1.10.7",typescript:"^5.1.6",unbuild:"^1.2.1",vite:"^4.4.0","vite-plugin-mock":"^2.9.6","vue-tsc":"^1.8.4"},name:"vben-admin",version:"2.10.1.build0307"},lastBuildTime:"2025-01-08 13:46:22"},{dependencies:a,devDependencies:m,name:b,version:y}=t,g=[],d=[],H=p=>n=>te(Me,{color:p},()=>n),P=p=>n=>te("a",{href:n,target:"_blank"},p),w=[{label:"版本",field:"version",render:H("blue")},{label:"最后编译时间",field:"lastBuildTime",render:H("blue")},{label:"文档地址",field:"doc",render:P("文档地址")},{label:"预览地址",field:"preview",render:P("预览地址")},{label:"Github",field:"github",render:P("Github")}],R={version:y,lastBuildTime:r,doc:Ge,preview:Le,github:oe};Object.keys(a).forEach(p=>{g.push({field:p,label:p})}),Object.keys(m).forEach(p=>{d.push({field:p,label:p})});const[S]=G({title:"生产环境依赖",data:a,schema:g,column:3}),[c]=G({title:"开发环境依赖",data:m,schema:d,column:3}),[j]=G({title:"项目信息",data:R,schema:w,column:2});return(p,n)=>(E(),q(e(Ze),{title:"关于"},{headerContent:O(()=>[I("div",Ye,[I("span",et,[I("a",{href:e(oe),target:"_blank"},ce(e(b)),9,tt),n[0]||(n[0]=ie(" 是一个基于Vue3.0、Vite、 Ant-Design-Vue 、TypeScript 的后台解决方案,目标是为中大型项目开发,提供现成的开箱解决方案及丰富的示例,原则上不会限制任何代码用于商用。 "))])])]),default:O(()=>[F(e(L),{onRegister:e(j),class:"enter-y"},null,8,["onRegister"]),F(e(L),{onRegister:e(S),class:"my-4 enter-y"},null,8,["onRegister"]),F(e(L),{onRegister:e(c),class:"enter-y"},null,8,["onRegister"])]),_:1}))}});export{ut as default}; diff --git a/detect.gui/Embedded/dist/assets/index-81e00eda.js b/detect.gui/Embedded/dist/assets/index-81e00eda.js new file mode 100644 index 0000000..34e082f --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-81e00eda.js @@ -0,0 +1,12 @@ +var tb=Object.defineProperty,eb=Object.defineProperties;var sb=Object.getOwnPropertyDescriptors;var Zh=Object.getOwnPropertySymbols,ib=Object.getPrototypeOf,Pp=Object.prototype.hasOwnProperty,Rp=Object.prototype.propertyIsEnumerable,nb=Reflect.get;var uo=Math.pow,Nu=(d,t,e)=>t in d?tb(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,bs=(d,t)=>{for(var e in t||(t={}))Pp.call(t,e)&&Nu(d,e,t[e]);if(Zh)for(var e of Zh(t))Rp.call(t,e)&&Nu(d,e,t[e]);return d},yr=(d,t)=>eb(d,sb(t));var kp=(d,t)=>{var e={};for(var s in d)Pp.call(d,s)&&t.indexOf(s)<0&&(e[s]=d[s]);if(d!=null&&Zh)for(var s of Zh(d))t.indexOf(s)<0&&Rp.call(d,s)&&(e[s]=d[s]);return e};var H=(d,t,e)=>(Nu(d,typeof t!="symbol"?t+"":t,e),e),Ou=(d,t,e)=>{if(!t.has(d))throw TypeError("Cannot "+e)};var n=(d,t,e)=>(Ou(d,t,"read from private field"),e?e.call(d):t.get(d)),u=(d,t,e)=>{if(t.has(d))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(d):t.set(d,e)},p=(d,t,e,s)=>(Ou(d,t,"write to private field"),s?s.call(d,e):t.set(d,e),e);var jt=(d,t,e,s)=>({set _(i){p(d,t,i,e)},get _(){return n(d,t,s)}}),b=(d,t,e)=>(Ou(d,t,"access private method"),e),Vi=(d,t,e)=>nb(ib(d),e,t);var L=(d,t,e)=>new Promise((s,i)=>{var r=l=>{try{o(e.next(l))}catch(h){i(h)}},a=l=>{try{o(e.throw(l))}catch(h){i(h)}},o=l=>l.done?s(l.value):Promise.resolve(l.value).then(r,a);o((e=e.apply(d,t)).next())});import{m as rb,_ as Jp,j as ab,k as ob,S as lb,l as hb}from"./index.js";import{u as cb,B as db}from"./useTable-3e054214.js";import{T as ub}from"./useForm-df5105ea.js";import{O as fb,Q as pb,N as gb,R as mb,U as bb,V as Ab,j as Bu}from"./antd-eedb3ef5.js";import{r as yb,i as wb,s as vb,c as _b,a as Mp}from"./schema-f1b33936.js";import{u as Sb}from"./index-e60b7cd2.js";import Eb from"./drawer-a775275a.js";import{l as bo,a6 as Zp,m as Hu,A as $u,Z as Dc,_ as Yu,$ as ei,ad as Gu,a8 as tg,k as Je,a5 as ti,G as Pr,d as Cb,f as wr,c as xb,o as Tb,b as Pb,u as qe,a4 as Rb}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";import"./deviceApi-af691457.js";import"./modal-fe4687ff.js";var Do={};Do.d=(d,t)=>{for(var e in t)Do.o(t,e)&&!Do.o(d,e)&&Object.defineProperty(d,e,{enumerable:!0,get:t[e]})};Do.o=(d,t)=>Object.prototype.hasOwnProperty.call(d,t);var z=globalThis.pdfjsLib={};Do.d(z,{AbortException:()=>$i,AnnotationEditorLayer:()=>rp,AnnotationEditorParamsType:()=>K,AnnotationEditorType:()=>U,AnnotationEditorUIManager:()=>gr,AnnotationLayer:()=>Ey,AnnotationMode:()=>si,ColorPicker:()=>$c,DOMSVGFactory:()=>yp,DrawLayer:()=>lp,FeatureTest:()=>Qt,GlobalWorkerOptions:()=>Qs,ImageKind:()=>nc,InvalidPDFException:()=>Qu,MissingPDFException:()=>Fo,OPS:()=>Ie,OutputScale:()=>Zu,PDFDataRangeTransport:()=>sm,PDFDateString:()=>gp,PDFWorker:()=>Ir,PasswordResponses:()=>Lb,PermissionFlag:()=>Ib,PixelsPerInch:()=>Gi,RenderingCancelledException:()=>fp,TextLayer:()=>No,TouchManager:()=>Bc,UnexpectedResponseException:()=>Fc,Util:()=>N,VerbosityLevel:()=>Tu,XfaLayer:()=>nm,build:()=>ny,createValidAbsoluteUrl:()=>Ob,fetchData:()=>Mu,getDocument:()=>YA,getFilenameFromUrl:()=>Wb,getPdfFilenameFromUrl:()=>Xb,getXfaPageViewport:()=>qb,isDataScheme:()=>Iu,isPdfFile:()=>pp,noContextMenu:()=>Xe,normalizeUnicode:()=>Vb,setLayerDimensions:()=>pr,shadow:()=>q,stopEvent:()=>we,version:()=>iy});const Ut=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),eg=[1,0,0,1,0,0],Ku=[.001,0,0,.001,0,0],kb=1e7,zu=1.35,ye={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},si={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Mb="pdfjs_internal_editor_",U={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},K={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35,DRAW_STEP:41},Ib={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Nt={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},nc={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},wt={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},fo={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},Tu={ERRORS:0,WARNINGS:1,INFOS:5},Ie={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93},Lb={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let Pu=Tu.WARNINGS;function Db(d){Number.isInteger(d)&&(Pu=d)}function Fb(){return Pu}function Ru(d){Pu>=Tu.INFOS}function j(d){Pu>=Tu.WARNINGS}function st(d){throw new Error(d)}function At(d,t){d||st(t)}function Nb(d){switch(d==null?void 0:d.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function Ob(d,t=null,e=null){if(!d)return null;try{if(e&&typeof d=="string"){if(e.addDefaultProtocol&&d.startsWith("www.")){const i=d.match(/\./g);(i==null?void 0:i.length)>=2&&(d=`http://${d}`)}if(e.tryConvertEncoding)try{d=zb(d)}catch(i){}}const s=t?new URL(d,t):new URL(d);if(Nb(s))return s}catch(s){}return null}function q(d,t,e,s=!1){return Object.defineProperty(d,t,{value:e,enumerable:!s,configurable:!0,writable:!1}),e}const zi=function(){function t(e,s){this.message=e,this.name=s}return t.prototype=new Error,t.constructor=t,t}();class Ip extends zi{constructor(t,e){super(t,"PasswordException"),this.code=e}}class Vu extends zi{constructor(t,e){super(t,"UnknownErrorException"),this.details=e}}class Qu extends zi{constructor(t){super(t,"InvalidPDFException")}}class Fo extends zi{constructor(t){super(t,"MissingPDFException")}}class Fc extends zi{constructor(t,e){super(t,"UnexpectedResponseException"),this.status=e}}class Bb extends zi{constructor(t){super(t,"FormatError")}}class $i extends zi{constructor(t){super(t,"AbortException")}}function sg(d){(typeof d!="object"||(d==null?void 0:d.length)===void 0)&&st("Invalid argument for bytesToString");const t=d.length,e=8192;if(t>24&255,d>>16&255,d>>8&255,d&255)}function dp(d){const t=Object.create(null);for(const[e,s]of d)t[e]=s;return t}function $b(){const d=new Uint8Array(4);return d[0]=1,new Uint32Array(d.buffer,0,1)[0]===1}function Gb(){try{return new Function(""),!0}catch(d){return!1}}class Qt{static get isLittleEndian(){return q(this,"isLittleEndian",$b())}static get isEvalSupported(){return q(this,"isEvalSupported",Gb())}static get isOffscreenCanvasSupported(){return q(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas!="undefined")}static get isImageDecoderSupported(){return q(this,"isImageDecoderSupported",typeof ImageDecoder!="undefined")}static get platform(){return typeof navigator!="undefined"&&typeof(navigator==null?void 0:navigator.platform)=="string"?q(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:typeof(navigator==null?void 0:navigator.userAgent)=="string"&&navigator.userAgent.includes("Firefox")}):q(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}static get isCSSRoundSupported(){var t,e;return q(this,"isCSSRoundSupported",(e=(t=globalThis.CSS)==null?void 0:t.supports)==null?void 0:e.call(t,"width: round(1.5px, 1px)"))}}const Uu=Array.from(Array(256).keys(),d=>d.toString(16).padStart(2,"0"));var Lr,rc,Bo,Ju;class N{static makeHexColor(t,e,s){return`#${Uu[t]}${Uu[e]}${Uu[s]}`}static scaleMinMax(t,e){let s;t[0]?(t[0]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[0],e[2]*=t[0],t[3]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[3],e[3]*=t[3]):(s=e[0],e[0]=e[1],e[1]=s,s=e[2],e[2]=e[3],e[3]=s,t[1]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[1],e[3]*=t[1],t[2]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[2],e[2]*=t[2]),e[0]+=t[4],e[1]+=t[5],e[2]+=t[4],e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static applyTransform(t,e){const s=t[0]*e[0]+t[1]*e[2]+e[4],i=t[0]*e[1]+t[1]*e[3]+e[5];return[s,i]}static applyInverseTransform(t,e){const s=e[0]*e[3]-e[1]*e[2],i=(t[0]*e[3]-t[1]*e[2]+e[2]*e[5]-e[4]*e[3])/s,r=(-t[0]*e[1]+t[1]*e[0]+e[4]*e[1]-e[5]*e[0])/s;return[i,r]}static getAxialAlignedBoundingBox(t,e){const s=this.applyTransform(t,e),i=this.applyTransform(t.slice(2,4),e),r=this.applyTransform([t[0],t[3]],e),a=this.applyTransform([t[2],t[1]],e);return[Math.min(s[0],i[0],r[0],a[0]),Math.min(s[1],i[1],r[1],a[1]),Math.max(s[0],i[0],r[0],a[0]),Math.max(s[1],i[1],r[1],a[1])]}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t){const e=[t[0],t[2],t[1],t[3]],s=t[0]*e[0]+t[1]*e[2],i=t[0]*e[1]+t[1]*e[3],r=t[2]*e[0]+t[3]*e[2],a=t[2]*e[1]+t[3]*e[3],o=(s+a)/2,l=Math.sqrt(uo(s+a,2)-4*(s*a-r*i))/2,h=o+l||1,c=o-l||1;return[Math.sqrt(h),Math.sqrt(c)]}static normalizeRect(t){const e=t.slice(0);return t[0]>t[2]&&(e[0]=t[2],e[2]=t[0]),t[1]>t[3]&&(e[1]=t[3],e[3]=t[1]),e}static intersect(t,e){const s=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),i=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(s>i)return null;const r=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return r>a?null:[s,r,i,a]}static bezierBoundingBox(t,e,s,i,r,a,o,l,h){return h?(h[0]=Math.min(h[0],t,o),h[1]=Math.min(h[1],e,l),h[2]=Math.max(h[2],t,o),h[3]=Math.max(h[3],e,l)):h=[Math.min(t,o),Math.min(e,l),Math.max(t,o),Math.max(e,l)],b(this,Bo,Ju).call(this,t,s,r,o,e,i,a,l,3*(-t+3*(s-r)+o),6*(t-2*s+r),3*(s-t),h),b(this,Bo,Ju).call(this,t,s,r,o,e,i,a,l,3*(-e+3*(i-a)+l),6*(e-2*i+a),3*(i-e),h),h}}Lr=new WeakSet,rc=function(t,e,s,i,r,a,o,l,h,c){if(h<=0||h>=1)return;const f=1-h,g=h*h,m=g*h,A=f*(f*(f*t+3*h*e)+3*g*s)+m*i,y=f*(f*(f*r+3*h*a)+3*g*o)+m*l;c[0]=Math.min(c[0],A),c[1]=Math.min(c[1],y),c[2]=Math.max(c[2],A),c[3]=Math.max(c[3],y)},Bo=new WeakSet,Ju=function(t,e,s,i,r,a,o,l,h,c,f,g){if(Math.abs(h)<1e-12){Math.abs(c)>=1e-12&&b(this,Lr,rc).call(this,t,e,s,i,r,a,o,l,-f/c,g);return}const m=uo(c,2)-4*f*h;if(m<0)return;const A=Math.sqrt(m),y=2*h;b(this,Lr,rc).call(this,t,e,s,i,r,a,o,l,(-c+A)/y,g),b(this,Lr,rc).call(this,t,e,s,i,r,a,o,l,(-c-A)/y,g)},u(N,Lr),u(N,Bo);function zb(d){return decodeURIComponent(escape(d))}let ju=null,Lp=null;function Vb(d){return ju||(ju=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,Lp=new Map([["ſt","ſt"]])),d.replaceAll(ju,(t,e,s)=>e?e.normalize("NFKC"):Lp.get(s))}function Ub(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const d=new Uint8Array(32);return crypto.getRandomValues(d),sg(d)}const up="pdfjs_internal_id_";function jb(d){return Uint8Array.prototype.toBase64?d.toBase64():btoa(sg(d))}typeof Promise.try!="function"&&(Promise.try=function(d,...t){return new Promise(e=>{e(d(...t))})});const As="http://www.w3.org/2000/svg",Xi=class Xi{};H(Xi,"CSS",96),H(Xi,"PDF",72),H(Xi,"PDF_TO_CSS_UNITS",Xi.CSS/Xi.PDF);let Gi=Xi;function Mu(d,t="text"){return L(this,null,function*(){if(Ao(d,document.baseURI)){const e=yield fetch(d);if(!e.ok)throw new Error(e.statusText);switch(t){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"json":return e.json()}return e.text()}return new Promise((e,s)=>{const i=new XMLHttpRequest;i.open("GET",d,!0),i.responseType=t,i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE){if(i.status===200||i.status===0){switch(t){case"arraybuffer":case"blob":case"json":e(i.response);return}e(i.responseText);return}s(new Error(i.statusText))}},i.send(null)})})}class Kh{constructor({viewBox:t,userUnit:e,scale:s,rotation:i,offsetX:r=0,offsetY:a=0,dontFlip:o=!1}){this.viewBox=t,this.userUnit=e,this.scale=s,this.rotation=i,this.offsetX=r,this.offsetY=a,s*=e;const l=(t[2]+t[0])/2,h=(t[3]+t[1])/2;let c,f,g,m;switch(i%=360,i<0&&(i+=360),i){case 180:c=-1,f=0,g=0,m=1;break;case 90:c=0,f=1,g=1,m=0;break;case 270:c=0,f=-1,g=-1,m=0;break;case 0:c=1,f=0,g=0,m=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}o&&(g=-g,m=-m);let A,y,v,w;c===0?(A=Math.abs(h-t[1])*s+r,y=Math.abs(l-t[0])*s+a,v=(t[3]-t[1])*s,w=(t[2]-t[0])*s):(A=Math.abs(l-t[0])*s+r,y=Math.abs(h-t[1])*s+a,v=(t[2]-t[0])*s,w=(t[3]-t[1])*s),this.transform=[c*s,f*s,g*s,m*s,A-c*s*l-g*s*h,y-f*s*l-m*s*h],this.width=v,this.height=w}get rawDims(){const{userUnit:t,viewBox:e}=this,s=e.map(i=>i*t);return q(this,"rawDims",{pageWidth:s[2]-s[0],pageHeight:s[3]-s[1],pageX:s[0],pageY:s[1]})}clone({scale:t=this.scale,rotation:e=this.rotation,offsetX:s=this.offsetX,offsetY:i=this.offsetY,dontFlip:r=!1}={}){return new Kh({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:t,rotation:e,offsetX:s,offsetY:i,dontFlip:r})}convertToViewportPoint(t,e){return N.applyTransform([t,e],this.transform)}convertToViewportRectangle(t){const e=N.applyTransform([t[0],t[1]],this.transform),s=N.applyTransform([t[2],t[3]],this.transform);return[e[0],e[1],s[0],s[1]]}convertToPdfPoint(t,e){return N.applyInverseTransform([t,e],this.transform)}}class fp extends zi{constructor(t,e=0){super(t,"RenderingCancelledException"),this.extraDelay=e}}function Iu(d){const t=d.length;let e=0;for(;e=1&&i<=12?i-1:0;let r=parseInt(e[3],10);r=r>=1&&r<=31?r:1;let a=parseInt(e[4],10);a=a>=0&&a<=23?a:0;let o=parseInt(e[5],10);o=o>=0&&o<=59?o:0;let l=parseInt(e[6],10);l=l>=0&&l<=59?l:0;const h=e[7]||"Z";let c=parseInt(e[8],10);c=c>=0&&c<=23?c:0;let f=parseInt(e[9],10)||0;return f=f>=0&&f<=59?f:0,h==="-"?(a+=c,o+=f):h==="+"&&(a-=c,o-=f),new Date(Date.UTC(s,i,r,a,o,l))}}Ho=new WeakMap,u(gp,Ho,void 0);function qb(d,{scale:t=1,rotation:e=0}){const{width:s,height:i}=d.attributes.style,r=[0,0,parseInt(s),parseInt(i)];return new Kh({viewBox:r,userUnit:1,scale:t,rotation:e})}function mp(d){if(d.startsWith("#")){const t=parseInt(d.slice(1),16);return[(t&16711680)>>16,(t&65280)>>8,t&255]}return d.startsWith("rgb(")?d.slice(4,-1).split(",").map(t=>parseInt(t)):d.startsWith("rgba(")?d.slice(5,-1).split(",").map(t=>parseInt(t)).slice(0,3):(j(`Not a valid color format: "${d}"`),[0,0,0])}function Yb(d){const t=document.createElement("span");t.style.visibility="hidden",document.body.append(t);for(const e of d.keys()){t.style.color=e;const s=window.getComputedStyle(t).color;d.set(e,mp(s))}t.remove()}function at(d){const{a:t,b:e,c:s,d:i,e:r,f:a}=d.getTransform();return[t,e,s,i,r,a]}function Ye(d){const{a:t,b:e,c:s,d:i,e:r,f:a}=d.getTransform().invertSelf();return[t,e,s,i,r,a]}function pr(d,t,e=!1,s=!0){if(t instanceof Kh){const{pageWidth:i,pageHeight:r}=t.rawDims,{style:a}=d,o=Qt.isCSSRoundSupported,l=`var(--scale-factor) * ${i}px`,h=`var(--scale-factor) * ${r}px`,c=o?`round(down, ${l}, var(--scale-round-x, 1px))`:`calc(${l})`,f=o?`round(down, ${h}, var(--scale-round-y, 1px))`:`calc(${h})`;!e||t.rotation%180===0?(a.width=c,a.height=f):(a.width=f,a.height=c)}s&&d.setAttribute("data-main-rotation",t.rotation)}class Zu{constructor(){const t=window.devicePixelRatio||1;this.sx=t,this.sy=t}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}}var ii,Ki,Le,Qi,$o,Go,Vc,ig,Uc,ng,jc,rg,Dr,ac,Wc,ag,zo,ef;const vs=class vs{constructor(t){u(this,Uc);u(this,jc);u(this,Dr);u(this,Wc);u(this,zo);u(this,ii,null);u(this,Ki,null);u(this,Le,void 0);u(this,Qi,null);u(this,$o,null);p(this,Le,t),n(vs,Go)||p(vs,Go,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button"}))}render(){const t=p(this,ii,document.createElement("div"));t.classList.add("editToolbar","hidden"),t.setAttribute("role","toolbar");const e=n(this,Le)._uiManager._signal;t.addEventListener("contextmenu",Xe,{signal:e}),t.addEventListener("pointerdown",b(vs,Vc,ig),{signal:e});const s=p(this,Qi,document.createElement("div"));s.className="buttons",t.append(s);const i=n(this,Le).toolbarPosition;if(i){const{style:r}=t,a=n(this,Le)._uiManager.direction==="ltr"?1-i[0]:i[0];r.insetInlineEnd=`${100*a}%`,r.top=`calc(${100*i[1]}% + var(--editor-toolbar-vert-offset))`}return b(this,Wc,ag).call(this),t}get div(){return n(this,ii)}hide(){var t;n(this,ii).classList.add("hidden"),(t=n(this,Ki))==null||t.hideDropdown()}show(){var t;n(this,ii).classList.remove("hidden"),(t=n(this,$o))==null||t.shown()}addAltText(t){return L(this,null,function*(){const e=yield t.render();b(this,Dr,ac).call(this,e),n(this,Qi).prepend(e,n(this,zo,ef)),p(this,$o,t)})}addColorPicker(t){p(this,Ki,t);const e=t.renderButton();b(this,Dr,ac).call(this,e),n(this,Qi).prepend(e,n(this,zo,ef))}remove(){var t;n(this,ii).remove(),(t=n(this,Ki))==null||t.destroy(),p(this,Ki,null)}};ii=new WeakMap,Ki=new WeakMap,Le=new WeakMap,Qi=new WeakMap,$o=new WeakMap,Go=new WeakMap,Vc=new WeakSet,ig=function(t){t.stopPropagation()},Uc=new WeakSet,ng=function(t){n(this,Le)._focusEventsAllowed=!1,we(t)},jc=new WeakSet,rg=function(t){n(this,Le)._focusEventsAllowed=!0,we(t)},Dr=new WeakSet,ac=function(t){const e=n(this,Le)._uiManager._signal;t.addEventListener("focusin",b(this,Uc,ng).bind(this),{capture:!0,signal:e}),t.addEventListener("focusout",b(this,jc,rg).bind(this),{capture:!0,signal:e}),t.addEventListener("contextmenu",Xe,{signal:e})},Wc=new WeakSet,ag=function(){const{editorType:t,_uiManager:e}=n(this,Le),s=document.createElement("button");s.className="delete",s.tabIndex=0,s.setAttribute("data-l10n-id",n(vs,Go)[t]),b(this,Dr,ac).call(this,s),s.addEventListener("click",i=>{e.delete()},{signal:e._signal}),n(this,Qi).append(s)},zo=new WeakSet,ef=function(){const t=document.createElement("div");return t.className="divider",t},u(vs,Vc),u(vs,Go,null);let tf=vs;var Vo,Ji,Zi,Xc,og,qc,lg,Yc,hg;class Kb{constructor(t){u(this,Xc);u(this,qc);u(this,Yc);u(this,Vo,null);u(this,Ji,null);u(this,Zi,void 0);p(this,Zi,t)}show(t,e,s){const[i,r]=b(this,qc,lg).call(this,e,s),{style:a}=n(this,Ji)||p(this,Ji,b(this,Xc,og).call(this));t.append(n(this,Ji)),a.insetInlineEnd=`${100*i}%`,a.top=`calc(${100*r}% + var(--editor-toolbar-vert-offset))`}hide(){n(this,Ji).remove()}}Vo=new WeakMap,Ji=new WeakMap,Zi=new WeakMap,Xc=new WeakSet,og=function(){const t=p(this,Ji,document.createElement("div"));t.className="editToolbar",t.setAttribute("role","toolbar"),t.addEventListener("contextmenu",Xe,{signal:n(this,Zi)._signal});const e=p(this,Vo,document.createElement("div"));return e.className="buttons",t.append(e),b(this,Yc,hg).call(this),t},qc=new WeakSet,lg=function(t,e){let s=0,i=0;for(const r of t){const a=r.y+r.height;if(as){i=o,s=a;continue}e?o>i&&(i=o):o{n(this,Zi).highlightSelection("floating_button")},{signal:s}),n(this,Vo).append(t)};function Nc(d,t,e){for(const s of e)t.addEventListener(s,d[s].bind(d))}var Kc;class Qb{constructor(){u(this,Kc,0)}get id(){return`${Mb}${jt(this,Kc)._++}`}}Kc=new WeakMap;var Fr,Uo,Ht,Nr,oc;const vp=class vp{constructor(){u(this,Nr);u(this,Fr,Ub());u(this,Uo,0);u(this,Ht,null)}static get _isSVGFittingCanvas(){const t='data:image/svg+xml;charset=UTF-8,',s=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),i=new Image;i.src=t;const r=i.decode().then(()=>(s.drawImage(i,0,0,1,1,0,0,1,3),new Uint32Array(s.getImageData(0,0,1,1).data.buffer)[0]===0));return q(this,"_isSVGFittingCanvas",r)}getFromFile(t){return L(this,null,function*(){const{lastModified:e,name:s,size:i,type:r}=t;return b(this,Nr,oc).call(this,`${e}_${s}_${i}_${r}`,t)})}getFromUrl(t){return L(this,null,function*(){return b(this,Nr,oc).call(this,t,t)})}getFromBlob(t,e){return L(this,null,function*(){const s=yield e;return b(this,Nr,oc).call(this,t,s)})}getFromId(t){return L(this,null,function*(){n(this,Ht)||p(this,Ht,new Map);const e=n(this,Ht).get(t);if(!e)return null;if(e.bitmap)return e.refCounter+=1,e;if(e.file)return this.getFromFile(e.file);if(e.blobPromise){const{blobPromise:s}=e;return delete e.blobPromise,this.getFromBlob(e.id,s)}return this.getFromUrl(e.url)})}getFromCanvas(t,e){n(this,Ht)||p(this,Ht,new Map);let s=n(this,Ht).get(t);if(s!=null&&s.bitmap)return s.refCounter+=1,s;const i=new OffscreenCanvas(e.width,e.height);return i.getContext("2d").drawImage(e,0,0),s={bitmap:i.transferToImageBitmap(),id:`image_${n(this,Fr)}_${jt(this,Uo)._++}`,refCounter:1,isSvg:!1},n(this,Ht).set(t,s),n(this,Ht).set(s.id,s),s}getSvgUrl(t){const e=n(this,Ht).get(t);return e!=null&&e.isSvg?e.svgUrl:null}deleteId(t){var i;n(this,Ht)||p(this,Ht,new Map);const e=n(this,Ht).get(t);if(!e||(e.refCounter-=1,e.refCounter!==0))return;const{bitmap:s}=e;if(!e.url&&!e.file){const r=new OffscreenCanvas(s.width,s.height);r.getContext("bitmaprenderer").transferFromImageBitmap(s),e.blobPromise=r.convertToBlob()}(i=s.close)==null||i.call(s),e.bitmap=null}isValidId(t){return t.startsWith(`image_${n(this,Fr)}_`)}};Fr=new WeakMap,Uo=new WeakMap,Ht=new WeakMap,Nr=new WeakSet,oc=function(t,e){return L(this,null,function*(){n(this,Ht)||p(this,Ht,new Map);let s=n(this,Ht).get(t);if(s===null)return null;if(s!=null&&s.bitmap)return s.refCounter+=1,s;try{s||(s={bitmap:null,id:`image_${n(this,Fr)}_${jt(this,Uo)._++}`,refCounter:0,isSvg:!1});let i;if(typeof e=="string"?(s.url=e,i=yield Mu(e,"blob")):e instanceof File?i=s.file=e:e instanceof Blob&&(i=e),i.type==="image/svg+xml"){const r=vp._isSVGFittingCanvas,a=new FileReader,o=new Image,l=new Promise((h,c)=>{o.onload=()=>{s.bitmap=o,s.isSvg=!0,h()},a.onload=()=>L(this,null,function*(){const f=s.svgUrl=a.result;o.src=(yield r)?`${f}#svgView(preserveAspectRatio(none))`:f}),o.onerror=a.onerror=c});a.readAsDataURL(i),yield l}else s.bitmap=yield createImageBitmap(i);s.refCounter=1}catch(i){j(i),s=null}return n(this,Ht).set(t,s),s&&n(this,Ht).set(s.id,s),s})};let sf=vp;var pt,ni,jo,lt;class Jb{constructor(t=128){u(this,pt,[]);u(this,ni,!1);u(this,jo,void 0);u(this,lt,-1);p(this,jo,t)}add({cmd:t,undo:e,post:s,mustExec:i,type:r=NaN,overwriteIfSameType:a=!1,keepUndo:o=!1}){if(i&&t(),n(this,ni))return;const l={cmd:t,undo:e,post:s,type:r};if(n(this,lt)===-1){n(this,pt).length>0&&(n(this,pt).length=0),p(this,lt,0),n(this,pt).push(l);return}if(a&&n(this,pt)[n(this,lt)].type===r){o&&(l.undo=n(this,pt)[n(this,lt)].undo),n(this,pt)[n(this,lt)]=l;return}const h=n(this,lt)+1;h===n(this,jo)?n(this,pt).splice(0,1):(p(this,lt,h),h=0;e--)if(n(this,pt)[e].type!==t){n(this,pt).splice(e+1,n(this,lt)-e),p(this,lt,e);return}n(this,pt).length=0,p(this,lt,-1)}}destroy(){p(this,pt,null)}}pt=new WeakMap,ni=new WeakMap,jo=new WeakMap,lt=new WeakMap;var Qc,cg;class Qh{constructor(t){u(this,Qc);this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:e}=Qt.platform;for(const[s,i,r={}]of t)for(const a of s){const o=a.startsWith("mac+");e&&o?(this.callbacks.set(a.slice(4),{callback:i,options:r}),this.allKeys.add(a.split("+").at(-1))):!e&&!o&&(this.callbacks.set(a,{callback:i,options:r}),this.allKeys.add(a.split("+").at(-1)))}}exec(t,e){if(!this.allKeys.has(e.key))return;const s=this.callbacks.get(b(this,Qc,cg).call(this,e));if(!s)return;const{callback:i,options:{bubbles:r=!1,args:a=[],checker:o=null}}=s;o&&!o(t,e)||(i.bind(t,...a,e)(),r||we(e))}}Qc=new WeakSet,cg=function(t){t.altKey&&this.buffer.push("alt"),t.ctrlKey&&this.buffer.push("ctrl"),t.metaKey&&this.buffer.push("meta"),t.shiftKey&&this.buffer.push("shift"),this.buffer.push(t.key);const e=this.buffer.join("+");return this.buffer.length=0,e};const Jc=class Jc{get _colors(){const t=new Map([["CanvasText",null],["Canvas",null]]);return Yb(t),q(this,"_colors",t)}convert(t){const e=mp(t);if(!window.matchMedia("(forced-colors: active)").matches)return e;for(const[s,i]of this._colors)if(i.every((r,a)=>r===e[a]))return Jc._colorsMapping.get(s);return e}getHexCode(t){const e=this._colors.get(t);return e?N.makeHexColor(...e):t}};H(Jc,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let nf=Jc;var Or,oe,vt,kt,Br,Ss,Hr,_e,ri,tn,$r,en,Ze,De,sn,Wo,Xo,Gr,qo,ts,ai,zr,oi,es,Zc,li,Yo,hi,nn,Ko,Qo,St,J,Es,rn,Jo,Zo,ci,ss,Cs,tl,Se,Vr,lc,el,rf,td,dg,ed,ug,Ur,hc,sd,fg,id,pg,nd,gg,sl,af,rd,mg,il,of,nl,lf,ad,bg,Mt,Wt,Fe,ys,od,Ag,ld,yg,rl,hf,hd,wg,an,yo,al,cf;const Rr=class Rr{constructor(t,e,s,i,r,a,o,l,h,c,f,g,m){u(this,Vr);u(this,el);u(this,td);u(this,ed);u(this,Ur);u(this,sd);u(this,id);u(this,nd);u(this,sl);u(this,rd);u(this,il);u(this,nl);u(this,ad);u(this,Mt);u(this,Fe);u(this,od);u(this,ld);u(this,rl);u(this,hd);u(this,an);u(this,al);u(this,Or,new AbortController);u(this,oe,null);u(this,vt,new Map);u(this,kt,new Map);u(this,Br,null);u(this,Ss,null);u(this,Hr,null);u(this,_e,new Jb);u(this,ri,null);u(this,tn,null);u(this,$r,0);u(this,en,new Set);u(this,Ze,null);u(this,De,null);u(this,sn,new Set);H(this,"_editorUndoBar",null);u(this,Wo,!1);u(this,Xo,!1);u(this,Gr,!1);u(this,qo,null);u(this,ts,null);u(this,ai,null);u(this,zr,null);u(this,oi,!1);u(this,es,null);u(this,Zc,new Qb);u(this,li,!1);u(this,Yo,!1);u(this,hi,null);u(this,nn,null);u(this,Ko,null);u(this,Qo,null);u(this,St,U.NONE);u(this,J,new Set);u(this,Es,null);u(this,rn,null);u(this,Jo,null);u(this,Zo,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1});u(this,ci,[0,0]);u(this,ss,null);u(this,Cs,null);u(this,tl,null);u(this,Se,null);const A=this._signal=n(this,Or).signal;p(this,Cs,t),p(this,tl,e),p(this,Br,s),this._eventBus=i,i._on("editingaction",this.onEditingAction.bind(this),{signal:A}),i._on("pagechanging",this.onPageChanging.bind(this),{signal:A}),i._on("scalechanging",this.onScaleChanging.bind(this),{signal:A}),i._on("rotationchanging",this.onRotationChanging.bind(this),{signal:A}),i._on("setpreference",this.onSetPreference.bind(this),{signal:A}),i._on("switchannotationeditorparams",y=>this.updateParams(y.type,y.value),{signal:A}),b(this,sd,fg).call(this),b(this,ad,bg).call(this),b(this,sl,af).call(this),p(this,Ss,r.annotationStorage),p(this,qo,r.filterFactory),p(this,rn,a),p(this,zr,o||null),p(this,Wo,l),p(this,Xo,h),p(this,Gr,c),p(this,Qo,f||null),this.viewParameters={realScale:Gi.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=g||null,this._supportsPinchToZoom=m!==!1}static get _keyboardManager(){const t=Rr.prototype,e=a=>n(a,Cs).contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&a.hasSomethingToControl(),s=(a,{target:o})=>{if(o instanceof HTMLInputElement){const{type:l}=o;return l!=="text"&&l!=="number"}return!0},i=this.TRANSLATE_SMALL,r=this.TRANSLATE_BIG;return q(this,"_keyboardManager",new Qh([[["ctrl+a","mac+meta+a"],t.selectAll,{checker:s}],[["ctrl+z","mac+meta+z"],t.undo,{checker:s}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],t.redo,{checker:s}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],t.delete,{checker:s}],[["Enter","mac+Enter"],t.addNewEditorFromKeyboard,{checker:(a,{target:o})=>!(o instanceof HTMLButtonElement)&&n(a,Cs).contains(o)&&!a.isEnterHandled}],[[" ","mac+ "],t.addNewEditorFromKeyboard,{checker:(a,{target:o})=>!(o instanceof HTMLButtonElement)&&n(a,Cs).contains(document.activeElement)}],[["Escape","mac+Escape"],t.unselectAll],[["ArrowLeft","mac+ArrowLeft"],t.translateSelectedEditors,{args:[-i,0],checker:e}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t.translateSelectedEditors,{args:[-r,0],checker:e}],[["ArrowRight","mac+ArrowRight"],t.translateSelectedEditors,{args:[i,0],checker:e}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t.translateSelectedEditors,{args:[r,0],checker:e}],[["ArrowUp","mac+ArrowUp"],t.translateSelectedEditors,{args:[0,-i],checker:e}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t.translateSelectedEditors,{args:[0,-r],checker:e}],[["ArrowDown","mac+ArrowDown"],t.translateSelectedEditors,{args:[0,i],checker:e}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t.translateSelectedEditors,{args:[0,r],checker:e}]]))}destroy(){var t,e,s,i,r;(t=n(this,Se))==null||t.resolve(),p(this,Se,null),(e=n(this,Or))==null||e.abort(),p(this,Or,null),this._signal=null;for(const a of n(this,kt).values())a.destroy();n(this,kt).clear(),n(this,vt).clear(),n(this,sn).clear(),p(this,oe,null),n(this,J).clear(),n(this,_e).destroy(),(s=n(this,Br))==null||s.destroy(),(i=n(this,es))==null||i.hide(),p(this,es,null),n(this,ts)&&(clearTimeout(n(this,ts)),p(this,ts,null)),n(this,ss)&&(clearTimeout(n(this,ss)),p(this,ss,null)),(r=this._editorUndoBar)==null||r.destroy()}combinedSignal(t){return AbortSignal.any([this._signal,t.signal])}get mlManager(){return n(this,Qo)}get useNewAltTextFlow(){return n(this,Xo)}get useNewAltTextWhenAddingImage(){return n(this,Gr)}get hcmFilter(){return q(this,"hcmFilter",n(this,rn)?n(this,qo).addHCMFilter(n(this,rn).foreground,n(this,rn).background):"none")}get direction(){return q(this,"direction",getComputedStyle(n(this,Cs)).direction)}get highlightColors(){return q(this,"highlightColors",n(this,zr)?new Map(n(this,zr).split(",").map(t=>t.split("=").map(e=>e.trim()))):null)}get highlightColorNames(){return q(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,t=>t.reverse())):null)}setCurrentDrawingSession(t){t?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),p(this,tn,t)}setMainHighlightColorPicker(t){p(this,Ko,t)}editAltText(t,e=!1){var s;(s=n(this,Br))==null||s.editAltText(this,t,e)}switchToMode(t,e){this._eventBus.on("annotationeditormodechanged",e,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:t})}setPreference(t,e){this._eventBus.dispatch("setpreference",{source:this,name:t,value:e})}onSetPreference({name:t,value:e}){switch(t){case"enableNewAltTextWhenAddingImage":p(this,Gr,e);break}}onPageChanging({pageNumber:t}){p(this,$r,t-1)}focusMainContainer(){n(this,Cs).focus()}findParent(t,e){for(const s of n(this,kt).values()){const{x:i,y:r,width:a,height:o}=s.div.getBoundingClientRect();if(t>=i&&t<=i+a&&e>=r&&e<=r+o)return s}return null}disableUserSelect(t=!1){n(this,tl).classList.toggle("noUserSelect",t)}addShouldRescale(t){n(this,sn).add(t)}removeShouldRescale(t){n(this,sn).delete(t)}onScaleChanging({scale:t}){var e;this.commitOrRemove(),this.viewParameters.realScale=t*Gi.PDF_TO_CSS_UNITS;for(const s of n(this,sn))s.onScaleChanging();(e=n(this,tn))==null||e.onScaleChanging()}onRotationChanging({pagesRotation:t}){this.commitOrRemove(),this.viewParameters.rotation=t}highlightSelection(t=""){const e=document.getSelection();if(!e||e.isCollapsed)return;const{anchorNode:s,anchorOffset:i,focusNode:r,focusOffset:a}=e,o=e.toString(),h=b(this,Vr,lc).call(this,e).closest(".textLayer"),c=this.getSelectionBoxes(h);if(!c)return;e.empty();const f=b(this,el,rf).call(this,h),g=n(this,St)===U.NONE,m=()=>{f==null||f.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:t,boxes:c,anchorNode:s,anchorOffset:i,focusNode:r,focusOffset:a,text:o}),g&&this.showAllEditors("highlight",!0,!0)};if(g){this.switchToMode(U.HIGHLIGHT,m);return}m()}addToAnnotationStorage(t){!t.isEmpty()&&n(this,Ss)&&!n(this,Ss).has(t.id)&&n(this,Ss).setValue(t.id,t)}blur(){if(this.isShiftKeyDown=!1,n(this,oi)&&(p(this,oi,!1),b(this,Ur,hc).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:t}=document;for(const e of n(this,J))if(e.div.contains(t)){p(this,nn,[e,t]),e._focusEventsAllowed=!1;break}}focus(){if(!n(this,nn))return;const[t,e]=n(this,nn);p(this,nn,null),e.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:this._signal}),e.focus()}addEditListeners(){b(this,sl,af).call(this),b(this,il,of).call(this)}removeEditListeners(){b(this,rd,mg).call(this),b(this,nl,lf).call(this)}dragOver(t){for(const{type:e}of t.dataTransfer.items)for(const s of n(this,De))if(s.isHandlingMimeForPasting(e)){t.dataTransfer.dropEffect="copy",t.preventDefault();return}}drop(t){for(const e of t.dataTransfer.items)for(const s of n(this,De))if(s.isHandlingMimeForPasting(e.type)){s.paste(e,this.currentLayer),t.preventDefault();return}}copy(t){var s;if(t.preventDefault(),(s=n(this,oe))==null||s.commitOrRemove(),!this.hasSelection)return;const e=[];for(const i of n(this,J)){const r=i.serialize(!0);r&&e.push(r)}e.length!==0&&t.clipboardData.setData("application/pdfjs",JSON.stringify(e))}cut(t){this.copy(t),this.delete()}paste(t){return L(this,null,function*(){t.preventDefault();const{clipboardData:e}=t;for(const r of e.items)for(const a of n(this,De))if(a.isHandlingMimeForPasting(r.type)){a.paste(r,this.currentLayer);return}let s=e.getData("application/pdfjs");if(!s)return;try{s=JSON.parse(s)}catch(r){j(`paste: "${r.message}".`);return}if(!Array.isArray(s))return;this.unselectAll();const i=this.currentLayer;try{const r=[];for(const l of s){const h=yield i.deserialize(l);if(!h)return;r.push(h)}const a=()=>{for(const l of r)b(this,rl,hf).call(this,l);b(this,al,cf).call(this,r)},o=()=>{for(const l of r)l.remove()};this.addCommands({cmd:a,undo:o,mustExec:!0})}catch(r){j(`paste: "${r.message}".`)}})}keydown(t){!this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!0),n(this,St)!==U.NONE&&!this.isEditorHandlingKeyboard&&Rr._keyboardManager.exec(this,t)}keyup(t){this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!1,n(this,oi)&&(p(this,oi,!1),b(this,Ur,hc).call(this,"main_toolbar")))}onEditingAction({name:t}){switch(t){case"undo":case"redo":case"delete":case"selectAll":this[t]();break;case"highlightSelection":this.highlightSelection("context_menu");break}}setEditingState(t){t?(b(this,id,pg).call(this),b(this,il,of).call(this),b(this,Mt,Wt).call(this,{isEditing:n(this,St)!==U.NONE,isEmpty:b(this,an,yo).call(this),hasSomethingToUndo:n(this,_e).hasSomethingToUndo(),hasSomethingToRedo:n(this,_e).hasSomethingToRedo(),hasSelectedEditor:!1})):(b(this,nd,gg).call(this),b(this,nl,lf).call(this),b(this,Mt,Wt).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(t){if(!n(this,De)){p(this,De,t);for(const e of n(this,De))b(this,Fe,ys).call(this,e.defaultPropertiesToUpdate)}}getId(){return n(this,Zc).id}get currentLayer(){return n(this,kt).get(n(this,$r))}getLayer(t){return n(this,kt).get(t)}get currentPageIndex(){return n(this,$r)}addLayer(t){n(this,kt).set(t.pageIndex,t),n(this,li)?t.enable():t.disable()}removeLayer(t){n(this,kt).delete(t.pageIndex)}updateMode(t,e=null,s=!1){return L(this,null,function*(){var i;if(n(this,St)!==t&&!(n(this,Se)&&(yield n(this,Se).promise,!n(this,Se)))){if(p(this,Se,Promise.withResolvers()),p(this,St,t),t===U.NONE){this.setEditingState(!1),b(this,ld,yg).call(this),(i=this._editorUndoBar)==null||i.hide(),n(this,Se).resolve();return}this.setEditingState(!0),yield b(this,od,Ag).call(this),this.unselectAll();for(const r of n(this,kt).values())r.updateMode(t);if(!e){s&&this.addNewEditorFromKeyboard(),n(this,Se).resolve();return}for(const r of n(this,vt).values())r.annotationElementId===e?(this.setSelected(r),r.enterInEditMode()):r.unselect();n(this,Se).resolve()}})}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(t){t!==n(this,St)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,mode:t})}updateParams(t,e){var s;if(n(this,De)){switch(t){case K.CREATE:this.currentLayer.addNewEditor();return;case K.HIGHLIGHT_DEFAULT_COLOR:(s=n(this,Ko))==null||s.updateColor(e);break;case K.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(n(this,Jo)||p(this,Jo,new Map)).set(t,e),this.showAllEditors("highlight",e);break}for(const i of n(this,J))i.updateParams(t,e);for(const i of n(this,De))i.updateDefaultParams(t,e)}}showAllEditors(t,e,s=!1){var r,a;for(const o of n(this,vt).values())o.editorType===t&&o.show(e);((a=(r=n(this,Jo))==null?void 0:r.get(K.HIGHLIGHT_SHOW_ALL))!=null?a:!0)!==e&&b(this,Fe,ys).call(this,[[K.HIGHLIGHT_SHOW_ALL,e]])}enableWaiting(t=!1){if(n(this,Yo)!==t){p(this,Yo,t);for(const e of n(this,kt).values())t?e.disableClick():e.enableClick(),e.div.classList.toggle("waiting",t)}}getEditors(t){const e=[];for(const s of n(this,vt).values())s.pageIndex===t&&e.push(s);return e}getEditor(t){return n(this,vt).get(t)}addEditor(t){n(this,vt).set(t.id,t)}removeEditor(t){var e;t.div.contains(document.activeElement)&&(n(this,ts)&&clearTimeout(n(this,ts)),p(this,ts,setTimeout(()=>{this.focusMainContainer(),p(this,ts,null)},0))),n(this,vt).delete(t.id),this.unselect(t),(!t.annotationElementId||!n(this,en).has(t.annotationElementId))&&((e=n(this,Ss))==null||e.remove(t.id))}addDeletedAnnotationElement(t){n(this,en).add(t.annotationElementId),this.addChangedExistingAnnotation(t),t.deleted=!0}isDeletedAnnotationElement(t){return n(this,en).has(t)}removeDeletedAnnotationElement(t){n(this,en).delete(t.annotationElementId),this.removeChangedExistingAnnotation(t),t.deleted=!1}setActiveEditor(t){n(this,oe)!==t&&(p(this,oe,t),t&&b(this,Fe,ys).call(this,t.propertiesToUpdate))}updateUI(t){n(this,hd,wg)===t&&b(this,Fe,ys).call(this,t.propertiesToUpdate)}updateUIForDefaultProperties(t){b(this,Fe,ys).call(this,t.defaultPropertiesToUpdate)}toggleSelected(t){if(n(this,J).has(t)){n(this,J).delete(t),t.unselect(),b(this,Mt,Wt).call(this,{hasSelectedEditor:this.hasSelection});return}n(this,J).add(t),t.select(),b(this,Fe,ys).call(this,t.propertiesToUpdate),b(this,Mt,Wt).call(this,{hasSelectedEditor:!0})}setSelected(t){var e;(e=n(this,tn))==null||e.commitOrRemove();for(const s of n(this,J))s!==t&&s.unselect();n(this,J).clear(),n(this,J).add(t),t.select(),b(this,Fe,ys).call(this,t.propertiesToUpdate),b(this,Mt,Wt).call(this,{hasSelectedEditor:!0})}isSelected(t){return n(this,J).has(t)}get firstSelectedEditor(){return n(this,J).values().next().value}unselect(t){t.unselect(),n(this,J).delete(t),b(this,Mt,Wt).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return n(this,J).size!==0}get isEnterHandled(){return n(this,J).size===1&&this.firstSelectedEditor.isEnterHandled}undo(){var t;n(this,_e).undo(),b(this,Mt,Wt).call(this,{hasSomethingToUndo:n(this,_e).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:b(this,an,yo).call(this)}),(t=this._editorUndoBar)==null||t.hide()}redo(){n(this,_e).redo(),b(this,Mt,Wt).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:n(this,_e).hasSomethingToRedo(),isEmpty:b(this,an,yo).call(this)})}addCommands(t){n(this,_e).add(t),b(this,Mt,Wt).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:b(this,an,yo).call(this)})}cleanUndoStack(t){n(this,_e).cleanType(t)}delete(){var r;this.commitOrRemove();const t=(r=this.currentLayer)==null?void 0:r.endDrawingSession(!0);if(!this.hasSelection&&!t)return;const e=t?[t]:[...n(this,J)],s=()=>{var a;(a=this._editorUndoBar)==null||a.show(i,e.length===1?e[0].editorType:e.length);for(const o of e)o.remove()},i=()=>{for(const a of e)b(this,rl,hf).call(this,a)};this.addCommands({cmd:s,undo:i,mustExec:!0})}commitOrRemove(){var t;(t=n(this,oe))==null||t.commitOrRemove()}hasSomethingToControl(){return n(this,oe)||this.hasSelection}selectAll(){for(const t of n(this,J))t.commit();b(this,al,cf).call(this,n(this,vt).values())}unselectAll(){var t;if(!(n(this,oe)&&(n(this,oe).commitOrRemove(),n(this,St)!==U.NONE))&&!((t=n(this,tn))!=null&&t.commitOrRemove())&&this.hasSelection){for(const e of n(this,J))e.unselect();n(this,J).clear(),b(this,Mt,Wt).call(this,{hasSelectedEditor:!1})}}translateSelectedEditors(t,e,s=!1){if(s||this.commitOrRemove(),!this.hasSelection)return;n(this,ci)[0]+=t,n(this,ci)[1]+=e;const[i,r]=n(this,ci),a=[...n(this,J)],o=1e3;n(this,ss)&&clearTimeout(n(this,ss)),p(this,ss,setTimeout(()=>{p(this,ss,null),n(this,ci)[0]=n(this,ci)[1]=0,this.addCommands({cmd:()=>{for(const l of a)n(this,vt).has(l.id)&&l.translateInPage(i,r)},undo:()=>{for(const l of a)n(this,vt).has(l.id)&&l.translateInPage(-i,-r)},mustExec:!1})},o));for(const l of a)l.translateInPage(t,e)}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),p(this,Ze,new Map);for(const t of n(this,J))n(this,Ze).set(t,{savedX:t.x,savedY:t.y,savedPageIndex:t.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!n(this,Ze))return!1;this.disableUserSelect(!1);const t=n(this,Ze);p(this,Ze,null);let e=!1;for(const[{x:i,y:r,pageIndex:a},o]of t)o.newX=i,o.newY=r,o.newPageIndex=a,e||(e=i!==o.savedX||r!==o.savedY||a!==o.savedPageIndex);if(!e)return!1;const s=(i,r,a,o)=>{if(n(this,vt).has(i.id)){const l=n(this,kt).get(o);l?i._setParentAndPosition(l,r,a):(i.pageIndex=o,i.x=r,i.y=a)}};return this.addCommands({cmd:()=>{for(const[i,{newX:r,newY:a,newPageIndex:o}]of t)s(i,r,a,o)},undo:()=>{for(const[i,{savedX:r,savedY:a,savedPageIndex:o}]of t)s(i,r,a,o)},mustExec:!0}),!0}dragSelectedEditors(t,e){if(n(this,Ze))for(const s of n(this,Ze).keys())s.drag(t,e)}rebuild(t){if(t.parent===null){const e=this.getLayer(t.pageIndex);e?(e.changeParent(t),e.addOrRebuild(t)):(this.addEditor(t),this.addToAnnotationStorage(t),t.rebuild())}else t.parent.addOrRebuild(t)}get isEditorHandlingKeyboard(){var t;return((t=this.getActive())==null?void 0:t.shouldGetKeyboardEvents())||n(this,J).size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(t){return n(this,oe)===t}getActive(){return n(this,oe)}getMode(){return n(this,St)}get imageManager(){return q(this,"imageManager",new sf)}getSelectionBoxes(t){if(!t)return null;const e=document.getSelection();for(let h=0,c=e.rangeCount;h({x:(c-i)/a,y:1-(h+f-s)/r,width:g/a,height:f/r});break;case"180":o=(h,c,f,g)=>({x:1-(h+f-s)/r,y:1-(c+g-i)/a,width:f/r,height:g/a});break;case"270":o=(h,c,f,g)=>({x:1-(c+g-i)/a,y:(h-s)/r,width:g/a,height:f/r});break;default:o=(h,c,f,g)=>({x:(h-s)/r,y:(c-i)/a,width:f/r,height:g/a});break}const l=[];for(let h=0,c=e.rangeCount;h{g.type==="pointerup"&&g.button!==0||(h.abort(),l==null||l.toggleDrawing(!0),g.type==="pointerup"&&b(this,Ur,hc).call(this,"main_toolbar"))};window.addEventListener("pointerup",f,{signal:c}),window.addEventListener("blur",f,{signal:c})}},Ur=new WeakSet,hc=function(t=""){n(this,St)===U.HIGHLIGHT?this.highlightSelection(t):n(this,Wo)&&b(this,td,dg).call(this)},sd=new WeakSet,fg=function(){document.addEventListener("selectionchange",b(this,ed,ug).bind(this),{signal:this._signal})},id=new WeakSet,pg=function(){if(n(this,ai))return;p(this,ai,new AbortController);const t=this.combinedSignal(n(this,ai));window.addEventListener("focus",this.focus.bind(this),{signal:t}),window.addEventListener("blur",this.blur.bind(this),{signal:t})},nd=new WeakSet,gg=function(){var t;(t=n(this,ai))==null||t.abort(),p(this,ai,null)},sl=new WeakSet,af=function(){if(n(this,hi))return;p(this,hi,new AbortController);const t=this.combinedSignal(n(this,hi));window.addEventListener("keydown",this.keydown.bind(this),{signal:t}),window.addEventListener("keyup",this.keyup.bind(this),{signal:t})},rd=new WeakSet,mg=function(){var t;(t=n(this,hi))==null||t.abort(),p(this,hi,null)},il=new WeakSet,of=function(){if(n(this,ri))return;p(this,ri,new AbortController);const t=this.combinedSignal(n(this,ri));document.addEventListener("copy",this.copy.bind(this),{signal:t}),document.addEventListener("cut",this.cut.bind(this),{signal:t}),document.addEventListener("paste",this.paste.bind(this),{signal:t})},nl=new WeakSet,lf=function(){var t;(t=n(this,ri))==null||t.abort(),p(this,ri,null)},ad=new WeakSet,bg=function(){const t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t}),document.addEventListener("drop",this.drop.bind(this),{signal:t})},Mt=new WeakSet,Wt=function(t){Object.entries(t).some(([s,i])=>n(this,Zo)[s]!==i)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(n(this,Zo),t)}),n(this,St)===U.HIGHLIGHT&&t.hasSelectedEditor===!1&&b(this,Fe,ys).call(this,[[K.HIGHLIGHT_FREE,!0]]))},Fe=new WeakSet,ys=function(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})},od=new WeakSet,Ag=function(){return L(this,null,function*(){if(!n(this,li)){p(this,li,!0);const t=[];for(const e of n(this,kt).values())t.push(e.enable());yield Promise.all(t);for(const e of n(this,vt).values())e.enable()}})},ld=new WeakSet,yg=function(){if(this.unselectAll(),n(this,li)){p(this,li,!1);for(const t of n(this,kt).values())t.disable();for(const t of n(this,vt).values())t.disable()}},rl=new WeakSet,hf=function(t){const e=n(this,kt).get(t.pageIndex);e?e.addOrRebuild(t):(this.addEditor(t),this.addToAnnotationStorage(t))},hd=new WeakSet,wg=function(){let t=null;for(t of n(this,J));return t},an=new WeakSet,yo=function(){if(n(this,vt).size===0)return!0;if(n(this,vt).size===1)for(const t of n(this,vt).values())return t.isEmpty();return!1},al=new WeakSet,cf=function(t){for(const e of n(this,J))e.unselect();n(this,J).clear();for(const e of t)e.isEmpty()||(n(this,J).add(e),e.select());b(this,Mt,Wt).call(this,{hasSelectedEditor:this.hasSelection})},H(Rr,"TRANSLATE_SMALL",1),H(Rr,"TRANSLATE_BIG",10);let gr=Rr;var Et,is,Ne,jr,ns,le,Wr,rs,ee,xs,on,as,di,ln,wo,Xr,cc;const Xt=class Xt{constructor(t){u(this,ln);u(this,Xr);u(this,Et,null);u(this,is,!1);u(this,Ne,null);u(this,jr,null);u(this,ns,null);u(this,le,null);u(this,Wr,!1);u(this,rs,null);u(this,ee,null);u(this,xs,null);u(this,on,null);u(this,as,!1);p(this,ee,t),p(this,as,t._uiManager.useNewAltTextFlow),n(Xt,di)||p(Xt,di,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(t){var e;(e=Xt._l10n)!=null||(Xt._l10n=t)}render(){return L(this,null,function*(){const t=p(this,Ne,document.createElement("button"));t.className="altText",t.tabIndex="0";const e=p(this,jr,document.createElement("span"));t.append(e),n(this,as)?(t.classList.add("new"),t.setAttribute("data-l10n-id",n(Xt,di).missing),e.setAttribute("data-l10n-id",n(Xt,di)["missing-label"])):(t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const s=n(this,ee)._uiManager._signal;t.addEventListener("contextmenu",Xe,{signal:s}),t.addEventListener("pointerdown",r=>r.stopPropagation(),{signal:s});const i=r=>{r.preventDefault(),n(this,ee)._uiManager.editAltText(n(this,ee)),n(this,as)&&n(this,ee)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:n(this,ln,wo)}})};return t.addEventListener("click",i,{capture:!0,signal:s}),t.addEventListener("keydown",r=>{r.target===t&&r.key==="Enter"&&(p(this,Wr,!0),i(r))},{signal:s}),yield b(this,Xr,cc).call(this),t})}finish(){n(this,Ne)&&(n(this,Ne).focus({focusVisible:n(this,Wr)}),p(this,Wr,!1))}isEmpty(){return n(this,as)?n(this,Et)===null:!n(this,Et)&&!n(this,is)}hasData(){return n(this,as)?n(this,Et)!==null||!!n(this,xs):this.isEmpty()}get guessedText(){return n(this,xs)}setGuessedText(t){return L(this,null,function*(){n(this,Et)===null&&(p(this,xs,t),p(this,on,yield Xt._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:t})),b(this,Xr,cc).call(this))})}toggleAltTextBadge(t=!1){var e;if(!n(this,as)||n(this,Et)){(e=n(this,rs))==null||e.remove(),p(this,rs,null);return}if(!n(this,rs)){const s=p(this,rs,document.createElement("div"));s.className="noAltTextBadge",n(this,ee).div.append(s)}n(this,rs).classList.toggle("hidden",!t)}serialize(t){let e=n(this,Et);return!t&&n(this,xs)===e&&(e=n(this,on)),{altText:e,decorative:n(this,is),guessedText:n(this,xs),textWithDisclaimer:n(this,on)}}get data(){return{altText:n(this,Et),decorative:n(this,is)}}set data({altText:t,decorative:e,guessedText:s,textWithDisclaimer:i,cancel:r=!1}){s&&(p(this,xs,s),p(this,on,i)),!(n(this,Et)===t&&n(this,is)===e)&&(r||(p(this,Et,t),p(this,is,e)),b(this,Xr,cc).call(this))}toggle(t=!1){n(this,Ne)&&(!t&&n(this,le)&&(clearTimeout(n(this,le)),p(this,le,null)),n(this,Ne).disabled=!t)}shown(){n(this,ee)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:n(this,ln,wo)}})}destroy(){var t,e;(t=n(this,Ne))==null||t.remove(),p(this,Ne,null),p(this,jr,null),p(this,ns,null),(e=n(this,rs))==null||e.remove(),p(this,rs,null)}};Et=new WeakMap,is=new WeakMap,Ne=new WeakMap,jr=new WeakMap,ns=new WeakMap,le=new WeakMap,Wr=new WeakMap,rs=new WeakMap,ee=new WeakMap,xs=new WeakMap,on=new WeakMap,as=new WeakMap,di=new WeakMap,ln=new WeakSet,wo=function(){return n(this,Et)&&"added"||n(this,Et)===null&&this.guessedText&&"review"||"missing"},Xr=new WeakSet,cc=function(){return L(this,null,function*(){var i,r,a;const t=n(this,Ne);if(!t)return;if(n(this,as)){if(t.classList.toggle("done",!!n(this,Et)),t.setAttribute("data-l10n-id",n(Xt,di)[n(this,ln,wo)]),(i=n(this,jr))==null||i.setAttribute("data-l10n-id",n(Xt,di)[`${n(this,ln,wo)}-label`]),!n(this,Et)){(r=n(this,ns))==null||r.remove();return}}else{if(!n(this,Et)&&!n(this,is)){t.classList.remove("done"),(a=n(this,ns))==null||a.remove();return}t.classList.add("done"),t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let e=n(this,ns);if(!e){p(this,ns,e=document.createElement("span")),e.className="tooltip",e.setAttribute("role","tooltip"),e.id=`alt-text-tooltip-${n(this,ee).id}`;const o=100,l=n(this,ee)._uiManager._signal;l.addEventListener("abort",()=>{clearTimeout(n(this,le)),p(this,le,null)},{once:!0}),t.addEventListener("mouseenter",()=>{p(this,le,setTimeout(()=>{p(this,le,null),n(this,ns).classList.add("show"),n(this,ee)._reportTelemetry({action:"alt_text_tooltip"})},o))},{signal:l}),t.addEventListener("mouseleave",()=>{var h;n(this,le)&&(clearTimeout(n(this,le)),p(this,le,null)),(h=n(this,ns))==null||h.classList.remove("show")},{signal:l})}n(this,is)?e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(e.removeAttribute("data-l10n-id"),e.textContent=n(this,Et)),e.parentNode||t.append(e);const s=n(this,ee).getImageForAltText();s==null||s.setAttribute("aria-describedby",e.id)})},u(Xt,di,null),H(Xt,"_l10n",null);let Oc=Xt;var ol,hn,ll,hl,cl,dl,ul,qr,Ts,cn,ui,cd,vg,dd,_g,fl,df;const _p=class _p{constructor({container:t,isPinchingDisabled:e=null,isPinchingStopped:s=null,onPinchStart:i=null,onPinching:r=null,onPinchEnd:a=null,signal:o}){u(this,cd);u(this,dd);u(this,fl);u(this,ol,void 0);u(this,hn,!1);u(this,ll,null);u(this,hl,void 0);u(this,cl,void 0);u(this,dl,void 0);u(this,ul,void 0);u(this,qr,void 0);u(this,Ts,null);u(this,cn,void 0);u(this,ui,null);p(this,ol,t),p(this,ll,s),p(this,hl,e),p(this,cl,i),p(this,dl,r),p(this,ul,a),p(this,cn,new AbortController),p(this,qr,AbortSignal.any([o,n(this,cn).signal])),t.addEventListener("touchstart",b(this,cd,vg).bind(this),{passive:!1,signal:n(this,qr)})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return q(this,"MIN_TOUCH_DISTANCE_TO_PINCH",35/(window.devicePixelRatio||1))}destroy(){var t;(t=n(this,cn))==null||t.abort(),p(this,cn,null)}};ol=new WeakMap,hn=new WeakMap,ll=new WeakMap,hl=new WeakMap,cl=new WeakMap,dl=new WeakMap,ul=new WeakMap,qr=new WeakMap,Ts=new WeakMap,cn=new WeakMap,ui=new WeakMap,cd=new WeakSet,vg=function(t){var i,r,a;if((i=n(this,hl))!=null&&i.call(this)||t.touches.length<2)return;if(!n(this,ui)){p(this,ui,new AbortController);const o=AbortSignal.any([n(this,qr),n(this,ui).signal]),l=n(this,ol),h={signal:o,passive:!1};l.addEventListener("touchmove",b(this,dd,_g).bind(this),h),l.addEventListener("touchend",b(this,fl,df).bind(this),h),l.addEventListener("touchcancel",b(this,fl,df).bind(this),h),(r=n(this,cl))==null||r.call(this)}if(we(t),t.touches.length!==2||(a=n(this,ll))!=null&&a.call(this)){p(this,Ts,null);return}let[e,s]=t.touches;e.identifier>s.identifier&&([e,s]=[s,e]),p(this,Ts,{touch0X:e.screenX,touch0Y:e.screenY,touch1X:s.screenX,touch1Y:s.screenY})},dd=new WeakSet,_g=function(t){var S;if(!n(this,Ts)||t.touches.length!==2)return;let[e,s]=t.touches;e.identifier>s.identifier&&([e,s]=[s,e]);const{screenX:i,screenY:r}=e,{screenX:a,screenY:o}=s,l=n(this,Ts),{touch0X:h,touch0Y:c,touch1X:f,touch1Y:g}=l,m=f-h,A=g-c,y=a-i,v=o-r,w=Math.hypot(y,v)||1,_=Math.hypot(m,A)||1;if(!n(this,hn)&&Math.abs(_-w)<=_p.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(l.touch0X=i,l.touch0Y=r,l.touch1X=a,l.touch1Y=o,t.preventDefault(),!n(this,hn)){p(this,hn,!0);return}const E=[(i+a)/2,(r+o)/2];(S=n(this,dl))==null||S.call(this,E,_,w)},fl=new WeakSet,df=function(t){var e;n(this,ui).abort(),p(this,ui,null),(e=n(this,ul))==null||e.call(this),n(this,Ts)&&(t.preventDefault(),p(this,Ts,null),p(this,hn,!1))};let Bc=_p;var dn,Oe,nt,Yr,fi,pl,un,It,fn,Ps,pi,gl,pn,he,ml,gn,Rs,os,Kr,Qr,Ee,mn,bl,ud,Al,uf,yl,ff,Jr,dc,fd,Sg,pd,Eg,wl,pf,Zr,uc,vl,gf,gd,Cg,md,xg,bd,Tg,_l,mf,Ad,Pg,Sl,bf,yd,Rg,wd,kg,vd,Mg,El,Af,bn,vo;const W=class W{constructor(t){u(this,Al);u(this,Jr);u(this,fd);u(this,pd);u(this,wl);u(this,Zr);u(this,vl);u(this,gd);u(this,md);u(this,bd);u(this,_l);u(this,Ad);u(this,Sl);u(this,yd);u(this,wd);u(this,vd);u(this,El);u(this,bn);u(this,dn,null);u(this,Oe,null);u(this,nt,null);u(this,Yr,!1);u(this,fi,null);u(this,pl,"");u(this,un,!1);u(this,It,null);u(this,fn,null);u(this,Ps,null);u(this,pi,null);u(this,gl,"");u(this,pn,!1);u(this,he,null);u(this,ml,!1);u(this,gn,!1);u(this,Rs,!1);u(this,os,null);u(this,Kr,0);u(this,Qr,0);u(this,Ee,null);u(this,mn,null);H(this,"_editToolbar",null);H(this,"_initialOptions",Object.create(null));H(this,"_initialData",null);H(this,"_isVisible",!0);H(this,"_uiManager",null);H(this,"_focusEventsAllowed",!0);u(this,bl,!1);u(this,ud,W._zIndex++);this.parent=t.parent,this.id=t.id,this.width=this.height=null,this.pageIndex=t.parent.pageIndex,this.name=t.name,this.div=null,this._uiManager=t.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=t.isCentered,this._structTreeParentId=null;const{rotation:e,rawDims:{pageWidth:s,pageHeight:i,pageX:r,pageY:a}}=this.parent.viewport;this.rotation=e,this.pageRotation=(360+e-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[s,i],this.pageTranslation=[r,a];const[o,l]=this.parentDimensions;this.x=t.x/o,this.y=t.y/l,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const t=W.prototype._resizeWithKeyboard,e=gr.TRANSLATE_SMALL,s=gr.TRANSLATE_BIG;return q(this,"_resizerKeyboardManager",new Qh([[["ArrowLeft","mac+ArrowLeft"],t,{args:[-e,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t,{args:[-s,0]}],[["ArrowRight","mac+ArrowRight"],t,{args:[e,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t,{args:[s,0]}],[["ArrowUp","mac+ArrowUp"],t,{args:[0,-e]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t,{args:[0,-s]}],[["ArrowDown","mac+ArrowDown"],t,{args:[0,e]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t,{args:[0,s]}],[["Escape","mac+Escape"],W.prototype._stopResizingWithKeyboard]]))}get editorType(){return Object.getPrototypeOf(this).constructor._type}static get isDrawer(){return!1}static get _defaultLineColor(){return q(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(t){const e=new Zb({id:t.parent.getNextId(),parent:t.parent,uiManager:t._uiManager});e.annotationElementId=t.annotationElementId,e.deleted=!0,e._uiManager.addToAnnotationStorage(e)}static initialize(t,e){var i;if((i=W._l10n)!=null||(W._l10n=t),W._l10nResizer||(W._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),W._borderLineWidth!==-1)return;const s=getComputedStyle(document.documentElement);W._borderLineWidth=parseFloat(s.getPropertyValue("--outline-width"))||0}static updateDefaultParams(t,e){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(t){return!1}static paste(t,e){st("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return n(this,bl)}set _isDraggable(t){var e;p(this,bl,t),(e=this.div)==null||e.classList.toggle("draggable",t)}get isEnterHandled(){return!0}center(){const[t,e]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*e/(t*2),this.y+=this.width*t/(e*2);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*e/(t*2),this.y-=this.width*t/(e*2);break;default:this.x-=this.width/2,this.y-=this.height/2;break}this.fixAndSetPosition()}addCommands(t){this._uiManager.addCommands(t)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=n(this,ud)}setParent(t){t!==null?(this.pageIndex=t.pageIndex,this.pageDimensions=t.pageDimensions):b(this,bn,vo).call(this),this.parent=t}focusin(t){this._focusEventsAllowed&&(n(this,pn)?p(this,pn,!1):this.parent.setSelected(this))}focusout(t){var s;if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const e=t.relatedTarget;e!=null&&e.closest(`#${this.id}`)||(t.preventDefault(),(s=this.parent)!=null&&s.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(t,e,s,i){const[r,a]=this.parentDimensions;[s,i]=this.screenToPageTranslation(s,i),this.x=(t+s)/r,this.y=(e+i)/a,this.fixAndSetPosition()}translate(t,e){b(this,Al,uf).call(this,this.parentDimensions,t,e)}translateInPage(t,e){n(this,he)||p(this,he,[this.x,this.y,this.width,this.height]),b(this,Al,uf).call(this,this.pageDimensions,t,e),this.div.scrollIntoView({block:"nearest"})}drag(t,e){n(this,he)||p(this,he,[this.x,this.y,this.width,this.height]);const{div:s,parentDimensions:[i,r]}=this;if(this.x+=t/i,this.y+=e/r,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:f,y:g}=this.div.getBoundingClientRect();this.parent.findNewParent(this,f,g)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:a,y:o}=this;const[l,h]=this.getBaseTranslation();a+=l,o+=h;const{style:c}=s;c.left=`${(100*a).toFixed(2)}%`,c.top=`${(100*o).toFixed(2)}%`,this._onTranslating(a,o),s.scrollIntoView({block:"nearest"})}_onTranslating(t,e){}_onTranslated(t,e){}get _hasBeenMoved(){return!!n(this,he)&&(n(this,he)[0]!==this.x||n(this,he)[1]!==this.y)}get _hasBeenResized(){return!!n(this,he)&&(n(this,he)[2]!==this.width||n(this,he)[3]!==this.height)}getBaseTranslation(){const[t,e]=this.parentDimensions,{_borderLineWidth:s}=W,i=s/t,r=s/e;switch(this.rotation){case 90:return[-i,r];case 180:return[i,r];case 270:return[i,-r];default:return[-i,-r]}}get _mustFixPosition(){return!0}fixAndSetPosition(t=this.rotation){const{div:{style:e},pageDimensions:[s,i]}=this;let{x:r,y:a,width:o,height:l}=this;if(o*=s,l*=i,r*=s,a*=i,this._mustFixPosition)switch(t){case 0:r=Math.max(0,Math.min(s-o,r)),a=Math.max(0,Math.min(i-l,a));break;case 90:r=Math.max(0,Math.min(s-l,r)),a=Math.min(i,Math.max(o,a));break;case 180:r=Math.min(s,Math.max(o,r)),a=Math.min(i,Math.max(l,a));break;case 270:r=Math.min(s,Math.max(l,r)),a=Math.max(0,Math.min(i-o,a));break}this.x=r/=s,this.y=a/=i;const[h,c]=this.getBaseTranslation();r+=h,a+=c,e.left=`${(100*r).toFixed(2)}%`,e.top=`${(100*a).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(t,e){var s;return b(s=W,yl,ff).call(s,t,e,this.parentRotation)}pageTranslationToScreen(t,e){var s;return b(s=W,yl,ff).call(s,t,e,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:t,pageDimensions:[e,s]}=this;return[e*t,s*t]}setDims(t,e){const[s,i]=this.parentDimensions,{style:r}=this.div;r.width=`${(100*t/s).toFixed(2)}%`,n(this,un)||(r.height=`${(100*e/i).toFixed(2)}%`)}fixDims(){const{style:t}=this.div,{height:e,width:s}=t,i=s.endsWith("%"),r=!n(this,un)&&e.endsWith("%");if(i&&r)return;const[a,o]=this.parentDimensions;i||(t.width=`${(100*parseFloat(s)/a).toFixed(2)}%`),!n(this,un)&&!r&&(t.height=`${(100*parseFloat(e)/o).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}_onResized(){}static _round(t){return Math.round(t*1e4)/1e4}_onResizing(){}altTextFinish(){var t;(t=n(this,nt))==null||t.finish()}addEditToolbar(){return L(this,null,function*(){return this._editToolbar||n(this,gn)?this._editToolbar:(this._editToolbar=new tf(this),this.div.append(this._editToolbar.render()),n(this,nt)&&(yield this._editToolbar.addAltText(n(this,nt))),this._editToolbar)})}removeEditToolbar(){var t;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,(t=n(this,nt))==null||t.destroy())}addContainer(t){var s;const e=(s=this._editToolbar)==null?void 0:s.div;e?e.before(t):this.div.append(t)}getClientDimensions(){return this.div.getBoundingClientRect()}addAltTextButton(){return L(this,null,function*(){n(this,nt)||(Oc.initialize(W._l10n),p(this,nt,new Oc(this)),n(this,dn)&&(n(this,nt).data=n(this,dn),p(this,dn,null)),yield this.addEditToolbar())})}get altTextData(){var t;return(t=n(this,nt))==null?void 0:t.data}set altTextData(t){n(this,nt)&&(n(this,nt).data=t)}get guessedAltText(){var t;return(t=n(this,nt))==null?void 0:t.guessedText}setGuessedAltText(t){return L(this,null,function*(){var e;yield(e=n(this,nt))==null?void 0:e.setGuessedText(t)})}serializeAltText(t){var e;return(e=n(this,nt))==null?void 0:e.serialize(t)}hasAltText(){return!!n(this,nt)&&!n(this,nt).isEmpty()}hasAltTextData(){var t,e;return(e=(t=n(this,nt))==null?void 0:t.hasData())!=null?e:!1}render(){var r;this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.tabIndex=n(this,Yr)?-1:0,this._isVisible||this.div.classList.add("hidden"),this.setInForeground(),b(this,Sl,bf).call(this);const[t,e]=this.parentDimensions;this.parentRotation%180!==0&&(this.div.style.maxWidth=`${(100*e/t).toFixed(2)}%`,this.div.style.maxHeight=`${(100*t/e).toFixed(2)}%`);const[s,i]=this.getInitialTranslation();return this.translate(s,i),Nc(this,this.div,["pointerdown"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(n(this,mn)||p(this,mn,new Bc({container:this.div,isPinchingDisabled:()=>!this.isSelected,onPinchStart:b(this,gd,Cg).bind(this),onPinching:b(this,md,xg).bind(this),onPinchEnd:b(this,bd,Tg).bind(this),signal:this._uiManager._signal}))),(r=this._uiManager._editorUndoBar)==null||r.hide(),this.div}pointerdown(t){const{isMac:e}=Qt.platform;if(t.button!==0||t.ctrlKey&&e){t.preventDefault();return}if(p(this,pn,!0),this._isDraggable){b(this,Ad,Pg).call(this,t);return}b(this,_l,mf).call(this,t)}get isSelected(){return this._uiManager.isSelected(this)}_onStartDragging(){}_onStopDragging(){}moveInDOM(){n(this,os)&&clearTimeout(n(this,os)),p(this,os,setTimeout(()=>{var t;p(this,os,null),(t=this.parent)==null||t.moveEditorInDOM(this)},0))}_setParentAndPosition(t,e,s){t.changeParent(this),this.x=e,this.y=s,this.fixAndSetPosition(),this._onTranslated()}getRect(t,e,s=this.rotation){const i=this.parentScale,[r,a]=this.pageDimensions,[o,l]=this.pageTranslation,h=t/i,c=e/i,f=this.x*r,g=this.y*a,m=this.width*r,A=this.height*a;switch(s){case 0:return[f+h+o,a-g-c-A+l,f+h+m+o,a-g-c+l];case 90:return[f+c+o,a-g+h+l,f+c+A+o,a-g+h+m+l];case 180:return[f-h-m+o,a-g+c+l,f-h+o,a-g+c+A+l];case 270:return[f-c-A+o,a-g-h-m+l,f-c+o,a-g-h+l];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(t,e){const[s,i,r,a]=t,o=r-s,l=a-i;switch(this.rotation){case 0:return[s,e-a,o,l];case 90:return[s,e-i,l,o];case 180:return[r,e-i,o,l];case 270:return[r,e-a,l,o];default:throw new Error("Invalid rotation")}}onceAdded(t){}isEmpty(){return!1}enableEditMode(){p(this,gn,!0)}disableEditMode(){p(this,gn,!1)}isInEditMode(){return n(this,gn)}shouldGetKeyboardEvents(){return n(this,Rs)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:t,left:e,bottom:s,right:i}=this.getClientDimensions(),{innerHeight:r,innerWidth:a}=window;return e0&&t0}rebuild(){b(this,Sl,bf).call(this)}rotate(t){}resize(){}serializeDeleted(){var t;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:((t=this._initialData)==null?void 0:t.popupRef)||""}}serialize(t=!1,e=null){st("An editor must be serializable")}static deserialize(t,e,s){return L(this,null,function*(){const i=new this.prototype.constructor({parent:e,id:e.getNextId(),uiManager:s});i.rotation=t.rotation,p(i,dn,t.accessibilityData);const[r,a]=i.pageDimensions,[o,l,h,c]=i.getRectInCurrentCoords(t.rect,a);return i.x=o/r,i.y=l/a,i.width=h/r,i.height=c/a,i})}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){var t,e;if((t=n(this,pi))==null||t.abort(),p(this,pi,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),n(this,os)&&(clearTimeout(n(this,os)),p(this,os,null)),b(this,bn,vo).call(this),this.removeEditToolbar(),n(this,Ee)){for(const s of n(this,Ee).values())clearTimeout(s);p(this,Ee,null)}this.parent=null,(e=n(this,mn))==null||e.destroy(),p(this,mn,null)}get isResizable(){return!1}makeResizable(){this.isResizable&&(b(this,fd,Sg).call(this),n(this,It).classList.remove("hidden"),Nc(this,this.div,["keydown"]))}get toolbarPosition(){return null}keydown(t){if(!this.isResizable||t.target!==this.div||t.key!=="Enter")return;this._uiManager.setSelected(this),p(this,Ps,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const e=n(this,It).children;if(!n(this,Oe)){p(this,Oe,Array.from(e));const a=b(this,yd,Rg).bind(this),o=b(this,wd,kg).bind(this),l=this._uiManager._signal;for(const h of n(this,Oe)){const c=h.getAttribute("data-resizer-name");h.setAttribute("role","spinbutton"),h.addEventListener("keydown",a,{signal:l}),h.addEventListener("blur",o,{signal:l}),h.addEventListener("focus",b(this,vd,Mg).bind(this,c),{signal:l}),h.setAttribute("data-l10n-id",W._l10nResizer[c])}}const s=n(this,Oe)[0];let i=0;for(const a of e){if(a===s)break;i++}const r=(360-this.rotation+this.parentRotation)%360/90*(n(this,Oe).length/4);if(r!==i){if(ri)for(let o=0;o{var i,r;(i=this.div)!=null&&i.classList.contains("selectedEditor")&&((r=this._editToolbar)==null||r.show())});return}(e=this._editToolbar)==null||e.show(),(s=n(this,nt))==null||s.toggleAltTextBadge(!1)}unselect(){var t,e,s,i,r;(t=n(this,It))==null||t.classList.add("hidden"),(e=this.div)==null||e.classList.remove("selectedEditor"),(s=this.div)!=null&&s.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),(i=this._editToolbar)==null||i.hide(),(r=n(this,nt))==null||r.toggleAltTextBadge(!0)}updateParams(t,e){}disableEditing(){}enableEditing(){}enterInEditMode(){}getImageForAltText(){return null}get contentDiv(){return this.div}get isEditing(){return n(this,ml)}set isEditing(t){p(this,ml,t),this.parent&&(t?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(t,e){p(this,un,!0);const s=t/e,{style:i}=this.div;i.aspectRatio=s,i.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(t,e=!1){if(e){n(this,Ee)||p(this,Ee,new Map);const{action:s}=t;let i=n(this,Ee).get(s);i&&clearTimeout(i),i=setTimeout(()=>{this._reportTelemetry(t),n(this,Ee).delete(s),n(this,Ee).size===0&&p(this,Ee,null)},W._telemetryTimeout),n(this,Ee).set(s,i);return}t.type||(t.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:t}})}show(t=this._isVisible){this.div.classList.toggle("hidden",!t),this._isVisible=t}enable(){this.div&&(this.div.tabIndex=0),p(this,Yr,!1)}disable(){this.div&&(this.div.tabIndex=-1),p(this,Yr,!0)}renderAnnotationElement(t){let e=t.container.querySelector(".annotationContent");if(!e)e=document.createElement("div"),e.classList.add("annotationContent",this.editorType),t.container.prepend(e);else if(e.nodeName==="CANVAS"){const s=e;e=document.createElement("div"),e.classList.add("annotationContent",this.editorType),s.before(e)}return e}resetAnnotationElement(t){const{firstChild:e}=t.container;(e==null?void 0:e.nodeName)==="DIV"&&e.classList.contains("annotationContent")&&e.remove()}};dn=new WeakMap,Oe=new WeakMap,nt=new WeakMap,Yr=new WeakMap,fi=new WeakMap,pl=new WeakMap,un=new WeakMap,It=new WeakMap,fn=new WeakMap,Ps=new WeakMap,pi=new WeakMap,gl=new WeakMap,pn=new WeakMap,he=new WeakMap,ml=new WeakMap,gn=new WeakMap,Rs=new WeakMap,os=new WeakMap,Kr=new WeakMap,Qr=new WeakMap,Ee=new WeakMap,mn=new WeakMap,bl=new WeakMap,ud=new WeakMap,Al=new WeakSet,uf=function([t,e],s,i){[s,i]=this.screenToPageTranslation(s,i),this.x+=s/t,this.y+=i/e,this._onTranslating(this.x,this.y),this.fixAndSetPosition()},yl=new WeakSet,ff=function(t,e,s){switch(s){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}},Jr=new WeakSet,dc=function(t){switch(t){case 90:{const[e,s]=this.pageDimensions;return[0,-e/s,s/e,0]}case 180:return[-1,0,0,-1];case 270:{const[e,s]=this.pageDimensions;return[0,e/s,-s/e,0]}default:return[1,0,0,1]}},fd=new WeakSet,Sg=function(){if(n(this,It))return;p(this,It,document.createElement("div")),n(this,It).classList.add("resizers");const t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],e=this._uiManager._signal;for(const s of t){const i=document.createElement("div");n(this,It).append(i),i.classList.add("resizer",s),i.setAttribute("data-resizer-name",s),i.addEventListener("pointerdown",b(this,pd,Eg).bind(this,s),{signal:e}),i.addEventListener("contextmenu",Xe,{signal:e}),i.tabIndex=-1}this.div.prepend(n(this,It))},pd=new WeakSet,Eg=function(t,e){var c;e.preventDefault();const{isMac:s}=Qt.platform;if(e.button!==0||e.ctrlKey&&s)return;(c=n(this,nt))==null||c.toggle(!1);const i=this._isDraggable;this._isDraggable=!1,p(this,fn,[e.screenX,e.screenY]);const r=new AbortController,a=this._uiManager.combinedSignal(r);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",b(this,vl,gf).bind(this,t),{passive:!0,capture:!0,signal:a}),window.addEventListener("touchmove",we,{passive:!1,signal:a}),window.addEventListener("contextmenu",Xe,{signal:a}),p(this,Ps,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const o=this.parent.div.style.cursor,l=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(e.target).cursor;const h=()=>{var f;r.abort(),this.parent.togglePointerEvents(!0),(f=n(this,nt))==null||f.toggle(!0),this._isDraggable=i,this.parent.div.style.cursor=o,this.div.style.cursor=l,b(this,Zr,uc).call(this)};window.addEventListener("pointerup",h,{signal:a}),window.addEventListener("blur",h,{signal:a})},wl=new WeakSet,pf=function(t,e,s,i){this.width=s,this.height=i,this.x=t,this.y=e;const[r,a]=this.parentDimensions;this.setDims(r*s,a*i),this.fixAndSetPosition(),this._onResized()},Zr=new WeakSet,uc=function(){if(!n(this,Ps))return;const{savedX:t,savedY:e,savedWidth:s,savedHeight:i}=n(this,Ps);p(this,Ps,null);const r=this.x,a=this.y,o=this.width,l=this.height;r===t&&a===e&&o===s&&l===i||this.addCommands({cmd:b(this,wl,pf).bind(this,r,a,o,l),undo:b(this,wl,pf).bind(this,t,e,s,i),mustExec:!0})},vl=new WeakSet,gf=function(t,e){const[s,i]=this.parentDimensions,r=this.x,a=this.y,o=this.width,l=this.height,h=W.MIN_SIZE/s,c=W.MIN_SIZE/i,f=b(this,Jr,dc).call(this,this.rotation),g=(P,B)=>[f[0]*P+f[2]*B,f[1]*P+f[3]*B],m=b(this,Jr,dc).call(this,360-this.rotation),A=(P,B)=>[m[0]*P+m[2]*B,m[1]*P+m[3]*B];let y,v,w=!1,_=!1;switch(t){case"topLeft":w=!0,y=(P,B)=>[0,0],v=(P,B)=>[P,B];break;case"topMiddle":y=(P,B)=>[P/2,0],v=(P,B)=>[P/2,B];break;case"topRight":w=!0,y=(P,B)=>[P,0],v=(P,B)=>[0,B];break;case"middleRight":_=!0,y=(P,B)=>[P,B/2],v=(P,B)=>[0,B/2];break;case"bottomRight":w=!0,y=(P,B)=>[P,B],v=(P,B)=>[0,0];break;case"bottomMiddle":y=(P,B)=>[P/2,B],v=(P,B)=>[P/2,0];break;case"bottomLeft":w=!0,y=(P,B)=>[0,B],v=(P,B)=>[P,0];break;case"middleLeft":_=!0,y=(P,B)=>[0,B/2],v=(P,B)=>[P,B/2];break}const E=y(o,l),S=v(o,l);let C=g(...S);const T=W._round(r+C[0]),x=W._round(a+C[1]);let R=1,D=1,V,$;if(e.fromKeyboard)({deltaX:V,deltaY:$}=e);else{const{screenX:P,screenY:B}=e,[dt,re]=n(this,fn);[V,$]=this.screenToPageTranslation(P-dt,B-re),n(this,fn)[0]=P,n(this,fn)[1]=B}if([V,$]=A(V/s,$/i),w){const P=Math.hypot(o,l);R=D=Math.max(Math.min(Math.hypot(S[0]-E[0]-V,S[1]-E[1]-$)/P,1/o,1/l),h/o,c/l)}else _?R=Math.max(h,Math.min(1,Math.abs(S[0]-E[0]-V)))/o:D=Math.max(c,Math.min(1,Math.abs(S[1]-E[1]-$)))/l;const I=W._round(o*R),O=W._round(l*D);C=g(...v(I,O));const G=T-C[0],it=x-C[1];n(this,he)||p(this,he,[this.x,this.y,this.width,this.height]),this.width=I,this.height=O,this.x=G,this.y=it,this.setDims(s*I,i*O),this.fixAndSetPosition(),this._onResizing()},gd=new WeakSet,Cg=function(){var t;p(this,Ps,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height}),(t=n(this,nt))==null||t.toggle(!1),this.parent.togglePointerEvents(!1)},md=new WeakSet,xg=function(t,e,s){let r=.7*(s/e)+1-.7;if(r===1)return;const a=b(this,Jr,dc).call(this,this.rotation),o=(T,x)=>[a[0]*T+a[2]*x,a[1]*T+a[3]*x],[l,h]=this.parentDimensions,c=this.x,f=this.y,g=this.width,m=this.height,A=W.MIN_SIZE/l,y=W.MIN_SIZE/h;r=Math.max(Math.min(r,1/g,1/m),A/g,y/m);const v=W._round(g*r),w=W._round(m*r);if(v===g&&w===m)return;n(this,he)||p(this,he,[c,f,g,m]);const _=o(g/2,m/2),E=W._round(c+_[0]),S=W._round(f+_[1]),C=o(v/2,w/2);this.x=E-C[0],this.y=S-C[1],this.width=v,this.height=w,this.setDims(l*v,h*w),this.fixAndSetPosition(),this._onResizing()},bd=new WeakSet,Tg=function(){var t;(t=n(this,nt))==null||t.toggle(!0),this.parent.togglePointerEvents(!0),b(this,Zr,uc).call(this)},_l=new WeakSet,mf=function(t){const{isMac:e}=Qt.platform;t.ctrlKey&&!e||t.shiftKey||t.metaKey&&e?this.parent.toggleSelected(this):this.parent.setSelected(this)},Ad=new WeakSet,Pg=function(t){const{isSelected:e}=this;this._uiManager.setUpDragSession();let s=!1;const i=new AbortController,r=this._uiManager.combinedSignal(i),a={capture:!0,passive:!1,signal:r},o=h=>{i.abort(),p(this,fi,null),p(this,pn,!1),this._uiManager.endDragSession()||b(this,_l,mf).call(this,h),s&&this._onStopDragging()};e&&(p(this,Kr,t.clientX),p(this,Qr,t.clientY),p(this,fi,t.pointerId),p(this,pl,t.pointerType),window.addEventListener("pointermove",h=>{s||(s=!0,this._onStartDragging());const{clientX:c,clientY:f,pointerId:g}=h;if(g!==n(this,fi)){we(h);return}const[m,A]=this.screenToPageTranslation(c-n(this,Kr),f-n(this,Qr));p(this,Kr,c),p(this,Qr,f),this._uiManager.dragSelectedEditors(m,A)},a),window.addEventListener("touchmove",we,a),window.addEventListener("pointerdown",h=>{h.pointerType===n(this,pl)&&(n(this,mn)||h.isPrimary)&&o(h),we(h)},a));const l=h=>{if(!n(this,fi)||n(this,fi)===h.pointerId){o(h);return}we(h)};window.addEventListener("pointerup",l,{signal:r}),window.addEventListener("blur",l,{signal:r})},Sl=new WeakSet,bf=function(){if(n(this,pi)||!this.div)return;p(this,pi,new AbortController);const t=this._uiManager.combinedSignal(n(this,pi));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:t}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:t})},yd=new WeakSet,Rg=function(t){W._resizerKeyboardManager.exec(this,t)},wd=new WeakSet,kg=function(t){var e;n(this,Rs)&&((e=t.relatedTarget)==null?void 0:e.parentNode)!==n(this,It)&&b(this,bn,vo).call(this)},vd=new WeakSet,Mg=function(t){p(this,gl,n(this,Rs)?t:"")},El=new WeakSet,Af=function(t){if(n(this,Oe))for(const e of n(this,Oe))e.tabIndex=t},bn=new WeakSet,vo=function(){p(this,Rs,!1),b(this,El,Af).call(this,-1),b(this,Zr,uc).call(this)},u(W,yl),H(W,"_l10n",null),H(W,"_l10nResizer",null),H(W,"_borderLineWidth",-1),H(W,"_colorManager",new nf),H(W,"_zIndex",1),H(W,"_telemetryTimeout",1e3);let ct=W;class Zb extends ct{constructor(t){super(t),this.annotationElementId=t.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const Fp=3285377520,ve=4294901760,Ke=65535;class Ig{constructor(t){this.h1=t?t&4294967295:Fp,this.h2=t?t&4294967295:Fp}update(t){let e,s;if(typeof t=="string"){e=new Uint8Array(t.length*2),s=0;for(let y=0,v=t.length;y>>8,e[s++]=w&255)}}else if(ArrayBuffer.isView(t))e=t.slice(),s=e.byteLength;else throw new Error("Invalid data format, must be a string or TypedArray.");const i=s>>2,r=s-i*4,a=new Uint32Array(e.buffer,0,i);let o=0,l=0,h=this.h1,c=this.h2;const f=3432918353,g=461845907,m=f&Ke,A=g&Ke;for(let y=0;y>>17,o=o*g&ve|o*A&Ke,h^=o,h=h<<13|h>>>19,h=h*5+3864292196):(l=a[y],l=l*f&ve|l*m&Ke,l=l<<15|l>>>17,l=l*g&ve|l*A&Ke,c^=l,c=c<<13|c>>>19,c=c*5+3864292196);switch(o=0,r){case 3:o^=e[i*4+2]<<16;case 2:o^=e[i*4+1]<<8;case 1:o^=e[i*4],o=o*f&ve|o*m&Ke,o=o<<15|o>>>17,o=o*g&ve|o*A&Ke,i&1?h^=o:c^=o}this.h1=h,this.h2=c}hexdigest(){let t=this.h1,e=this.h2;return t^=e>>>1,t=t*3981806797&ve|t*36045&Ke,e=e*4283543511&ve|((e<<16|t>>>16)*2950163797&ve)>>>16,t^=e>>>1,t=t*444984403&ve|t*60499&Ke,e=e*3301882366&ve|((e<<16|t>>>16)*3120437893&ve)>>>16,t^=e>>>1,(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}}const yf=Object.freeze({map:null,hash:"",transfer:void 0});var An,yn,Ct,_d,Lg;class bp{constructor(){u(this,_d);u(this,An,!1);u(this,yn,null);u(this,Ct,new Map);this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(t,e){const s=n(this,Ct).get(t);return s===void 0?e:Object.assign(e,s)}getRawValue(t){return n(this,Ct).get(t)}remove(t){if(n(this,Ct).delete(t),n(this,Ct).size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function"){for(const e of n(this,Ct).values())if(e instanceof ct)return;this.onAnnotationEditor(null)}}setValue(t,e){const s=n(this,Ct).get(t);let i=!1;if(s!==void 0)for(const[r,a]of Object.entries(e))s[r]!==a&&(i=!0,s[r]=a);else i=!0,n(this,Ct).set(t,e);i&&b(this,_d,Lg).call(this),e instanceof ct&&typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(e.constructor._type)}has(t){return n(this,Ct).has(t)}getAll(){return n(this,Ct).size>0?dp(n(this,Ct)):null}setAll(t){for(const[e,s]of Object.entries(t))this.setValue(e,s)}get size(){return n(this,Ct).size}resetModified(){n(this,An)&&(p(this,An,!1),typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new Dg(this)}get serializable(){if(n(this,Ct).size===0)return yf;const t=new Map,e=new Ig,s=[],i=Object.create(null);let r=!1;for(const[a,o]of n(this,Ct)){const l=o instanceof ct?o.serialize(!1,i):o;l&&(t.set(a,l),e.update(`${a}:${JSON.stringify(l)}`),r||(r=!!l.bitmap))}if(r)for(const a of t.values())a.bitmap&&s.push(a.bitmap);return t.size>0?{map:t,hash:e.hexdigest(),transfer:s}:yf}get editorStats(){var s;let t=null;const e=new Map;for(const i of n(this,Ct).values()){if(!(i instanceof ct))continue;const r=i.telemetryFinalData;if(!r)continue;const{type:a}=r;e.has(a)||e.set(a,Object.getPrototypeOf(i).constructor),t||(t=Object.create(null));const o=t[a]||(t[a]=new Map);for(const[l,h]of Object.entries(r)){if(l==="type")continue;let c=o.get(l);c||(c=new Map,o.set(l,c));const f=(s=c.get(h))!=null?s:0;c.set(h,f+1)}}for(const[i,r]of e)t[i]=r.computeTelemetryFinalData(t[i]);return t}resetModifiedIds(){p(this,yn,null)}get modifiedIds(){if(n(this,yn))return n(this,yn);const t=[];for(const e of n(this,Ct).values())!(e instanceof ct)||!e.annotationElementId||!e.serialize()||t.push(e.annotationElementId);return p(this,yn,{ids:new Set(t),hash:t.join(",")})}}An=new WeakMap,yn=new WeakMap,Ct=new WeakMap,_d=new WeakSet,Lg=function(){n(this,An)||(p(this,An,!0),typeof this.onSetModified=="function"&&this.onSetModified())};var Cl;class Dg extends bp{constructor(e){super();u(this,Cl,void 0);const{map:s,hash:i,transfer:r}=e.serializable,a=structuredClone(s,r?{transfer:r}:null);p(this,Cl,{map:a,hash:i,transfer:r})}get print(){st("Should not call PrintAnnotationStorage.print")}get serializable(){return n(this,Cl)}get modifiedIds(){return q(this,"modifiedIds",{ids:new Set,hash:""})}}Cl=new WeakMap;var ta;class tA{constructor({ownerDocument:t=globalThis.document,styleElement:e=null}){u(this,ta,new Set);this._document=t,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(t){this.nativeFontFaces.add(t),this._document.fonts.add(t)}removeNativeFontFace(t){this.nativeFontFaces.delete(t),this._document.fonts.delete(t)}insertRule(t){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const e=this.styleElement.sheet;e.insertRule(t,e.cssRules.length)}clear(){for(const t of this.nativeFontFaces)this._document.fonts.delete(t);this.nativeFontFaces.clear(),n(this,ta).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}loadSystemFont(s){return L(this,arguments,function*({systemFontInfo:t,_inspectFont:e}){if(!(!t||n(this,ta).has(t.loadedName))){if(At(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:i,src:r,style:a}=t,o=new FontFace(i,r,a);this.addNativeFontFace(o);try{yield o.load(),n(this,ta).add(i),e==null||e(t)}catch(l){j(`Cannot load system font: ${t.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(o)}return}st("Not implemented: loadSystemFont without the Font Loading API.")}})}bind(t){return L(this,null,function*(){if(t.attached||t.missingFile&&!t.systemFontInfo)return;if(t.attached=!0,t.systemFontInfo){yield this.loadSystemFont(t);return}if(this.isFontLoadingAPISupported){const s=t.createNativeFontFace();if(s){this.addNativeFontFace(s);try{yield s.loaded}catch(i){throw j(`Failed to load font '${s.family}': '${i}'.`),t.disableFontFace=!0,i}}return}const e=t.createFontFaceRule();if(e){if(this.insertRule(e),this.isSyncFontLoadingSupported)return;yield new Promise(s=>{const i=this._queueLoadingCallback(s);this._prepareFontLoadEvent(t,i)})}})}get isFontLoadingAPISupported(){var e;const t=!!((e=this._document)!=null&&e.fonts);return q(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){let t=!1;return(Ut||typeof navigator!="undefined"&&typeof(navigator==null?void 0:navigator.userAgent)=="string"&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(t=!0),q(this,"isSyncFontLoadingSupported",t)}_queueLoadingCallback(t){function e(){for(At(!i.done,"completeRequest() cannot be called twice."),i.done=!0;s.length>0&&s[0].done;){const r=s.shift();setTimeout(r.callback,0)}}const{loadingRequests:s}=this,i={done:!1,complete:e,callback:t};return s.push(i),i}get _loadTestFont(){const t=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return q(this,"_loadTestFont",t)}_prepareFontLoadEvent(t,e){function s(S,C){return S.charCodeAt(C)<<24|S.charCodeAt(C+1)<<16|S.charCodeAt(C+2)<<8|S.charCodeAt(C+3)&255}function i(S,C,T,x){const R=S.substring(0,C),D=S.substring(C+T);return R+x+D}let r,a;const o=this._document.createElement("canvas");o.width=1,o.height=1;const l=o.getContext("2d");let h=0;function c(S,C){if(++h>30){j("Load test font never loaded."),C();return}if(l.font="30px "+S,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0){C();return}setTimeout(c.bind(null,S,C))}const f=`lt${Date.now()}${this.loadTestFontId++}`;let g=this._loadTestFont;g=i(g,976,f.length,f);const A=16,y=1482184792;let v=s(g,A);for(r=0,a=f.length-3;r{E.remove(),e.complete()})}}ta=new WeakMap;class eA{constructor(t,{disableFontFace:e=!1,fontExtraProperties:s=!1,inspectFont:i=null}){this.compiledGlyphs=Object.create(null);for(const r in t)this[r]=t[r];this.disableFontFace=e===!0,this.fontExtraProperties=s===!0,this._inspectFont=i}createNativeFontFace(){var e;if(!this.data||this.disableFontFace)return null;let t;if(!this.cssFontInfo)t=new FontFace(this.loadedName,this.data,{});else{const s={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(s.style=`oblique ${this.cssFontInfo.italicAngle}deg`),t=new FontFace(this.cssFontInfo.fontFamily,this.data,s)}return(e=this._inspectFont)==null||e.call(this,this),t}createFontFaceRule(){var s;if(!this.data||this.disableFontFace)return null;const t=`url(data:${this.mimetype};base64,${jb(this.data)});`;let e;if(!this.cssFontInfo)e=`@font-face {font-family:"${this.loadedName}";src:${t}}`;else{let i=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(i+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),e=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${i}src:${t}}`}return(s=this._inspectFont)==null||s.call(this,this,t),e}getPathGenerator(t,e){if(this.compiledGlyphs[e]!==void 0)return this.compiledGlyphs[e];const s=this.loadedName+"_path_"+e;let i;try{i=t.get(s)}catch(a){j(`getPathGenerator - ignoring character: "${a}".`)}const r=new Path2D(i||"");return this.fontExtraProperties||t.delete(s),this.compiledGlyphs[e]=r}}const tc={DATA:1,ERROR:2},bt={CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function Np(){}function Zt(d){if(d instanceof $i||d instanceof Qu||d instanceof Fo||d instanceof Ip||d instanceof Fc||d instanceof Vu)return d;switch(d instanceof Error||typeof d=="object"&&d!==null||st('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),d.name){case"AbortException":return new $i(d.message);case"InvalidPDFException":return new Qu(d.message);case"MissingPDFException":return new Fo(d.message);case"PasswordException":return new Ip(d.message,d.code);case"UnexpectedResponseException":return new Fc(d.message,d.status);case"UnknownErrorException":return new Vu(d.message,d.details)}return new Vu(d.message,d.toString())}var ea,Sd,Fg,Ed,Ng,Cd,Og,sa,fc;class _o{constructor(t,e,s){u(this,Sd);u(this,Ed);u(this,Cd);u(this,sa);u(this,ea,new AbortController);this.sourceName=t,this.targetName=e,this.comObj=s,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),s.addEventListener("message",b(this,Sd,Fg).bind(this),{signal:n(this,ea).signal})}on(t,e){const s=this.actionHandler;if(s[t])throw new Error(`There is already an actionName called "${t}"`);s[t]=e}send(t,e,s){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:e},s)}sendWithPromise(t,e,s){const i=this.callbackId++,r=Promise.withResolvers();this.callbackCapabilities[i]=r;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:i,data:e},s)}catch(a){r.reject(a)}return r.promise}sendWithStream(t,e,s,i){const r=this.streamId++,a=this.sourceName,o=this.targetName,l=this.comObj;return new ReadableStream({start:h=>{const c=Promise.withResolvers();return this.streamControllers[r]={controller:h,startCall:c,pullCall:null,cancelCall:null,isClosed:!1},l.postMessage({sourceName:a,targetName:o,action:t,streamId:r,data:e,desiredSize:h.desiredSize},i),c.promise},pull:h=>{const c=Promise.withResolvers();return this.streamControllers[r].pullCall=c,l.postMessage({sourceName:a,targetName:o,stream:bt.PULL,streamId:r,desiredSize:h.desiredSize}),c.promise},cancel:h=>{At(h instanceof Error,"cancel must have a valid reason");const c=Promise.withResolvers();return this.streamControllers[r].cancelCall=c,this.streamControllers[r].isClosed=!0,l.postMessage({sourceName:a,targetName:o,stream:bt.CANCEL,streamId:r,reason:Zt(h)}),c.promise}},s)}destroy(){var t;(t=n(this,ea))==null||t.abort(),p(this,ea,null)}}ea=new WeakMap,Sd=new WeakSet,Fg=function({data:t}){if(t.targetName!==this.sourceName)return;if(t.stream){b(this,Cd,Og).call(this,t);return}if(t.callback){const s=t.callbackId,i=this.callbackCapabilities[s];if(!i)throw new Error(`Cannot resolve callback ${s}`);if(delete this.callbackCapabilities[s],t.callback===tc.DATA)i.resolve(t.data);else if(t.callback===tc.ERROR)i.reject(Zt(t.reason));else throw new Error("Unexpected callback case");return}const e=this.actionHandler[t.action];if(!e)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const s=this.sourceName,i=t.sourceName,r=this.comObj;Promise.try(e,t.data).then(function(a){r.postMessage({sourceName:s,targetName:i,callback:tc.DATA,callbackId:t.callbackId,data:a})},function(a){r.postMessage({sourceName:s,targetName:i,callback:tc.ERROR,callbackId:t.callbackId,reason:Zt(a)})});return}if(t.streamId){b(this,Ed,Ng).call(this,t);return}e(t.data)},Ed=new WeakSet,Ng=function(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,r=this.comObj,a=this,o=this.actionHandler[t.action],l={enqueue(h,c=1,f){if(this.isCancelled)return;const g=this.desiredSize;this.desiredSize-=c,g>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),r.postMessage({sourceName:s,targetName:i,stream:bt.ENQUEUE,streamId:e,chunk:h},f)},close(){this.isCancelled||(this.isCancelled=!0,r.postMessage({sourceName:s,targetName:i,stream:bt.CLOSE,streamId:e}),delete a.streamSinks[e])},error(h){At(h instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,r.postMessage({sourceName:s,targetName:i,stream:bt.ERROR,streamId:e,reason:Zt(h)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};l.sinkCapability.resolve(),l.ready=l.sinkCapability.promise,this.streamSinks[e]=l,Promise.try(o,t.data,l).then(function(){r.postMessage({sourceName:s,targetName:i,stream:bt.START_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:bt.START_COMPLETE,streamId:e,reason:Zt(h)})})},Cd=new WeakSet,Og=function(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,r=this.comObj,a=this.streamControllers[e],o=this.streamSinks[e];switch(t.stream){case bt.START_COMPLETE:t.success?a.startCall.resolve():a.startCall.reject(Zt(t.reason));break;case bt.PULL_COMPLETE:t.success?a.pullCall.resolve():a.pullCall.reject(Zt(t.reason));break;case bt.PULL:if(!o){r.postMessage({sourceName:s,targetName:i,stream:bt.PULL_COMPLETE,streamId:e,success:!0});break}o.desiredSize<=0&&t.desiredSize>0&&o.sinkCapability.resolve(),o.desiredSize=t.desiredSize,Promise.try(o.onPull||Np).then(function(){r.postMessage({sourceName:s,targetName:i,stream:bt.PULL_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:bt.PULL_COMPLETE,streamId:e,reason:Zt(h)})});break;case bt.ENQUEUE:if(At(a,"enqueue should have stream controller"),a.isClosed)break;a.controller.enqueue(t.chunk);break;case bt.CLOSE:if(At(a,"close should have stream controller"),a.isClosed)break;a.isClosed=!0,a.controller.close(),b(this,sa,fc).call(this,a,e);break;case bt.ERROR:At(a,"error should have stream controller"),a.controller.error(Zt(t.reason)),b(this,sa,fc).call(this,a,e);break;case bt.CANCEL_COMPLETE:t.success?a.cancelCall.resolve():a.cancelCall.reject(Zt(t.reason)),b(this,sa,fc).call(this,a,e);break;case bt.CANCEL:if(!o)break;const l=Zt(t.reason);Promise.try(o.onCancel||Np,l).then(function(){r.postMessage({sourceName:s,targetName:i,stream:bt.CANCEL_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:bt.CANCEL_COMPLETE,streamId:e,reason:Zt(h)})}),o.sinkCapability.reject(l),o.isCancelled=!0,delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}},sa=new WeakSet,fc=function(t,e){return L(this,null,function*(){var s,i,r;yield Promise.allSettled([(s=t.startCall)==null?void 0:s.promise,(i=t.pullCall)==null?void 0:i.promise,(r=t.cancelCall)==null?void 0:r.promise]),delete this.streamControllers[e]})};var xl;class Bg{constructor({enableHWA:t=!1}){u(this,xl,!1);p(this,xl,t)}create(t,e){if(t<=0||e<=0)throw new Error("Invalid canvas size");const s=this._createCanvas(t,e);return{canvas:s,context:s.getContext("2d",{willReadFrequently:!n(this,xl)})}}reset(t,e,s){if(!t.canvas)throw new Error("Canvas is not specified");if(e<=0||s<=0)throw new Error("Invalid canvas size");t.canvas.width=e,t.canvas.height=s}destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0,t.canvas.height=0,t.canvas=null,t.context=null}_createCanvas(t,e){st("Abstract method `_createCanvas` called.")}}xl=new WeakMap;class sA extends Bg{constructor({ownerDocument:t=globalThis.document,enableHWA:e=!1}){super({enableHWA:e}),this._document=t}_createCanvas(t,e){const s=this._document.createElement("canvas");return s.width=t,s.height=e,s}}class Hg{constructor({baseUrl:t=null,isCompressed:e=!0}){this.baseUrl=t,this.isCompressed=e}fetch(e){return L(this,arguments,function*({name:t}){if(!this.baseUrl)throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!t)throw new Error("CMap name must be specified.");const s=this.baseUrl+t+(this.isCompressed?".bcmap":"");return this._fetch(s).then(i=>({cMapData:i,isCompressed:this.isCompressed})).catch(i=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${s}`)})})}_fetch(t){return L(this,null,function*(){st("Abstract method `_fetch` called.")})}}class $g extends Hg{_fetch(t){return L(this,null,function*(){const e=yield Mu(t,this.isCompressed?"arraybuffer":"text");return e instanceof ArrayBuffer?new Uint8Array(e):ku(e)})}}class Gg{addFilter(t){return"none"}addHCMFilter(t,e){return"none"}addAlphaFilter(t){return"none"}addLuminosityFilter(t){return"none"}addHighlightHCMFilter(t,e,s,i,r){return"none"}destroy(t=!1){}}var wn,ia,ks,Ms,$t,vn,_n,xt,Ot,Sn,So,gi,vr,na,pc,mi,_r,xd,zg,Tl,wf,bi,Sr,En,Eo,Cn,Co,Pl,vf,xn,xo;class iA extends Gg{constructor({docId:e,ownerDocument:s=globalThis.document}){super();u(this,xt);u(this,Sn);u(this,gi);u(this,na);u(this,mi);u(this,xd);u(this,Tl);u(this,bi);u(this,En);u(this,Cn);u(this,Pl);u(this,xn);u(this,wn,void 0);u(this,ia,void 0);u(this,ks,void 0);u(this,Ms,void 0);u(this,$t,void 0);u(this,vn,void 0);u(this,_n,0);p(this,Ms,e),p(this,$t,s)}addFilter(e){if(!e)return"none";let s=n(this,xt,Ot).get(e);if(s)return s;const[i,r,a]=b(this,na,pc).call(this,e),o=e.length===1?i:`${i}${r}${a}`;if(s=n(this,xt,Ot).get(o),s)return n(this,xt,Ot).set(e,s),s;const l=`g_${n(this,Ms)}_transfer_map_${jt(this,_n)._++}`,h=b(this,mi,_r).call(this,l);n(this,xt,Ot).set(e,h),n(this,xt,Ot).set(o,h);const c=b(this,bi,Sr).call(this,l);return b(this,Cn,Co).call(this,i,r,a,c),h}addHCMFilter(e,s){var A;const i=`${e}-${s}`,r="base";let a=n(this,Sn,So).get(r);if((a==null?void 0:a.key)===i||(a?((A=a.filter)==null||A.remove(),a.key=i,a.url="none",a.filter=null):(a={key:i,url:"none",filter:null},n(this,Sn,So).set(r,a)),!e||!s))return a.url;const o=b(this,xn,xo).call(this,e);e=N.makeHexColor(...o);const l=b(this,xn,xo).call(this,s);if(s=N.makeHexColor(...l),n(this,gi,vr).style.color="",e==="#000000"&&s==="#ffffff"||e===s)return a.url;const h=new Array(256);for(let y=0;y<=255;y++){const v=y/255;h[y]=v<=.03928?v/12.92:uo((v+.055)/1.055,2.4)}const c=h.join(","),f=`g_${n(this,Ms)}_hcm_filter`,g=a.filter=b(this,bi,Sr).call(this,f);b(this,Cn,Co).call(this,c,c,c,g),b(this,Tl,wf).call(this,g);const m=(y,v)=>{const w=o[y]/255,_=l[y]/255,E=new Array(v+1);for(let S=0;S<=v;S++)E[S]=w+S/v*(_-w);return E.join(",")};return b(this,Cn,Co).call(this,m(0,5),m(1,5),m(2,5),g),a.url=b(this,mi,_r).call(this,f),a.url}addAlphaFilter(e){let s=n(this,xt,Ot).get(e);if(s)return s;const[i]=b(this,na,pc).call(this,[e]),r=`alpha_${i}`;if(s=n(this,xt,Ot).get(r),s)return n(this,xt,Ot).set(e,s),s;const a=`g_${n(this,Ms)}_alpha_map_${jt(this,_n)._++}`,o=b(this,mi,_r).call(this,a);n(this,xt,Ot).set(e,o),n(this,xt,Ot).set(r,o);const l=b(this,bi,Sr).call(this,a);return b(this,Pl,vf).call(this,i,l),o}addLuminosityFilter(e){let s=n(this,xt,Ot).get(e||"luminosity");if(s)return s;let i,r;if(e?([i]=b(this,na,pc).call(this,[e]),r=`luminosity_${i}`):r="luminosity",s=n(this,xt,Ot).get(r),s)return n(this,xt,Ot).set(e,s),s;const a=`g_${n(this,Ms)}_luminosity_map_${jt(this,_n)._++}`,o=b(this,mi,_r).call(this,a);n(this,xt,Ot).set(e,o),n(this,xt,Ot).set(r,o);const l=b(this,bi,Sr).call(this,a);return b(this,xd,zg).call(this,l),e&&b(this,Pl,vf).call(this,i,l),o}addHighlightHCMFilter(e,s,i,r,a){var _;const o=`${s}-${i}-${r}-${a}`;let l=n(this,Sn,So).get(e);if((l==null?void 0:l.key)===o||(l?((_=l.filter)==null||_.remove(),l.key=o,l.url="none",l.filter=null):(l={key:o,url:"none",filter:null},n(this,Sn,So).set(e,l)),!s||!i))return l.url;const[h,c]=[s,i].map(b(this,xn,xo).bind(this));let f=Math.round(.2126*h[0]+.7152*h[1]+.0722*h[2]),g=Math.round(.2126*c[0]+.7152*c[1]+.0722*c[2]),[m,A]=[r,a].map(b(this,xn,xo).bind(this));g{const T=new Array(256),x=(g-f)/C,R=E/255,D=(S-E)/(255*C);let V=0;for(let $=0;$<=C;$++){const I=Math.round(f+$*x),O=R+$*D;for(let G=V;G<=I;G++)T[G]=O;V=I+1}for(let $=V;$<256;$++)T[$]=T[V-1];return T.join(",")},v=`g_${n(this,Ms)}_hcm_${e}_filter`,w=l.filter=b(this,bi,Sr).call(this,v);return b(this,Tl,wf).call(this,w),b(this,Cn,Co).call(this,y(m[0],A[0],5),y(m[1],A[1],5),y(m[2],A[2],5),w),l.url=b(this,mi,_r).call(this,v),l.url}destroy(e=!1){var s,i,r,a;e&&((s=n(this,vn))!=null&&s.size)||((i=n(this,ks))==null||i.parentNode.parentNode.remove(),p(this,ks,null),(r=n(this,ia))==null||r.clear(),p(this,ia,null),(a=n(this,vn))==null||a.clear(),p(this,vn,null),p(this,_n,0))}}wn=new WeakMap,ia=new WeakMap,ks=new WeakMap,Ms=new WeakMap,$t=new WeakMap,vn=new WeakMap,_n=new WeakMap,xt=new WeakSet,Ot=function(){return n(this,ia)||p(this,ia,new Map)},Sn=new WeakSet,So=function(){return n(this,vn)||p(this,vn,new Map)},gi=new WeakSet,vr=function(){if(!n(this,ks)){const e=n(this,$t).createElement("div"),{style:s}=e;s.visibility="hidden",s.contain="strict",s.width=s.height=0,s.position="absolute",s.top=s.left=0,s.zIndex=-1;const i=n(this,$t).createElementNS(As,"svg");i.setAttribute("width",0),i.setAttribute("height",0),p(this,ks,n(this,$t).createElementNS(As,"defs")),e.append(i),i.append(n(this,ks)),n(this,$t).body.append(e)}return n(this,ks)},na=new WeakSet,pc=function(e){if(e.length===1){const h=e[0],c=new Array(256);for(let g=0;g<256;g++)c[g]=h[g]/255;const f=c.join(",");return[f,f,f]}const[s,i,r]=e,a=new Array(256),o=new Array(256),l=new Array(256);for(let h=0;h<256;h++)a[h]=s[h]/255,o[h]=i[h]/255,l[h]=r[h]/255;return[a.join(","),o.join(","),l.join(",")]},mi=new WeakSet,_r=function(e){if(n(this,wn)===void 0){p(this,wn,"");const s=n(this,$t).URL;s!==n(this,$t).baseURI&&(Iu(s)?j('#createUrl: ignore "data:"-URL for performance reasons.'):p(this,wn,s.split("#",1)[0]))}return`url(${n(this,wn)}#${e})`},xd=new WeakSet,zg=function(e){const s=n(this,$t).createElementNS(As,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),e.append(s)},Tl=new WeakSet,wf=function(e){const s=n(this,$t).createElementNS(As,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),e.append(s)},bi=new WeakSet,Sr=function(e){const s=n(this,$t).createElementNS(As,"filter");return s.setAttribute("color-interpolation-filters","sRGB"),s.setAttribute("id",e),n(this,gi,vr).append(s),s},En=new WeakSet,Eo=function(e,s,i){const r=n(this,$t).createElementNS(As,s);r.setAttribute("type","discrete"),r.setAttribute("tableValues",i),e.append(r)},Cn=new WeakSet,Co=function(e,s,i,r){const a=n(this,$t).createElementNS(As,"feComponentTransfer");r.append(a),b(this,En,Eo).call(this,a,"feFuncR",e),b(this,En,Eo).call(this,a,"feFuncG",s),b(this,En,Eo).call(this,a,"feFuncB",i)},Pl=new WeakSet,vf=function(e,s){const i=n(this,$t).createElementNS(As,"feComponentTransfer");s.append(i),b(this,En,Eo).call(this,i,"feFuncA",e)},xn=new WeakSet,xo=function(e){return n(this,gi,vr).style.color=e,mp(getComputedStyle(n(this,gi,vr)).getPropertyValue("color"))};class Vg{constructor({baseUrl:t=null}){this.baseUrl=t}fetch(e){return L(this,arguments,function*({filename:t}){if(!this.baseUrl)throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!t)throw new Error("Font filename must be specified.");const s=`${this.baseUrl}${t}`;return this._fetch(s).catch(i=>{throw new Error(`Unable to load font data at: ${s}`)})})}_fetch(t){return L(this,null,function*(){st("Abstract method `_fetch` called.")})}}class Ug extends Vg{_fetch(t){return L(this,null,function*(){const e=yield Mu(t,"arraybuffer");return new Uint8Array(e)})}}Ut&&j("Please use the `legacy` build in Node.js environments.");function jg(d){return L(this,null,function*(){const e=yield process.getBuiltinModule("fs").promises.readFile(d);return new Uint8Array(e)})}class nA extends Gg{}class rA extends Bg{_createCanvas(t,e){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(t,e)}}class aA extends Hg{_fetch(t){return L(this,null,function*(){return jg(t)})}}class oA extends Vg{_fetch(t){return L(this,null,function*(){return jg(t)})}}const Vt={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function _f(d,t){if(!t)return;const e=t[2]-t[0],s=t[3]-t[1],i=new Path2D;i.rect(t[0],t[1],e,s),d.clip(i)}class Ap{getPattern(){st("Abstract method `getPattern` called.")}}class lA extends Ap{constructor(t){super(),this._type=t[1],this._bbox=t[2],this._colorStops=t[3],this._p0=t[4],this._p1=t[5],this._r0=t[6],this._r1=t[7],this.matrix=null}_createGradient(t){let e;this._type==="axial"?e=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):this._type==="radial"&&(e=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const s of this._colorStops)e.addColorStop(s[0],s[1]);return e}getPattern(t,e,s,i){let r;if(i===Vt.STROKE||i===Vt.FILL){const a=e.current.getClippedPathBoundingBox(i,at(t))||[0,0,0,0],o=Math.ceil(a[2]-a[0])||1,l=Math.ceil(a[3]-a[1])||1,h=e.cachedCanvases.getCanvas("pattern",o,l),c=h.context;c.clearRect(0,0,c.canvas.width,c.canvas.height),c.beginPath(),c.rect(0,0,c.canvas.width,c.canvas.height),c.translate(-a[0],-a[1]),s=N.transform(s,[1,0,0,1,a[0],a[1]]),c.transform(...e.baseTransform),this.matrix&&c.transform(...this.matrix),_f(c,this._bbox),c.fillStyle=this._createGradient(c),c.fill(),r=t.createPattern(h.canvas,"no-repeat");const f=new DOMMatrix(s);r.setTransform(f)}else _f(t,this._bbox),r=this._createGradient(t);return r}}function Wu(d,t,e,s,i,r,a,o){const l=t.coords,h=t.colors,c=d.data,f=d.width*4;let g;l[e+1]>l[s+1]&&(g=e,e=s,s=g,g=r,r=a,a=g),l[s+1]>l[i+1]&&(g=s,s=i,i=g,g=a,a=o,o=g),l[e+1]>l[s+1]&&(g=e,e=s,s=g,g=r,r=a,a=g);const m=(l[e]+t.offsetX)*t.scaleX,A=(l[e+1]+t.offsetY)*t.scaleY,y=(l[s]+t.offsetX)*t.scaleX,v=(l[s+1]+t.offsetY)*t.scaleY,w=(l[i]+t.offsetX)*t.scaleX,_=(l[i+1]+t.offsetY)*t.scaleY;if(A>=_)return;const E=h[r],S=h[r+1],C=h[r+2],T=h[a],x=h[a+1],R=h[a+2],D=h[o],V=h[o+1],$=h[o+2],I=Math.round(A),O=Math.round(_);let G,it,P,B,dt,re,ae,yt;for(let tt=I;tt<=O;tt++){if(tt_?ot=1:v===_?ot=0:ot=(v-tt)/(v-_),G=y-(y-w)*ot,it=T-(T-D)*ot,P=x-(x-V)*ot,B=R-(R-$)*ot}let Q;tt_?Q=1:Q=(A-tt)/(A-_),dt=m-(m-w)*Q,re=E-(E-D)*Q,ae=S-(S-V)*Q,yt=C-(C-$)*Q;const Js=Math.round(Math.min(G,dt)),ho=Math.round(Math.max(G,dt));let ke=f*tt+Js*4;for(let ot=Js;ot<=ho;ot++)Q=(G-ot)/(G-dt),Q<0?Q=0:Q>1&&(Q=1),c[ke++]=it-(it-re)*Q|0,c[ke++]=P-(P-ae)*Q|0,c[ke++]=B-(B-yt)*Q|0,c[ke++]=255}}function hA(d,t,e){const s=t.coords,i=t.colors;let r,a;switch(t.type){case"lattice":const o=t.verticesPerRow,l=Math.floor(s.length/o)-1,h=o-1;for(r=0;r=V?S=l:T=!0,D>=$?C=h:x=!0;const I=this.getSizeAndScale(S,this.ctx.canvas.width,_),O=this.getSizeAndScale(C,this.ctx.canvas.height,E),G=t.cachedCanvases.getCanvas("pattern",I.size,O.size),it=G.context,P=o.createCanvasGraphics(it);if(P.groupLevel=t.groupLevel,this.setFillAndStrokeStyleToContext(P,i,a),it.translate(-I.scale*c,-O.scale*f),P.transform(I.scale,0,0,O.scale,0,0),it.save(),this.clipBbox(P,c,f,g,m),P.baseTransform=at(P.ctx),P.executeOperatorList(s),P.endDrawing(),it.restore(),T||x){const B=G.canvas;T&&(S=l),x&&(C=h);const dt=this.getSizeAndScale(S,this.ctx.canvas.width,_),re=this.getSizeAndScale(C,this.ctx.canvas.height,E),ae=dt.size,yt=re.size,tt=t.cachedCanvases.getCanvas("pattern-workaround",ae,yt),Q=tt.context,Js=T?Math.floor(A/l):0,ho=x?Math.floor(y/h):0;for(let ke=0;ke<=Js;ke++)for(let ot=0;ot<=ho;ot++)Q.drawImage(B,ae*ke,yt*ot,ae,yt,0,0,ae,yt);return{canvas:tt.canvas,scaleX:dt.scale,scaleY:re.scale,offsetX:c,offsetY:f}}return{canvas:G.canvas,scaleX:I.scale,scaleY:O.scale,offsetX:c,offsetY:f}}getSizeAndScale(t,e,s){const i=Math.max(Td.MAX_PATTERN_SIZE,e);let r=Math.ceil(t*s);return r>=i?r=i:s=r/t,{scale:s,size:r}}clipBbox(t,e,s,i,r){const a=i-e,o=r-s;t.ctx.rect(e,s,a,o),t.current.updateRectMinMax(at(t.ctx),[e,s,i,r]),t.clip(),t.endPath()}setFillAndStrokeStyleToContext(t,e,s){const i=t.ctx,r=t.current;switch(e){case Op.COLORED:const a=this.ctx;i.fillStyle=a.fillStyle,i.strokeStyle=a.strokeStyle,r.fillColor=a.fillStyle,r.strokeColor=a.strokeStyle;break;case Op.UNCOLORED:const o=N.makeHexColor(s[0],s[1],s[2]);i.fillStyle=o,i.strokeStyle=o,r.fillColor=o,r.strokeColor=o;break;default:throw new Bb(`Unsupported paint type: ${e}`)}}getPattern(t,e,s,i){let r=s;i!==Vt.SHADING&&(r=N.transform(r,e.baseTransform),this.matrix&&(r=N.transform(r,this.matrix)));const a=this.createPatternCanvas(e);let o=new DOMMatrix(r);o=o.translate(a.offsetX,a.offsetY),o=o.scale(1/a.scaleX,1/a.scaleY);const l=t.createPattern(a.canvas,"repeat");return l.setTransform(o),l}};H(Td,"MAX_PATTERN_SIZE",3e3);let Sf=Td;function fA({src:d,srcPos:t=0,dest:e,width:s,height:i,nonBlackColor:r=4294967295,inverseDecode:a=!1}){const o=Qt.isLittleEndian?4278190080:255,[l,h]=a?[r,o]:[o,r],c=s>>3,f=s&7,g=d.length;e=new Uint32Array(e.buffer);let m=0;for(let A=0;A{d.save=d.__originalSave,d.restore=d.__originalRestore,d.rotate=d.__originalRotate,d.scale=d.__originalScale,d.translate=d.__originalTranslate,d.transform=d.__originalTransform,d.setTransform=d.__originalSetTransform,d.resetTransform=d.__originalResetTransform,d.clip=d.__originalClip,d.moveTo=d.__originalMoveTo,d.lineTo=d.__originalLineTo,d.bezierCurveTo=d.__originalBezierCurveTo,d.rect=d.__originalRect,d.closePath=d.__originalClosePath,d.beginPath=d.__originalBeginPath,delete d._removeMirroring},d.save=function(){t.save(),this.__originalSave()},d.restore=function(){t.restore(),this.__originalRestore()},d.translate=function(s,i){t.translate(s,i),this.__originalTranslate(s,i)},d.scale=function(s,i){t.scale(s,i),this.__originalScale(s,i)},d.transform=function(s,i,r,a,o,l){t.transform(s,i,r,a,o,l),this.__originalTransform(s,i,r,a,o,l)},d.setTransform=function(s,i,r,a,o,l){t.setTransform(s,i,r,a,o,l),this.__originalSetTransform(s,i,r,a,o,l)},d.resetTransform=function(){t.resetTransform(),this.__originalResetTransform()},d.rotate=function(s){t.rotate(s),this.__originalRotate(s)},d.clip=function(s){t.clip(s),this.__originalClip(s)},d.moveTo=function(e,s){t.moveTo(e,s),this.__originalMoveTo(e,s)},d.lineTo=function(e,s){t.lineTo(e,s),this.__originalLineTo(e,s)},d.bezierCurveTo=function(e,s,i,r,a,o){t.bezierCurveTo(e,s,i,r,a,o),this.__originalBezierCurveTo(e,s,i,r,a,o)},d.rect=function(e,s,i,r){t.rect(e,s,i,r),this.__originalRect(e,s,i,r)},d.closePath=function(){t.closePath(),this.__originalClosePath()},d.beginPath=function(){t.beginPath(),this.__originalBeginPath()}}class mA{constructor(t){this.canvasFactory=t,this.cache=Object.create(null)}getCanvas(t,e,s){let i;return this.cache[t]!==void 0?(i=this.cache[t],this.canvasFactory.reset(i,e,s)):(i=this.canvasFactory.create(e,s),this.cache[t]=i),i}delete(t){delete this.cache[t]}clear(){for(const t in this.cache){const e=this.cache[t];this.canvasFactory.destroy(e),delete this.cache[t]}}}function ec(d,t,e,s,i,r,a,o,l,h){const[c,f,g,m,A,y]=at(d);if(f===0&&g===0){const _=a*c+A,E=Math.round(_),S=o*m+y,C=Math.round(S),T=(a+l)*c+A,x=Math.abs(Math.round(T)-E)||1,R=(o+h)*m+y,D=Math.abs(Math.round(R)-C)||1;return d.setTransform(Math.sign(c),0,0,Math.sign(m),E,C),d.drawImage(t,e,s,i,r,0,0,x,D),d.setTransform(c,f,g,m,A,y),[x,D]}if(c===0&&m===0){const _=o*g+A,E=Math.round(_),S=a*f+y,C=Math.round(S),T=(o+h)*g+A,x=Math.abs(Math.round(T)-E)||1,R=(a+l)*f+y,D=Math.abs(Math.round(R)-C)||1;return d.setTransform(0,Math.sign(f),Math.sign(g),0,E,C),d.drawImage(t,e,s,i,r,0,0,D,x),d.setTransform(c,f,g,m,A,y),[D,x]}d.drawImage(t,e,s,i,r,a,o,l,h);const v=Math.hypot(c,f),w=Math.hypot(g,m);return[v*l,w*h]}function bA(d){const{width:t,height:e}=d;if(t>Gp||e>Gp)return null;const s=1e3,i=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),r=t+1;let a=new Uint8Array(r*(e+1)),o,l,h;const c=t+7&-8;let f=new Uint8Array(c*e),g=0;for(const w of d.data){let _=128;for(;_>0;)f[g++]=w&_?0:255,_>>=1}let m=0;for(g=0,f[g]!==0&&(a[0]=1,++m),l=1;l>2)+(f[g+1]?4:0)+(f[g-c+1]?8:0),i[w]&&(a[h+l]=i[w],++m),g++;if(f[g-c]!==f[g]&&(a[h+l]=f[g]?2:4,++m),m>s)return null}for(g=c*(e-1),h=o*r,f[g]!==0&&(a[h]=8,++m),l=1;ls)return null;const A=new Int32Array([0,r,-1,0,-r,0,0,0,1]),y=new Path2D;for(o=0;m&&o<=e;o++){let w=o*r;const _=w+t;for(;w<_&&!a[w];)w++;if(w===_)continue;y.moveTo(w%r,o);const E=w;let S=a[w];do{const C=A[S];do w+=C;while(!a[w]);const T=a[w];T!==5&&T!==10?(S=T,a[w]=0):(S=T&51*S>>4,a[w]&=S>>2|S<<2),y.lineTo(w%r,w/r|0),a[w]||--m}while(E!==w);--o}return f=null,a=null,function(w){w.save(),w.scale(1/t,-1/e),w.translate(0,-e),w.fill(y),w.beginPath(),w.restore()}}class zp{constructor(t,e){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=eg,this.textMatrixScale=1,this.fontMatrix=Ku,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=Nt.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.patternStroke=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,t,e])}clone(){const t=Object.create(this);return t.clipBox=this.clipBox.slice(),t}setCurrentPoint(t,e){this.x=t,this.y=e}updatePathMinMax(t,e,s){[e,s]=N.applyTransform([e,s],t),this.minX=Math.min(this.minX,e),this.minY=Math.min(this.minY,s),this.maxX=Math.max(this.maxX,e),this.maxY=Math.max(this.maxY,s)}updateRectMinMax(t,e){const s=N.applyTransform(e,t),i=N.applyTransform(e.slice(2),t),r=N.applyTransform([e[0],e[3]],t),a=N.applyTransform([e[2],e[1]],t);this.minX=Math.min(this.minX,s[0],i[0],r[0],a[0]),this.minY=Math.min(this.minY,s[1],i[1],r[1],a[1]),this.maxX=Math.max(this.maxX,s[0],i[0],r[0],a[0]),this.maxY=Math.max(this.maxY,s[1],i[1],r[1],a[1])}updateScalingPathMinMax(t,e){N.scaleMinMax(t,e),this.minX=Math.min(this.minX,e[0]),this.minY=Math.min(this.minY,e[1]),this.maxX=Math.max(this.maxX,e[2]),this.maxY=Math.max(this.maxY,e[3])}updateCurvePathMinMax(t,e,s,i,r,a,o,l,h,c){const f=N.bezierBoundingBox(e,s,i,r,a,o,l,h,c);c||this.updateRectMinMax(t,f)}getPathBoundingBox(t=Vt.FILL,e=null){const s=[this.minX,this.minY,this.maxX,this.maxY];if(t===Vt.STROKE){e||st("Stroke bounding box must include transform.");const i=N.singularValueDecompose2dScale(e),r=i[0]*this.lineWidth/2,a=i[1]*this.lineWidth/2;s[0]-=r,s[1]-=a,s[2]+=r,s[3]+=a}return s}updateClipFromPath(){const t=N.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(t){this.clipBox=t,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(t=Vt.FILL,e=null){return N.intersect(this.clipBox,this.getPathBoundingBox(t,e))}}function Vp(d,t){if(t instanceof ImageData){d.putImageData(t,0,0);return}const e=t.height,s=t.width,i=e%ne,r=(e-i)/ne,a=i===0?r:r+1,o=d.createImageData(s,ne);let l=0,h;const c=t.data,f=o.data;let g,m,A,y;if(t.kind===nc.GRAYSCALE_1BPP){const v=c.byteLength,w=new Uint32Array(f.buffer,0,f.byteLength>>2),_=w.length,E=s+7>>3,S=4294967295,C=Qt.isLittleEndian?4278190080:255;for(g=0;gE?s:T*8-7,D=R&-8;let V=0,$=0;for(;x>=1}for(;h<_;)w[h++]=0;d.putImageData(o,0,g*ne)}}else if(t.kind===nc.RGBA_32BPP){for(m=0,y=s*ne*4,g=0;g=r&&(A=i,y=s*A),h=0,m=y;m--;)f[h++]=c[l++],f[h++]=c[l++],f[h++]=c[l++],f[h++]=255;d.putImageData(o,0,g*ne)}else throw new Error(`bad image kind: ${t.kind}`)}function Up(d,t){if(t.bitmap){d.drawImage(t.bitmap,0,0);return}const e=t.height,s=t.width,i=e%ne,r=(e-i)/ne,a=i===0?r:r+1,o=d.createImageData(s,ne);let l=0;const h=t.data,c=o.data;for(let f=0;f$p&&typeof s=="function",c=h?Date.now()+pA:0;let f=0;const g=this.commonObjs,m=this.objs;let A;for(;;){if(i!==void 0&&o===i.nextBreakPoint)return i.breakIt(o,s),o;if(A=a[o],A!==Ie.dependency)this[A].apply(this,r[o]);else for(const y of r[o]){const v=y.startsWith("g_")?g:m;if(!v.has(y))return v.get(y,s),o}if(o++,o===l)return o;if(h&&++f>$p){if(Date.now()>c)return s(),o;f=0}}}endDrawing(){b(this,Rl,Ef).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(const t of this._cachedBitmapsMap.values()){for(const e of t.values())typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement&&(e.width=e.height=0);t.clear()}this._cachedBitmapsMap.clear(),b(this,kl,Cf).call(this)}_scaleImage(t,e){var g,m;const s=(g=t.width)!=null?g:t.displayWidth,i=(m=t.height)!=null?m:t.displayHeight;let r=Math.max(Math.hypot(e[0],e[1]),1),a=Math.max(Math.hypot(e[2],e[3]),1),o=s,l=i,h="prescale1",c,f;for(;r>2&&o>1||a>2&&l>1;){let A=o,y=l;r>2&&o>1&&(A=o>=16384?Math.floor(o/2)-1||1:Math.ceil(o/2),r/=o/A),a>2&&l>1&&(y=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l)/2,a/=l/y),c=this.cachedCanvases.getCanvas(h,A,y),f=c.context,f.clearRect(0,0,A,y),f.drawImage(t,0,0,o,l,0,0,A,y),t=c.canvas,o=A,l=y,h=h==="prescale1"?"prescale2":"prescale1"}return{img:t,paintWidth:o,paintHeight:l}}_createMaskCanvas(t){const e=this.ctx,{width:s,height:i}=t,r=this.current.fillColor,a=this.current.patternFill,o=at(e);let l,h,c,f;if((t.bitmap||t.data)&&t.count>1){const R=t.bitmap||t.data.buffer;h=JSON.stringify(a?o:[o.slice(0,4),r]),l=this._cachedBitmapsMap.get(R),l||(l=new Map,this._cachedBitmapsMap.set(R,l));const D=l.get(h);if(D&&!a){const V=Math.round(Math.min(o[0],o[2])+o[4]),$=Math.round(Math.min(o[1],o[3])+o[5]);return{canvas:D,offsetX:V,offsetY:$}}c=D}c||(f=this.cachedCanvases.getCanvas("maskCanvas",s,i),Up(f.context,t));let g=N.transform(o,[1/s,0,0,-1/i,0,0]);g=N.transform(g,[1,0,0,1,0,-i]);const[m,A,y,v]=N.getAxialAlignedBoundingBox([0,0,s,i],g),w=Math.round(y-m)||1,_=Math.round(v-A)||1,E=this.cachedCanvases.getCanvas("fillCanvas",w,_),S=E.context,C=m,T=A;S.translate(-C,-T),S.transform(...g),c||(c=this._scaleImage(f.canvas,Ye(S)),c=c.img,l&&a&&l.set(h,c)),S.imageSmoothingEnabled=jp(at(S),t.interpolate),ec(S,c,0,0,c.width,c.height,0,0,s,i),S.globalCompositeOperation="source-in";const x=N.transform(Ye(S),[1,0,0,1,-C,-T]);return S.fillStyle=a?r.getPattern(e,this,x,Vt.FILL):r,S.fillRect(0,0,s,i),l&&!a&&(this.cachedCanvases.delete("fillCanvas"),l.set(h,E.canvas)),{canvas:E.canvas,offsetX:Math.round(C),offsetY:Math.round(T)}}setLineWidth(t){t!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=t,this.ctx.lineWidth=t}setLineCap(t){this.ctx.lineCap=AA[t]}setLineJoin(t){this.ctx.lineJoin=yA[t]}setMiterLimit(t){this.ctx.miterLimit=t}setDash(t,e){const s=this.ctx;s.setLineDash!==void 0&&(s.setLineDash(t),s.lineDashOffset=e)}setRenderingIntent(t){}setFlatness(t){}setGState(t){for(const[e,s]of t)switch(e){case"LW":this.setLineWidth(s);break;case"LC":this.setLineCap(s);break;case"LJ":this.setLineJoin(s);break;case"ML":this.setMiterLimit(s);break;case"D":this.setDash(s[0],s[1]);break;case"RI":this.setRenderingIntent(s);break;case"FL":this.setFlatness(s);break;case"Font":this.setFont(s[0],s[1]);break;case"CA":this.current.strokeAlpha=s;break;case"ca":this.current.fillAlpha=s,this.ctx.globalAlpha=s;break;case"BM":this.ctx.globalCompositeOperation=s;break;case"SMask":this.current.activeSMask=s?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(s);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const t=this.inSMaskMode;this.current.activeSMask&&!t?this.beginSMaskMode():!this.current.activeSMask&&t&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const t=this.ctx.canvas.width,e=this.ctx.canvas.height,s="smaskGroupAt"+this.groupLevel,i=this.cachedCanvases.getCanvas(s,t,e);this.suspendedCtx=this.ctx,this.ctx=i.context;const r=this.ctx;r.setTransform(...at(this.suspendedCtx)),po(this.suspendedCtx,r),gA(r,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),po(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(t){if(!this.current.activeSMask)return;t?(t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.ceil(t[2]),t[3]=Math.ceil(t[3])):t=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const e=this.current.activeSMask,s=this.suspendedCtx;this.composeSMask(s,e,this.ctx,t),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(t,e,s,i){const r=i[0],a=i[1],o=i[2]-r,l=i[3]-a;o===0||l===0||(this.genericComposeSMask(e.context,s,o,l,e.subtype,e.backdrop,e.transferMap,r,a,e.offsetX,e.offsetY),t.save(),t.globalAlpha=1,t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0),t.drawImage(s.canvas,0,0),t.restore())}genericComposeSMask(t,e,s,i,r,a,o,l,h,c,f){let g=t.canvas,m=l-c,A=h-f;if(a){const v=N.makeHexColor(...a);if(m<0||A<0||m+s>g.width||A+i>g.height){const w=this.cachedCanvases.getCanvas("maskExtension",s,i),_=w.context;_.drawImage(g,-m,-A),_.globalCompositeOperation="destination-atop",_.fillStyle=v,_.fillRect(0,0,s,i),_.globalCompositeOperation="source-over",g=w.canvas,m=A=0}else{t.save(),t.globalAlpha=1,t.setTransform(1,0,0,1,0,0);const w=new Path2D;w.rect(m,A,s,i),t.clip(w),t.globalCompositeOperation="destination-atop",t.fillStyle=v,t.fillRect(m,A,s,i),t.restore()}}e.save(),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0),r==="Alpha"&&o?e.filter=this.filterFactory.addAlphaFilter(o):r==="Luminosity"&&(e.filter=this.filterFactory.addLuminosityFilter(o));const y=new Path2D;y.rect(l,h,s,i),e.clip(y),e.globalCompositeOperation="destination-in",e.drawImage(g,m,A,s,i,l,h,s,i),e.restore()}save(){this.inSMaskMode?(po(this.ctx,this.suspendedCtx),this.suspendedCtx.save()):this.ctx.save();const t=this.current;this.stateStack.push(t),this.current=t.clone()}restore(){this.stateStack.length===0&&this.inSMaskMode&&this.endSMaskMode(),this.stateStack.length!==0&&(this.current=this.stateStack.pop(),this.inSMaskMode?(this.suspendedCtx.restore(),po(this.suspendedCtx,this.ctx)):this.ctx.restore(),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}transform(t,e,s,i,r,a){this.ctx.transform(t,e,s,i,r,a),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(t,e,s){const i=this.ctx,r=this.current;let a=r.x,o=r.y,l,h;const c=at(i),f=c[0]===0&&c[3]===0||c[1]===0&&c[2]===0,g=f?s.slice(0):null;for(let m=0,A=0,y=t.length;mHp&&(h=Hp),this.current.fontSizeScale=e/h,this.ctx.font=`${l} ${o} ${h}px ${a}`}setTextRenderingMode(t){this.current.textRenderingMode=t}setTextRise(t){this.current.textRise=t}moveText(t,e){this.current.x=this.current.lineX+=t,this.current.y=this.current.lineY+=e}setLeadingMoveText(t,e){this.setLeading(-e),this.moveText(t,e)}setTextMatrix(t,e,s,i,r,a){this.current.textMatrix=[t,e,s,i,r,a],this.current.textMatrixScale=Math.hypot(t,e),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(t,e,s,i,r){const a=this.ctx,o=this.current,l=o.font,h=o.textRenderingMode,c=o.fontSize/o.fontSizeScale,f=h&Nt.FILL_STROKE_MASK,g=!!(h&Nt.ADD_TO_PATH_FLAG),m=o.patternFill&&!l.missingFile,A=o.patternStroke&&!l.missingFile;let y;if((l.disableFontFace||g||m||A)&&(y=l.getPathGenerator(this.commonObjs,t)),l.disableFontFace||m||A){if(a.save(),a.translate(e,s),a.scale(c,-c),f===Nt.FILL||f===Nt.FILL_STROKE)if(i){const v=a.getTransform();a.setTransform(...i),a.fill(b(this,Ml,xf).call(this,y,v,i))}else a.fill(y);if(f===Nt.STROKE||f===Nt.FILL_STROKE)if(r){const v=a.getTransform();a.setTransform(...r),a.stroke(b(this,Ml,xf).call(this,y,v,r))}else a.lineWidth/=c,a.stroke(y);a.restore()}else(f===Nt.FILL||f===Nt.FILL_STROKE)&&a.fillText(t,e,s),(f===Nt.STROKE||f===Nt.FILL_STROKE)&&a.strokeText(t,e,s);g&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:at(a),x:e,y:s,fontSize:c,path:y})}get isFontSubpixelAAEnabled(){const{context:t}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);t.scale(1.5,1),t.fillText("I",0,10);const e=t.getImageData(0,0,10,10).data;let s=!1;for(let i=3;i0&&e[i]<255){s=!0;break}return q(this,"isFontSubpixelAAEnabled",s)}showText(t){const e=this.current,s=e.font;if(s.isType3Font)return this.showType3Text(t);const i=e.fontSize;if(i===0)return;const r=this.ctx,a=e.fontSizeScale,o=e.charSpacing,l=e.wordSpacing,h=e.fontDirection,c=e.textHScale*h,f=t.length,g=s.vertical,m=g?1:-1,A=s.defaultVMetrics,y=i*e.fontMatrix[0],v=e.textRenderingMode===Nt.FILL&&!s.disableFontFace&&!e.patternFill;r.save(),r.transform(...e.textMatrix),r.translate(e.x,e.y+e.textRise),h>0?r.scale(c,-1):r.scale(c,1);let w,_;if(e.patternFill){r.save();const x=e.fillColor.getPattern(r,this,Ye(r),Vt.FILL);w=at(r),r.restore(),r.fillStyle=x}if(e.patternStroke){r.save();const x=e.strokeColor.getPattern(r,this,Ye(r),Vt.STROKE);_=at(r),r.restore(),r.strokeStyle=x}let E=e.lineWidth;const S=e.textMatrixScale;if(S===0||E===0){const x=e.textRenderingMode&Nt.FILL_STROKE_MASK;(x===Nt.STROKE||x===Nt.FILL_STROKE)&&(E=this.getSinglePixelWidth())}else E/=S;if(a!==1&&(r.scale(a,a),E/=a),r.lineWidth=E,s.isInvalidPDFjsFont){const x=[];let R=0;for(const D of t)x.push(D.unicode),R+=D.width;r.fillText(x.join(""),0,0),e.x+=R*y*c,r.restore(),this.compose();return}let C=0,T;for(T=0;T0){const P=r.measureText(V).width*1e3/i*a;if(Gnew Sp(a,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};e=new Sf(t,s,this.ctx,r,i)}else e=this._getPattern(t[1],t[2]);return e}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments),this.current.patternStroke=!0}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(t,e,s){this.ctx.strokeStyle=this.current.strokeColor=N.makeHexColor(t,e,s),this.current.patternStroke=!1}setStrokeTransparent(){this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(t,e,s){this.ctx.fillStyle=this.current.fillColor=N.makeHexColor(t,e,s),this.current.patternFill=!1}setFillTransparent(){this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(t,e=null){let s;return this.cachedPatterns.has(t)?s=this.cachedPatterns.get(t):(s=uA(this.getObject(t)),this.cachedPatterns.set(t,s)),e&&(s.matrix=e),s}shadingFill(t){if(!this.contentVisible)return;const e=this.ctx;this.save();const s=this._getPattern(t);e.fillStyle=s.getPattern(e,this,Ye(e),Vt.SHADING);const i=Ye(e);if(i){const{width:r,height:a}=e.canvas,[o,l,h,c]=N.getAxialAlignedBoundingBox([0,0,r,a],i);this.ctx.fillRect(o,l,h-o,c-l)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){st("Should not call beginInlineImage")}beginImageData(){st("Should not call beginImageData")}paintFormXObjectBegin(t,e){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),t&&this.transform(...t),this.baseTransform=at(this.ctx),e)){const s=e[2]-e[0],i=e[3]-e[1];this.ctx.rect(e[0],e[1],s,i),this.current.updateRectMinMax(at(this.ctx),e),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(t){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const e=this.ctx;t.isolated||Ru("TODO: Support non-isolated groups."),t.knockout&&j("Knockout groups not supported.");const s=at(e);if(t.matrix&&e.transform(...t.matrix),!t.bbox)throw new Error("Bounding box is required.");let i=N.getAxialAlignedBoundingBox(t.bbox,at(e));const r=[0,0,e.canvas.width,e.canvas.height];i=N.intersect(i,r)||[0,0,0,0];const a=Math.floor(i[0]),o=Math.floor(i[1]),l=Math.max(Math.ceil(i[2])-a,1),h=Math.max(Math.ceil(i[3])-o,1);this.current.startNewPathAndClipBox([0,0,l,h]);let c="groupAt"+this.groupLevel;t.smask&&(c+="_smask_"+this.smaskCounter++%2);const f=this.cachedCanvases.getCanvas(c,l,h),g=f.context;g.translate(-a,-o),g.transform(...s),t.smask?this.smaskStack.push({canvas:f.canvas,context:g,offsetX:a,offsetY:o,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null}):(e.setTransform(1,0,0,1,0,0),e.translate(a,o),e.save()),po(e,g),this.ctx=g,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(e),this.groupLevel++}endGroup(t){if(!this.contentVisible)return;this.groupLevel--;const e=this.ctx,s=this.groupStack.pop();if(this.ctx=s,this.ctx.imageSmoothingEnabled=!1,t.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();const i=at(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...i);const r=N.getAxialAlignedBoundingBox([0,0,e.canvas.width,e.canvas.height],i);this.ctx.drawImage(e.canvas,0,0),this.ctx.restore(),this.compose(r)}}beginAnnotation(t,e,s,i,r){if(b(this,Rl,Ef).call(this),sc(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),e){const a=e[2]-e[0],o=e[3]-e[1];if(r&&this.annotationCanvasMap){s=s.slice(),s[4]-=e[0],s[5]-=e[1],e=e.slice(),e[0]=e[1]=0,e[2]=a,e[3]=o;const[l,h]=N.singularValueDecompose2dScale(at(this.ctx)),{viewportScale:c}=this,f=Math.ceil(a*this.outputScaleX*c),g=Math.ceil(o*this.outputScaleY*c);this.annotationCanvas=this.canvasFactory.create(f,g);const{canvas:m,context:A}=this.annotationCanvas;this.annotationCanvasMap.set(t,m),this.annotationCanvas.savedCtx=this.ctx,this.ctx=A,this.ctx.save(),this.ctx.setTransform(l,0,0,-h,0,o*h),sc(this.ctx)}else sc(this.ctx),this.endPath(),this.ctx.rect(e[0],e[1],a,o),this.ctx.clip(),this.ctx.beginPath()}this.current=new zp(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...s),this.transform(...i)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),b(this,kl,Cf).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(t){if(!this.contentVisible)return;const e=t.count;t=this.getObject(t.data,t),t.count=e;const s=this.ctx,i=this.processingType3;if(i&&(i.compiled===void 0&&(i.compiled=bA(t)),i.compiled)){i.compiled(s);return}const r=this._createMaskCanvas(t),a=r.canvas;s.save(),s.setTransform(1,0,0,1,0,0),s.drawImage(a,r.offsetX,r.offsetY),s.restore(),this.compose()}paintImageMaskXObjectRepeat(t,e,s=0,i=0,r,a){if(!this.contentVisible)return;t=this.getObject(t.data,t);const o=this.ctx;o.save();const l=at(o);o.transform(e,s,i,r,0,0);const h=this._createMaskCanvas(t);o.setTransform(1,0,0,1,h.offsetX-l[4],h.offsetY-l[5]);for(let c=0,f=a.length;cf?c/f:1,o=h>f?h/f:1}}this._cachedScaleForStroking[0]=a,this._cachedScaleForStroking[1]=o}return this._cachedScaleForStroking}rescaleAndStroke(t){const{ctx:e}=this,{lineWidth:s}=this.current,[i,r]=this.getScaleForStroking();if(e.lineWidth=s||1,i===1&&r===1){e.stroke();return}const a=e.getLineDash();if(t&&e.save(),e.scale(i,r),a.length>0){const o=Math.max(i,r);e.setLineDash(a.map(l=>l/o)),e.lineDashOffset/=o}e.stroke(),t&&e.restore()}isContentVisible(){for(let t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}};Rl=new WeakSet,Ef=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},kl=new WeakSet,Cf=function(){if(this.pageColors){const t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(t!=="none"){const e=this.ctx.filter;this.ctx.filter=t,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=e}}},Ml=new WeakSet,xf=function(t,e,s){const i=new Path2D;return i.addPath(t,new DOMMatrix(s).invertSelf().multiplySelf(e)),i};let Mr=Sp;for(const d in Ie)Mr.prototype[d]!==void 0&&(Mr.prototype[Ie[d]]=Mr.prototype[d]);var Il,Ll;class Qs{static get workerPort(){return n(this,Il)}static set workerPort(t){if(!(typeof Worker!="undefined"&&t instanceof Worker)&&t!==null)throw new Error("Invalid `workerPort` type.");p(this,Il,t)}static get workerSrc(){return n(this,Ll)}static set workerSrc(t){if(typeof t!="string")throw new Error("Invalid `workerSrc` type.");p(this,Ll,t)}}Il=new WeakMap,Ll=new WeakMap,u(Qs,Il,null),u(Qs,Ll,"");var Tn,Dl;class vA{constructor({parsedData:t,rawData:e}){u(this,Tn,void 0);u(this,Dl,void 0);p(this,Tn,t),p(this,Dl,e)}getRaw(){return n(this,Dl)}get(t){var e;return(e=n(this,Tn).get(t))!=null?e:null}getAll(){return dp(n(this,Tn))}has(t){return n(this,Tn).has(t)}}Tn=new WeakMap,Dl=new WeakMap;const Er=Symbol("INTERNAL");var Fl,Nl,Ol,ra;class _A{constructor(t,{name:e,intent:s,usage:i,rbGroups:r}){u(this,Fl,!1);u(this,Nl,!1);u(this,Ol,!1);u(this,ra,!0);p(this,Fl,!!(t&ye.DISPLAY)),p(this,Nl,!!(t&ye.PRINT)),this.name=e,this.intent=s,this.usage=i,this.rbGroups=r}get visible(){if(n(this,Ol))return n(this,ra);if(!n(this,ra))return!1;const{print:t,view:e}=this.usage;return n(this,Fl)?(e==null?void 0:e.viewState)!=="OFF":n(this,Nl)?(t==null?void 0:t.printState)!=="OFF":!0}_setVisible(t,e,s=!1){t!==Er&&st("Internal method `_setVisible` called."),p(this,Ol,s),p(this,ra,e)}}Fl=new WeakMap,Nl=new WeakMap,Ol=new WeakMap,ra=new WeakMap;var Ai,Z,aa,oa,Bl,Tf;class SA{constructor(t,e=ye.DISPLAY){u(this,Bl);u(this,Ai,null);u(this,Z,new Map);u(this,aa,null);u(this,oa,null);if(this.renderingIntent=e,this.name=null,this.creator=null,t!==null){this.name=t.name,this.creator=t.creator,p(this,oa,t.order);for(const s of t.groups)n(this,Z).set(s.id,new _A(e,s));if(t.baseState==="OFF")for(const s of n(this,Z).values())s._setVisible(Er,!1);for(const s of t.on)n(this,Z).get(s)._setVisible(Er,!0);for(const s of t.off)n(this,Z).get(s)._setVisible(Er,!1);p(this,aa,this.getHash())}}isVisible(t){if(n(this,Z).size===0)return!0;if(!t)return Ru("Optional content group not defined."),!0;if(t.type==="OCG")return n(this,Z).has(t.id)?n(this,Z).get(t.id).visible:(j(`Optional content group not found: ${t.id}`),!0);if(t.type==="OCMD"){if(t.expression)return b(this,Bl,Tf).call(this,t.expression);if(!t.policy||t.policy==="AnyOn"){for(const e of t.ids){if(!n(this,Z).has(e))return j(`Optional content group not found: ${e}`),!0;if(n(this,Z).get(e).visible)return!0}return!1}else if(t.policy==="AllOn"){for(const e of t.ids){if(!n(this,Z).has(e))return j(`Optional content group not found: ${e}`),!0;if(!n(this,Z).get(e).visible)return!1}return!0}else if(t.policy==="AnyOff"){for(const e of t.ids){if(!n(this,Z).has(e))return j(`Optional content group not found: ${e}`),!0;if(!n(this,Z).get(e).visible)return!0}return!1}else if(t.policy==="AllOff"){for(const e of t.ids){if(!n(this,Z).has(e))return j(`Optional content group not found: ${e}`),!0;if(n(this,Z).get(e).visible)return!1}return!0}return j(`Unknown optional content policy ${t.policy}.`),!0}return j(`Unknown group type ${t.type}.`),!0}setVisibility(t,e=!0,s=!0){var r;const i=n(this,Z).get(t);if(!i){j(`Optional content group not found: ${t}`);return}if(s&&e&&i.rbGroups.length)for(const a of i.rbGroups)for(const o of a)o!==t&&((r=n(this,Z).get(o))==null||r._setVisible(Er,!1,!0));i._setVisible(Er,!!e,!0),p(this,Ai,null)}setOCGState({state:t,preserveRB:e}){let s;for(const i of t){switch(i){case"ON":case"OFF":case"Toggle":s=i;continue}const r=n(this,Z).get(i);if(r)switch(s){case"ON":this.setVisibility(i,!0,e);break;case"OFF":this.setVisibility(i,!1,e);break;case"Toggle":this.setVisibility(i,!r.visible,e);break}}p(this,Ai,null)}get hasInitialVisibility(){return n(this,aa)===null||this.getHash()===n(this,aa)}getOrder(){return n(this,Z).size?n(this,oa)?n(this,oa).slice():[...n(this,Z).keys()]:null}getGroups(){return n(this,Z).size>0?dp(n(this,Z)):null}getGroup(t){return n(this,Z).get(t)||null}getHash(){if(n(this,Ai)!==null)return n(this,Ai);const t=new Ig;for(const[e,s]of n(this,Z))t.update(`${e}:${s.visible}`);return p(this,Ai,t.hexdigest())}}Ai=new WeakMap,Z=new WeakMap,aa=new WeakMap,oa=new WeakMap,Bl=new WeakSet,Tf=function(t){const e=t.length;if(e<2)return!0;const s=t[0];for(let i=1;i0){const l=r instanceof Uint8Array&&r.byteLength===r.buffer.byteLength?r.buffer:new Uint8Array(r).buffer;this._queuedChunks.push(l)}this._pdfDataRangeTransport=t,this._isStreamingSupported=!s,this._isRangeSupported=!e,this._contentLength=i,this._fullRequestReader=null,this._rangeReaders=[],t.addRangeListener((l,h)=>{this._onReceiveData({begin:l,chunk:h})}),t.addProgressListener((l,h)=>{this._onProgress({loaded:l,total:h})}),t.addProgressiveReadListener(l=>{this._onReceiveData({chunk:l})}),t.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),t.transportReady()}_onReceiveData({begin:t,chunk:e}){const s=e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer;if(t===void 0)this._fullRequestReader?this._fullRequestReader._enqueue(s):this._queuedChunks.push(s);else{const i=this._rangeReaders.some(function(r){return r._begin!==t?!1:(r._enqueue(s),!0)});At(i,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var t,e;return(e=(t=this._fullRequestReader)==null?void 0:t._loaded)!=null?e:0}_onProgress(t){var e,s,i,r;t.total===void 0?(s=(e=this._rangeReaders[0])==null?void 0:e.onProgress)==null||s.call(e,{loaded:t.loaded}):(r=(i=this._fullRequestReader)==null?void 0:i.onProgress)==null||r.call(i,{loaded:t.loaded,total:t.total})}_onProgressiveDone(){var t;(t=this._fullRequestReader)==null||t.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(t){const e=this._rangeReaders.indexOf(t);e>=0&&this._rangeReaders.splice(e,1)}getFullReader(){At(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const t=this._queuedChunks;return this._queuedChunks=null,new CA(this,t,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new xA(this,t,e);return this._pdfDataRangeTransport.requestDataRange(t,e),this._rangeReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeReaders.slice(0))s.cancel(t);this._pdfDataRangeTransport.abort()}}class CA{constructor(t,e,s=!1,i=null){this._stream=t,this._done=s||!1,this._filename=pp(i)?i:null,this._queuedChunks=e||[],this._loaded=0;for(const r of this._queuedChunks)this._loaded+=r.byteLength;this._requests=[],this._headersReady=Promise.resolve(),t._fullRequestReader=this,this.onProgress=null}_enqueue(t){this._done||(this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunks.push(t),this._loaded+=t.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}read(){return L(this,null,function*(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise})}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class xA{constructor(t,e,s){this._stream=t,this._begin=e,this._end=s,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(t){if(!this._done){if(this._requests.length===0)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}read(){return L(this,null,function*(){if(this._queuedChunk){const e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise})}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function TA(d){let t=!0,e=s("filename\\*","i").exec(d);if(e){e=e[1];let c=o(e);return c=unescape(c),c=l(c),c=h(c),r(c)}if(e=a(d),e){const c=h(e);return r(c)}if(e=s("filename","i").exec(d),e){e=e[1];let c=o(e);return c=h(c),r(c)}function s(c,f){return new RegExp("(?:^|;)\\s*"+c+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',f)}function i(c,f){if(c){if(!/^[\x00-\xFF]+$/.test(f))return f;try{const g=new TextDecoder(c,{fatal:!0}),m=ku(f);f=g.decode(m),t=!1}catch(g){}}return f}function r(c){return t&&/[\x80-\xff]/.test(c)&&(c=i("utf-8",c),t&&(c=i("iso-8859-1",c))),c}function a(c){const f=[];let g;const m=s("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(g=m.exec(c))!==null;){let[,y,v,w]=g;if(y=parseInt(y,10),y in f){if(y===0)break;continue}f[y]=[v,w]}const A=[];for(let y=0;y{if(t._responseOrigin=Lu(r.url),!Yg(r.status))throw Du(r.status,i);this._reader=r.body.getReader(),this._headersCapability.resolve();const a=r.headers,{allowRangeRequests:o,suggestedLength:l}=Xg({responseHeaders:a,isHttp:t.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=o,this._contentLength=l||this._contentLength,this._filename=qg(a),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new $i("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return L(this,null,function*(){var s;yield this._headersCapability.promise;const{value:t,done:e}=yield this._reader.read();return e?{value:t,done:e}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:Qg(t),done:!1})})}cancel(t){var e;(e=this._reader)==null||e.cancel(t),this._abortController.abort()}}class RA{constructor(t,e,s){this._stream=t,this._reader=null,this._loaded=0;const i=t.source;this._withCredentials=i.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!i.disableStream,this._abortController=new AbortController;const r=new Headers(t.headers);r.append("Range",`bytes=${e}-${s-1}`);const a=i.url;fetch(a,Kg(r,this._withCredentials,this._abortController)).then(o=>{const l=Lu(o.url);if(l!==t._responseOrigin)throw new Error(`Expected range response-origin "${l}" to match "${t._responseOrigin}".`);if(!Yg(o.status))throw Du(o.status,a);this._readCapability.resolve(),this._reader=o.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}read(){return L(this,null,function*(){var s;yield this._readCapability.promise;const{value:t,done:e}=yield this._reader.read();return e?{value:t,done:e}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:Qg(t),done:!1})})}cancel(t){var e;(e=this._reader)==null||e.cancel(t),this._abortController.abort()}}const Xu=200,qu=206;function kA(d){const t=d.response;return typeof t!="string"?t:ku(t).buffer}class MA{constructor({url:t,httpHeaders:e,withCredentials:s}){H(this,"_responseOrigin",null);this.url=t,this.isHttp=/^https?:/i.test(t),this.headers=Wg(this.isHttp,e),this.withCredentials=s||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}request(t){const e=new XMLHttpRequest,s=this.currXhrId++,i=this.pendingRequests[s]={xhr:e};e.open("GET",this.url),e.withCredentials=this.withCredentials;for(const[r,a]of this.headers)e.setRequestHeader(r,a);return this.isHttp&&"begin"in t&&"end"in t?(e.setRequestHeader("Range",`bytes=${t.begin}-${t.end-1}`),i.expectedStatus=qu):i.expectedStatus=Xu,e.responseType="arraybuffer",At(t.onError,"Expected `onError` callback to be provided."),e.onerror=()=>{t.onError(e.status)},e.onreadystatechange=this.onStateChange.bind(this,s),e.onprogress=this.onProgress.bind(this,s),i.onHeadersReceived=t.onHeadersReceived,i.onDone=t.onDone,i.onError=t.onError,i.onProgress=t.onProgress,e.send(null),s}onProgress(t,e){var i;const s=this.pendingRequests[t];s&&((i=s.onProgress)==null||i.call(s,e))}onStateChange(t,e){const s=this.pendingRequests[t];if(!s)return;const i=s.xhr;if(i.readyState>=2&&s.onHeadersReceived&&(s.onHeadersReceived(),delete s.onHeadersReceived),i.readyState!==4||!(t in this.pendingRequests))return;if(delete this.pendingRequests[t],i.status===0&&this.isHttp){s.onError(i.status);return}const r=i.status||Xu;if(!(r===Xu&&s.expectedStatus===qu)&&r!==s.expectedStatus){s.onError(i.status);return}const o=kA(i);if(r===qu){const l=i.getResponseHeader("Content-Range"),h=/bytes (\d+)-(\d+)\/(\d+)/.exec(l);h?s.onDone({begin:parseInt(h[1],10),chunk:o}):(j('Missing or invalid "Content-Range" header.'),s.onError(0))}else o?s.onDone({begin:0,chunk:o}):s.onError(i.status)}getRequestXhr(t){return this.pendingRequests[t].xhr}isPendingRequest(t){return t in this.pendingRequests}abortRequest(t){const e=this.pendingRequests[t].xhr;delete this.pendingRequests[t],e.abort()}}class IA{constructor(t){this._source=t,this._manager=new MA(t),this._rangeChunkSize=t.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(t){const e=this._rangeRequestReaders.indexOf(t);e>=0&&this._rangeRequestReaders.splice(e,1)}getFullReader(){return At(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new LA(this._manager,this._source),this._fullRequestReader}getRangeReader(t,e){const s=new DA(this._manager,t,e);return s.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class LA{constructor(t,e){this._manager=t,this._url=e.url,this._fullRequestId=t.request({onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._headersCapability=Promise.withResolvers(),this._disableRange=e.disableRange||!1,this._contentLength=e.length,this._rangeChunkSize=e.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){const t=this._fullRequestId,e=this._manager.getRequestXhr(t);this._manager._responseOrigin=Lu(e.responseURL);const s=e.getAllResponseHeaders(),i=new Headers(s?s.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(o=>{const[l,...h]=o.split(": ");return[l,h.join(": ")]}):[]),{allowRangeRequests:r,suggestedLength:a}=Xg({responseHeaders:i,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});r&&(this._isRangeSupported=!0),this._contentLength=a||this._contentLength,this._filename=qg(i),this._isRangeSupported&&this._manager.abortRequest(t),this._headersCapability.resolve()}_onDone(t){if(t&&(this._requests.length>0?this._requests.shift().resolve({value:t.chunk,done:!1}):this._cachedChunks.push(t.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(t){this._storedError=Du(t,this._url),this._headersCapability.reject(this._storedError);for(const e of this._requests)e.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(t){var e;(e=this.onProgress)==null||e.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}read(){return L(this,null,function*(){if(yield this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise})}cancel(t){this._done=!0,this._headersCapability.reject(t);for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class DA{constructor(t,e,s){this._manager=t,this._url=t.url,this._requestId=t.request({begin:e,end:s,onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_onHeadersReceived(){var e;const t=Lu((e=this._manager.getRequestXhr(this._requestId))==null?void 0:e.responseURL);t!==this._manager._responseOrigin&&(this._storedError=new Error(`Expected range response-origin "${t}" to match "${this._manager._responseOrigin}".`),this._onError(0))}_close(){var t;(t=this.onClosed)==null||t.call(this,this)}_onDone(t){const e=t.chunk;this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunk=e,this._done=!0;for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(t){var e;(e=this._storedError)!=null||(this._storedError=Du(t,this._url));for(const s of this._requests)s.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(t){var e;this.isStreamingSupported||(e=this.onProgress)==null||e.call(this,{loaded:t.loaded})}get isStreamingSupported(){return!1}read(){return L(this,null,function*(){if(this._storedError)throw this._storedError;if(this._queuedChunk!==null){const e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise})}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}const FA=/^[a-z][a-z0-9\-+.]+:/i;function NA(d){if(FA.test(d))return new URL(d);const t=process.getBuiltinModule("url");return new URL(t.pathToFileURL(d))}class OA{constructor(t){this.source=t,this.url=NA(t.url),At(this.url.protocol==="file:","PDFNodeStream only supports file:// URLs."),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var t,e;return(e=(t=this._fullRequestReader)==null?void 0:t._loaded)!=null?e:0}getFullReader(){return At(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=new BA(this),this._fullRequestReader}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new HA(this,t,e);return this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class BA{constructor(t){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null;const e=t.source;this._contentLength=e.length,this._loaded=0,this._filename=null,this._disableRange=e.disableRange||!1,this._rangeChunkSize=e.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!e.disableStream,this._isRangeSupported=!e.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers();const s=process.getBuiltinModule("fs");s.promises.lstat(this._url).then(i=>{this._contentLength=i.size,this._setReadableStream(s.createReadStream(this._url)),this._headersCapability.resolve()},i=>{i.code==="ENOENT"&&(i=new Fo(`Missing PDF "${this._url}".`)),this._storedError=i,this._headersCapability.reject(i)})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}read(){return L(this,null,function*(){var s;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(t).buffer,done:!1})})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",e=>{this._error(e)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new $i("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class HA{constructor(t,e,s){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const i=t.source;this._isStreamingSupported=!i.disableStream;const r=process.getBuiltinModule("fs");this._setReadableStream(r.createReadStream(this._url,{start:e,end:s-1}))}get isStreamingSupported(){return this._isStreamingSupported}read(){return L(this,null,function*(){var s;if(yield this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:new Uint8Array(t).buffer,done:!1})})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",e=>{this._error(e)}),this._storedError&&this._readableStream.destroy(this._storedError)}}const $A=1e5,Jt=30,GA=.8;var Qp,yi,se,Hl,$l,Pn,Is,Gl,zl,Rn,la,ha,wi,ca,Vl,da,kn,Ul,jl,Mn,In,Wl,vi,ua,Pd,Jg,Rd,Zg,Xl,Pf,fa,gc,ql,Rf,kd,tm,Md,em;const ut=class ut{constructor({textContentSource:t,container:e,viewport:s}){u(this,Pd);u(this,Rd);u(this,Xl);u(this,yi,Promise.withResolvers());u(this,se,null);u(this,Hl,!1);u(this,$l,!!((Qp=globalThis.FontInspector)!=null&&Qp.enabled));u(this,Pn,null);u(this,Is,null);u(this,Gl,0);u(this,zl,0);u(this,Rn,null);u(this,la,null);u(this,ha,0);u(this,wi,0);u(this,ca,Object.create(null));u(this,Vl,[]);u(this,da,null);u(this,kn,[]);u(this,Ul,new WeakMap);u(this,jl,null);var l;if(t instanceof ReadableStream)p(this,da,t);else if(typeof t=="object")p(this,da,new ReadableStream({start(h){h.enqueue(t),h.close()}}));else throw new Error('No "textContentSource" parameter specified.');p(this,se,p(this,la,e)),p(this,wi,s.scale*(globalThis.devicePixelRatio||1)),p(this,ha,s.rotation),p(this,Is,{div:null,properties:null,ctx:null});const{pageWidth:i,pageHeight:r,pageX:a,pageY:o}=s.rawDims;p(this,jl,[1,0,0,-1,-a,o+r]),p(this,zl,i),p(this,Gl,r),b(l=ut,kd,tm).call(l),pr(e,s),n(this,yi).promise.finally(()=>{n(ut,ua).delete(this),p(this,Is,null),p(this,ca,null)}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:t,isFirefox:e}=Qt.platform;return q(this,"fontFamilyMap",new Map([["sans-serif",`${t&&e?"Calibri, ":""}sans-serif`],["monospace",`${t&&e?"Lucida Console, ":""}monospace`]]))}render(){const t=()=>{n(this,Rn).read().then(({value:e,done:s})=>{var i;if(s){n(this,yi).resolve();return}(i=n(this,Pn))!=null||p(this,Pn,e.lang),Object.assign(n(this,ca),e.styles),b(this,Pd,Jg).call(this,e.items),t()},n(this,yi).reject)};return p(this,Rn,n(this,da).getReader()),n(ut,ua).add(this),t(),n(this,yi).promise}update({viewport:t,onBefore:e=null}){var r;const s=t.scale*(globalThis.devicePixelRatio||1),i=t.rotation;if(i!==n(this,ha)&&(e==null||e(),p(this,ha,i),pr(n(this,la),{rotation:i})),s!==n(this,wi)){e==null||e(),p(this,wi,s);const a={div:null,properties:null,ctx:b(r=ut,fa,gc).call(r,n(this,Pn))};for(const o of n(this,kn))a.properties=n(this,Ul).get(o),a.div=o,b(this,Xl,Pf).call(this,a)}}cancel(){var e;const t=new $i("TextLayer task cancelled.");(e=n(this,Rn))==null||e.cancel(t).catch(()=>{}),p(this,Rn,null),n(this,yi).reject(t)}get textDivs(){return n(this,kn)}get textContentItemsStr(){return n(this,Vl)}static cleanup(){if(!(n(this,ua).size>0)){n(this,Mn).clear();for(const{canvas:t}of n(this,In).values())t.remove();n(this,In).clear()}}};yi=new WeakMap,se=new WeakMap,Hl=new WeakMap,$l=new WeakMap,Pn=new WeakMap,Is=new WeakMap,Gl=new WeakMap,zl=new WeakMap,Rn=new WeakMap,la=new WeakMap,ha=new WeakMap,wi=new WeakMap,ca=new WeakMap,Vl=new WeakMap,da=new WeakMap,kn=new WeakMap,Ul=new WeakMap,jl=new WeakMap,Mn=new WeakMap,In=new WeakMap,Wl=new WeakMap,vi=new WeakMap,ua=new WeakMap,Pd=new WeakSet,Jg=function(t){var i,r,a;if(n(this,Hl))return;(a=(r=n(this,Is)).ctx)!=null||(r.ctx=b(i=ut,fa,gc).call(i,n(this,Pn)));const e=n(this,kn),s=n(this,Vl);for(const o of t){if(e.length>$A){j("Ignoring additional textDivs for performance reasons."),p(this,Hl,!0);return}if(o.str===void 0){if(o.type==="beginMarkedContentProps"||o.type==="beginMarkedContent"){const l=n(this,se);p(this,se,document.createElement("span")),n(this,se).classList.add("markedContent"),o.id!==null&&n(this,se).setAttribute("id",`${o.id}`),l.append(n(this,se))}else o.type==="endMarkedContent"&&p(this,se,n(this,se).parentNode);continue}s.push(o.str),b(this,Rd,Zg).call(this,o)}},Rd=new WeakSet,Zg=function(t){var y;const e=document.createElement("span"),s={angle:0,canvasWidth:0,hasText:t.str!=="",hasEOL:t.hasEOL,fontSize:0};n(this,kn).push(e);const i=N.transform(n(this,jl),t.transform);let r=Math.atan2(i[1],i[0]);const a=n(this,ca)[t.fontName];a.vertical&&(r+=Math.PI/2);let o=n(this,$l)&&a.fontSubstitution||a.fontFamily;o=ut.fontFamilyMap.get(o)||o;const l=Math.hypot(i[2],i[3]),h=l*b(y=ut,Md,em).call(y,o,n(this,Pn));let c,f;r===0?(c=i[4],f=i[5]-h):(c=i[4]+h*Math.sin(r),f=i[5]-h*Math.cos(r));const g="calc(var(--scale-factor)*",m=e.style;n(this,se)===n(this,la)?(m.left=`${(100*c/n(this,zl)).toFixed(2)}%`,m.top=`${(100*f/n(this,Gl)).toFixed(2)}%`):(m.left=`${g}${c.toFixed(2)}px)`,m.top=`${g}${f.toFixed(2)}px)`),m.fontSize=`${g}${(n(ut,vi)*l).toFixed(2)}px)`,m.fontFamily=o,s.fontSize=l,e.setAttribute("role","presentation"),e.textContent=t.str,e.dir=t.dir,n(this,$l)&&(e.dataset.fontName=a.fontSubstitutionLoadedName||t.fontName),r!==0&&(s.angle=r*(180/Math.PI));let A=!1;if(t.str.length>1)A=!0;else if(t.str!==" "&&t.transform[0]!==t.transform[3]){const v=Math.abs(t.transform[0]),w=Math.abs(t.transform[3]);v!==w&&Math.max(v,w)/Math.min(v,w)>1.5&&(A=!0)}if(A&&(s.canvasWidth=a.vertical?t.height:t.width),n(this,Ul).set(e,s),n(this,Is).div=e,n(this,Is).properties=s,b(this,Xl,Pf).call(this,n(this,Is)),s.hasText&&n(this,se).append(e),s.hasEOL){const v=document.createElement("br");v.setAttribute("role","presentation"),n(this,se).append(v)}},Xl=new WeakSet,Pf=function(t){var o;const{div:e,properties:s,ctx:i}=t,{style:r}=e;let a="";if(n(ut,vi)>1&&(a=`scale(${1/n(ut,vi)})`),s.canvasWidth!==0&&s.hasText){const{fontFamily:l}=r,{canvasWidth:h,fontSize:c}=s;b(o=ut,ql,Rf).call(o,i,c*n(this,wi),l);const{width:f}=i.measureText(e.textContent);f>0&&(a=`scaleX(${h*n(this,wi)/f}) ${a}`)}s.angle!==0&&(a=`rotate(${s.angle}deg) ${a}`),a.length>0&&(r.transform=a)},fa=new WeakSet,gc=function(t=null){let e=n(this,In).get(t||(t=""));if(!e){const s=document.createElement("canvas");s.className="hiddenCanvasElement",s.lang=t,document.body.append(s),e=s.getContext("2d",{alpha:!1,willReadFrequently:!0}),n(this,In).set(t,e),n(this,Wl).set(e,{size:0,family:""})}return e},ql=new WeakSet,Rf=function(t,e,s){const i=n(this,Wl).get(t);e===i.size&&s===i.family||(t.font=`${e}px ${s}`,i.size=e,i.family=s)},kd=new WeakSet,tm=function(){if(n(this,vi)!==null)return;const t=document.createElement("div");t.style.opacity=0,t.style.lineHeight=1,t.style.fontSize="1px",t.style.position="absolute",t.textContent="X",document.body.append(t),p(this,vi,t.getBoundingClientRect().height),t.remove()},Md=new WeakSet,em=function(t,e){const s=n(this,Mn).get(t);if(s)return s;const i=b(this,fa,gc).call(this,e);i.canvas.width=i.canvas.height=Jt,b(this,ql,Rf).call(this,i,Jt,t);const r=i.measureText("");let a=r.fontBoundingBoxAscent,o=Math.abs(r.fontBoundingBoxDescent);if(a){const c=a/(a+o);return n(this,Mn).set(t,c),i.canvas.width=i.canvas.height=0,c}i.strokeStyle="red",i.clearRect(0,0,Jt,Jt),i.strokeText("g",0,0);let l=i.getImageData(0,0,Jt,Jt).data;o=0;for(let c=l.length-1-3;c>=0;c-=4)if(l[c]>0){o=Math.ceil(c/4/Jt);break}i.clearRect(0,0,Jt,Jt),i.strokeText("A",0,Jt),l=i.getImageData(0,0,Jt,Jt).data,a=0;for(let c=0,f=l.length;c0){a=Jt-Math.floor(c/4/Jt);break}i.canvas.width=i.canvas.height=0;const h=a?a/(a+o):GA;return n(this,Mn).set(t,h),h},u(ut,fa),u(ut,ql),u(ut,kd),u(ut,Md),u(ut,Mn,new Map),u(ut,In,new Map),u(ut,Wl,new WeakMap),u(ut,vi,null),u(ut,ua,new Set);let No=ut;class Oo{static textContent(t){const e=[],s={items:e,styles:Object.create(null)};function i(r){var l;if(!r)return;let a=null;const o=r.name;if(o==="#text")a=r.value;else if(Oo.shouldBuildText(o))(l=r==null?void 0:r.attributes)!=null&&l.textContent?a=r.attributes.textContent:r.value&&(a=r.value);else return;if(a!==null&&e.push({str:a}),!!r.children)for(const h of r.children)i(h)}return i(t),s}static shouldBuildText(t){return!(t==="textarea"||t==="input"||t==="option"||t==="select")}}const zA=65536,VA=100,UA=5e3,jA=Ut?rA:sA,WA=Ut?aA:$g,XA=Ut?nA:iA,qA=Ut?oA:Ug;function YA(d={}){var ke,ot;typeof d=="string"||d instanceof URL?d={url:d}:(d instanceof ArrayBuffer||ArrayBuffer.isView(d))&&(d={data:d});const t=new kf,{docId:e}=t,s=d.url?KA(d.url):null,i=d.data?QA(d.data):null,r=d.httpHeaders||null,a=d.withCredentials===!0,o=(ke=d.password)!=null?ke:null,l=d.range instanceof sm?d.range:null,h=Number.isInteger(d.rangeChunkSize)&&d.rangeChunkSize>0?d.rangeChunkSize:zA;let c=d.worker instanceof Ir?d.worker:null;const f=d.verbosity,g=typeof d.docBaseUrl=="string"&&!Iu(d.docBaseUrl)?d.docBaseUrl:null,m=typeof d.cMapUrl=="string"?d.cMapUrl:null,A=d.cMapPacked!==!1,y=d.CMapReaderFactory||WA,v=typeof d.standardFontDataUrl=="string"?d.standardFontDataUrl:null,w=d.StandardFontDataFactory||qA,_=d.stopAtErrors!==!0,E=Number.isInteger(d.maxImageSize)&&d.maxImageSize>-1?d.maxImageSize:-1,S=d.isEvalSupported!==!1,C=typeof d.isOffscreenCanvasSupported=="boolean"?d.isOffscreenCanvasSupported:!Ut,T=typeof d.isImageDecoderSupported=="boolean"?d.isImageDecoderSupported:!Ut&&(Qt.platform.isFirefox||!globalThis.chrome),x=Number.isInteger(d.canvasMaxAreaInBytes)?d.canvasMaxAreaInBytes:-1,R=typeof d.disableFontFace=="boolean"?d.disableFontFace:Ut,D=d.fontExtraProperties===!0,V=d.enableXfa===!0,$=d.ownerDocument||globalThis.document,I=d.disableRange===!0,O=d.disableStream===!0,G=d.disableAutoFetch===!0,it=d.pdfBug===!0,P=d.CanvasFactory||jA,B=d.FilterFactory||XA,dt=d.enableHWA===!0,re=l?l.length:(ot=d.length)!=null?ot:NaN,ae=typeof d.useSystemFonts=="boolean"?d.useSystemFonts:!Ut&&!R,yt=typeof d.useWorkerFetch=="boolean"?d.useWorkerFetch:y===$g&&w===Ug&&m&&v&&Ao(m,document.baseURI)&&Ao(v,document.baseURI),tt=null;Db(f);const Q={canvasFactory:new P({ownerDocument:$,enableHWA:dt}),filterFactory:new B({docId:e,ownerDocument:$}),cMapReaderFactory:yt?null:new y({baseUrl:m,isCompressed:A}),standardFontDataFactory:yt?null:new w({baseUrl:v})};if(!c){const co={verbosity:f,port:Qs.workerPort};c=co.port?Ir.fromPort(co):new Ir(co),t._worker=c}const Js={docId:e,apiVersion:"4.10.38",data:i,password:o,disableAutoFetch:G,rangeChunkSize:h,length:re,docBaseUrl:g,enableXfa:V,evaluatorOptions:{maxImageSize:E,disableFontFace:R,ignoreErrors:_,isEvalSupported:S,isOffscreenCanvasSupported:C,isImageDecoderSupported:T,canvasMaxAreaInBytes:x,fontExtraProperties:D,useSystemFonts:ae,cMapUrl:yt?m:null,standardFontDataUrl:yt?v:null}},ho={disableFontFace:R,fontExtraProperties:D,ownerDocument:$,pdfBug:it,styleElement:tt,loadingParams:{disableAutoFetch:G,enableXfa:V}};return c.promise.then(function(){if(t.destroyed)throw new Error("Loading aborted");if(c.destroyed)throw new Error("Worker was destroyed");const co=c.messageHandler.sendWithPromise("GetDocRequest",Js,i?[i.buffer]:null);let Fu;if(l)Fu=new EA(l,{disableRange:I,disableStream:O});else if(!i){if(!s)throw new Error("getDocument - no `url` parameter provided.");let Ar;if(Ut)if(Ao(s)){if(typeof fetch=="undefined"||typeof Response=="undefined"||!("body"in Response.prototype))throw new Error("getDocument - the Fetch API was disabled in Node.js, see `--no-experimental-fetch`.");Ar=Xp}else Ar=OA;else Ar=Ao(s)?Xp:IA;Fu=new Ar({url:s,length:re,httpHeaders:r,withCredentials:a,rangeChunkSize:h,disableRange:I,disableStream:O})}return co.then(Ar=>{if(t.destroyed)throw new Error("Loading aborted");if(c.destroyed)throw new Error("Worker was destroyed");const Tp=new _o(e,Ar,c.port),Zm=new ey(Tp,t,Fu,ho,Q);t._transport=Zm,Tp.send("Ready",null)})}).catch(t._capability.reject),t}function KA(d){if(d instanceof URL)return d.href;try{return new URL(d,window.location).href}catch(t){if(Ut&&typeof d=="string")return d}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function QA(d){if(Ut&&typeof Buffer!="undefined"&&d instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(d instanceof Uint8Array&&d.byteLength===d.buffer.byteLength)return d;if(typeof d=="string")return ku(d);if(d instanceof ArrayBuffer||ArrayBuffer.isView(d)||typeof d=="object"&&!isNaN(d==null?void 0:d.length))return new Uint8Array(d);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}function qp(d){return typeof d=="object"&&Number.isInteger(d==null?void 0:d.num)&&d.num>=0&&Number.isInteger(d==null?void 0:d.gen)&&d.gen>=0}var Id;const Ld=class Ld{constructor(){this._capability=Promise.withResolvers(),this._transport=null,this._worker=null,this.docId=`d${jt(Ld,Id)._++}`,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}destroy(){return L(this,null,function*(){var t,e,s,i;this.destroyed=!0;try{(t=this._worker)!=null&&t.port&&(this._worker._pendingDestroy=!0),yield(e=this._transport)==null?void 0:e.destroy()}catch(r){throw(s=this._worker)!=null&&s.port&&delete this._worker._pendingDestroy,r}this._transport=null,(i=this._worker)==null||i.destroy(),this._worker=null})}};Id=new WeakMap,u(Ld,Id,0);let kf=Ld;class sm{constructor(t,e,s=!1,i=null){this.length=t,this.initialData=e,this.progressiveDone=s,this.contentDispositionFilename=i,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=Promise.withResolvers()}addRangeListener(t){this._rangeListeners.push(t)}addProgressListener(t){this._progressListeners.push(t)}addProgressiveReadListener(t){this._progressiveReadListeners.push(t)}addProgressiveDoneListener(t){this._progressiveDoneListeners.push(t)}onDataRange(t,e){for(const s of this._rangeListeners)s(t,e)}onDataProgress(t,e){this._readyCapability.promise.then(()=>{for(const s of this._progressListeners)s(t,e)})}onDataProgressiveRead(t){this._readyCapability.promise.then(()=>{for(const e of this._progressiveReadListeners)e(t)})}onDataProgressiveDone(){this._readyCapability.promise.then(()=>{for(const t of this._progressiveDoneListeners)t()})}transportReady(){this._readyCapability.resolve()}requestDataRange(t,e){st("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}class JA{constructor(t,e){this._pdfInfo=t,this._transport=e}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return q(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(t){return this._transport.getPage(t)}getPageIndex(t){return this._transport.getPageIndex(t)}getDestinations(){return this._transport.getDestinations()}getDestination(t){return this._transport.getDestination(t)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getOptionalContentConfig(e)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(t=!1){return this._transport.startCleanup(t||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(t){return this._transport.cachedPageNumber(t)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}var _i,Ls,Si,Cr,pa,mc;class ZA{constructor(t,e,s,i=!1){u(this,Si);u(this,pa);u(this,_i,null);u(this,Ls,!1);this._pageIndex=t,this._pageInfo=e,this._transport=s,this._stats=i?new Dp:null,this._pdfBug=i,this.commonObjs=s.commonObjs,this.objs=new im,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:t,rotation:e=this.rotate,offsetX:s=0,offsetY:i=0,dontFlip:r=!1}={}){return new Kh({viewBox:this.view,userUnit:this.userUnit,scale:t,rotation:e,offsetX:s,offsetY:i,dontFlip:r})}getAnnotations({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getAnnotations(this._pageIndex,e)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return q(this,"isPureXfa",!!this._transport._htmlForXfa)}getXfa(){return L(this,null,function*(){var t;return((t=this._transport._htmlForXfa)==null?void 0:t.children[this._pageIndex])||null})}render({canvasContext:t,viewport:e,intent:s="display",annotationMode:i=si.ENABLE,transform:r=null,background:a=null,optionalContentConfigPromise:o=null,annotationCanvasMap:l=null,pageColors:h=null,printAnnotationStorage:c=null,isEditing:f=!1}){var S,C;(S=this._stats)==null||S.time("Overall");const g=this._transport.getRenderingIntent(s,i,c,f),{renderingIntent:m,cacheKey:A}=g;p(this,Ls,!1),b(this,pa,mc).call(this),o||(o=this._transport.getOptionalContentConfig(m));let y=this._intentStates.get(A);y||(y=Object.create(null),this._intentStates.set(A,y)),y.streamReaderCancelTimeout&&(clearTimeout(y.streamReaderCancelTimeout),y.streamReaderCancelTimeout=null);const v=!!(m&ye.PRINT);y.displayReadyCapability||(y.displayReadyCapability=Promise.withResolvers(),y.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(C=this._stats)==null||C.time("Page Request"),this._pumpOperatorList(g));const w=T=>{var x;y.renderTasks.delete(_),(this._maybeCleanupAfterRender||v)&&p(this,Ls,!0),b(this,Si,Cr).call(this,!v),T?(_.capability.reject(T),this._abortOperatorList({intentState:y,reason:T instanceof Error?T:new Error(T)})):_.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(x=globalThis.Stats)!=null&&x.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},_=new If({callback:w,params:{canvasContext:t,viewport:e,transform:r,background:a},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:l,operatorList:y.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!v,pdfBug:this._pdfBug,pageColors:h});(y.renderTasks||(y.renderTasks=new Set)).add(_);const E=_.task;return Promise.all([y.displayReadyCapability.promise,o]).then(([T,x])=>{var R;if(this.destroyed){w();return}if((R=this._stats)==null||R.time("Rendering"),!(x.renderingIntent&m))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");_.initializeGraphics({transparency:T,optionalContentConfig:x}),_.operatorListChanged()}).catch(w),E}getOperatorList({intent:t="display",annotationMode:e=si.ENABLE,printAnnotationStorage:s=null,isEditing:i=!1}={}){var h;function r(){o.operatorList.lastChunk&&(o.opListReadCapability.resolve(o.operatorList),o.renderTasks.delete(l))}const a=this._transport.getRenderingIntent(t,e,s,i,!0);let o=this._intentStates.get(a.cacheKey);o||(o=Object.create(null),this._intentStates.set(a.cacheKey,o));let l;return o.opListReadCapability||(l=Object.create(null),l.operatorListChanged=r,o.opListReadCapability=Promise.withResolvers(),(o.renderTasks||(o.renderTasks=new Set)).add(l),o.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(h=this._stats)==null||h.time("Page Request"),this._pumpOperatorList(a)),o.opListReadCapability.promise}streamTextContent({includeMarkedContent:t=!1,disableNormalization:e=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:t===!0,disableNormalization:e===!0},{highWaterMark:100,size(i){return i.items.length}})}getTextContent(t={}){if(this._transport._htmlForXfa)return this.getXfa().then(s=>Oo.textContent(s));const e=this.streamTextContent(t);return new Promise(function(s,i){function r(){a.read().then(function({value:l,done:h}){var c;if(h){s(o);return}(c=o.lang)!=null||(o.lang=l.lang),Object.assign(o.styles,l.styles),o.items.push(...l.items),r()},i)}const a=e.getReader(),o={items:[],styles:Object.create(null),lang:null};r()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const t=[];for(const e of this._intentStates.values())if(this._abortOperatorList({intentState:e,reason:new Error("Page was destroyed."),force:!0}),!e.opListReadCapability)for(const s of e.renderTasks)t.push(s.completed),s.cancel();return this.objs.clear(),p(this,Ls,!1),b(this,pa,mc).call(this),Promise.all(t)}cleanup(t=!1){p(this,Ls,!0);const e=b(this,Si,Cr).call(this,!1);return t&&e&&this._stats&&(this._stats=new Dp),e}_startRenderPage(t,e){var i,r;const s=this._intentStates.get(e);s&&((i=this._stats)==null||i.timeEnd("Page Request"),(r=s.displayReadyCapability)==null||r.resolve(t))}_renderPageChunk(t,e){for(let s=0,i=t.length;s{l.read().then(({value:f,done:g})=>{if(g){h.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(f,h),c())},f=>{if(h.streamReader=null,!this._transport.destroyed){if(h.operatorList){h.operatorList.lastChunk=!0;for(const g of h.renderTasks)g.operatorListChanged();b(this,Si,Cr).call(this,!0)}if(h.displayReadyCapability)h.displayReadyCapability.reject(f);else if(h.opListReadCapability)h.opListReadCapability.reject(f);else throw f}})};c()}_abortOperatorList({intentState:t,reason:e,force:s=!1}){if(t.streamReader){if(t.streamReaderCancelTimeout&&(clearTimeout(t.streamReaderCancelTimeout),t.streamReaderCancelTimeout=null),!s){if(t.renderTasks.size>0)return;if(e instanceof fp){let i=VA;e.extraDelay>0&&e.extraDelay<1e3&&(i+=e.extraDelay),t.streamReaderCancelTimeout=setTimeout(()=>{t.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:t,reason:e,force:!0})},i);return}}if(t.streamReader.cancel(new $i(e.message)).catch(()=>{}),t.streamReader=null,!this._transport.destroyed){for(const[i,r]of this._intentStates)if(r===t){this._intentStates.delete(i);break}this.cleanup()}}}get stats(){return this._stats}}_i=new WeakMap,Ls=new WeakMap,Si=new WeakSet,Cr=function(t=!1){if(b(this,pa,mc).call(this),!n(this,Ls)||this.destroyed)return!1;if(t)return p(this,_i,setTimeout(()=>{p(this,_i,null),b(this,Si,Cr).call(this,!1)},UA)),!1;for(const{renderTasks:e,operatorList:s}of this._intentStates.values())if(e.size>0||!s.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),p(this,Ls,!1),!0},pa=new WeakSet,mc=function(){n(this,_i)&&(clearTimeout(n(this,_i)),p(this,_i,null))};var Ds,Dd;class ty{constructor(){u(this,Ds,new Map);u(this,Dd,Promise.resolve())}postMessage(t,e){const s={data:structuredClone(t,e?{transfer:e}:null)};n(this,Dd).then(()=>{for(const[i]of n(this,Ds))i.call(this,s)})}addEventListener(t,e,s=null){let i=null;if((s==null?void 0:s.signal)instanceof AbortSignal){const{signal:r}=s;if(r.aborted){j("LoopbackPort - cannot use an `aborted` signal.");return}const a=()=>this.removeEventListener(t,e);i=()=>r.removeEventListener("abort",a),r.addEventListener("abort",a)}n(this,Ds).set(e,i)}removeEventListener(t,e){const s=n(this,Ds).get(e);s==null||s(),n(this,Ds).delete(e)}terminate(){for(const[,t]of n(this,Ds))t==null||t();n(this,Ds).clear()}}Ds=new WeakMap,Dd=new WeakMap;var Fd,Ln,Dn,ga,bc,ma,Ac;const rt=class rt{constructor({name:t=null,port:e=null,verbosity:s=Fb()}={}){u(this,ga);var i;if(this.name=t,this.destroyed=!1,this.verbosity=s,this._readyCapability=Promise.withResolvers(),this._port=null,this._webWorker=null,this._messageHandler=null,e){if((i=n(rt,Dn))!=null&&i.has(e))throw new Error("Cannot use more than one PDFWorker per port.");(n(rt,Dn)||p(rt,Dn,new WeakMap)).set(e,this),this._initializeFromPort(e);return}this._initialize()}get promise(){return this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(t){this._port=t,this._messageHandler=new _o("main","worker",t),this._messageHandler.on("ready",function(){}),b(this,ga,bc).call(this)}_initialize(){if(n(rt,Ln)||n(rt,ma,Ac)){this._setupFakeWorker();return}let{workerSrc:t}=rt;try{rt._isSameOrigin(window.location.href,t)||(t=rt._createCDNWrapper(new URL(t,window.location).href));const e=new Worker(t,{type:"module"}),s=new _o("main","worker",e),i=()=>{r.abort(),s.destroy(),e.terminate(),this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},r=new AbortController;e.addEventListener("error",()=>{this._webWorker||i()},{signal:r.signal}),s.on("test",o=>{if(r.abort(),this.destroyed||!o){i();return}this._messageHandler=s,this._port=e,this._webWorker=e,b(this,ga,bc).call(this)}),s.on("ready",o=>{if(r.abort(),this.destroyed){i();return}try{a()}catch(l){this._setupFakeWorker()}});const a=()=>{const o=new Uint8Array;s.send("test",o,[o.buffer])};a();return}catch(e){Ru("The worker has been disabled.")}this._setupFakeWorker()}_setupFakeWorker(){n(rt,Ln)||(j("Setting up fake worker."),p(rt,Ln,!0)),rt._setupFakeWorkerGlobal.then(t=>{if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));return}const e=new ty;this._port=e;const s=`fake${jt(rt,Fd)._++}`,i=new _o(s+"_worker",s,e);t.setup(i,e),this._messageHandler=new _o(s,s+"_worker",e),b(this,ga,bc).call(this)}).catch(t=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${t.message}".`))})}destroy(){var t,e,s;this.destroyed=!0,(t=this._webWorker)==null||t.terminate(),this._webWorker=null,(e=n(rt,Dn))==null||e.delete(this._port),this._port=null,(s=this._messageHandler)==null||s.destroy(),this._messageHandler=null}static fromPort(t){var s;if(!(t!=null&&t.port))throw new Error("PDFWorker.fromPort - invalid method signature.");const e=(s=n(this,Dn))==null?void 0:s.get(t.port);if(e){if(e._pendingDestroy)throw new Error("PDFWorker.fromPort - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return e}return new rt(t)}static get workerSrc(){if(Qs.workerSrc)return Qs.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return q(this,"_setupFakeWorkerGlobal",(()=>L(this,null,function*(){return n(this,ma,Ac)?n(this,ma,Ac):(yield rb(()=>import(this.workerSrc),[],import.meta.url)).WorkerMessageHandler}))())}};Fd=new WeakMap,Ln=new WeakMap,Dn=new WeakMap,ga=new WeakSet,bc=function(){this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})},ma=new WeakSet,Ac=function(){var t;try{return((t=globalThis.pdfjsWorker)==null?void 0:t.WorkerMessageHandler)||null}catch(e){return null}},u(rt,ma),u(rt,Fd,0),u(rt,Ln,!1),u(rt,Dn,void 0),Ut&&(p(rt,Ln,!0),Qs.workerSrc||(Qs.workerSrc="./pdf.worker.mjs")),rt._isSameOrigin=(t,e)=>{let s;try{if(s=new URL(t),!s.origin||s.origin==="null")return!1}catch(r){return!1}const i=new URL(e,s);return s.origin===i.origin},rt._createCDNWrapper=t=>{const e=`await import("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))};let Ir=rt;var Fs,ls,ba,Aa,Ns,Fn,To;class ey{constructor(t,e,s,i,r){u(this,Fn);u(this,Fs,new Map);u(this,ls,new Map);u(this,ba,new Map);u(this,Aa,new Map);u(this,Ns,null);this.messageHandler=t,this.loadingTask=e,this.commonObjs=new im,this.fontLoader=new tA({ownerDocument:i.ownerDocument,styleElement:i.styleElement}),this.loadingParams=i.loadingParams,this._params=i,this.canvasFactory=r.canvasFactory,this.filterFactory=r.filterFactory,this.cMapReaderFactory=r.cMapReaderFactory,this.standardFontDataFactory=r.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=s,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.setupMessageHandler()}get annotationStorage(){return q(this,"annotationStorage",new bp)}getRenderingIntent(t,e=si.ENABLE,s=null,i=!1,r=!1){let a=ye.DISPLAY,o=yf;switch(t){case"any":a=ye.ANY;break;case"display":break;case"print":a=ye.PRINT;break;default:j(`getRenderingIntent - invalid intent: ${t}`)}const l=a&ye.PRINT&&s instanceof Dg?s:this.annotationStorage;switch(e){case si.DISABLE:a+=ye.ANNOTATIONS_DISABLE;break;case si.ENABLE:break;case si.ENABLE_FORMS:a+=ye.ANNOTATIONS_FORMS;break;case si.ENABLE_STORAGE:a+=ye.ANNOTATIONS_STORAGE,o=l.serializable;break;default:j(`getRenderingIntent - invalid annotationMode: ${e}`)}i&&(a+=ye.IS_EDITING),r&&(a+=ye.OPLIST);const{ids:h,hash:c}=l.modifiedIds,f=[a,o.hash,c];return{renderingIntent:a,cacheKey:f.join("_"),annotationStorageSerializable:o,modifiedIds:h}}destroy(){var s;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),(s=n(this,Ns))==null||s.reject(new Error("Worker was destroyed during onPassword callback"));const t=[];for(const i of n(this,ls).values())t.push(i._destroy());n(this,ls).clear(),n(this,ba).clear(),n(this,Aa).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const e=this.messageHandler.sendWithPromise("Terminate",null);return t.push(e),Promise.all(t).then(()=>{var i,r;this.commonObjs.clear(),this.fontLoader.clear(),n(this,Fs).clear(),this.filterFactory.destroy(),No.cleanup(),(i=this._networkStream)==null||i.cancelAllRequests(new $i("Worker was terminated.")),(r=this.messageHandler)==null||r.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:t,loadingTask:e}=this;t.on("GetReader",(s,i)=>{At(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=r=>{this._lastProgress={loaded:r.loaded,total:r.total}},i.onPull=()=>{this._fullReader.read().then(function({value:r,done:a}){if(a){i.close();return}At(r instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),i.enqueue(new Uint8Array(r),1,[r])}).catch(r=>{i.error(r)})},i.onCancel=r=>{this._fullReader.cancel(r),i.ready.catch(a=>{if(!this.destroyed)throw a})}}),t.on("ReaderHeadersReady",s=>L(this,null,function*(){var o;yield this._fullReader.headersReady;const{isStreamingSupported:i,isRangeSupported:r,contentLength:a}=this._fullReader;return(!i||!r)&&(this._lastProgress&&((o=e.onProgress)==null||o.call(e,this._lastProgress)),this._fullReader.onProgress=l=>{var h;(h=e.onProgress)==null||h.call(e,{loaded:l.loaded,total:l.total})}),{isStreamingSupported:i,isRangeSupported:r,contentLength:a}})),t.on("GetRangeReader",(s,i)=>{At(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const r=this._networkStream.getRangeReader(s.begin,s.end);if(!r){i.close();return}i.onPull=()=>{r.read().then(function({value:a,done:o}){if(o){i.close();return}At(a instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),i.enqueue(new Uint8Array(a),1,[a])}).catch(a=>{i.error(a)})},i.onCancel=a=>{r.cancel(a),i.ready.catch(o=>{if(!this.destroyed)throw o})}}),t.on("GetDoc",({pdfInfo:s})=>{this._numPages=s.numPages,this._htmlForXfa=s.htmlForXfa,delete s.htmlForXfa,e._capability.resolve(new JA(s,this))}),t.on("DocException",s=>{e._capability.reject(Zt(s))}),t.on("PasswordRequest",s=>{p(this,Ns,Promise.withResolvers());try{if(!e.onPassword)throw Zt(s);const i=r=>{r instanceof Error?n(this,Ns).reject(r):n(this,Ns).resolve({password:r})};e.onPassword(i,s.code)}catch(i){n(this,Ns).reject(i)}return n(this,Ns).promise}),t.on("DataLoaded",s=>{var i;(i=e.onProgress)==null||i.call(e,{loaded:s.length,total:s.length}),this.downloadInfoCapability.resolve(s)}),t.on("StartRenderPage",s=>{if(this.destroyed)return;n(this,ls).get(s.pageIndex)._startRenderPage(s.transparency,s.cacheKey)}),t.on("commonobj",([s,i,r])=>{var a;if(this.destroyed||this.commonObjs.has(s))return null;switch(i){case"Font":const{disableFontFace:o,fontExtraProperties:l,pdfBug:h}=this._params;if("error"in r){const m=r.error;j(`Error during font loading: ${m}`),this.commonObjs.resolve(s,m);break}const c=h&&((a=globalThis.FontInspector)!=null&&a.enabled)?(m,A)=>globalThis.FontInspector.fontAdded(m,A):null,f=new eA(r,{disableFontFace:o,fontExtraProperties:l,inspectFont:c});this.fontLoader.bind(f).catch(()=>t.sendWithPromise("FontFallback",{id:s})).finally(()=>{!l&&f.data&&(f.data=null),this.commonObjs.resolve(s,f)});break;case"CopyLocalImage":const{imageRef:g}=r;At(g,"The imageRef must be defined.");for(const m of n(this,ls).values())for(const[,A]of m.objs)if((A==null?void 0:A.ref)===g)return A.dataLen?(this.commonObjs.resolve(s,structuredClone(A)),A.dataLen):null;break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(s,r);break;default:throw new Error(`Got unknown common object type ${i}`)}return null}),t.on("obj",([s,i,r,a])=>{var l;if(this.destroyed)return;const o=n(this,ls).get(i);if(!o.objs.has(s)){if(o._intentStates.size===0){(l=a==null?void 0:a.bitmap)==null||l.close();return}switch(r){case"Image":o.objs.resolve(s,a),(a==null?void 0:a.dataLen)>kb&&(o._maybeCleanupAfterRender=!0);break;case"Pattern":o.objs.resolve(s,a);break;default:throw new Error(`Got unknown object type ${r}`)}}}),t.on("DocProgress",s=>{var i;this.destroyed||(i=e.onProgress)==null||i.call(e,{loaded:s.loaded,total:s.total})}),t.on("FetchBuiltInCMap",s=>L(this,null,function*(){if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.cMapReaderFactory)throw new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.");return this.cMapReaderFactory.fetch(s)})),t.on("FetchStandardFontData",s=>L(this,null,function*(){if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.standardFontDataFactory)throw new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.");return this.standardFontDataFactory.fetch(s)}))}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var s,i;this.annotationStorage.size<=0&&j("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:t,transfer:e}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:t,filename:(i=(s=this._fullReader)==null?void 0:s.filename)!=null?i:null},e).finally(()=>{this.annotationStorage.resetModified()})}getPage(t){if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request."));const e=t-1,s=n(this,ba).get(e);if(s)return s;const i=this.messageHandler.sendWithPromise("GetPage",{pageIndex:e}).then(r=>{if(this.destroyed)throw new Error("Transport destroyed");r.refStr&&n(this,Aa).set(r.refStr,t);const a=new ZA(e,r,this,this._params.pdfBug);return n(this,ls).set(e,a),a});return n(this,ba).set(e,i),i}getPageIndex(t){return qp(t)?this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen}):Promise.reject(new Error("Invalid pageIndex request."))}getAnnotations(t,e){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:e})}getFieldObjects(){return b(this,Fn,To).call(this,"GetFieldObjects")}hasJSActions(){return b(this,Fn,To).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(t){return typeof t!="string"?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getDocJSActions(){return b(this,Fn,To).call(this,"GetDocJSActions")}getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(t){return b(this,Fn,To).call(this,"GetOptionalContentConfig").then(e=>new SA(e,t))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const t="GetMetadata",e=n(this,Fs).get(t);if(e)return e;const s=this.messageHandler.sendWithPromise(t,null).then(i=>{var r,a,o,l;return{info:i[0],metadata:i[1]?new vA(i[1]):null,contentDispositionFilename:(a=(r=this._fullReader)==null?void 0:r.filename)!=null?a:null,contentLength:(l=(o=this._fullReader)==null?void 0:o.contentLength)!=null?l:null}});return n(this,Fs).set(t,s),s}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}startCleanup(t=!1){return L(this,null,function*(){if(!this.destroyed){yield this.messageHandler.sendWithPromise("Cleanup",null);for(const e of n(this,ls).values())if(!e.cleanup())throw new Error(`startCleanup: Page ${e.pageNumber} is currently rendering.`);this.commonObjs.clear(),t||this.fontLoader.clear(),n(this,Fs).clear(),this.filterFactory.destroy(!0),No.cleanup()}})}cachedPageNumber(t){var s;if(!qp(t))return null;const e=t.gen===0?`${t.num}R`:`${t.num}R${t.gen}`;return(s=n(this,Aa).get(e))!=null?s:null}}Fs=new WeakMap,ls=new WeakMap,ba=new WeakMap,Aa=new WeakMap,Ns=new WeakMap,Fn=new WeakSet,To=function(t,e=null){const s=n(this,Fs).get(t);if(s)return s;const i=this.messageHandler.sendWithPromise(t,e);return n(this,Fs).set(t,i),i};const go=Symbol("INITIAL_DATA");var ce,Yl,Mf;class im{constructor(){u(this,Yl);u(this,ce,Object.create(null))}get(t,e=null){if(e){const i=b(this,Yl,Mf).call(this,t);return i.promise.then(()=>e(i.data)),null}const s=n(this,ce)[t];if(!s||s.data===go)throw new Error(`Requesting object that isn't resolved yet ${t}.`);return s.data}has(t){const e=n(this,ce)[t];return!!e&&e.data!==go}delete(t){const e=n(this,ce)[t];return!e||e.data===go?!1:(delete n(this,ce)[t],!0)}resolve(t,e=null){const s=b(this,Yl,Mf).call(this,t);s.data=e,s.resolve()}clear(){var t;for(const e in n(this,ce)){const{data:s}=n(this,ce)[e];(t=s==null?void 0:s.bitmap)==null||t.close()}p(this,ce,Object.create(null))}*[Symbol.iterator](){for(const t in n(this,ce)){const{data:e}=n(this,ce)[t];e!==go&&(yield[t,e])}}}ce=new WeakMap,Yl=new WeakSet,Mf=function(t){var e;return(e=n(this,ce))[t]||(e[t]=yr(bs({},Promise.withResolvers()),{data:go}))};var Ei;class sy{constructor(t){u(this,Ei,null);p(this,Ei,t),this.onContinue=null}get promise(){return n(this,Ei).capability.promise}cancel(t=0){n(this,Ei).cancel(null,t)}get separateAnnots(){const{separateAnnots:t}=n(this,Ei).operatorList;if(!t)return!1;const{annotationCanvasMap:e}=n(this,Ei);return t.form||t.canvas&&(e==null?void 0:e.size)>0}}Ei=new WeakMap;var Ci,Nn;const qi=class qi{constructor({callback:t,params:e,objs:s,commonObjs:i,annotationCanvasMap:r,operatorList:a,pageIndex:o,canvasFactory:l,filterFactory:h,useRequestAnimationFrame:c=!1,pdfBug:f=!1,pageColors:g=null}){u(this,Ci,null);this.callback=t,this.params=e,this.objs=s,this.commonObjs=i,this.annotationCanvasMap=r,this.operatorListIdx=null,this.operatorList=a,this._pageIndex=o,this.canvasFactory=l,this.filterFactory=h,this._pdfBug=f,this.pageColors=g,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=c===!0&&typeof window!="undefined",this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new sy(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=e.canvasContext.canvas}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:t=!1,optionalContentConfig:e}){var o,l;if(this.cancelled)return;if(this._canvas){if(n(qi,Nn).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");n(qi,Nn).add(this._canvas)}this._pdfBug&&((o=globalThis.StepperManager)!=null&&o.enabled)&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{canvasContext:s,viewport:i,transform:r,background:a}=this.params;this.gfx=new Mr(s,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:e},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:r,viewport:i,transparency:t,background:a}),this.operatorListIdx=0,this.graphicsReady=!0,(l=this.graphicsReadyCallback)==null||l.call(this)}cancel(t=null,e=0){var s;this.running=!1,this.cancelled=!0,(s=this.gfx)==null||s.endDrawing(),n(this,Ci)&&(window.cancelAnimationFrame(n(this,Ci)),p(this,Ci,null)),n(qi,Nn).delete(this._canvas),this.callback(t||new fp(`Rendering cancelled, page ${this._pageIndex+1}`,e))}operatorListChanged(){var t;if(!this.graphicsReady){this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound);return}(t=this.stepper)==null||t.updateOperatorList(this.operatorList),!this.running&&this._continue()}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?p(this,Ci,window.requestAnimationFrame(()=>{p(this,Ci,null),this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}_next(){return L(this,null,function*(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),n(qi,Nn).delete(this._canvas),this.callback())))})}};Ci=new WeakMap,Nn=new WeakMap,u(qi,Nn,new WeakSet);let If=qi;const iy="4.10.38",ny="f9bea397f";function Yp(d){return Math.floor(Math.max(0,Math.min(1,d))*255).toString(16).padStart(2,"0")}function mo(d){return Math.max(0,Math.min(255,255*d))}class Kp{static CMYK_G([t,e,s,i]){return["G",1-Math.min(1,.3*t+.59*s+.11*e+i)]}static G_CMYK([t]){return["CMYK",0,0,0,1-t]}static G_RGB([t]){return["RGB",t,t,t]}static G_rgb([t]){return t=mo(t),[t,t,t]}static G_HTML([t]){const e=Yp(t);return`#${e}${e}${e}`}static RGB_G([t,e,s]){return["G",.3*t+.59*e+.11*s]}static RGB_rgb(t){return t.map(mo)}static RGB_HTML(t){return`#${t.map(Yp).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([t,e,s,i]){return["RGB",1-Math.min(1,t+i),1-Math.min(1,s+i),1-Math.min(1,e+i)]}static CMYK_rgb([t,e,s,i]){return[mo(1-Math.min(1,t+i)),mo(1-Math.min(1,s+i)),mo(1-Math.min(1,e+i))]}static CMYK_HTML(t){const e=this.CMYK_RGB(t).slice(1);return this.RGB_HTML(e)}static RGB_CMYK([t,e,s]){const i=1-t,r=1-e,a=1-s,o=Math.min(i,r,a);return["CMYK",i,r,a,o]}}class ry{create(t,e,s=!1){if(t<=0||e<=0)throw new Error("Invalid SVG dimensions");const i=this._createSVG("svg:svg");return i.setAttribute("version","1.1"),s||(i.setAttribute("width",`${t}px`),i.setAttribute("height",`${e}px`)),i.setAttribute("preserveAspectRatio","none"),i.setAttribute("viewBox",`0 0 ${t} ${e}`),i}createElement(t){if(typeof t!="string")throw new Error("Invalid SVG element type");return this._createSVG(t)}_createSVG(t){st("Abstract method `_createSVG` called.")}}class yp extends ry{_createSVG(t){return document.createElementNS(As,t)}}class nm{static setupStorage(t,e,s,i,r){const a=i.getValue(e,{value:null});switch(s.name){case"textarea":if(a.value!==null&&(t.textContent=a.value),r==="print")break;t.addEventListener("input",o=>{i.setValue(e,{value:o.target.value})});break;case"input":if(s.attributes.type==="radio"||s.attributes.type==="checkbox"){if(a.value===s.attributes.xfaOn?t.setAttribute("checked",!0):a.value===s.attributes.xfaOff&&t.removeAttribute("checked"),r==="print")break;t.addEventListener("change",o=>{i.setValue(e,{value:o.target.checked?o.target.getAttribute("xfaOn"):o.target.getAttribute("xfaOff")})})}else{if(a.value!==null&&t.setAttribute("value",a.value),r==="print")break;t.addEventListener("input",o=>{i.setValue(e,{value:o.target.value})})}break;case"select":if(a.value!==null){t.setAttribute("value",a.value);for(const o of s.children)o.attributes.value===a.value?o.attributes.selected=!0:o.attributes.hasOwnProperty("selected")&&delete o.attributes.selected}t.addEventListener("input",o=>{const l=o.target.options,h=l.selectedIndex===-1?"":l[l.selectedIndex].value;i.setValue(e,{value:h})});break}}static setAttributes({html:t,element:e,storage:s=null,intent:i,linkService:r}){const{attributes:a}=e,o=t instanceof HTMLAnchorElement;a.type==="radio"&&(a.name=`${a.name}-${i}`);for(const[l,h]of Object.entries(a))if(h!=null)switch(l){case"class":h.length&&t.setAttribute(l,h.join(" "));break;case"dataId":break;case"id":t.setAttribute("data-element-id",h);break;case"style":Object.assign(t.style,h);break;case"textContent":t.textContent=h;break;default:(!o||l!=="href"&&l!=="newWindow")&&t.setAttribute(l,h)}o&&r.addLinkAttributes(t,a.href,a.newWindow),s&&a.dataId&&this.setupStorage(t,a.dataId,e,s)}static render(t){var f,g;const e=t.annotationStorage,s=t.linkService,i=t.xfaHtml,r=t.intent||"display",a=document.createElement(i.name);i.attributes&&this.setAttributes({html:a,element:i,intent:r,linkService:s});const o=r!=="richText",l=t.div;if(l.append(a),t.viewport){const m=`matrix(${t.viewport.transform.join(",")})`;l.style.transform=m}o&&l.setAttribute("class","xfaLayer xfaFont");const h=[];if(i.children.length===0){if(i.value){const m=document.createTextNode(i.value);a.append(m),o&&Oo.shouldBuildText(i.name)&&h.push(m)}return{textDivs:h}}const c=[[i,-1,a]];for(;c.length>0;){const[m,A,y]=c.at(-1);if(A+1===m.children.length){c.pop();continue}const v=m.children[++c.at(-1)[1]];if(v===null)continue;const{name:w}=v;if(w==="#text"){const E=document.createTextNode(v.value);h.push(E),y.append(E);continue}const _=(f=v==null?void 0:v.attributes)!=null&&f.xmlns?document.createElementNS(v.attributes.xmlns,w):document.createElement(w);if(y.append(_),v.attributes&&this.setAttributes({html:_,element:v,storage:e,intent:r,linkService:s}),((g=v.children)==null?void 0:g.length)>0)c.push([v,-1,_]);else if(v.value){const E=document.createTextNode(v.value);o&&Oo.shouldBuildText(w)&&h.push(E),_.append(E)}}for(const m of l.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))m.setAttribute("readOnly",!0);return{textDivs:h}}static update(t){const e=`matrix(${t.viewport.transform.join(",")})`;t.div.style.transform=e,t.div.hidden=!1}}const Jh=1e3,ay=9,mr=new WeakSet;function Hi(d){return{width:d[2]-d[0],height:d[3]-d[1]}}class oy{static create(t){switch(t.data.annotationType){case wt.LINK:return new rm(t);case wt.TEXT:return new ly(t);case wt.WIDGET:switch(t.data.fieldType){case"Tx":return new hy(t);case"Btn":return t.data.radioButton?new lm(t):t.data.checkBox?new dy(t):new uy(t);case"Ch":return new fy(t);case"Sig":return new cy(t)}return new br(t);case wt.POPUP:return new Df(t);case wt.FREETEXT:return new fm(t);case wt.LINE:return new gy(t);case wt.SQUARE:return new my(t);case wt.CIRCLE:return new by(t);case wt.POLYLINE:return new pm(t);case wt.CARET:return new yy(t);case wt.INK:return new wp(t);case wt.POLYGON:return new Ay(t);case wt.HIGHLIGHT:return new gm(t);case wt.UNDERLINE:return new wy(t);case wt.SQUIGGLY:return new vy(t);case wt.STRIKEOUT:return new _y(t);case wt.STAMP:return new mm(t);case wt.FILEATTACHMENT:return new Sy(t);default:return new mt(t)}}}var On,ya,wa,Kl,Lf;const Ep=class Ep{constructor(t,{isRenderable:e=!1,ignoreBorder:s=!1,createQuadrilaterals:i=!1}={}){u(this,Kl);u(this,On,null);u(this,ya,!1);u(this,wa,null);this.isRenderable=e,this.data=t.data,this.layer=t.layer,this.linkService=t.linkService,this.downloadManager=t.downloadManager,this.imageResourcesPath=t.imageResourcesPath,this.renderForms=t.renderForms,this.svgFactory=t.svgFactory,this.annotationStorage=t.annotationStorage,this.enableScripting=t.enableScripting,this.hasJSActions=t.hasJSActions,this._fieldObjects=t.fieldObjects,this.parent=t.parent,e&&(this.container=this._createContainer(s)),i&&this._createQuadrilaterals()}static _hasPopupData({titleObj:t,contentsObj:e,richText:s}){return!!(t!=null&&t.str||e!=null&&e.str||s!=null&&s.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return Ep._hasPopupData(this.data)}updateEdited(t){var s;if(!this.container)return;n(this,On)||p(this,On,{rect:this.data.rect.slice(0)});const{rect:e}=t;e&&b(this,Kl,Lf).call(this,e),(s=n(this,wa))==null||s.popup.updateEdited(t)}resetEdited(){var t;n(this,On)&&(b(this,Kl,Lf).call(this,n(this,On).rect),(t=n(this,wa))==null||t.popup.resetEdited(),p(this,On,null))}_createContainer(t){const{data:e,parent:{page:s,viewport:i}}=this,r=document.createElement("section");r.setAttribute("data-annotation-id",e.id),this instanceof br||(r.tabIndex=Jh);const{style:a}=r;if(a.zIndex=this.parent.zIndex++,e.alternativeText&&(r.title=e.alternativeText),e.noRotate&&r.classList.add("norotate"),!e.rect||this instanceof Df){const{rotation:y}=e;return!e.hasOwnCanvas&&y!==0&&this.setRotation(y,r),r}const{width:o,height:l}=Hi(e.rect);if(!t&&e.borderStyle.width>0){a.borderWidth=`${e.borderStyle.width}px`;const y=e.borderStyle.horizontalCornerRadius,v=e.borderStyle.verticalCornerRadius;if(y>0||v>0){const _=`calc(${y}px * var(--scale-factor)) / calc(${v}px * var(--scale-factor))`;a.borderRadius=_}else if(this instanceof lm){const _=`calc(${o}px * var(--scale-factor)) / calc(${l}px * var(--scale-factor))`;a.borderRadius=_}switch(e.borderStyle.style){case fo.SOLID:a.borderStyle="solid";break;case fo.DASHED:a.borderStyle="dashed";break;case fo.BEVELED:j("Unimplemented border style: beveled");break;case fo.INSET:j("Unimplemented border style: inset");break;case fo.UNDERLINE:a.borderBottomStyle="solid";break}const w=e.borderColor||null;w?(p(this,ya,!0),a.borderColor=N.makeHexColor(w[0]|0,w[1]|0,w[2]|0)):a.borderWidth=0}const h=N.normalizeRect([e.rect[0],s.view[3]-e.rect[1]+s.view[1],e.rect[2],s.view[3]-e.rect[3]+s.view[1]]),{pageWidth:c,pageHeight:f,pageX:g,pageY:m}=i.rawDims;a.left=`${100*(h[0]-g)/c}%`,a.top=`${100*(h[1]-m)/f}%`;const{rotation:A}=e;return e.hasOwnCanvas||A===0?(a.width=`${100*o/c}%`,a.height=`${100*l/f}%`):this.setRotation(A,r),r}setRotation(t,e=this.container){if(!this.data.rect)return;const{pageWidth:s,pageHeight:i}=this.parent.viewport.rawDims,{width:r,height:a}=Hi(this.data.rect);let o,l;t%180===0?(o=100*r/s,l=100*a/i):(o=100*a/s,l=100*r/i),e.style.width=`${o}%`,e.style.height=`${l}%`,e.setAttribute("data-main-rotation",(360-t)%360)}get _commonActions(){const t=(e,s,i)=>{const r=i.detail[e],a=r[0],o=r.slice(1);i.target.style[s]=Kp[`${a}_HTML`](o),this.annotationStorage.setValue(this.data.id,{[s]:Kp[`${a}_rgb`](o)})};return q(this,"_commonActions",{display:e=>{const{display:s}=e.detail,i=s%2===1;this.container.style.visibility=i?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:i,noPrint:s===1||s===2})},print:e=>{this.annotationStorage.setValue(this.data.id,{noPrint:!e.detail.print})},hidden:e=>{const{hidden:s}=e.detail;this.container.style.visibility=s?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:s,noView:s})},focus:e=>{setTimeout(()=>e.target.focus({preventScroll:!1}),0)},userName:e=>{e.target.title=e.detail.userName},readonly:e=>{e.target.disabled=e.detail.readonly},required:e=>{this._setRequired(e.target,e.detail.required)},bgColor:e=>{t("bgColor","backgroundColor",e)},fillColor:e=>{t("fillColor","backgroundColor",e)},fgColor:e=>{t("fgColor","color",e)},textColor:e=>{t("textColor","color",e)},borderColor:e=>{t("borderColor","borderColor",e)},strokeColor:e=>{t("strokeColor","borderColor",e)},rotation:e=>{const s=e.detail.rotation;this.setRotation(s),this.annotationStorage.setValue(this.data.id,{rotation:s})}})}_dispatchEventFromSandbox(t,e){const s=this._commonActions;for(const i of Object.keys(e.detail)){const r=t[i]||s[i];r==null||r(e)}}_setDefaultPropertiesFromJS(t){if(!this.enableScripting)return;const e=this.annotationStorage.getRawValue(this.data.id);if(!e)return;const s=this._commonActions;for(const[i,r]of Object.entries(e)){const a=s[i];if(a){const o={detail:{[i]:r},target:t};a(o),delete e[i]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:t}=this.data;if(!t)return;const[e,s,i,r]=this.data.rect.map(y=>Math.fround(y));if(t.length===8){const[y,v,w,_]=t.subarray(2,6);if(i===y&&r===v&&e===w&&s===_)return}const{style:a}=this.container;let o;if(n(this,ya)){const{borderColor:y,borderWidth:v}=a;a.borderWidth=0,o=["url('data:image/svg+xml;utf8,",'',``],this.container.classList.add("hasBorder")}const l=i-e,h=r-s,{svgFactory:c}=this,f=c.createElement("svg");f.classList.add("quadrilateralsContainer"),f.setAttribute("width",0),f.setAttribute("height",0);const g=c.createElement("defs");f.append(g);const m=c.createElement("clipPath"),A=`clippath_${this.data.id}`;m.setAttribute("id",A),m.setAttribute("clipPathUnits","objectBoundingBox"),g.append(m);for(let y=2,v=t.length;y`)}n(this,ya)&&(o.push("')"),a.backgroundImage=o.join("")),this.container.append(f),this.container.style.clipPath=`url(#${A})`}_createPopup(){const{data:t}=this,e=p(this,wa,new Df({data:{color:t.color,titleObj:t.titleObj,modificationDate:t.modificationDate,contentsObj:t.contentsObj,richText:t.richText,parentRect:t.rect,borderStyle:0,id:`popup_${t.id}`,rotation:t.rotation},parent:this.parent,elements:[this]}));this.parent.div.append(e.render())}render(){st("Abstract method `AnnotationElement.render` called")}_getElementsByName(t,e=null){const s=[];if(this._fieldObjects){const i=this._fieldObjects[t];if(i)for(const{page:r,id:a,exportValues:o}of i){if(r===-1||a===e)continue;const l=typeof o=="string"?o:null,h=document.querySelector(`[data-element-id="${a}"]`);if(h&&!mr.has(h)){j(`_getElementsByName - element not allowed: ${a}`);continue}s.push({id:a,exportValue:l,domElement:h})}return s}for(const i of document.getElementsByName(t)){const{exportValue:r}=i,a=i.getAttribute("data-element-id");a!==e&&mr.has(i)&&s.push({id:a,exportValue:r,domElement:i})}return s}show(){var t;this.container&&(this.container.hidden=!1),(t=this.popup)==null||t.maybeShow()}hide(){var t;this.container&&(this.container.hidden=!0),(t=this.popup)==null||t.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const t=this.getElementsToTriggerPopup();if(Array.isArray(t))for(const e of t)e.classList.add("highlightArea");else t.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:t,data:{id:e}}=this;this.container.addEventListener("dblclick",()=>{var s;(s=this.linkService.eventBus)==null||s.dispatch("switchannotationeditormode",{source:this,mode:t,editId:e})})}};On=new WeakMap,ya=new WeakMap,wa=new WeakMap,Kl=new WeakSet,Lf=function(t){const{container:{style:e},data:{rect:s,rotation:i},parent:{viewport:{rawDims:{pageWidth:r,pageHeight:a,pageX:o,pageY:l}}}}=this;s==null||s.splice(0,4,...t);const{width:h,height:c}=Hi(t);e.left=`${100*(t[0]-o)/r}%`,e.top=`${100*(a-t[3]+l)/a}%`,i===0?(e.width=`${100*h/r}%`,e.height=`${100*c/a}%`):this.setRotation(i)};let mt=Ep;var Os,Ui,Nd,am,Od,om;class rm extends mt{constructor(e,s=null){super(e,{isRenderable:!0,ignoreBorder:!!(s!=null&&s.ignoreBorder),createQuadrilaterals:!0});u(this,Os);u(this,Nd);u(this,Od);this.isTooltipOnly=e.data.isTooltipOnly}render(){const{data:e,linkService:s}=this,i=document.createElement("a");i.setAttribute("data-element-id",e.id);let r=!1;return e.url?(s.addLinkAttributes(i,e.url,e.newWindow),r=!0):e.action?(this._bindNamedAction(i,e.action),r=!0):e.attachment?(b(this,Nd,am).call(this,i,e.attachment,e.attachmentDest),r=!0):e.setOCGState?(b(this,Od,om).call(this,i,e.setOCGState),r=!0):e.dest?(this._bindLink(i,e.dest),r=!0):(e.actions&&(e.actions.Action||e.actions["Mouse Up"]||e.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(i,e),r=!0),e.resetForm?(this._bindResetFormAction(i,e.resetForm),r=!0):this.isTooltipOnly&&!r&&(this._bindLink(i,""),r=!0)),this.container.classList.add("linkAnnotation"),r&&this.container.append(i),this.container}_bindLink(e,s){e.href=this.linkService.getDestinationHash(s),e.onclick=()=>(s&&this.linkService.goToDestination(s),!1),(s||s==="")&&b(this,Os,Ui).call(this)}_bindNamedAction(e,s){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(s),!1),b(this,Os,Ui).call(this)}_bindJSAction(e,s){e.href=this.linkService.getAnchorUrl("");const i=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const r of Object.keys(s.actions)){const a=i.get(r);a&&(e[a]=()=>{var o;return(o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:s.id,name:r}}),!1})}e.onclick||(e.onclick=()=>!1),b(this,Os,Ui).call(this)}_bindResetFormAction(e,s){const i=e.onclick;if(i||(e.href=this.linkService.getAnchorUrl("")),b(this,Os,Ui).call(this),!this._fieldObjects){j('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),i||(e.onclick=()=>!1);return}e.onclick=()=>{var f;i==null||i();const{fields:r,refs:a,include:o}=s,l=[];if(r.length!==0||a.length!==0){const g=new Set(a);for(const m of r){const A=this._fieldObjects[m]||[];for(const{id:y}of A)g.add(y)}for(const m of Object.values(this._fieldObjects))for(const A of m)g.has(A.id)===o&&l.push(A)}else for(const g of Object.values(this._fieldObjects))l.push(...g);const h=this.annotationStorage,c=[];for(const g of l){const{id:m}=g;switch(c.push(m),g.type){case"text":{const y=g.defaultValue||"";h.setValue(m,{value:y});break}case"checkbox":case"radiobutton":{const y=g.defaultValue===g.exportValues;h.setValue(m,{value:y});break}case"combobox":case"listbox":{const y=g.defaultValue||"";h.setValue(m,{value:y});break}default:continue}const A=document.querySelector(`[data-element-id="${m}"]`);if(A){if(!mr.has(A)){j(`_bindResetFormAction - element not allowed: ${m}`);continue}}else continue;A.dispatchEvent(new Event("resetform"))}return this.enableScripting&&((f=this.linkService.eventBus)==null||f.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:c,name:"ResetForm"}})),!1}}}Os=new WeakSet,Ui=function(){this.container.setAttribute("data-internal-link","")},Nd=new WeakSet,am=function(e,s,i=null){e.href=this.linkService.getAnchorUrl(""),s.description&&(e.title=s.description),e.onclick=()=>{var r;return(r=this.downloadManager)==null||r.openOrDownloadData(s.content,s.filename,i),!1},b(this,Os,Ui).call(this)},Od=new WeakSet,om=function(e,s){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeSetOCGState(s),!1),b(this,Os,Ui).call(this)};class ly extends mt{constructor(t){super(t,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const t=document.createElement("img");return t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",t.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),t.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(t),this.container}}class br extends mt{render(){return this.container}showElementAndHideCanvas(t){var e;this.data.hasOwnCanvas&&(((e=t.previousSibling)==null?void 0:e.nodeName)==="CANVAS"&&(t.previousSibling.hidden=!0),t.hidden=!1)}_getKeyModifier(t){return Qt.platform.isMac?t.metaKey:t.ctrlKey}_setEventListener(t,e,s,i,r){s.includes("mouse")?t.addEventListener(s,a=>{var o;(o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:r(a),shift:a.shiftKey,modifier:this._getKeyModifier(a)}})}):t.addEventListener(s,a=>{var o;if(s==="blur"){if(!e.focused||!a.relatedTarget)return;e.focused=!1}else if(s==="focus"){if(e.focused)return;e.focused=!0}r&&((o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:r(a)}}))})}_setEventListeners(t,e,s,i){var r,a,o;for(const[l,h]of s)(h==="Action"||(r=this.data.actions)!=null&&r[h])&&((h==="Focus"||h==="Blur")&&(e||(e={focused:!1})),this._setEventListener(t,e,l,h,i),h==="Focus"&&!((a=this.data.actions)!=null&&a.Blur)?this._setEventListener(t,e,"blur","Blur",null):h==="Blur"&&!((o=this.data.actions)!=null&&o.Focus)&&this._setEventListener(t,e,"focus","Focus",null))}_setBackgroundColor(t){const e=this.data.backgroundColor||null;t.style.backgroundColor=e===null?"transparent":N.makeHexColor(e[0],e[1],e[2])}_setTextStyle(t){const e=["left","center","right"],{fontColor:s}=this.data.defaultAppearanceData,i=this.data.defaultAppearanceData.fontSize||ay,r=t.style;let a;const o=2,l=h=>Math.round(10*h)/10;if(this.data.multiLine){const h=Math.abs(this.data.rect[3]-this.data.rect[1]-o),c=Math.round(h/(zu*i))||1,f=h/c;a=Math.min(i,l(f/zu))}else{const h=Math.abs(this.data.rect[3]-this.data.rect[1]-o);a=Math.min(i,l(h/zu))}r.fontSize=`calc(${a}px * var(--scale-factor))`,r.color=N.makeHexColor(s[0],s[1],s[2]),this.data.textAlignment!==null&&(r.textAlign=e[this.data.textAlignment])}_setRequired(t,e){e?t.setAttribute("required",!0):t.removeAttribute("required"),t.setAttribute("aria-required",e)}}class hy extends br{constructor(t){const e=t.renderForms||t.data.hasOwnCanvas||!t.data.hasAppearance&&!!t.data.fieldValue;super(t,{isRenderable:e})}setPropertyOnSiblings(t,e,s,i){const r=this.annotationStorage;for(const a of this._getElementsByName(t.name,t.id))a.domElement&&(a.domElement[e]=s),r.setValue(a.id,{[i]:s})}render(){var i,r;const t=this.annotationStorage,e=this.data.id;this.container.classList.add("textWidgetAnnotation");let s=null;if(this.renderForms){const a=t.getValue(e,{value:this.data.fieldValue});let o=a.value||"";const l=t.getValue(e,{charLimit:this.data.maxLen}).charLimit;l&&o.length>l&&(o=o.slice(0,l));let h=a.formattedValue||((i=this.data.textContent)==null?void 0:i.join(` +`))||null;h&&this.data.comb&&(h=h.replaceAll(/\s+/g,""));const c={userValue:o,formattedValue:h,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(s=document.createElement("textarea"),s.textContent=h!=null?h:o,this.data.doNotScroll&&(s.style.overflowY="hidden")):(s=document.createElement("input"),s.type="text",s.setAttribute("value",h!=null?h:o),this.data.doNotScroll&&(s.style.overflowX="hidden")),this.data.hasOwnCanvas&&(s.hidden=!0),mr.add(s),s.setAttribute("data-element-id",e),s.disabled=this.data.readOnly,s.name=this.data.fieldName,s.tabIndex=Jh,this._setRequired(s,this.data.required),l&&(s.maxLength=l),s.addEventListener("input",g=>{t.setValue(e,{value:g.target.value}),this.setPropertyOnSiblings(s,"value",g.target.value,"value"),c.formattedValue=null}),s.addEventListener("resetform",g=>{var A;const m=(A=this.data.defaultFieldValue)!=null?A:"";s.value=c.userValue=m,c.formattedValue=null});let f=g=>{const{formattedValue:m}=c;m!=null&&(g.target.value=m),g.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){s.addEventListener("focus",m=>{var y;if(c.focused)return;const{target:A}=m;c.userValue&&(A.value=c.userValue),c.lastCommittedValue=A.value,c.commitKey=1,(y=this.data.actions)!=null&&y.Focus||(c.focused=!0)}),s.addEventListener("updatefromsandbox",m=>{this.showElementAndHideCanvas(m.target);const A={value(y){var v;c.userValue=(v=y.detail.value)!=null?v:"",t.setValue(e,{value:c.userValue.toString()}),y.target.value=c.userValue},formattedValue(y){const{formattedValue:v}=y.detail;c.formattedValue=v,v!=null&&y.target!==document.activeElement&&(y.target.value=v),t.setValue(e,{formattedValue:v})},selRange(y){y.target.setSelectionRange(...y.detail.selRange)},charLimit:y=>{var E;const{charLimit:v}=y.detail,{target:w}=y;if(v===0){w.removeAttribute("maxLength");return}w.setAttribute("maxLength",v);let _=c.userValue;!_||_.length<=v||(_=_.slice(0,v),w.value=c.userValue=_,t.setValue(e,{value:_}),(E=this.linkService.eventBus)==null||E.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:_,willCommit:!0,commitKey:1,selStart:w.selectionStart,selEnd:w.selectionEnd}}))}};this._dispatchEventFromSandbox(A,m)}),s.addEventListener("keydown",m=>{var v;c.commitKey=1;let A=-1;if(m.key==="Escape"?A=0:m.key==="Enter"&&!this.data.multiLine?A=2:m.key==="Tab"&&(c.commitKey=3),A===-1)return;const{value:y}=m.target;c.lastCommittedValue!==y&&(c.lastCommittedValue=y,c.userValue=y,(v=this.linkService.eventBus)==null||v.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:y,willCommit:!0,commitKey:A,selStart:m.target.selectionStart,selEnd:m.target.selectionEnd}}))});const g=f;f=null,s.addEventListener("blur",m=>{var y,v;if(!c.focused||!m.relatedTarget)return;(y=this.data.actions)!=null&&y.Blur||(c.focused=!1);const{value:A}=m.target;c.userValue=A,c.lastCommittedValue!==A&&((v=this.linkService.eventBus)==null||v.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:A,willCommit:!0,commitKey:c.commitKey,selStart:m.target.selectionStart,selEnd:m.target.selectionEnd}})),g(m)}),(r=this.data.actions)!=null&&r.Keystroke&&s.addEventListener("beforeinput",m=>{var C;c.lastCommittedValue=null;const{data:A,target:y}=m,{value:v,selectionStart:w,selectionEnd:_}=y;let E=w,S=_;switch(m.inputType){case"deleteWordBackward":{const T=v.substring(0,w).match(/\w*[^\w]*$/);T&&(E-=T[0].length);break}case"deleteWordForward":{const T=v.substring(w).match(/^[^\w]*\w*/);T&&(S+=T[0].length);break}case"deleteContentBackward":w===_&&(E-=1);break;case"deleteContentForward":w===_&&(S+=1);break}m.preventDefault(),(C=this.linkService.eventBus)==null||C.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:v,change:A||"",willCommit:!1,selStart:E,selEnd:S}})}),this._setEventListeners(s,c,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],m=>m.target.value)}if(f&&s.addEventListener("blur",f),this.data.comb){const m=(this.data.rect[2]-this.data.rect[0])/l;s.classList.add("comb"),s.style.letterSpacing=`calc(${m}px * var(--scale-factor) - 1ch)`}}else s=document.createElement("div"),s.textContent=this.data.fieldValue,s.style.verticalAlign="middle",s.style.display="table-cell",this.data.hasOwnCanvas&&(s.hidden=!0);return this._setTextStyle(s),this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class cy extends br{constructor(t){super(t,{isRenderable:!!t.data.hasOwnCanvas})}}class dy extends br{constructor(t){super(t,{isRenderable:t.renderForms})}render(){const t=this.annotationStorage,e=this.data,s=e.id;let i=t.getValue(s,{value:e.exportValue===e.fieldValue}).value;typeof i=="string"&&(i=i!=="Off",t.setValue(s,{value:i})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const r=document.createElement("input");return mr.add(r),r.setAttribute("data-element-id",s),r.disabled=e.readOnly,this._setRequired(r,this.data.required),r.type="checkbox",r.name=e.fieldName,i&&r.setAttribute("checked",!0),r.setAttribute("exportValue",e.exportValue),r.tabIndex=Jh,r.addEventListener("change",a=>{const{name:o,checked:l}=a.target;for(const h of this._getElementsByName(o,s)){const c=l&&h.exportValue===e.exportValue;h.domElement&&(h.domElement.checked=c),t.setValue(h.id,{value:c})}t.setValue(s,{value:l})}),r.addEventListener("resetform",a=>{const o=e.defaultFieldValue||"Off";a.target.checked=o===e.exportValue}),this.enableScripting&&this.hasJSActions&&(r.addEventListener("updatefromsandbox",a=>{const o={value(l){l.target.checked=l.detail.value!=="Off",t.setValue(s,{value:l.target.checked})}};this._dispatchEventFromSandbox(o,a)}),this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.checked)),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class lm extends br{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const t=this.annotationStorage,e=this.data,s=e.id;let i=t.getValue(s,{value:e.fieldValue===e.buttonValue}).value;if(typeof i=="string"&&(i=i!==e.buttonValue,t.setValue(s,{value:i})),i)for(const a of this._getElementsByName(e.fieldName,s))t.setValue(a.id,{value:!1});const r=document.createElement("input");if(mr.add(r),r.setAttribute("data-element-id",s),r.disabled=e.readOnly,this._setRequired(r,this.data.required),r.type="radio",r.name=e.fieldName,i&&r.setAttribute("checked",!0),r.tabIndex=Jh,r.addEventListener("change",a=>{const{name:o,checked:l}=a.target;for(const h of this._getElementsByName(o,s))t.setValue(h.id,{value:!1});t.setValue(s,{value:l})}),r.addEventListener("resetform",a=>{const o=e.defaultFieldValue;a.target.checked=o!=null&&o===e.buttonValue}),this.enableScripting&&this.hasJSActions){const a=e.buttonValue;r.addEventListener("updatefromsandbox",o=>{const l={value:h=>{const c=a===h.detail.value;for(const f of this._getElementsByName(h.target.name)){const g=c&&f.id===s;f.domElement&&(f.domElement.checked=g),t.setValue(f.id,{value:g})}}};this._dispatchEventFromSandbox(l,o)}),this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],o=>o.target.checked)}return this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class uy extends rm{constructor(t){super(t,{ignoreBorder:t.data.hasAppearance})}render(){const t=super.render();t.classList.add("buttonWidgetAnnotation","pushButton");const e=t.lastChild;return this.enableScripting&&this.hasJSActions&&e&&(this._setDefaultPropertiesFromJS(e),e.addEventListener("updatefromsandbox",s=>{this._dispatchEventFromSandbox({},s)})),t}}class fy extends br{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const t=this.annotationStorage,e=this.data.id,s=t.getValue(e,{value:this.data.fieldValue}),i=document.createElement("select");mr.add(i),i.setAttribute("data-element-id",e),i.disabled=this.data.readOnly,this._setRequired(i,this.data.required),i.name=this.data.fieldName,i.tabIndex=Jh;let r=this.data.combo&&this.data.options.length>0;this.data.combo||(i.size=this.data.options.length,this.data.multiSelect&&(i.multiple=!0)),i.addEventListener("resetform",c=>{const f=this.data.defaultFieldValue;for(const g of i.options)g.selected=g.value===f});for(const c of this.data.options){const f=document.createElement("option");f.textContent=c.displayValue,f.value=c.exportValue,s.value.includes(c.exportValue)&&(f.setAttribute("selected",!0),r=!1),i.append(f)}let a=null;if(r){const c=document.createElement("option");c.value=" ",c.setAttribute("hidden",!0),c.setAttribute("selected",!0),i.prepend(c),a=()=>{c.remove(),i.removeEventListener("input",a),a=null},i.addEventListener("input",a)}const o=c=>{const f=c?"value":"textContent",{options:g,multiple:m}=i;return m?Array.prototype.filter.call(g,A=>A.selected).map(A=>A[f]):g.selectedIndex===-1?null:g[g.selectedIndex][f]};let l=o(!1);const h=c=>{const f=c.target.options;return Array.prototype.map.call(f,g=>({displayValue:g.textContent,exportValue:g.value}))};return this.enableScripting&&this.hasJSActions?(i.addEventListener("updatefromsandbox",c=>{const f={value(g){a==null||a();const m=g.detail.value,A=new Set(Array.isArray(m)?m:[m]);for(const y of i.options)y.selected=A.has(y.value);t.setValue(e,{value:o(!0)}),l=o(!1)},multipleSelection(g){i.multiple=!0},remove(g){const m=i.options,A=g.detail.remove;m[A].selected=!1,i.remove(A),m.length>0&&Array.prototype.findIndex.call(m,v=>v.selected)===-1&&(m[0].selected=!0),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},clear(g){for(;i.length!==0;)i.remove(0);t.setValue(e,{value:null,items:[]}),l=o(!1)},insert(g){const{index:m,displayValue:A,exportValue:y}=g.detail.insert,v=i.children[m],w=document.createElement("option");w.textContent=A,w.value=y,v?v.before(w):i.append(w),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},items(g){const{items:m}=g.detail;for(;i.length!==0;)i.remove(0);for(const A of m){const{displayValue:y,exportValue:v}=A,w=document.createElement("option");w.textContent=y,w.value=v,i.append(w)}i.options.length>0&&(i.options[0].selected=!0),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},indices(g){const m=new Set(g.detail.indices);for(const A of g.target.options)A.selected=m.has(A.index);t.setValue(e,{value:o(!0)}),l=o(!1)},editable(g){g.target.disabled=!g.detail.editable}};this._dispatchEventFromSandbox(f,c)}),i.addEventListener("input",c=>{var m;const f=o(!0),g=o(!1);t.setValue(e,{value:f}),c.preventDefault(),(m=this.linkService.eventBus)==null||m.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:l,change:g,changeEx:f,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(i,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],c=>c.target.value)):i.addEventListener("input",function(c){t.setValue(e,{value:o(!0)})}),this.data.combo&&this._setTextStyle(i),this._setBackgroundColor(i),this._setDefaultPropertiesFromJS(i),this.container.append(i),this.container}}class Df extends mt{constructor(t){const{data:e,elements:s}=t;super(t,{isRenderable:mt._hasPopupData(e)}),this.elements=s,this.popup=null}render(){this.container.classList.add("popupAnnotation");const t=this.popup=new py({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),e=[];for(const s of this.elements)s.popup=t,s.container.ariaHasPopup="dialog",e.push(s.data.id),s.addHighlightArea();return this.container.setAttribute("aria-controls",e.map(s=>`${up}${s}`).join(",")),this.container}}var va,Bd,Hd,_a,Bn,ft,Bs,Sa,Ql,Jl,Ea,Hs,Be,$s,Zl,Gs,th,Hn,$n,Ca,yc,eh,Ff,$d,hm,Gd,cm,zd,dm,Vd,um,xa,wc,Ta,vc,sh,Nf;class py{constructor({container:t,color:e,elements:s,titleObj:i,modificationDate:r,contentsObj:a,richText:o,parent:l,rect:h,parentRect:c,open:f}){u(this,Ca);u(this,eh);u(this,$d);u(this,Gd);u(this,zd);u(this,Vd);u(this,xa);u(this,Ta);u(this,sh);u(this,va,b(this,zd,dm).bind(this));u(this,Bd,b(this,sh,Nf).bind(this));u(this,Hd,b(this,Ta,vc).bind(this));u(this,_a,b(this,xa,wc).bind(this));u(this,Bn,null);u(this,ft,null);u(this,Bs,null);u(this,Sa,null);u(this,Ql,null);u(this,Jl,null);u(this,Ea,null);u(this,Hs,!1);u(this,Be,null);u(this,$s,null);u(this,Zl,null);u(this,Gs,null);u(this,th,null);u(this,Hn,null);u(this,$n,!1);var g;p(this,ft,t),p(this,th,i),p(this,Bs,a),p(this,Gs,o),p(this,Jl,l),p(this,Bn,e),p(this,Zl,h),p(this,Ea,c),p(this,Ql,s),p(this,Sa,gp.toDateObject(r)),this.trigger=s.flatMap(m=>m.getElementsToTriggerPopup());for(const m of this.trigger)m.addEventListener("click",n(this,_a)),m.addEventListener("mouseenter",n(this,Hd)),m.addEventListener("mouseleave",n(this,Bd)),m.classList.add("popupTriggerArea");for(const m of s)(g=m.container)==null||g.addEventListener("keydown",n(this,va));n(this,ft).hidden=!0,f&&b(this,xa,wc).call(this)}render(){if(n(this,Be))return;const t=p(this,Be,document.createElement("div"));if(t.className="popup",n(this,Bn)){const r=t.style.outlineColor=N.makeHexColor(...n(this,Bn));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?t.style.backgroundColor=`color-mix(in srgb, ${r} 30%, white)`:t.style.backgroundColor=N.makeHexColor(...n(this,Bn).map(o=>Math.floor(.7*(255-o)+o)))}const e=document.createElement("span");e.className="header";const s=document.createElement("h1");if(e.append(s),{dir:s.dir,str:s.textContent}=n(this,th),t.append(e),n(this,Sa)){const r=document.createElement("span");r.classList.add("popupDate"),r.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),r.setAttribute("data-l10n-args",JSON.stringify({dateObj:n(this,Sa).valueOf()})),e.append(r)}const i=n(this,Ca,yc);if(i)nm.render({xfaHtml:i,intent:"richText",div:t}),t.lastChild.classList.add("richText","popupContent");else{const r=this._formatContents(n(this,Bs));t.append(r)}n(this,ft).append(t)}_formatContents({str:t,dir:e}){const s=document.createElement("p");s.classList.add("popupContent"),s.dir=e;const i=t.split(/(?:\r\n?|\n)/);for(let r=0,a=i.length;r=0&&a.setAttribute("stroke-width",s||1),i)for(let o=0,l=n(this,Gn).length;o{a.key==="Enter"&&(r?a.metaKey:a.ctrlKey)&&b(this,ch,Bf).call(this)}),!s.popupRef&&this.hasPopupData?this._createPopup():i.classList.add("popupTriggerArea"),e.append(i),e}getElementsToTriggerPopup(){return n(this,hh)}addHighlightArea(){this.container.classList.add("highlightArea")}}hh=new WeakMap,ch=new WeakSet,Bf=function(){var e;(e=this.downloadManager)==null||e.openOrDownloadData(this.content,this.filename)};var dh,zn,Vn,uh,Ud,bm,fh,Hf;class Ey{constructor({div:t,accessibilityManager:e,annotationCanvasMap:s,annotationEditorUIManager:i,page:r,viewport:a,structTreeLayer:o}){u(this,Ud);u(this,fh);u(this,dh,null);u(this,zn,null);u(this,Vn,new Map);u(this,uh,null);this.div=t,p(this,dh,e),p(this,zn,s),p(this,uh,o||null),this.page=r,this.viewport=a,this.zIndex=0,this._annotationEditorUIManager=i}hasEditableAnnotations(){return n(this,Vn).size>0}render(t){return L(this,null,function*(){var a;const{annotations:e}=t,s=this.div;pr(s,this.viewport);const i=new Map,r={data:null,layer:s,linkService:t.linkService,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:t.renderForms!==!1,svgFactory:new yp,annotationStorage:t.annotationStorage||new bp,enableScripting:t.enableScripting===!0,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,parent:this,elements:null};for(const o of e){if(o.noHTML)continue;const l=o.annotationType===wt.POPUP;if(l){const f=i.get(o.id);if(!f)continue;r.elements=f}else{const{width:f,height:g}=Hi(o.rect);if(f<=0||g<=0)continue}r.data=o;const h=oy.create(r);if(!h.isRenderable)continue;if(!l&&o.popupRef){const f=i.get(o.popupRef);f?f.push(h):i.set(o.popupRef,[h])}const c=h.render();o.hidden&&(c.style.visibility="hidden"),yield b(this,Ud,bm).call(this,c,o.id),h._isEditable&&(n(this,Vn).set(h.data.id,h),(a=this._annotationEditorUIManager)==null||a.renderAnnotationElement(h))}b(this,fh,Hf).call(this)})}update({viewport:t}){const e=this.div;this.viewport=t,pr(e,{rotation:t.rotation}),b(this,fh,Hf).call(this),e.hidden=!1}getEditableAnnotations(){return Array.from(n(this,Vn).values())}getEditableAnnotation(t){return n(this,Vn).get(t)}}dh=new WeakMap,zn=new WeakMap,Vn=new WeakMap,uh=new WeakMap,Ud=new WeakSet,bm=function(t,e){return L(this,null,function*(){var a,o;const s=t.firstChild||t,i=s.id=`${up}${e}`,r=yield(a=n(this,uh))==null?void 0:a.getAriaAttributes(i);if(r)for(const[l,h]of r)s.setAttribute(l,h);this.div.append(t),(o=n(this,dh))==null||o.moveElementInDOM(this.div,t,s,!1)})},fh=new WeakSet,Hf=function(){if(!n(this,zn))return;const t=this.div;for(const[e,s]of n(this,zn)){const i=t.querySelector(`[data-annotation-id="${e}"]`);if(!i)continue;s.className="annotationContent";const{firstChild:r}=i;r?r.nodeName==="CANVAS"?r.replaceWith(s):r.classList.contains("annotationContent")?r.after(s):r.before(s):i.append(s)}n(this,zn).clear()};const ic=/\r\n?|\n/g;var He,de,ph,Un,ue,jd,Am,Wd,ym,Xd,wm,Pa,_c,Ra,Sc,ka,Ec,qd,vm,gh,Gf,Yd,_m;const et=class et extends ct{constructor(e){super(yr(bs({},e),{name:"freeTextEditor"}));u(this,jd);u(this,Wd);u(this,Xd);u(this,Pa);u(this,ka);u(this,qd);u(this,Yd);u(this,He,void 0);u(this,de,"");u(this,ph,`${this.id}-editor`);u(this,Un,null);u(this,ue,void 0);p(this,He,e.color||et._defaultColor||ct._defaultLineColor),p(this,ue,e.fontSize||et._defaultFontSize)}static get _keyboardManager(){const e=et.prototype,s=a=>a.isEmpty(),i=gr.TRANSLATE_SMALL,r=gr.TRANSLATE_BIG;return q(this,"_keyboardManager",new Qh([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],e.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],e.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],e._translateEmpty,{args:[-i,0],checker:s}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e._translateEmpty,{args:[-r,0],checker:s}],[["ArrowRight","mac+ArrowRight"],e._translateEmpty,{args:[i,0],checker:s}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e._translateEmpty,{args:[r,0],checker:s}],[["ArrowUp","mac+ArrowUp"],e._translateEmpty,{args:[0,-i],checker:s}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e._translateEmpty,{args:[0,-r],checker:s}],[["ArrowDown","mac+ArrowDown"],e._translateEmpty,{args:[0,i],checker:s}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e._translateEmpty,{args:[0,r],checker:s}]]))}static initialize(e,s){ct.initialize(e,s);const i=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(i.getPropertyValue("--freetext-padding"))}static updateDefaultParams(e,s){switch(e){case K.FREETEXT_SIZE:et._defaultFontSize=s;break;case K.FREETEXT_COLOR:et._defaultColor=s;break}}updateParams(e,s){switch(e){case K.FREETEXT_SIZE:b(this,jd,Am).call(this,s);break;case K.FREETEXT_COLOR:b(this,Wd,ym).call(this,s);break}}static get defaultPropertiesToUpdate(){return[[K.FREETEXT_SIZE,et._defaultFontSize],[K.FREETEXT_COLOR,et._defaultColor||ct._defaultLineColor]]}get propertiesToUpdate(){return[[K.FREETEXT_SIZE,n(this,ue)],[K.FREETEXT_COLOR,n(this,He)]]}_translateEmpty(e,s){this._uiManager.translateSelectedEditors(e,s,!0)}getInitialTranslation(){const e=this.parentScale;return[-et._internalPadding*e,-(et._internalPadding+n(this,ue))*e]}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(this.isInEditMode())return;this.parent.setEditingState(!1),this.parent.updateToolbar(U.FREETEXT),super.enableEditMode(),this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),p(this,Un,new AbortController);const e=this._uiManager.combinedSignal(n(this,Un));this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:e}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:e}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:e}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:e}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:e})}disableEditMode(){var e;this.isInEditMode()&&(this.parent.setEditingState(!0),super.disableEditMode(),this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",n(this,ph)),this._isDraggable=!0,(e=n(this,Un))==null||e.abort(),p(this,Un,null),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"))}focusin(e){this._focusEventsAllowed&&(super.focusin(e),e.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(e){var s;this.width||(this.enableEditMode(),e&&this.editorDiv.focus(),(s=this._initialOptions)!=null&&s.isCentered&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||this.editorDiv.innerText.trim()===""}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();const e=n(this,de),s=p(this,de,b(this,Xd,wm).call(this).trimEnd());if(e===s)return;const i=r=>{if(p(this,de,r),!r){this.remove();return}b(this,ka,Ec).call(this),this._uiManager.rebuild(this),b(this,Pa,_c).call(this)};this.addCommands({cmd:()=>{i(s)},undo:()=>{i(e)},mustExec:!1}),b(this,Pa,_c).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}dblclick(e){this.enterInEditMode()}keydown(e){e.target===this.div&&e.key==="Enter"&&(this.enterInEditMode(),e.preventDefault())}editorDivKeydown(e){et._keyboardManager.exec(this,e)}editorDivFocus(e){this.isEditing=!0}editorDivBlur(e){this.isEditing=!1}editorDivInput(e){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}render(){if(this.div)return this.div;let e,s;this.width&&(e=this.x,s=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",n(this,ph)),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;const{style:i}=this.editorDiv;if(i.fontSize=`calc(${n(this,ue)}px * var(--scale-factor))`,i.color=n(this,He),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),Nc(this,this.div,["dblclick","keydown"]),this.width){const[r,a]=this.parentDimensions;if(this.annotationElementId){const{position:o}=this._initialData;let[l,h]=this.getInitialTranslation();[l,h]=this.pageTranslationToScreen(l,h);const[c,f]=this.pageDimensions,[g,m]=this.pageTranslation;let A,y;switch(this.rotation){case 0:A=e+(o[0]-g)/c,y=s+this.height-(o[1]-m)/f;break;case 90:A=e+(o[0]-g)/c,y=s-(o[1]-m)/f,[l,h]=[h,-l];break;case 180:A=e-this.width+(o[0]-g)/c,y=s-(o[1]-m)/f,[l,h]=[-l,-h];break;case 270:A=e+(o[0]-g-this.height*f)/c,y=s+(o[1]-m-this.width*c)/f,[l,h]=[-h,l];break}this.setAt(A*r,y*a,l,h)}else this.setAt(e*r,s*a,this.width*r,this.height*a);b(this,ka,Ec).call(this),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}editorDivPaste(e){var A,y,v;const s=e.clipboardData||window.clipboardData,{types:i}=s;if(i.length===1&&i[0]==="text/plain")return;e.preventDefault();const r=b(A=et,gh,Gf).call(A,s.getData("text")||"").replaceAll(ic,` +`);if(!r)return;const a=window.getSelection();if(!a.rangeCount)return;this.editorDiv.normalize(),a.deleteFromDocument();const o=a.getRangeAt(0);if(!r.includes(` +`)){o.insertNode(document.createTextNode(r)),this.editorDiv.normalize(),a.collapseToStart();return}const{startContainer:l,startOffset:h}=o,c=[],f=[];if(l.nodeType===Node.TEXT_NODE){const w=l.parentElement;if(f.push(l.nodeValue.slice(h).replaceAll(ic,"")),w!==this.editorDiv){let _=c;for(const E of this.editorDiv.childNodes){if(E===w){_=f;continue}_.push(b(y=et,Ra,Sc).call(y,E))}}c.push(l.nodeValue.slice(0,h).replaceAll(ic,""))}else if(l===this.editorDiv){let w=c,_=0;for(const E of this.editorDiv.childNodes)_++===h&&(w=f),w.push(b(v=et,Ra,Sc).call(v,E))}p(this,de,`${c.join(` +`)}${r}${f.join(` +`)}`),b(this,ka,Ec).call(this);const g=new Range;let m=c.reduce((w,_)=>w+_.length,0);for(const{firstChild:w}of this.editorDiv.childNodes)if(w.nodeType===Node.TEXT_NODE){const _=w.nodeValue.length;if(m<=_){g.setStart(w,m),g.setEnd(w,m);break}m-=_}a.removeAllRanges(),a.addRange(g)}get contentDiv(){return this.editorDiv}static deserialize(e,s,i){return L(this,null,function*(){var o;let r=null;if(e instanceof fm){const{data:{defaultAppearanceData:{fontSize:l,fontColor:h},rect:c,rotation:f,id:g,popupRef:m},textContent:A,textPosition:y,parent:{page:{pageNumber:v}}}=e;if(!A||A.length===0)return null;r=e={annotationType:U.FREETEXT,color:Array.from(h),fontSize:l,value:A.join(` +`),position:y,pageIndex:v-1,rect:c.slice(0),rotation:f,id:g,deleted:!1,popupRef:m}}const a=yield Vi(et,this,"deserialize").call(this,e,s,i);return p(a,ue,e.fontSize),p(a,He,N.makeHexColor(...e.color)),p(a,de,b(o=et,gh,Gf).call(o,e.value)),a.annotationElementId=e.id||null,a._initialData=r,a})}serialize(e=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const s=et._internalPadding*this.parentScale,i=this.getRect(s,s),r=ct._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:n(this,He)),a={annotationType:U.FREETEXT,color:r,fontSize:n(this,ue),value:b(this,qd,vm).call(this),pageIndex:this.pageIndex,rect:i,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return e?a:this.annotationElementId&&!b(this,Yd,_m).call(this,a)?null:(a.id=this.annotationElementId,a)}renderAnnotationElement(e){const s=super.renderAnnotationElement(e);if(this.deleted)return s;const{style:i}=s;i.fontSize=`calc(${n(this,ue)}px * var(--scale-factor))`,i.color=n(this,He),s.replaceChildren();for(const a of n(this,de).split(` +`)){const o=document.createElement("div");o.append(a?document.createTextNode(a):document.createElement("br")),s.append(o)}const r=et._internalPadding*this.parentScale;return e.updateEdited({rect:this.getRect(r,r),popupContent:n(this,de)}),s}resetAnnotationElement(e){super.resetAnnotationElement(e),e.resetEdited()}};He=new WeakMap,de=new WeakMap,ph=new WeakMap,Un=new WeakMap,ue=new WeakMap,jd=new WeakSet,Am=function(e){const s=r=>{this.editorDiv.style.fontSize=`calc(${r}px * var(--scale-factor))`,this.translate(0,-(r-n(this,ue))*this.parentScale),p(this,ue,r),b(this,Pa,_c).call(this)},i=n(this,ue);this.addCommands({cmd:s.bind(this,e),undo:s.bind(this,i),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:K.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},Wd=new WeakSet,ym=function(e){const s=r=>{p(this,He,this.editorDiv.style.color=r)},i=n(this,He);this.addCommands({cmd:s.bind(this,e),undo:s.bind(this,i),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:K.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},Xd=new WeakSet,wm=function(){var i;const e=[];this.editorDiv.normalize();let s=null;for(const r of this.editorDiv.childNodes)(s==null?void 0:s.nodeType)===Node.TEXT_NODE&&r.nodeName==="BR"||(e.push(b(i=et,Ra,Sc).call(i,r)),s=r);return e.join(` +`)},Pa=new WeakSet,_c=function(){const[e,s]=this.parentDimensions;let i;if(this.isAttachedToDOM)i=this.div.getBoundingClientRect();else{const{currentLayer:r,div:a}=this,o=a.style.display,l=a.classList.contains("hidden");a.classList.remove("hidden"),a.style.display="hidden",r.div.append(this.div),i=a.getBoundingClientRect(),a.remove(),a.style.display=o,a.classList.toggle("hidden",l)}this.rotation%180===this.parentRotation%180?(this.width=i.width/e,this.height=i.height/s):(this.width=i.height/e,this.height=i.width/s),this.fixAndSetPosition()},Ra=new WeakSet,Sc=function(e){return(e.nodeType===Node.TEXT_NODE?e.nodeValue:e.innerText).replaceAll(ic,"")},ka=new WeakSet,Ec=function(){if(this.editorDiv.replaceChildren(),!!n(this,de))for(const e of n(this,de).split(` +`)){const s=document.createElement("div");s.append(e?document.createTextNode(e):document.createElement("br")),this.editorDiv.append(s)}},qd=new WeakSet,vm=function(){return n(this,de).replaceAll(" "," ")},gh=new WeakSet,Gf=function(e){return e.replaceAll(" "," ")},Yd=new WeakSet,_m=function(e){const{value:s,fontSize:i,color:r,pageIndex:a}=this._initialData;return this._hasBeenMoved||e.value!==s||e.fontSize!==i||e.color.some((o,l)=>o!==r[l])||e.pageIndex!==a},u(et,Ra),u(et,gh),H(et,"_freeTextDefaultContent",""),H(et,"_internalPadding",0),H(et,"_defaultColor",null),H(et,"_defaultFontSize",10),H(et,"_type","freetext"),H(et,"_editorType",U.FREETEXT);let $f=et;class M{toSVGPath(){st("Abstract method `toSVGPath` must be implemented.")}get box(){st("Abstract getter `box` must be implemented.")}serialize(t,e){st("Abstract method `serialize` must be implemented.")}static _rescale(t,e,s,i,r,a){a||(a=new Float32Array(t.length));for(let o=0,l=t.length;o=6;i-=6)isNaN(e[i])?s.push(`L${e[i+4]} ${e[i+5]}`):s.push(`C${e[i]} ${e[i+1]} ${e[i+2]} ${e[i+3]} ${e[i+4]} ${e[i+5]}`);return b(this,Zd,Em).call(this,s),s.join(" ")}newFreeDrawOutline(t,e,s,i,r,a){return new Rm(t,e,s,i,r,a)}getOutlines(){var f,g;const t=n(this,hs),e=n(this,$e),s=n(this,X),[i,r,a,o]=n(this,fe),l=new Float32Array(((g=(f=n(this,xi))==null?void 0:f.length)!=null?g:0)+2);for(let m=0,A=l.length-2;m=6;m-=6)for(let A=0;A<6;A+=2){if(isNaN(e[m+A])){h[c]=h[c+1]=NaN,c+=2;continue}h[c]=e[m+A],h[c+1]=e[m+A+1],c+=2}return b(this,su,Tm).call(this,h,c),this.newFreeDrawOutline(h,l,n(this,fe),n(this,La),n(this,Ma),n(this,Ia))}};fe=new WeakMap,$e=new WeakMap,Ma=new WeakMap,Ia=new WeakMap,hs=new WeakMap,X=new WeakMap,jn=new WeakMap,Wn=new WeakMap,mh=new WeakMap,bh=new WeakMap,La=new WeakMap,Da=new WeakMap,xi=new WeakMap,Ah=new WeakMap,Kd=new WeakMap,Qd=new WeakMap,Xn=new WeakSet,Po=function(){const t=n(this,X).subarray(4,6),e=n(this,X).subarray(16,18),[s,i,r,a]=n(this,fe);return[(n(this,jn)+(t[0]-e[0])/2-s)/r,(n(this,Wn)+(t[1]-e[1])/2-i)/a,(n(this,jn)+(e[0]-t[0])/2-s)/r,(n(this,Wn)+(e[1]-t[1])/2-i)/a]},Jd=new WeakSet,Sm=function(){const[t,e,s,i]=n(this,fe),[r,a,o,l]=b(this,Xn,Po).call(this);return`M${(n(this,X)[2]-t)/s} ${(n(this,X)[3]-e)/i} L${(n(this,X)[4]-t)/s} ${(n(this,X)[5]-e)/i} L${r} ${a} L${o} ${l} L${(n(this,X)[16]-t)/s} ${(n(this,X)[17]-e)/i} L${(n(this,X)[14]-t)/s} ${(n(this,X)[15]-e)/i} Z`},Zd=new WeakSet,Em=function(t){const e=n(this,$e);t.push(`L${e[4]} ${e[5]} Z`)},tu=new WeakSet,Cm=function(t){const[e,s,i,r]=n(this,fe),a=n(this,X).subarray(4,6),o=n(this,X).subarray(16,18),[l,h,c,f]=b(this,Xn,Po).call(this);t.push(`L${(a[0]-e)/i} ${(a[1]-s)/r} L${l} ${h} L${c} ${f} L${(o[0]-e)/i} ${(o[1]-s)/r}`)},eu=new WeakSet,xm=function(t){const e=n(this,X),[s,i,r,a]=n(this,fe),[o,l,h,c]=b(this,Xn,Po).call(this),f=new Float32Array(36);return f.set([NaN,NaN,NaN,NaN,(e[2]-s)/r,(e[3]-i)/a,NaN,NaN,NaN,NaN,(e[4]-s)/r,(e[5]-i)/a,NaN,NaN,NaN,NaN,o,l,NaN,NaN,NaN,NaN,h,c,NaN,NaN,NaN,NaN,(e[16]-s)/r,(e[17]-i)/a,NaN,NaN,NaN,NaN,(e[14]-s)/r,(e[15]-i)/a],0),this.newFreeDrawOutline(f,t,n(this,fe),n(this,La),n(this,Ma),n(this,Ia))},su=new WeakSet,Tm=function(t,e){const s=n(this,$e);return t.set([NaN,NaN,NaN,NaN,s[4],s[5]],e),e+=6},iu=new WeakSet,Pm=function(t,e){const s=n(this,X).subarray(4,6),i=n(this,X).subarray(16,18),[r,a,o,l]=n(this,fe),[h,c,f,g]=b(this,Xn,Po).call(this);return t.set([NaN,NaN,NaN,NaN,(s[0]-r)/o,(s[1]-a)/l,NaN,NaN,NaN,NaN,h,c,NaN,NaN,NaN,NaN,f,g,NaN,NaN,NaN,NaN,(i[0]-r)/o,(i[1]-a)/l],e),e+=24},u(_s,Ah,8),u(_s,Kd,2),u(_s,Qd,n(_s,Ah)+n(_s,Kd));let Hc=_s;var Fa,qn,zs,yh,pe,wh,gt,nu,km;class Rm extends M{constructor(e,s,i,r,a,o){super();u(this,nu);u(this,Fa,void 0);u(this,qn,new Float32Array(4));u(this,zs,void 0);u(this,yh,void 0);u(this,pe,void 0);u(this,wh,void 0);u(this,gt,void 0);p(this,gt,e),p(this,pe,s),p(this,Fa,i),p(this,wh,r),p(this,zs,a),p(this,yh,o),this.lastPoint=[NaN,NaN],b(this,nu,km).call(this,o);const[l,h,c,f]=n(this,qn);for(let g=0,m=e.length;ge[0]-s[0]||e[1]-s[1]||e[2]-s[2]);const t=[];for(const e of n(this,Ti))e[3]?(t.push(...b(this,Sh,Vf).call(this,e)),b(this,au,Im).call(this,e)):(b(this,ou,Lm).call(this,e),t.push(...b(this,Sh,Vf).call(this,e)));return b(this,ru,Mm).call(this,t)}}vh=new WeakMap,_h=new WeakMap,Ti=new WeakMap,Ge=new WeakMap,ru=new WeakSet,Mm=function(t){const e=[],s=new Set;for(const a of t){const[o,l,h]=a;e.push([o,l,a],[o,h,a])}e.sort((a,o)=>a[1]-o[1]||a[0]-o[0]);for(let a=0,o=e.length;a0;){const a=s.values().next().value;let[o,l,h,c,f]=a;s.delete(a);let g=o,m=l;for(r=[o,h],i.push(r);;){let A;if(s.has(c))A=c;else if(s.has(f))A=f;else break;s.delete(A),[o,l,h,c,f]=A,g!==o&&(r.push(g,m,o,m===l?l:h),g=o),m=m===l?h:l}r.push(g,m)}return new Cy(i,n(this,vh),n(this,_h))},Na=new WeakSet,Cc=function(t){const e=n(this,Ge);let s=0,i=e.length-1;for(;s<=i;){const r=s+i>>1,a=e[r][0];if(a===t)return r;a=0;i--){const[r,a]=n(this,Ge)[i];if(r!==t)break;if(r===t&&a===e){n(this,Ge).splice(i,1);return}}},Sh=new WeakSet,Vf=function(t){const[e,s,i]=t,r=[[e,s,i]],a=b(this,Na,Cc).call(this,i);for(let o=0;o=l){if(m>h)r[c][1]=h;else{if(f===1)return[];r.splice(c,1),c--,f--}continue}r[c][2]=l,m>h&&r.push([e,h,m])}}}return r};var Eh,Oa;class Cy extends M{constructor(e,s,i){super();u(this,Eh,void 0);u(this,Oa,void 0);p(this,Oa,e),p(this,Eh,s),this.lastPoint=i}toSVGPath(){const e=[];for(const s of n(this,Oa)){let[i,r]=s;e.push(`M${i} ${r}`);for(let a=2;a-1?(p(this,Lt,!0),b(this,ja,xc).call(this,e),b(this,Ws,Wi).call(this)):n(this,Us)&&(p(this,Ga,e.anchorNode),p(this,Ih,e.anchorOffset),p(this,Lh,e.focusNode),p(this,Dh,e.focusOffset),b(this,Nh,qf).call(this),b(this,Ws,Wi).call(this),this.rotate(this.rotation))}static get _keyboardManager(){const e=Y.prototype;return q(this,"_keyboardManager",new Qh([[["ArrowLeft","mac+ArrowLeft"],e._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],e._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],e._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],e._moveCaret,{args:[3]}]]))}get telemetryInitialData(){return{action:"added",type:n(this,Lt)?"free_highlight":"highlight",color:this._uiManager.highlightColorNames.get(this.color),thickness:n(this,xe),methodOfCreation:n(this,Fh)}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.highlightColorNames.get(this.color)}}static computeTelemetryFinalData(e){return{numberOfColors:e.get("color").size}}static initialize(e,s){var i;ct.initialize(e,s),Y._defaultColor||(Y._defaultColor=((i=s.highlightColors)==null?void 0:i.values().next().value)||"#fff066")}static updateDefaultParams(e,s){switch(e){case K.HIGHLIGHT_DEFAULT_COLOR:Y._defaultColor=s;break;case K.HIGHLIGHT_THICKNESS:Y._defaultThickness=s;break}}translateInPage(e,s){}get toolbarPosition(){return n(this,Va)}updateParams(e,s){switch(e){case K.HIGHLIGHT_COLOR:b(this,hu,Fm).call(this,s);break;case K.HIGHLIGHT_THICKNESS:b(this,cu,Nm).call(this,s);break}}static get defaultPropertiesToUpdate(){return[[K.HIGHLIGHT_DEFAULT_COLOR,Y._defaultColor],[K.HIGHLIGHT_THICKNESS,Y._defaultThickness]]}get propertiesToUpdate(){return[[K.HIGHLIGHT_COLOR,this.color||Y._defaultColor],[K.HIGHLIGHT_THICKNESS,n(this,xe)||Y._defaultThickness],[K.HIGHLIGHT_FREE,n(this,Lt)]]}addEditToolbar(){return L(this,null,function*(){const e=yield Vi(Y.prototype,this,"addEditToolbar").call(this);return e?(this._uiManager.highlightColors&&(p(this,za,new $c({editor:this})),e.addColorPicker(n(this,za))),e):null})}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}fixAndSetPosition(){return super.fixAndSetPosition(b(this,Jn,Ro).call(this))}getBaseTranslation(){return[0,0]}getRect(e,s){return super.getRect(e,s,b(this,Jn,Ro).call(this))}onceAdded(e){this.annotationElementId||this.parent.addUndoableEditor(this),e&&this.div.focus()}remove(){b(this,Oh,Yf).call(this),this._reportTelemetry({action:"deleted"}),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(b(this,Ws,Wi).call(this),this.isAttachedToDOM||this.parent.add(this)))}setParent(e){var i;let s=!1;this.parent&&!e?b(this,Oh,Yf).call(this):e&&(b(this,Ws,Wi).call(this,e),s=!this.parent&&((i=this.div)==null?void 0:i.classList.contains("selectedEditor"))),super.setParent(e),this.show(this._isVisible),s&&this.select()}rotate(e){var r,a,o;const{drawLayer:s}=this.parent;let i;n(this,Lt)?(e=(e-this.rotation+360)%360,i=b(r=Y,Ri,xr).call(r,n(this,Ce).box,e)):i=b(a=Y,Ri,xr).call(a,[this.x,this.y,this.width,this.height],e),s.updateProperties(n(this,ge),{bbox:i,root:{"data-main-rotation":e}}),s.updateProperties(n(this,Gt),{bbox:b(o=Y,Ri,xr).call(o,n(this,ie).box,e),root:{"data-main-rotation":e}})}render(){if(this.div)return this.div;const e=super.render();n(this,Ua)&&(e.setAttribute("aria-label",n(this,Ua)),e.setAttribute("role","mark")),n(this,Lt)?e.classList.add("free"):this.div.addEventListener("keydown",b(this,uu,Bm).bind(this),{signal:this._uiManager._signal});const s=p(this,Qn,document.createElement("div"));e.append(s),s.setAttribute("aria-hidden","true"),s.className="internal",s.style.clipPath=n(this,Kn);const[i,r]=this.parentDimensions;return this.setDims(this.width*i,this.height*r),Nc(this,n(this,Qn),["pointerover","pointerleave"]),this.enableEditing(),e}pointerover(){var e;this.isSelected||(e=this.parent)==null||e.drawLayer.updateProperties(n(this,Gt),{rootClass:{hovered:!0}})}pointerleave(){var e;this.isSelected||(e=this.parent)==null||e.drawLayer.updateProperties(n(this,Gt),{rootClass:{hovered:!1}})}_moveCaret(e){switch(this.parent.unselect(this),e){case 0:case 2:b(this,Wa,Tc).call(this,!0);break;case 1:case 3:b(this,Wa,Tc).call(this,!1);break}}select(){var e;super.select(),n(this,Gt)&&((e=this.parent)==null||e.drawLayer.updateProperties(n(this,Gt),{rootClass:{hovered:!1,selected:!0}}))}unselect(){var e;super.unselect(),n(this,Gt)&&((e=this.parent)==null||e.drawLayer.updateProperties(n(this,Gt),{rootClass:{selected:!1}}),n(this,Lt)||b(this,Wa,Tc).call(this,!1))}get _mustFixPosition(){return!n(this,Lt)}show(e=this._isVisible){super.show(e),this.parent&&(this.parent.drawLayer.updateProperties(n(this,ge),{rootClass:{hidden:!e}}),this.parent.drawLayer.updateProperties(n(this,Gt),{rootClass:{hidden:!e}}))}static startHighlighting(e,s,{target:i,x:r,y:a}){const{x:o,y:l,width:h,height:c}=i.getBoundingClientRect(),f=new AbortController,g=e.combinedSignal(f),m=A=>{f.abort(),b(this,mu,zm).call(this,e,A)};window.addEventListener("blur",m,{signal:g}),window.addEventListener("pointerup",m,{signal:g}),window.addEventListener("pointerdown",we,{capture:!0,passive:!1,signal:g}),window.addEventListener("contextmenu",Xe,{signal:g}),i.addEventListener("pointermove",b(this,gu,Gm).bind(this,e),{signal:g}),this._freeHighlight=new Uf({x:r,y:a},[o,l,h,c],e.scale,this._defaultThickness/2,s,.001),{id:this._freeHighlightId,clipPathId:this._freeHighlightClipId}=e.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:this._defaultColor,"fill-opacity":this._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:this._freeHighlight.toSVGPath()}},!0,!0)}static deserialize(e,s,i){return L(this,null,function*(){var y,v,w,_;let r=null;if(e instanceof gm){const{data:{quadPoints:E,rect:S,rotation:C,id:T,color:x,opacity:R,popupRef:D},parent:{page:{pageNumber:V}}}=e;r=e={annotationType:U.HIGHLIGHT,color:Array.from(x),opacity:R,quadPoints:E,boxes:null,pageIndex:V-1,rect:S.slice(0),rotation:C,id:T,deleted:!1,popupRef:D}}else if(e instanceof wp){const{data:{inkLists:E,rect:S,rotation:C,id:T,color:x,borderStyle:{rawWidth:R},popupRef:D},parent:{page:{pageNumber:V}}}=e;r=e={annotationType:U.HIGHLIGHT,color:Array.from(x),thickness:R,inkLists:E,boxes:null,pageIndex:V-1,rect:S.slice(0),rotation:C,id:T,deleted:!1,popupRef:D}}const{color:a,quadPoints:o,inkLists:l,opacity:h}=e,c=yield Vi(Y,this,"deserialize").call(this,e,s,i);c.color=N.makeHexColor(...a),p(c,js,h||1),l&&p(c,xe,e.thickness),c.annotationElementId=e.id||null,c._initialData=r;const[f,g]=c.pageDimensions,[m,A]=c.pageTranslation;if(o){const E=p(c,Us,[]);for(let S=0;S=0)p(this,ge,s),p(this,Kn,i),this.parent.drawLayer.finalizeDraw(s,{bbox:e.box,path:{d:e.toSVGPath()}}),p(this,Gt,this.parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:!0},bbox:n(this,ie).box,path:{d:n(this,ie).toSVGPath()}},!0));else if(this.parent){const m=this.parent.viewport.rotation;this.parent.drawLayer.updateProperties(n(this,ge),{bbox:b(f=Y,Ri,xr).call(f,n(this,Ce).box,(m-this.rotation+360)%360),path:{d:e.toSVGPath()}}),this.parent.drawLayer.updateProperties(n(this,Gt),{bbox:b(g=Y,Ri,xr).call(g,n(this,ie).box,m),path:{d:n(this,ie).toSVGPath()}})}const[a,o,l,h]=e.box;switch(this.rotation){case 0:this.x=a,this.y=o,this.width=l,this.height=h;break;case 90:{const[m,A]=this.parentDimensions;this.x=o,this.y=1-a,this.width=l*A/m,this.height=h*m/A;break}case 180:this.x=1-a,this.y=1-o,this.width=l,this.height=h;break;case 270:{const[m,A]=this.parentDimensions;this.x=1-o,this.y=a,this.width=l*A/m,this.height=h*m/A;break}}const{lastPoint:c}=n(this,ie);p(this,Va,[(c[0]-a)/l,(c[1]-o)/h])},hu=new WeakSet,Fm=function(e){const s=(a,o)=>{var l,h;this.color=a,p(this,js,o),(l=this.parent)==null||l.drawLayer.updateProperties(n(this,ge),{root:{fill:a,"fill-opacity":o}}),(h=n(this,za))==null||h.updateColor(a)},i=this.color,r=n(this,js);this.addCommands({cmd:s.bind(this,e,Y._defaultOpacity),undo:s.bind(this,i,r),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:K.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.highlightColorNames.get(e)},!0)},cu=new WeakSet,Nm=function(e){const s=n(this,xe),i=r=>{p(this,xe,r),b(this,du,Om).call(this,r)};this.addCommands({cmd:i.bind(this,e),undo:i.bind(this,s),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:K.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:e},!0)},du=new WeakSet,Om=function(e){if(!n(this,Lt))return;b(this,ja,xc).call(this,{highlightOutlines:n(this,Ce).getNewOutline(e/2)}),this.fixAndSetPosition();const[s,i]=this.parentDimensions;this.setDims(this.width*s,this.height*i)},Oh=new WeakSet,Yf=function(){n(this,ge)===null||!this.parent||(this.parent.drawLayer.remove(n(this,ge)),p(this,ge,null),this.parent.drawLayer.remove(n(this,Gt)),p(this,Gt,null))},Ws=new WeakSet,Wi=function(e=this.parent){n(this,ge)===null&&({id:jt(this,ge)._,clipPathId:jt(this,Kn)._}=e.drawLayer.draw({bbox:n(this,Ce).box,root:{viewBox:"0 0 1 1",fill:this.color,"fill-opacity":n(this,js)},rootClass:{highlight:!0,free:n(this,Lt)},path:{d:n(this,Ce).toSVGPath()}},!1,!0),p(this,Gt,e.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:n(this,Lt)},bbox:n(this,ie).box,path:{d:n(this,ie).toSVGPath()}},n(this,Lt))),n(this,Qn)&&(n(this,Qn).style.clipPath=n(this,Kn)))},Ri=new WeakSet,xr=function([e,s,i,r],a){switch(a){case 90:return[1-s-r,e,r,i];case 180:return[1-e-i,1-s-r,i,r];case 270:return[s,1-e-i,r,i]}return[e,s,i,r]},uu=new WeakSet,Bm=function(e){Y._keyboardManager.exec(this,e)},Wa=new WeakSet,Tc=function(e){if(!n(this,Ga))return;const s=window.getSelection();e?s.setPosition(n(this,Ga),n(this,Ih)):s.setPosition(n(this,Lh),n(this,Dh))},Jn=new WeakSet,Ro=function(){return n(this,Lt)?this.rotation:0},fu=new WeakSet,Hm=function(){if(n(this,Lt))return null;const[e,s]=this.pageDimensions,[i,r]=this.pageTranslation,a=n(this,Us),o=new Float32Array(a.length*8);let l=0;for(const{x:h,y:c,width:f,height:g}of a){const m=h*e+i,A=(1-c)*s+r;o[l]=o[l+4]=m,o[l+1]=o[l+3]=A,o[l+2]=o[l+6]=m+f*e,o[l+5]=o[l+7]=A-g*s,l+=8}return o},pu=new WeakSet,$m=function(e){return n(this,Ce).serialize(e,b(this,Jn,Ro).call(this))},gu=new WeakSet,Gm=function(e,s){this._freeHighlight.add(s)&&e.drawLayer.updateProperties(this._freeHighlightId,{path:{d:this._freeHighlight.toSVGPath()}})},mu=new WeakSet,zm=function(e,s){this._freeHighlight.isEmpty()?e.drawLayer.remove(this._freeHighlightId):e.createAndAddNewEditor(s,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""},bu=new WeakSet,Vm=function(e){const{color:s}=this._initialData;return e.color.some((i,r)=>i!==s[r])},u(Y,Ri),u(Y,gu),u(Y,mu),H(Y,"_defaultColor",null),H(Y,"_defaultOpacity",1),H(Y,"_defaultThickness",12),H(Y,"_type","highlight"),H(Y,"_editorType",U.HIGHLIGHT),H(Y,"_freeHighlightId",-1),H(Y,"_freeHighlight",null),H(Y,"_freeHighlightClipId","");let Gc=Y;var Zn;class Ty{constructor(){u(this,Zn,Object.create(null))}updateProperty(t,e){this[t]=e,this.updateSVGProperty(t,e)}updateProperties(t){if(t)for(const[e,s]of Object.entries(t))this.updateProperty(e,s)}updateSVGProperty(t,e){n(this,Zn)[t]=e}toSVGProperties(){const t=n(this,Zn);return p(this,Zn,Object.create(null)),{root:t}}reset(){p(this,Zn,Object.create(null))}updateAll(t=this){this.updateProperties(t)}clone(){st("Not implemented")}}Zn=new WeakMap;var me,Xa,Tt,tr,er,ki,Mi,Ii,sr,Bh,Qf,Hh,Jf,$h,Zf,ir,ko,Au,Um,qa,Pc,nr,Mo,Li,Tr;const k=class k extends ct{constructor(e){super(e);u(this,Bh);u(this,Hh);u(this,$h);u(this,ir);u(this,Au);u(this,qa);u(this,nr);u(this,Li);u(this,me,null);u(this,Xa,void 0);H(this,"_drawId",null);p(this,Xa,e.mustBeCommitted||!1),e.drawOutlines&&(b(this,Bh,Qf).call(this,e),b(this,ir,ko).call(this))}static _mergeSVGProperties(e,s){const i=new Set(Object.keys(e));for(const[r,a]of Object.entries(s))i.has(r)?Object.assign(e[r],a):e[r]=a;return e}static getDefaultDrawingOptions(e){st("Not implemented")}static get typesMap(){st("Not implemented")}static get isDrawer(){return!0}static get supportMultipleDrawings(){return!1}static updateDefaultParams(e,s){const i=this.typesMap.get(e);i&&this._defaultDrawingOptions.updateProperty(i,s),this._currentParent&&(n(k,Tt).updateProperty(i,s),this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}updateParams(e,s){const i=this.constructor.typesMap.get(e);i&&this._updateProperty(e,i,s)}static get defaultPropertiesToUpdate(){const e=[],s=this._defaultDrawingOptions;for(const[i,r]of this.typesMap)e.push([i,s[r]]);return e}get propertiesToUpdate(){const e=[],{_drawingOptions:s}=this;for(const[i,r]of this.constructor.typesMap)e.push([i,s[r]]);return e}_updateProperty(e,s,i){const r=this._drawingOptions,a=r[s],o=l=>{var c;r.updateProperty(s,l);const h=n(this,me).updateProperty(s,l);h&&b(this,nr,Mo).call(this,h),(c=this.parent)==null||c.drawLayer.updateProperties(this._drawId,r.toSVGProperties())};this.addCommands({cmd:o.bind(this,i),undo:o.bind(this,a),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:e,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){var e;(e=this.parent)==null||e.drawLayer.updateProperties(this._drawId,k._mergeSVGProperties(n(this,me).getPathResizingSVGProperties(b(this,qa,Pc).call(this)),{bbox:b(this,Li,Tr).call(this)}))}_onResized(){var e;(e=this.parent)==null||e.drawLayer.updateProperties(this._drawId,k._mergeSVGProperties(n(this,me).getPathResizedSVGProperties(b(this,qa,Pc).call(this)),{bbox:b(this,Li,Tr).call(this)}))}_onTranslating(e,s){var i;(i=this.parent)==null||i.drawLayer.updateProperties(this._drawId,{bbox:b(this,Li,Tr).call(this,e,s)})}_onTranslated(){var e;(e=this.parent)==null||e.drawLayer.updateProperties(this._drawId,k._mergeSVGProperties(n(this,me).getPathTranslatedSVGProperties(b(this,qa,Pc).call(this),this.parentDimensions),{bbox:b(this,Li,Tr).call(this)}))}_onStartDragging(){var e;(e=this.parent)==null||e.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){var e;(e=this.parent)==null||e.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}commit(){super.commit(),this.disableEditMode(),this.disableEditing()}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(e){this.annotationElementId||this.parent.addUndoableEditor(this),this._isDraggable=!0,n(this,Xa)&&(p(this,Xa,!1),this.commit(),this.parent.setSelected(this),e&&this.isOnScreen&&this.div.focus())}remove(){b(this,$h,Zf).call(this),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(b(this,ir,ko).call(this),b(this,nr,Mo).call(this,n(this,me).box),this.isAttachedToDOM||this.parent.add(this)))}setParent(e){var i;let s=!1;this.parent&&!e?(this._uiManager.removeShouldRescale(this),b(this,$h,Zf).call(this)):e&&(this._uiManager.addShouldRescale(this),b(this,ir,ko).call(this,e),s=!this.parent&&((i=this.div)==null?void 0:i.classList.contains("selectedEditor"))),super.setParent(e),s&&this.select()}rotate(){this.parent&&this.parent.drawLayer.updateProperties(this._drawId,k._mergeSVGProperties({bbox:b(this,Li,Tr).call(this)},n(this,me).updateRotation((this.parentRotation-this.rotation+360)%360)))}onScaleChanging(){this.parent&&b(this,nr,Mo).call(this,n(this,me).updateParentDimensions(this.parentDimensions,this.parent.scale))}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;const e=super.render();e.classList.add("draw");const s=document.createElement("div");e.append(s),s.setAttribute("aria-hidden","true"),s.className="internal";const[i,r]=this.parentDimensions;return this.setDims(this.width*i,this.height*r),this._uiManager.addShouldRescale(this),this.disableEditing(),e}static createDrawerInstance(e,s,i,r,a){st("Not implemented")}static startDrawing(e,s,i,r){var v,w;const{target:a,offsetX:o,offsetY:l,pointerId:h,pointerType:c}=r;if(n(k,Mi)&&n(k,Mi)!==c)return;const{viewport:{rotation:f}}=e,{width:g,height:m}=a.getBoundingClientRect(),A=p(k,tr,new AbortController),y=e.combinedSignal(A);if(n(k,ki)||p(k,ki,h),(v=n(k,Mi))!=null||p(k,Mi,c),window.addEventListener("pointerup",_=>{var E;n(k,ki)===_.pointerId?this._endDraw(_):(E=n(k,Ii))==null||E.delete(_.pointerId)},{signal:y}),window.addEventListener("pointercancel",_=>{var E;n(k,ki)===_.pointerId?this._currentParent.endDrawingSession():(E=n(k,Ii))==null||E.delete(_.pointerId)},{signal:y}),window.addEventListener("pointerdown",_=>{n(k,Mi)===_.pointerType&&((n(k,Ii)||p(k,Ii,new Set)).add(_.pointerId),n(k,Tt).isCancellable()&&(n(k,Tt).removeLastElement(),n(k,Tt).isEmpty()?this._currentParent.endDrawingSession(!0):this._endDraw(null)))},{capture:!0,passive:!1,signal:y}),window.addEventListener("contextmenu",Xe,{signal:y}),a.addEventListener("pointermove",this._drawMove.bind(this),{signal:y}),a.addEventListener("touchmove",_=>{_.timeStamp===n(k,sr)&&we(_)},{signal:y}),e.toggleDrawing(),(w=s._editorUndoBar)==null||w.hide(),n(k,Tt)){e.drawLayer.updateProperties(this._currentDrawId,n(k,Tt).startNew(o,l,g,m,f));return}s.updateUIForDefaultProperties(this),p(k,Tt,this.createDrawerInstance(o,l,g,m,f)),p(k,er,this.getDefaultDrawingOptions()),this._currentParent=e,{id:this._currentDrawId}=e.drawLayer.draw(this._mergeSVGProperties(n(k,er).toSVGProperties(),n(k,Tt).defaultSVGProperties),!0,!1)}static _drawMove(e){var a;if(p(k,sr,-1),!n(k,Tt))return;const{offsetX:s,offsetY:i,pointerId:r}=e;if(n(k,ki)===r){if(((a=n(k,Ii))==null?void 0:a.size)>=1){this._endDraw(e);return}this._currentParent.drawLayer.updateProperties(this._currentDrawId,n(k,Tt).add(s,i)),p(k,sr,e.timeStamp),we(e)}}static _cleanup(e){e&&(this._currentDrawId=-1,this._currentParent=null,p(k,Tt,null),p(k,er,null),p(k,Mi,null),p(k,sr,NaN)),n(k,tr)&&(n(k,tr).abort(),p(k,tr,null),p(k,ki,NaN),p(k,Ii,null))}static _endDraw(e){const s=this._currentParent;if(s){if(s.toggleDrawing(!0),this._cleanup(!1),e&&s.drawLayer.updateProperties(this._currentDrawId,n(k,Tt).end(e.offsetX,e.offsetY)),this.supportMultipleDrawings){const i=n(k,Tt),r=this._currentDrawId,a=i.getLastElement();s.addCommands({cmd:()=>{s.drawLayer.updateProperties(r,i.setLastElement(a))},undo:()=>{s.drawLayer.updateProperties(r,i.removeLastElement())},mustExec:!1,type:K.DRAW_STEP});return}this.endDrawing(!1)}}static endDrawing(e){const s=this._currentParent;if(!s)return null;if(s.toggleDrawing(!0),s.cleanUndoStack(K.DRAW_STEP),!n(k,Tt).isEmpty()){const{pageDimensions:[i,r],scale:a}=s,o=s.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,drawOutlines:n(k,Tt).getOutlines(i*a,r*a,a,this._INNER_MARGIN),drawingOptions:n(k,er),mustBeCommitted:!e});return this._cleanup(!0),o}return s.drawLayer.remove(this._currentDrawId),this._cleanup(!0),null}createDrawingOptions(e){}static deserializeDraw(e,s,i,r,a,o){st("Not implemented")}static deserialize(e,s,i){return L(this,null,function*(){var f,g;const{rawDims:{pageWidth:r,pageHeight:a,pageX:o,pageY:l}}=s.viewport,h=this.deserializeDraw(o,l,r,a,this._INNER_MARGIN,e),c=yield Vi(k,this,"deserialize").call(this,e,s,i);return c.createDrawingOptions(e),b(f=c,Bh,Qf).call(f,{drawOutlines:h}),b(g=c,ir,ko).call(g),c.onScaleChanging(),c.rotate(),c})}serializeDraw(e){const[s,i]=this.pageTranslation,[r,a]=this.pageDimensions;return n(this,me).serialize([s,i,r,a],e)}renderAnnotationElement(e){return e.updateEdited({rect:this.getRect(0,0)}),null}static canCreateNewEmptyEditor(){return!1}};me=new WeakMap,Xa=new WeakMap,Tt=new WeakMap,tr=new WeakMap,er=new WeakMap,ki=new WeakMap,Mi=new WeakMap,Ii=new WeakMap,sr=new WeakMap,Bh=new WeakSet,Qf=function({drawOutlines:e,drawId:s,drawingOptions:i}){p(this,me,e),this._drawingOptions||(this._drawingOptions=i),s>=0?(this._drawId=s,this.parent.drawLayer.finalizeDraw(s,e.defaultProperties)):this._drawId=b(this,Hh,Jf).call(this,e,this.parent),b(this,nr,Mo).call(this,e.box)},Hh=new WeakSet,Jf=function(e,s){const{id:i}=s.drawLayer.draw(k._mergeSVGProperties(this._drawingOptions.toSVGProperties(),e.defaultSVGProperties),!1,!1);return i},$h=new WeakSet,Zf=function(){this._drawId===null||!this.parent||(this.parent.drawLayer.remove(this._drawId),this._drawId=null,this._drawingOptions.reset())},ir=new WeakSet,ko=function(e=this.parent){if(!(this._drawId!==null&&this.parent===e)){if(this._drawId!==null){this.parent.drawLayer.updateParent(this._drawId,e.drawLayer);return}this._drawingOptions.updateAll(),this._drawId=b(this,Hh,Jf).call(this,n(this,me),e)}},Au=new WeakSet,Um=function([e,s,i,r]){const{parentDimensions:[a,o],rotation:l}=this;switch(l){case 90:return[s,1-e,i*(o/a),r*(a/o)];case 180:return[1-e,1-s,i,r];case 270:return[1-s,e,i*(o/a),r*(a/o)];default:return[e,s,i,r]}},qa=new WeakSet,Pc=function(){const{x:e,y:s,width:i,height:r,parentDimensions:[a,o],rotation:l}=this;switch(l){case 90:return[1-s,e,i*(a/o),r*(o/a)];case 180:return[1-e,1-s,i,r];case 270:return[s,1-e,i*(a/o),r*(o/a)];default:return[e,s,i,r]}},nr=new WeakSet,Mo=function(e){if([this.x,this.y,this.width,this.height]=b(this,Au,Um).call(this,e),this.div){this.fixAndSetPosition();const[s,i]=this.parentDimensions;this.setDims(this.width*s,this.height*i)}this._onResized()},Li=new WeakSet,Tr=function(){const{x:e,y:s,width:i,height:r,rotation:a,parentRotation:o,parentDimensions:[l,h]}=this;switch((a*4+o)/90){case 1:return[1-s-r,e,r,i];case 2:return[1-e-i,1-s-r,i,r];case 3:return[s,1-e-i,r,i];case 4:return[e,s-i*(l/h),r*(h/l),i*(l/h)];case 5:return[1-s,e,i*(l/h),r*(h/l)];case 6:return[1-e-r*(h/l),1-s,r*(h/l),i*(l/h)];case 7:return[s-i*(l/h),1-e-r*(h/l),i*(l/h),r*(h/l)];case 8:return[e-i,s-r,i,r];case 9:return[1-s,e-i,r,i];case 10:return[1-e,1-s,i,r];case 11:return[s-r,1-e,r,i];case 12:return[e-r*(h/l),s,r*(h/l),i*(l/h)];case 13:return[1-s-i*(l/h),e-r*(h/l),i*(l/h),r*(h/l)];case 14:return[1-e,1-s-i*(l/h),r*(h/l),i*(l/h)];case 15:return[s,1-e,i*(l/h),r*(h/l)];default:return[e,s,i,r]}},H(k,"_currentDrawId",-1),H(k,"_currentParent",null),u(k,Tt,null),u(k,tr,null),u(k,er,null),u(k,ki,NaN),u(k,Mi,null),u(k,Ii,null),u(k,sr,NaN),H(k,"_INNER_MARGIN",3);let Kf=k;var ds,Pt,Rt,rr,Ya,qt,Dt,Te,ar,or,lr,Ka,Rc;class Py{constructor(t,e,s,i,r,a){u(this,Ka);u(this,ds,new Float64Array(6));u(this,Pt,void 0);u(this,Rt,void 0);u(this,rr,void 0);u(this,Ya,void 0);u(this,qt,void 0);u(this,Dt,"");u(this,Te,0);u(this,ar,new zc);u(this,or,void 0);u(this,lr,void 0);p(this,or,s),p(this,lr,i),p(this,rr,r),p(this,Ya,a),[t,e]=b(this,Ka,Rc).call(this,t,e);const o=p(this,Pt,[NaN,NaN,NaN,NaN,t,e]);p(this,qt,[t,e]),p(this,Rt,[{line:o,points:n(this,qt)}]),n(this,ds).set(o,0)}updateProperty(t,e){t==="stroke-width"&&p(this,Ya,e)}isEmpty(){return!n(this,Rt)||n(this,Rt).length===0}isCancellable(){return n(this,qt).length<=10}add(t,e){[t,e]=b(this,Ka,Rc).call(this,t,e);const[s,i,r,a]=n(this,ds).subarray(2,6),o=t-r,l=e-a;return Math.hypot(n(this,or)*o,n(this,lr)*l)<=2?null:(n(this,qt).push(t,e),isNaN(s)?(n(this,ds).set([r,a,t,e],2),n(this,Pt).push(NaN,NaN,NaN,NaN,t,e),{path:{d:this.toSVGPath()}}):(isNaN(n(this,ds)[0])&&n(this,Pt).splice(6,6),n(this,ds).set([s,i,r,a,t,e],0),n(this,Pt).push(...M.createBezierPoints(s,i,r,a,t,e)),{path:{d:this.toSVGPath()}}))}end(t,e){const s=this.add(t,e);return s||(n(this,qt).length===2?{path:{d:this.toSVGPath()}}:null)}startNew(t,e,s,i,r){p(this,or,s),p(this,lr,i),p(this,rr,r),[t,e]=b(this,Ka,Rc).call(this,t,e);const a=p(this,Pt,[NaN,NaN,NaN,NaN,t,e]);p(this,qt,[t,e]);const o=n(this,Rt).at(-1);return o&&(o.line=new Float32Array(o.line),o.points=new Float32Array(o.points)),n(this,Rt).push({line:a,points:n(this,qt)}),n(this,ds).set(a,0),p(this,Te,0),this.toSVGPath(),null}getLastElement(){return n(this,Rt).at(-1)}setLastElement(t){return n(this,Rt)?(n(this,Rt).push(t),p(this,Pt,t.line),p(this,qt,t.points),p(this,Te,0),{path:{d:this.toSVGPath()}}):n(this,ar).setLastElement(t)}removeLastElement(){if(!n(this,Rt))return n(this,ar).removeLastElement();n(this,Rt).pop(),p(this,Dt,"");for(let t=0,e=n(this,Rt).length;tS!=null?S:NaN),g,m,A,y),points:v(l[_].map(S=>S!=null?S:NaN),g,m,A,y)});const w=new Cp;return w.build(f,i,r,1,h,c,a),w}get box(){return n(this,Yt)}updateProperty(e,s){return e==="stroke-width"?b(this,vu,Xm).call(this,s):null}updateParentDimensions([e,s],i){const[r,a]=b(this,Ue,ws).call(this);p(this,us,e),p(this,fs,s),p(this,Qa,i);const[o,l]=b(this,Ue,ws).call(this),h=o-r,c=l-a,f=n(this,Yt);return f[0]-=h,f[1]-=c,f[2]+=2*h,f[3]+=2*c,f}updateRotation(e){return p(this,Gh,e),{path:{transform:this.rotationTransform}}}get viewBox(){return n(this,Yt).map(M.svgRound).join(" ")}get defaultProperties(){const[e,s]=n(this,Yt);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${M.svgRound(e)} ${M.svgRound(s)}`}}}get rotationTransform(){const[,,e,s]=n(this,Yt);let i=0,r=0,a=0,o=0,l=0,h=0;switch(n(this,Gh)){case 90:r=s/e,a=-e/s,l=e;break;case 180:i=-1,o=-1,l=e,h=s;break;case 270:r=-s/e,a=e/s,h=s;break;default:return""}return`matrix(${i} ${r} ${a} ${o} ${M.svgRound(l)} ${M.svgRound(h)})`}getPathResizingSVGProperties([e,s,i,r]){const[a,o]=b(this,Ue,ws).call(this),[l,h,c,f]=n(this,Yt);if(Math.abs(c-a)<=M.PRECISION||Math.abs(f-o)<=M.PRECISION){const v=e+i/2-(l+c/2),w=s+r/2-(h+f/2);return{path:{"transform-origin":`${M.svgRound(e)} ${M.svgRound(s)}`,transform:`${this.rotationTransform} translate(${v} ${w})`}}}const g=(i-2*a)/(c-2*a),m=(r-2*o)/(f-2*o),A=c/i,y=f/r;return{path:{"transform-origin":`${M.svgRound(l)} ${M.svgRound(h)}`,transform:`${this.rotationTransform} scale(${A} ${y}) translate(${M.svgRound(a)} ${M.svgRound(o)}) scale(${g} ${m}) translate(${M.svgRound(-a)} ${M.svgRound(-o)})`}}}getPathResizedSVGProperties([e,s,i,r]){const[a,o]=b(this,Ue,ws).call(this),l=n(this,Yt),[h,c,f,g]=l;if(l[0]=e,l[1]=s,l[2]=i,l[3]=r,Math.abs(f-a)<=M.PRECISION||Math.abs(g-o)<=M.PRECISION){const w=e+i/2-(h+f/2),_=s+r/2-(c+g/2);for(const{line:E,points:S}of n(this,be))M._translate(E,w,_,E),M._translate(S,w,_,S);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${M.svgRound(e)} ${M.svgRound(s)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}const m=(i-2*a)/(f-2*a),A=(r-2*o)/(g-2*o),y=-m*(h+a)+e+a,v=-A*(c+o)+s+o;if(m!==1||A!==1||y!==0||v!==0)for(const{line:w,points:_}of n(this,be))M._rescale(w,y,v,m,A,w),M._rescale(_,y,v,m,A,_);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${M.svgRound(e)} ${M.svgRound(s)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([e,s],i){const[r,a]=i,o=n(this,Yt),l=e-o[0],h=s-o[1];if(n(this,us)===r&&n(this,fs)===a)for(const{line:c,points:f}of n(this,be))M._translate(c,l,h,c),M._translate(f,l,h,f);else{const c=n(this,us)/r,f=n(this,fs)/a;p(this,us,r),p(this,fs,a);for(const{line:g,points:m}of n(this,be))M._rescale(g,l,h,c,f,g),M._rescale(m,l,h,c,f,m);o[2]*=c,o[3]*=f}return o[0]=e,o[1]=s,{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${M.svgRound(e)} ${M.svgRound(s)}`}}}get defaultSVGProperties(){const e=n(this,Yt);return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${M.svgRound(e[0])} ${M.svgRound(e[1])}`,transform:this.rotationTransform||null},bbox:e}}};Yt=new WeakMap,Gh=new WeakMap,zh=new WeakMap,be=new WeakMap,us=new WeakMap,fs=new WeakMap,Qa=new WeakMap,Ja=new WeakMap,Za=new WeakMap,Ue=new WeakSet,ws=function(e=n(this,Za)){const s=n(this,zh)+e/2*n(this,Qa);return n(this,Ja)%180===0?[s/n(this,us),s/n(this,fs)]:[s/n(this,fs),s/n(this,us)]},yu=new WeakSet,jm=function(){const[e,s,i,r]=n(this,Yt),[a,o]=b(this,Ue,ws).call(this,0);return[e+a,s+o,i-2*a,r-2*o]},wu=new WeakSet,Wm=function(){const e=p(this,Yt,new Float32Array([1/0,1/0,-1/0,-1/0]));for(const{line:r}of n(this,be)){if(r.length<=12){for(let l=4,h=r.length;lo!==s[l])||e.thickness!==i||e.opacity!==r||e.pageIndex!==a},H(Yi,"_type","ink"),H(Yi,"_editorType",U.INK),H(Yi,"_defaultDrawingOptions",null);let ep=Yi;var ht,Ft,Di,Xs,Fi,eo,ps,gs,Ae,so,hr,Io,cr,Lo,io,kc,Vh,ip,no,Mc,Uh,np,ro,Ic,Su,Ym;const kr=class kr extends ct{constructor(e){super(yr(bs({},e),{name:"stampEditor"}));u(this,hr);u(this,cr);u(this,io);u(this,Vh);u(this,no);u(this,Uh);u(this,ro);u(this,Su);u(this,ht,null);u(this,Ft,null);u(this,Di,null);u(this,Xs,null);u(this,Fi,null);u(this,eo,"");u(this,ps,null);u(this,gs,null);u(this,Ae,!1);u(this,so,!1);p(this,Xs,e.bitmapUrl),p(this,Fi,e.bitmapFile)}static initialize(e,s){ct.initialize(e,s)}static get supportedTypes(){return q(this,"supportedTypes",["apng","avif","bmp","gif","jpeg","png","svg+xml","webp","x-icon"].map(s=>`image/${s}`))}static get supportedTypesStr(){return q(this,"supportedTypesStr",this.supportedTypes.join(","))}static isHandlingMimeForPasting(e){return this.supportedTypes.includes(e)}static paste(e,s){s.pasteEditor(U.STAMP,{bitmapFile:e.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1),super.altTextFinish()}get telemetryFinalData(){var e;return{type:"stamp",hasAltText:!!((e=this.altTextData)!=null&&e.altText)}}static computeTelemetryFinalData(e){var i,r;const s=e.get("hasAltText");return{hasAltText:(i=s.get(!0))!=null?i:0,hasNoAltText:(r=s.get(!1))!=null?r:0}}mlGuessAltText(e=null,s=!0){return L(this,null,function*(){if(this.hasAltTextData())return null;const{mlManager:i}=this._uiManager;if(!i)throw new Error("No ML.");if(!(yield i.isEnabledFor("altText")))throw new Error("ML isn't enabled for alt text.");const{data:r,width:a,height:o}=e||this.copyCanvas(null,null,!0).imageData,l=yield i.guess({name:"altText",request:{data:r,width:a,height:o,channels:r.length/(a*o)}});if(!l)throw new Error("No response from the AI service.");if(l.error)throw new Error("Error from the AI service.");if(l.cancel)return null;if(!l.output)throw new Error("No valid response from the AI service.");const h=l.output;return yield this.setGuessedAltText(h),s&&!this.hasAltTextData()&&(this.altTextData={alt:h,decorative:!1}),h})}remove(){var e;n(this,Ft)&&(p(this,ht,null),this._uiManager.imageManager.deleteId(n(this,Ft)),(e=n(this,ps))==null||e.remove(),p(this,ps,null),n(this,gs)&&(clearTimeout(n(this,gs)),p(this,gs,null))),super.remove()}rebuild(){if(!this.parent){n(this,Ft)&&b(this,io,kc).call(this);return}super.rebuild(),this.div!==null&&(n(this,Ft)&&n(this,ps)===null&&b(this,io,kc).call(this),this.isAttachedToDOM||this.parent.add(this))}onceAdded(e){this._isDraggable=!0,e&&this.div.focus()}isEmpty(){return!(n(this,Di)||n(this,ht)||n(this,Xs)||n(this,Fi)||n(this,Ft))}get isResizable(){return!0}render(){if(this.div)return this.div;let e,s;if(this.width&&(e=this.x,s=this.y),super.render(),this.div.hidden=!0,this.div.setAttribute("role","figure"),this.addAltTextButton(),n(this,ht)?b(this,Vh,ip).call(this):b(this,io,kc).call(this),this.width&&!this.annotationElementId){const[i,r]=this.parentDimensions;this.setAt(e*i,s*r,this.width*i,this.height*r)}return this._uiManager.addShouldRescale(this),this.div}_onResized(){this.onScaleChanging()}onScaleChanging(){if(!this.parent)return;n(this,gs)!==null&&clearTimeout(n(this,gs)),p(this,gs,setTimeout(()=>{p(this,gs,null),b(this,Uh,np).call(this)},200))}copyCanvas(e,s,i=!1){var m;e||(e=224);const{width:r,height:a}=n(this,ht),o=new Zu;let l=n(this,ht),h=r,c=a,f=null;if(s){if(r>s||a>s){const R=Math.min(s/r,s/a);h=Math.floor(r*R),c=Math.floor(a*R)}f=document.createElement("canvas");const A=f.width=Math.ceil(h*o.sx),y=f.height=Math.ceil(c*o.sy);n(this,Ae)||(l=b(this,no,Mc).call(this,A,y));const v=f.getContext("2d");v.filter=this._uiManager.hcmFilter;let w="white",_="#cfcfd8";this._uiManager.hcmFilter!=="none"?_="black":(m=window.matchMedia)!=null&&m.call(window,"(prefers-color-scheme: dark)").matches&&(w="#8f8f9d",_="#42414d");const E=15,S=E*o.sx,C=E*o.sy,T=new OffscreenCanvas(S*2,C*2),x=T.getContext("2d");x.fillStyle=w,x.fillRect(0,0,S*2,C*2),x.fillStyle=_,x.fillRect(0,0,S,C),x.fillRect(S,C,S,C),v.fillStyle=v.createPattern(T,"repeat"),v.fillRect(0,0,A,y),v.drawImage(l,0,0,l.width,l.height,0,0,A,y)}let g=null;if(i){let A,y;if(o.symmetric&&l.widthe||a>e){const _=Math.min(e/r,e/a);A=Math.floor(r*_),y=Math.floor(a*_),n(this,Ae)||(l=b(this,no,Mc).call(this,A,y))}const w=new OffscreenCanvas(A,y).getContext("2d",{willReadFrequently:!0});w.drawImage(l,0,0,l.width,l.height,0,0,A,y),g={width:A,height:y,data:w.getImageData(0,0,A,y).data}}return{canvas:f,width:h,height:c,imageData:g}}getImageForAltText(){return n(this,ps)}static deserialize(e,s,i){return L(this,null,function*(){var y;let r=null;if(e instanceof mm){const{data:{rect:v,rotation:w,id:_,structParent:E,popupRef:S},container:C,parent:{page:{pageNumber:T}}}=e,x=C.querySelector("canvas"),R=i.imageManager.getFromCanvas(C.id,x);x.remove();const D=((y=yield s._structTree.getAriaAttributes(`${up}${_}`))==null?void 0:y.get("aria-label"))||"";r=e={annotationType:U.STAMP,bitmapId:R.id,bitmap:R.bitmap,pageIndex:T-1,rect:v.slice(0),rotation:w,id:_,deleted:!1,accessibilityData:{decorative:!1,altText:D},isSvg:!1,structParent:E,popupRef:S}}const a=yield Vi(kr,this,"deserialize").call(this,e,s,i),{rect:o,bitmap:l,bitmapUrl:h,bitmapId:c,isSvg:f,accessibilityData:g}=e;c&&i.imageManager.isValidId(c)?(p(a,Ft,c),l&&p(a,ht,l)):p(a,Xs,h),p(a,Ae,f);const[m,A]=a.pageDimensions;return a.width=(o[2]-o[0])/m,a.height=(o[3]-o[1])/A,a.annotationElementId=e.id||null,g&&(a.altTextData=g),a._initialData=r,p(a,so,!!r),a})}serialize(e=!1,s=null){var l;if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const i={annotationType:U.STAMP,bitmapId:n(this,Ft),pageIndex:this.pageIndex,rect:this.getRect(0,0),rotation:this.rotation,isSvg:n(this,Ae),structTreeParentId:this._structTreeParentId};if(e)return i.bitmapUrl=b(this,ro,Ic).call(this,!0),i.accessibilityData=this.serializeAltText(!0),i;const{decorative:r,altText:a}=this.serializeAltText(!1);if(!r&&a&&(i.accessibilityData={type:"Figure",alt:a}),this.annotationElementId){const h=b(this,Su,Ym).call(this,i);if(h.isSame)return null;h.isSameAltText?delete i.accessibilityData:i.accessibilityData.structParent=(l=this._initialData.structParent)!=null?l:-1}if(i.id=this.annotationElementId,s===null)return i;s.stamps||(s.stamps=new Map);const o=n(this,Ae)?(i.rect[2]-i.rect[0])*(i.rect[3]-i.rect[1]):null;if(!s.stamps.has(n(this,Ft)))s.stamps.set(n(this,Ft),{area:o,serialized:i}),i.bitmap=b(this,ro,Ic).call(this,!1);else if(n(this,Ae)){const h=s.stamps.get(n(this,Ft));o>h.area&&(h.area=o,h.serialized.bitmap.close(),h.serialized.bitmap=b(this,ro,Ic).call(this,!1))}return i}renderAnnotationElement(e){return e.updateEdited({rect:this.getRect(0,0)}),null}};ht=new WeakMap,Ft=new WeakMap,Di=new WeakMap,Xs=new WeakMap,Fi=new WeakMap,eo=new WeakMap,ps=new WeakMap,gs=new WeakMap,Ae=new WeakMap,so=new WeakMap,hr=new WeakSet,Io=function(e,s=!1){if(!e){this.remove();return}p(this,ht,e.bitmap),s||(p(this,Ft,e.id),p(this,Ae,e.isSvg)),e.file&&p(this,eo,e.file.name),b(this,Vh,ip).call(this)},cr=new WeakSet,Lo=function(){if(p(this,Di,null),this._uiManager.enableWaiting(!1),!!n(this,ps)){if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&n(this,ht)){this._editToolbar.hide(),this._uiManager.editAltText(this,!0);return}if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&n(this,ht)){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch(e){}}this.div.focus()}},io=new WeakSet,kc=function(){if(n(this,Ft)){this._uiManager.enableWaiting(!0),this._uiManager.imageManager.getFromId(n(this,Ft)).then(i=>b(this,hr,Io).call(this,i,!0)).finally(()=>b(this,cr,Lo).call(this));return}if(n(this,Xs)){const i=n(this,Xs);p(this,Xs,null),this._uiManager.enableWaiting(!0),p(this,Di,this._uiManager.imageManager.getFromUrl(i).then(r=>b(this,hr,Io).call(this,r)).finally(()=>b(this,cr,Lo).call(this)));return}if(n(this,Fi)){const i=n(this,Fi);p(this,Fi,null),this._uiManager.enableWaiting(!0),p(this,Di,this._uiManager.imageManager.getFromFile(i).then(r=>b(this,hr,Io).call(this,r)).finally(()=>b(this,cr,Lo).call(this)));return}const e=document.createElement("input");e.type="file",e.accept=kr.supportedTypesStr;const s=this._uiManager._signal;p(this,Di,new Promise(i=>{e.addEventListener("change",()=>L(this,null,function*(){if(!e.files||e.files.length===0)this.remove();else{this._uiManager.enableWaiting(!0);const r=yield this._uiManager.imageManager.getFromFile(e.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}}),b(this,hr,Io).call(this,r)}i()}),{signal:s}),e.addEventListener("cancel",()=>{this.remove(),i()},{signal:s})}).finally(()=>b(this,cr,Lo).call(this))),e.click()},Vh=new WeakSet,ip=function(){var f;const{div:e}=this;let{width:s,height:i}=n(this,ht);const[r,a]=this.pageDimensions,o=.75;if(this.width)s=this.width*r,i=this.height*a;else if(s>o*r||i>o*a){const g=Math.min(o*r/s,o*a/i);s*=g,i*=g}const[l,h]=this.parentDimensions;this.setDims(s*l/r,i*h/a),this._uiManager.enableWaiting(!1);const c=p(this,ps,document.createElement("canvas"));c.setAttribute("role","img"),this.addContainer(c),this.width=s/r,this.height=i/a,(f=this._initialOptions)!=null&&f.isCentered?this.center():this.fixAndSetPosition(),this._initialOptions=null,(!this._uiManager.useNewAltTextWhenAddingImage||!this._uiManager.useNewAltTextFlow||this.annotationElementId)&&(e.hidden=!1),b(this,Uh,np).call(this),n(this,so)||(this.parent.addUndoableEditor(this),p(this,so,!0)),this._reportTelemetry({action:"inserted_image"}),n(this,eo)&&c.setAttribute("aria-label",n(this,eo))},no=new WeakSet,Mc=function(e,s){const{width:i,height:r}=n(this,ht);let a=i,o=r,l=n(this,ht);for(;a>2*e||o>2*s;){const h=a,c=o;a>2*e&&(a=a>=16384?Math.floor(a/2)-1:Math.ceil(a/2)),o>2*s&&(o=o>=16384?Math.floor(o/2)-1:Math.ceil(o/2));const f=new OffscreenCanvas(a,o);f.getContext("2d").drawImage(l,0,0,h,c,0,0,a,o),l=f.transferToImageBitmap()}return l},Uh=new WeakSet,np=function(){const[e,s]=this.parentDimensions,{width:i,height:r}=this,a=new Zu,o=Math.ceil(i*e*a.sx),l=Math.ceil(r*s*a.sy),h=n(this,ps);if(!h||h.width===o&&h.height===l)return;h.width=o,h.height=l;const c=n(this,Ae)?n(this,ht):b(this,no,Mc).call(this,o,l),f=h.getContext("2d");f.filter=this._uiManager.hcmFilter,f.drawImage(c,0,0,c.width,c.height,0,0,o,l)},ro=new WeakSet,Ic=function(e){if(e){if(n(this,Ae)){const r=this._uiManager.imageManager.getSvgUrl(n(this,Ft));if(r)return r}const s=document.createElement("canvas");return{width:s.width,height:s.height}=n(this,ht),s.getContext("2d").drawImage(n(this,ht),0,0),s.toDataURL()}if(n(this,Ae)){const[s,i]=this.pageDimensions,r=Math.round(this.width*s*Gi.PDF_TO_CSS_UNITS),a=Math.round(this.height*i*Gi.PDF_TO_CSS_UNITS),o=new OffscreenCanvas(r,a);return o.getContext("2d").drawImage(n(this,ht),0,0,n(this,ht).width,n(this,ht).height,0,0,r,a),o.transferToImageBitmap()}return structuredClone(n(this,ht))},Su=new WeakSet,Ym=function(e){var o;const{pageIndex:s,accessibilityData:{altText:i}}=this._initialData,r=e.pageIndex===s,a=(((o=e.accessibilityData)==null?void 0:o.alt)||"")===i;return{isSame:!this._hasBeenMoved&&!this._hasBeenResized&&r&&a,isSameAltText:a}},H(kr,"_type","stamp"),H(kr,"_editorType",U.STAMP);let sp=kr;var dr,ao,ms,Ni,qs,Pe,Oi,oo,ur,je,Ys,zt,Ks,F,Bi,Eu,Km,Re,Qe,jh,ap,Wh,op,lo,Lc;const Me=class Me{constructor({uiManager:t,pageIndex:e,div:s,structTreeLayer:i,accessibilityManager:r,annotationLayer:a,drawLayer:o,textLayer:l,viewport:h,l10n:c}){u(this,Eu);u(this,Re);u(this,jh);u(this,Wh);u(this,lo);u(this,dr,void 0);u(this,ao,!1);u(this,ms,null);u(this,Ni,null);u(this,qs,null);u(this,Pe,new Map);u(this,Oi,!1);u(this,oo,!1);u(this,ur,!1);u(this,je,null);u(this,Ys,null);u(this,zt,null);u(this,Ks,null);u(this,F,void 0);const f=[...n(Me,Bi).values()];if(!Me._initialized){Me._initialized=!0;for(const g of f)g.initialize(c,t)}t.registerEditorTypes(f),p(this,F,t),this.pageIndex=e,this.div=s,p(this,dr,r),p(this,ms,a),this.viewport=h,p(this,zt,l),this.drawLayer=o,this._structTree=i,n(this,F).addLayer(this)}get isEmpty(){return n(this,Pe).size===0}get isInvisible(){return this.isEmpty&&n(this,F).getMode()===U.NONE}updateToolbar(t){n(this,F).updateToolbar(t)}updateMode(t=n(this,F).getMode()){switch(b(this,lo,Lc).call(this),t){case U.NONE:this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),this.disableClick();return;case U.INK:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick();break;case U.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);const{classList:e}=this.div;for(const s of n(Me,Bi).values())e.toggle(`${s._type}Editing`,t===s._editorType);this.div.hidden=!1}hasTextLayer(t){var e;return t===((e=n(this,zt))==null?void 0:e.div)}setEditingState(t){n(this,F).setEditingState(t)}addCommands(t){n(this,F).addCommands(t)}cleanUndoStack(t){n(this,F).cleanUndoStack(t)}toggleDrawing(t=!1){this.div.classList.toggle("drawing",!t)}togglePointerEvents(t=!1){this.div.classList.toggle("disabled",!t)}toggleAnnotationLayerPointerEvents(t=!1){var e;(e=n(this,ms))==null||e.div.classList.toggle("disabled",!t)}enable(){return L(this,null,function*(){p(this,ur,!0),this.div.tabIndex=0,this.togglePointerEvents(!0);const t=new Set;for(const s of n(this,Pe).values())s.enableEditing(),s.show(!0),s.annotationElementId&&(n(this,F).removeChangedExistingAnnotation(s),t.add(s.annotationElementId));if(!n(this,ms)){p(this,ur,!1);return}const e=n(this,ms).getEditableAnnotations();for(const s of e){if(s.hide(),n(this,F).isDeletedAnnotationElement(s.data.id)||t.has(s.data.id))continue;const i=yield this.deserialize(s);i&&(this.addOrRebuild(i),i.enableEditing())}p(this,ur,!1)})}disable(){var i;p(this,oo,!0),this.div.tabIndex=-1,this.togglePointerEvents(!1);const t=new Map,e=new Map;for(const r of n(this,Pe).values())if(r.disableEditing(),!!r.annotationElementId){if(r.serialize()!==null){t.set(r.annotationElementId,r);continue}else e.set(r.annotationElementId,r);(i=this.getEditableAnnotation(r.annotationElementId))==null||i.show(),r.remove()}if(n(this,ms)){const r=n(this,ms).getEditableAnnotations();for(const a of r){const{id:o}=a.data;if(n(this,F).isDeletedAnnotationElement(o))continue;let l=e.get(o);if(l){l.resetAnnotationElement(a),l.show(!1),a.show();continue}l=t.get(o),l&&(n(this,F).addChangedExistingAnnotation(l),l.renderAnnotationElement(a)&&l.show(!1)),a.show()}}b(this,lo,Lc).call(this),this.isEmpty&&(this.div.hidden=!0);const{classList:s}=this.div;for(const r of n(Me,Bi).values())s.remove(`${r._type}Editing`);this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),p(this,oo,!1)}getEditableAnnotation(t){var e;return((e=n(this,ms))==null?void 0:e.getEditableAnnotation(t))||null}setActiveEditor(t){n(this,F).getActive()!==t&&n(this,F).setActiveEditor(t)}enableTextSelection(){var t;if(this.div.tabIndex=-1,(t=n(this,zt))!=null&&t.div&&!n(this,Ks)){p(this,Ks,new AbortController);const e=n(this,F).combinedSignal(n(this,Ks));n(this,zt).div.addEventListener("pointerdown",b(this,Eu,Km).bind(this),{signal:e}),n(this,zt).div.classList.add("highlighting")}}disableTextSelection(){var t;this.div.tabIndex=0,(t=n(this,zt))!=null&&t.div&&n(this,Ks)&&(n(this,Ks).abort(),p(this,Ks,null),n(this,zt).div.classList.remove("highlighting"))}enableClick(){if(n(this,Ni))return;p(this,Ni,new AbortController);const t=n(this,F).combinedSignal(n(this,Ni));this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:t});const e=this.pointerup.bind(this);this.div.addEventListener("pointerup",e,{signal:t}),this.div.addEventListener("pointercancel",e,{signal:t})}disableClick(){var t;(t=n(this,Ni))==null||t.abort(),p(this,Ni,null)}attach(t){n(this,Pe).set(t.id,t);const{annotationElementId:e}=t;e&&n(this,F).isDeletedAnnotationElement(e)&&n(this,F).removeDeletedAnnotationElement(t)}detach(t){var e;n(this,Pe).delete(t.id),(e=n(this,dr))==null||e.removePointerInTextLayer(t.contentDiv),!n(this,oo)&&t.annotationElementId&&n(this,F).addDeletedAnnotationElement(t)}remove(t){this.detach(t),n(this,F).removeEditor(t),t.div.remove(),t.isAttachedToDOM=!1}changeParent(t){var e;t.parent!==this&&(t.parent&&t.annotationElementId&&(n(this,F).addDeletedAnnotationElement(t.annotationElementId),ct.deleteAnnotationElement(t),t.annotationElementId=null),this.attach(t),(e=t.parent)==null||e.detach(t),t.setParent(this),t.div&&t.isAttachedToDOM&&(t.div.remove(),this.div.append(t.div)))}add(t){if(!(t.parent===this&&t.isAttachedToDOM)){if(this.changeParent(t),n(this,F).addEditor(t),this.attach(t),!t.isAttachedToDOM){const e=t.render();this.div.append(e),t.isAttachedToDOM=!0}t.fixAndSetPosition(),t.onceAdded(!n(this,ur)),n(this,F).addToAnnotationStorage(t),t._reportTelemetry(t.telemetryInitialData)}}moveEditorInDOM(t){var s;if(!t.isAttachedToDOM)return;const{activeElement:e}=document;t.div.contains(e)&&!n(this,qs)&&(t._focusEventsAllowed=!1,p(this,qs,setTimeout(()=>{p(this,qs,null),t.div.contains(document.activeElement)?t._focusEventsAllowed=!0:(t.div.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:n(this,F)._signal}),e.focus())},0))),t._structTreeParentId=(s=n(this,dr))==null?void 0:s.moveElementInDOM(this.div,t.div,t.contentDiv,!0)}addOrRebuild(t){t.needsToBeRebuilt()?(t.parent||(t.parent=this),t.rebuild(),t.show()):this.add(t)}addUndoableEditor(t){const e=()=>t._uiManager.rebuild(t),s=()=>{t.remove()};this.addCommands({cmd:e,undo:s,mustExec:!1})}getNextId(){return n(this,F).getId()}combinedSignal(t){return n(this,F).combinedSignal(t)}canCreateNewEmptyEditor(){var t;return(t=n(this,Re,Qe))==null?void 0:t.canCreateNewEmptyEditor()}pasteEditor(t,e){n(this,F).updateToolbar(t),n(this,F).updateMode(t);const{offsetX:s,offsetY:i}=b(this,Wh,op).call(this),r=this.getNextId(),a=b(this,jh,ap).call(this,bs({parent:this,id:r,x:s,y:i,uiManager:n(this,F),isCentered:!0},e));a&&this.add(a)}deserialize(t){return L(this,null,function*(){var e,s;return(yield(s=n(Me,Bi).get((e=t.annotationType)!=null?e:t.annotationEditorType))==null?void 0:s.deserialize(t,this,n(this,F)))||null})}createAndAddNewEditor(t,e,s={}){const i=this.getNextId(),r=b(this,jh,ap).call(this,bs({parent:this,id:i,x:t.offsetX,y:t.offsetY,uiManager:n(this,F),isCentered:e},s));return r&&this.add(r),r}addNewEditor(){this.createAndAddNewEditor(b(this,Wh,op).call(this),!0)}setSelected(t){n(this,F).setSelected(t)}toggleSelected(t){n(this,F).toggleSelected(t)}unselect(t){n(this,F).unselect(t)}pointerup(t){var s;const{isMac:e}=Qt.platform;if(!(t.button!==0||t.ctrlKey&&e)&&t.target===this.div&&n(this,Oi)&&(p(this,Oi,!1),!((s=n(this,Re,Qe))!=null&&s.isDrawer&&n(this,Re,Qe).supportMultipleDrawings))){if(!n(this,ao)){p(this,ao,!0);return}if(n(this,F).getMode()===U.STAMP){n(this,F).unselectAll();return}this.createAndAddNewEditor(t,!1)}}pointerdown(t){var i;if(n(this,F).getMode()===U.HIGHLIGHT&&this.enableTextSelection(),n(this,Oi)){p(this,Oi,!1);return}const{isMac:e}=Qt.platform;if(t.button!==0||t.ctrlKey&&e||t.target!==this.div)return;if(p(this,Oi,!0),(i=n(this,Re,Qe))!=null&&i.isDrawer){this.startDrawingSession(t);return}const s=n(this,F).getActive();p(this,ao,!s||s.isEmpty())}startDrawingSession(t){if(this.div.focus(),n(this,je)){n(this,Re,Qe).startDrawing(this,n(this,F),!1,t);return}n(this,F).setCurrentDrawingSession(this),p(this,je,new AbortController);const e=n(this,F).combinedSignal(n(this,je));this.div.addEventListener("blur",({relatedTarget:s})=>{s&&!this.div.contains(s)&&(p(this,Ys,null),this.commitOrRemove())},{signal:e}),n(this,Re,Qe).startDrawing(this,n(this,F),!1,t)}pause(t){if(t){const{activeElement:e}=document;this.div.contains(e)&&p(this,Ys,e);return}n(this,Ys)&&setTimeout(()=>{var e;(e=n(this,Ys))==null||e.focus(),p(this,Ys,null)},0)}endDrawingSession(t=!1){return n(this,je)?(n(this,F).setCurrentDrawingSession(null),n(this,je).abort(),p(this,je,null),p(this,Ys,null),n(this,Re,Qe).endDrawing(t)):null}findNewParent(t,e,s){const i=n(this,F).findParent(e,s);return i===null||i===this?!1:(i.changeParent(t),!0)}commitOrRemove(){return n(this,je)?(this.endDrawingSession(),!0):!1}onScaleChanging(){n(this,je)&&n(this,Re,Qe).onScaleChangingWhenDrawing(this)}destroy(){var t,e;this.commitOrRemove(),((t=n(this,F).getActive())==null?void 0:t.parent)===this&&(n(this,F).commitOrRemove(),n(this,F).setActiveEditor(null)),n(this,qs)&&(clearTimeout(n(this,qs)),p(this,qs,null));for(const s of n(this,Pe).values())(e=n(this,dr))==null||e.removePointerInTextLayer(s.contentDiv),s.setParent(null),s.isAttachedToDOM=!1,s.div.remove();this.div=null,n(this,Pe).clear(),n(this,F).removeLayer(this)}render({viewport:t}){this.viewport=t,pr(this.div,t);for(const e of n(this,F).getEditors(this.pageIndex))this.add(e),e.rebuild();this.updateMode()}update({viewport:t}){n(this,F).commitOrRemove(),b(this,lo,Lc).call(this);const e=this.viewport.rotation,s=t.rotation;if(this.viewport=t,pr(this.div,{rotation:s}),e!==s)for(const i of n(this,Pe).values())i.rotate(s)}get pageDimensions(){const{pageWidth:t,pageHeight:e}=this.viewport.rawDims;return[t,e]}get scale(){return n(this,F).viewParameters.realScale}};dr=new WeakMap,ao=new WeakMap,ms=new WeakMap,Ni=new WeakMap,qs=new WeakMap,Pe=new WeakMap,Oi=new WeakMap,oo=new WeakMap,ur=new WeakMap,je=new WeakMap,Ys=new WeakMap,zt=new WeakMap,Ks=new WeakMap,F=new WeakMap,Bi=new WeakMap,Eu=new WeakSet,Km=function(t){n(this,F).unselectAll();const{target:e}=t;if(e===n(this,zt).div||(e.getAttribute("role")==="img"||e.classList.contains("endOfContent"))&&n(this,zt).div.contains(e)){const{isMac:s}=Qt.platform;if(t.button!==0||t.ctrlKey&&s)return;n(this,F).showAllEditors("highlight",!0,!0),n(this,zt).div.classList.add("free"),this.toggleDrawing(),Gc.startHighlighting(this,n(this,F).direction==="ltr",{target:n(this,zt).div,x:t.x,y:t.y}),n(this,zt).div.addEventListener("pointerup",()=>{n(this,zt).div.classList.remove("free"),this.toggleDrawing(!0)},{once:!0,signal:n(this,F)._signal}),t.preventDefault()}},Re=new WeakSet,Qe=function(){return n(Me,Bi).get(n(this,F).getMode())},jh=new WeakSet,ap=function(t){const e=n(this,Re,Qe);return e?new e.prototype.constructor(t):null},Wh=new WeakSet,op=function(){const{x:t,y:e,width:s,height:i}=this.div.getBoundingClientRect(),r=Math.max(0,t),a=Math.max(0,e),o=Math.min(window.innerWidth,t+s),l=Math.min(window.innerHeight,e+i),h=(r+o)/2-t,c=(a+l)/2-e,[f,g]=this.viewport.rotation%180===0?[h,c]:[c,h];return{offsetX:f,offsetY:g}},lo=new WeakSet,Lc=function(){for(const t of n(this,Pe).values())t.isEmpty()&&t.remove()},H(Me,"_initialized",!1),u(Me,Bi,new Map([$f,ep,sp,Gc].map(t=>[t._editorType,t])));let rp=Me;var We,Xh,Kt,fr,Cu,Qm,qh,hp,xu,Jm,Yh,cp;const Bt=class Bt{constructor({pageIndex:t}){u(this,qh);u(this,xu);u(this,Yh);u(this,We,null);u(this,Xh,0);u(this,Kt,new Map);u(this,fr,new Map);this.pageIndex=t}setParent(t){if(!n(this,We)){p(this,We,t);return}if(n(this,We)!==t){if(n(this,Kt).size>0)for(const e of n(this,Kt).values())e.remove(),t.append(e);p(this,We,t)}}static get _svgFactory(){return q(this,"_svgFactory",new yp)}draw(t,e=!1,s=!1){const i=jt(this,Xh)._++,r=b(this,qh,hp).call(this),a=Bt._svgFactory.createElement("defs");r.append(a);const o=Bt._svgFactory.createElement("path");a.append(o);const l=`path_p${this.pageIndex}_${i}`;o.setAttribute("id",l),o.setAttribute("vector-effect","non-scaling-stroke"),e&&n(this,fr).set(i,o);const h=s?b(this,xu,Jm).call(this,a,l):null,c=Bt._svgFactory.createElement("use");return r.append(c),c.setAttribute("href",`#${l}`),this.updateProperties(r,t),n(this,Kt).set(i,r),{id:i,clipPathId:`url(#${h})`}}drawOutline(t,e){const s=jt(this,Xh)._++,i=b(this,qh,hp).call(this),r=Bt._svgFactory.createElement("defs");i.append(r);const a=Bt._svgFactory.createElement("path");r.append(a);const o=`path_p${this.pageIndex}_${s}`;a.setAttribute("id",o),a.setAttribute("vector-effect","non-scaling-stroke");let l;if(e){const f=Bt._svgFactory.createElement("mask");r.append(f),l=`mask_p${this.pageIndex}_${s}`,f.setAttribute("id",l),f.setAttribute("maskUnits","objectBoundingBox");const g=Bt._svgFactory.createElement("rect");f.append(g),g.setAttribute("width","1"),g.setAttribute("height","1"),g.setAttribute("fill","white");const m=Bt._svgFactory.createElement("use");f.append(m),m.setAttribute("href",`#${o}`),m.setAttribute("stroke","none"),m.setAttribute("fill","black"),m.setAttribute("fill-rule","nonzero"),m.classList.add("mask")}const h=Bt._svgFactory.createElement("use");i.append(h),h.setAttribute("href",`#${o}`),l&&h.setAttribute("mask",`url(#${l})`);const c=h.cloneNode();return i.append(c),h.classList.add("mainOutline"),c.classList.add("secondaryOutline"),this.updateProperties(i,t),n(this,Kt).set(s,i),s}finalizeDraw(t,e){n(this,fr).delete(t),this.updateProperties(t,e)}updateProperties(t,e){var l;if(!e)return;const{root:s,bbox:i,rootClass:r,path:a}=e,o=typeof t=="number"?n(this,Kt).get(t):t;if(o){if(s&&b(this,Yh,cp).call(this,o,s),i&&b(l=Bt,Cu,Qm).call(l,o,i),r){const{classList:h}=o;for(const[c,f]of Object.entries(r))h.toggle(c,f)}if(a){const c=o.firstChild.firstChild;b(this,Yh,cp).call(this,c,a)}}}updateParent(t,e){if(e===this)return;const s=n(this,Kt).get(t);s&&(n(e,We).append(s),n(this,Kt).delete(t),n(e,Kt).set(t,s))}remove(t){n(this,fr).delete(t),n(this,We)!==null&&(n(this,Kt).get(t).remove(),n(this,Kt).delete(t))}destroy(){p(this,We,null);for(const t of n(this,Kt).values())t.remove();n(this,Kt).clear(),n(this,fr).clear()}};We=new WeakMap,Xh=new WeakMap,Kt=new WeakMap,fr=new WeakMap,Cu=new WeakSet,Qm=function(t,[e,s,i,r]){const{style:a}=t;a.top=`${100*s}%`,a.left=`${100*e}%`,a.width=`${100*i}%`,a.height=`${100*r}%`},qh=new WeakSet,hp=function(){const t=Bt._svgFactory.create(1,1,!0);return n(this,We).append(t),t.setAttribute("aria-hidden",!0),t},xu=new WeakSet,Jm=function(t,e){const s=Bt._svgFactory.createElement("clipPath");t.append(s);const i=`clip_${e}`;s.setAttribute("id",i),s.setAttribute("clipPathUnits","objectBoundingBox");const r=Bt._svgFactory.createElement("use");return s.append(r),r.setAttribute("href",`#${e}`),r.classList.add("clip"),i},Yh=new WeakSet,cp=function(t,e){for(const[s,i]of Object.entries(e))i===null?t.removeAttribute(s):t.setAttribute(s,i)},u(Bt,Cu);let lp=Bt;globalThis.pdfjsTestingUtils={HighlightOutliner:zf};z.AbortException;z.AnnotationEditorLayer;z.AnnotationEditorParamsType;z.AnnotationEditorType;z.AnnotationEditorUIManager;z.AnnotationLayer;z.AnnotationMode;z.ColorPicker;z.DOMSVGFactory;z.DrawLayer;z.FeatureTest;var Ry=z.GlobalWorkerOptions;z.ImageKind;z.InvalidPDFException;z.MissingPDFException;z.OPS;z.OutputScale;z.PDFDataRangeTransport;z.PDFDateString;z.PDFWorker;z.PasswordResponses;z.PermissionFlag;z.PixelsPerInch;z.RenderingCancelledException;z.TextLayer;z.TouchManager;z.UnexpectedResponseException;z.Util;z.VerbosityLevel;z.XfaLayer;z.build;z.createValidAbsoluteUrl;z.fetchData;var ky=z.getDocument;z.getFilenameFromUrl;z.getPdfFilenameFromUrl;z.getXfaPageViewport;z.isDataScheme;z.isPdfFile;z.noContextMenu;z.normalizeUnicode;z.setLayerDimensions;z.shadow;z.stopEvent;z.version;Ry.workerSrc="../pdf.worker.mjs";const My={name:"PdfViewer",data(){return{open:!1,start:!1,selection:null,startPoint:null,scrollPoint:null,selectionStyle:null,captureButtonStyle:null,closeButtonStyle:null,captureButtonVisible:!1}},methods:{CloseOutlined:fb,ScissorOutlined:pb,h:bo,loadPdf(d){return L(this,null,function*(){let t;t=ky({data:d});const s=yield(yield t.promise).getPage(1),i=s.getViewport({scale:1.75}),r=this.$refs.pdfCanvas,a=r.getContext("2d");r.height=i.height,r.width=i.width;const o={canvasContext:a,viewport:i};yield s.render(o).promise})},show(){this.open=!0,this.scrollPoint={x:0,y:0},this.closeButtonStyle={top:"5px"},this.start=!1,this.selection=null,this.startPoint=null,this.selectionStyle=null,this.captureButtonVisible=!1},close(){document.getElementById("scroller").scrollTop=0,document.getElementById("scroller").scrollLeft=0,this.open=!1},startSelection(d){this.start=!0,this.startPoint={x:d.offsetX,y:d.offsetY},this.selection={x:d.offsetX,y:d.offsetY,width:0,height:0},this.selectionStyle=null,this.hideCaptureButton()},updateSelection(d){this.start&&this.startPoint&&(this.selection.width=Math.abs(d.offsetX-this.startPoint.x),this.selection.height=Math.abs(d.offsetY-this.startPoint.y),this.selection.x=Math.min(d.offsetX,this.startPoint.x),this.selection.y=Math.min(d.offsetY,this.startPoint.y),this.selectionStyle={left:`${this.selection.x}px`,top:`${this.selection.y}px`,width:`${this.selection.width}px`,height:`${this.selection.height}px`,position:"absolute",border:"1px dashed red"})},endSelection(){this.start=!1,this.showCaptureButton()},captureSelection(){const d=this.$refs.pdfCanvas;d.getContext("2d");const t=this.$refs.tempCanvas;t.width=this.selection.width,t.height=this.selection.height,t.getContext("2d").drawImage(d,this.selection.x,this.selection.y,this.selection.width,this.selection.height,0,0,t.width,t.height);const s=t.toDataURL("image/png");this.$emit("onCapture",s),this.close()},handleScroll(d){this.scrollPoint={x:d.srcElement.scrollLeft,y:d.srcElement.scrollTop},this.showCaptureButton()},showCaptureButton(){this.selection&&this.selection.width>50&&this.selection.height>30?(this.captureButtonStyle={left:`${this.startPoint.x-this.scrollPoint.x+1}px`,top:`${this.startPoint.y-this.scrollPoint.y+1}px`,position:"absolute",borderRadius:0},this.captureButtonVisible=!0):this.captureButtonVisible=!1},hideCaptureButton(){this.captureButtonVisible=!1}}},Iy={class:"box"},Ly={ref:"pdfCanvas"},Dy={ref:"tempCanvas"};function Fy(d,t,e,s,i,r){const a=Zp("a-button");return Hu((Dc(),Yu("div",Iy,[ei("div",{id:"scroller",class:"pdf-viewer",onMousedown:t[0]||(t[0]=(...o)=>r.startSelection&&r.startSelection(...o)),onMousemove:t[1]||(t[1]=(...o)=>r.updateSelection&&r.updateSelection(...o)),onMouseup:t[2]||(t[2]=(...o)=>r.endSelection&&r.endSelection(...o)),onScroll:t[3]||(t[3]=(...o)=>r.handleScroll&&r.handleScroll(...o))},[ei("canvas",Ly,null,512),Hu(ei("canvas",Dy,null,512),[[$u,!1]]),i.selection?(Dc(),Yu("div",{key:0,class:"selection-box",style:Gu(i.selectionStyle)},null,4)):tg("",!0)],32),Hu(Je(a,{type:"primary",class:"btn",style:Gu(i.captureButtonStyle),icon:r.h(r.ScissorOutlined),onClick:r.captureSelection},{default:ti(()=>t[4]||(t[4]=[Pr("截 图")])),_:1},8,["style","icon","onClick"]),[[$u,i.captureButtonVisible]]),Je(a,{type:"primary",class:"btn-close",style:Gu(i.closeButtonStyle),icon:r.h(r.CloseOutlined),onClick:r.close},{default:ti(()=>t[5]||(t[5]=[Pr("取 消")])),_:1},8,["style","icon","onClick"])],512)),[[$u,i.open]])}const Ny=Jp(My,[["render",Fy],["__scopeId","data-v-738129f4"]]),Oy={class:"header"},By=Cb({__name:"index",setup(d){const t=wr(),{hasPermission:e}=ab(),s=ob(),i=wr([]),r=I=>{i.value=I.filter(O=>typeof O!="undefined")},[a,{openDrawer:o}]=Sb(),[l,{reload:h}]=cb({api:I=>vb(c(I)),columns:_b,formConfig:{labelWidth:0,schemas:Mp,showAdvancedButton:!1},rowSelection:{type:"checkbox",onChange:r,getCheckboxProps:I=>({disabled:I.state!==0})},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:I=>I.id,actionColumn:{width:420,title:"操作",dataIndex:"action",fixed:void 0}}),c=I=>{const re=I,{pageNum:O,pageSize:G,field:it="id",order:P="descend"}=re,B=kp(re,["pageNum","pageSize","field","order"]),dt={pageNum:O,pageSize:G,orderByClause:`${it} ${P==="descend"?"desc":"asc"}`};return Object.keys(B).forEach(ae=>{const yt=Mp.find(Js=>Js.field===ae),tt=I[ae];let Q=ae;yt?tt!==void 0&&tt!==""&&(yt.component==="Input"?dt[Q]=`%${tt.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(yt.component)?dt[Q]=hb(tt)?tt.value:tt:yt.component==="RangePicker"?(Q==="startTimeQuery"&&(Q="startTime"),dt[`${Q}From`]=Bu(tt[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),dt[`${Q}To`]=Bu(tt[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):yt.component==="DatePicker"?dt[Q]=Bu(tt).format(yt.componentProps.format||"YYYY-MM-DD"):dt[Q]=tt):dt[Q]=tt}),dt},f=()=>{o(!0,{isUpdate:!1})},g=I=>{o(!0,{record:I,isUpdate:!0})},m=I=>{yb(I.id).then(O=>{h()})},A=()=>{h()},y=I=>{s("/data/task/"+I.id)};let v=null;const w=wr(),_=I=>{var O;v=I,(O=w.value)==null||O.click()},E=I=>{const O=I.target.files[0];if(O){const G=new FileReader;G.onload=it=>{C(it.target.result),w.value.value=""},G.readAsArrayBuffer(O)}},S=wr(),C=I=>L(this,null,function*(){yield S.value.loadPdf(I),S.value.show()}),T=I=>{wb(I).then(O=>{var it;WebViewService.setMessage("数据导入成功!","success").then(()=>{});const G=JSON.parse(O);if(G.length!==0)if(v===null){const P={name:"",paramJson:JSON.stringify(G)};o(!0,{record:P,isUpdate:!1})}else(it=t.value)==null||it.setParamData(G)}).catch(()=>{WebViewService.setMessage("数据导入失败!","error").then(()=>{})})},x=I=>{const O=[...new Set([...I.id?[I.id]:[],...i.value.map(G=>G)])];DeviceClientService.assignTasks(O).then(()=>{WebViewService.setMessage("下发任务成功!","success").then(()=>{})},G=>{WebViewService.setMessage("下发任务失败!","error").then(()=>{})})},R=I=>{const O=[...new Set([...I.id?[I.id]:[],...i.value.map(G=>G)])];DeviceClientService.syncTasks(O).then(()=>{WebViewService.setMessage("同步任务成功!","success").then(()=>{}),h()},G=>{WebViewService.setMessage("同步任务失败!","error").then(()=>{})})},D=wr([]),V=xb(()=>I=>D.value[I]?D.value[I]:!1),$=wr(0);return Tb(()=>{$.value=setInterval(()=>{DeviceClientService.getDeviceConnected().then(I=>{D.value=I},I=>{WebViewService.setMessage("获取设备连接出错","error").then(()=>{})})},300),WebViewService.setIsLoading(!1).then(()=>{})}),Pb(()=>{clearInterval($.value)}),(I,O)=>{const G=Zp("a-button");return Dc(),Yu("div",null,[ei("div",Oy,[Je(qe(lb),{size:"19",name:"list"}),O[1]||(O[1]=ei("div",{class:"title"},"任务列表",-1))]),Je(qe(db),{onRegister:qe(l)},{toolbar:ti(()=>[Je(G,{type:"primary",onClick:f,icon:bo(qe(gb))},{default:ti(()=>O[2]||(O[2]=[Pr("新 增")])),_:1},8,["icon"]),O[6]||(O[6]=ei("div",{style:{width:"5px"}},null,-1)),Je(G,{type:"default",icon:bo(qe(mb)),onClick:O[0]||(O[0]=it=>_(null))},{default:ti(()=>O[3]||(O[3]=[Pr("OCR识别")])),_:1},8,["icon"]),ei("input",{type:"file",ref_key:"fileInput",ref:w,accept:"application/pdf","aria-hidden":"true",onChange:E,style:{display:"none"}},null,544),O[7]||(O[7]=ei("div",{style:{width:"5px"}},null,-1)),Je(G,{type:"default",onClick:x,icon:bo(qe(bb)),disabled:i.value.length===0},{default:ti(()=>O[4]||(O[4]=[Pr("下发数据")])),_:1},8,["icon","disabled"]),Je(G,{type:"default",onClick:R,icon:bo(qe(Ab)),disabled:i.value.length===0},{default:ti(()=>O[5]||(O[5]=[Pr("同步数据")])),_:1},8,["icon","disabled"])]),bodyCell:ti(({column:it,record:P})=>[it.dataIndex==="action"?(Dc(),Rb(qe(ub),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:g.bind(null,P),divider:!0,disabled:P.state!==0},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:m.bind(null,P),placement:"topRight"},ifShow:qe(e)("AUTH_DATA_TASK:DELETE"),disabled:P.state!==0,divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:y.bind(null,P),divider:!0},{label:"下发数据",icon:"ant-design:download-outlined",onClick:x.bind(null,P),divider:!0,disabled:P.state!==0||!V.value(P.deviceSn)},{label:"同步数据",icon:"ant-design:sync-outlined",onClick:R.bind(null,P),divider:!0,disabled:!V.value(P.deviceSn)}]},null,8,["actions"])):tg("",!0)]),_:1},8,["onRegister"]),Je(Eb,{ref_key:"taskDrawer",ref:t,onRegister:qe(a),onSuccess:A,onOcrClick:_},null,8,["onRegister"]),Je(Ny,{ref_key:"pdfView",ref:S,onOnCapture:T},null,512)])}}});const ew=Jp(By,[["__scopeId","data-v-5d81c316"]]);export{ew as default}; diff --git a/detect.gui/Embedded/dist/assets/index-83b80289.js b/detect.gui/Embedded/dist/assets/index-83b80289.js new file mode 100644 index 0000000..ec21d3b --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-83b80289.js @@ -0,0 +1 @@ +var D=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var x=(s,d)=>{var i={};for(var e in s)M.call(s,e)&&d.indexOf(e)<0&&(i[e]=s[e]);if(s!=null&&D)for(var e of D(s))d.indexOf(e)<0&&P.call(s,e)&&(i[e]=s[e]);return i};import{j as N,k as $,S as j,l as O,_ as V}from"./index.js";import{u as A,B as H}from"./useTable-3e054214.js";import{T as z}from"./useForm-df5105ea.js";import{N as E,j as h}from"./antd-eedb3ef5.js";import{r as F,s as K}from"./deviceApi-af691457.js";import{u as G}from"./index-e60b7cd2.js";import{D as U,c as W,s as C}from"./drawer-a93dee93.js";import{d as L,o as Z,a6 as q,Z as S,_ as J,$ as w,k as u,u as c,a5 as b,l as Q,G as X,a4 as ee,a8 as te}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const oe={class:"header"},se=L({__name:"index",setup(s){N(),$();const[d,{openDrawer:i}]=G(),[e,{reload:v,setSelectedRowKeys:ae}]=A({api:t=>K(Y(t)),columns:W,formConfig:{labelWidth:0,schemas:C,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:t=>t.id,actionColumn:{width:180,title:"操作",dataIndex:"action",fixed:void 0}});Z(()=>{WebViewService.setIsLoading(!1).then(()=>{})});const Y=t=>{const g=t,{pageNum:n,pageSize:p,field:f="id",order:m="descend"}=g,R=x(g,["pageNum","pageSize","field","order"]),a={pageNum:n,pageSize:p,orderByClause:`${f} ${m==="descend"?"desc":"asc"}`};return Object.keys(R).forEach(_=>{const l=C.find(I=>I.field===_),o=t[_],r=_;l?o!==void 0&&o!==""&&(l.component==="Input"?a[r]=`%${o.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(l.component)?a[r]=O(o)?o.value:o:l.component==="RangePicker"?(a[`${r}From`]=h(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),a[`${r}To`]=h(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):l.component==="DatePicker"?a[r]=h(o).format(l.componentProps.format||"YYYY-MM-DD"):a[r]=o):a[r]=o}),a},y=()=>{i(!0,{isUpdate:!1})},k=t=>{i(!0,{record:t,isUpdate:!0})},T=t=>{F(t.id).then(n=>{v()})},B=()=>{v()};return(t,n)=>{const p=q("a-button");return S(),J("div",null,[w("div",oe,[u(c(j),{size:"19",name:"list"}),n[0]||(n[0]=w("div",{class:"title"},"设备列表",-1))]),u(c(H),{onRegister:c(e)},{toolbar:b(()=>[u(p,{type:"primary",onClick:y,icon:Q(c(E))},{default:b(()=>n[1]||(n[1]=[X("新增")])),_:1},8,["icon"])]),bodyCell:b(({column:f,record:m})=>[f.dataIndex==="action"?(S(),ee(c(z),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:k.bind(null,m),divider:!0},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:T.bind(null,m),placement:"topRight"}}]},null,8,["actions"])):te("",!0)]),_:1},8,["onRegister"]),u(U,{onRegister:c(d),onSuccess:B},null,8,["onRegister"])])}}});const ge=V(se,[["__scopeId","data-v-53e00fd4"]]);export{ge as default}; diff --git a/detect.gui/Embedded/dist/assets/index-8c42ebd6.css b/detect.gui/Embedded/dist/assets/index-8c42ebd6.css new file mode 100644 index 0000000..4abd8b2 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-8c42ebd6.css @@ -0,0 +1 @@ +.header[data-v-dd25c025]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-dd25c025]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-dd25c025] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-dd25c025] .ant-table-wrapper{background:transparent}[data-v-dd25c025] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-dd25c025] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-dd25c025] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-dd25c025] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-dd25c025] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-dd25c025] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-dd25c025] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-dd25c025] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-dd25c025] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-dd25c025] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-dd25c025] .ant-select-selector .ant-select-selection-item,[data-v-dd25c025] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-dd25c025] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-dd25c025] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-dd25c025] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-dd25c025] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-dd25c025] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-dd25c025] .ant-empty-description{color:#999}[data-v-dd25c025] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-dd25c025] .ant-pagination-options-quick-jumper>input:hover,[data-v-dd25c025] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-dd25c025] .ant-input-clear-icon,[data-v-dd25c025] .ant-input-password-icon{color:#fff!important}[data-v-dd25c025] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-dd25c025] .vben-basic-table-action button:disabled{color:#999!important}[data-v-dd25c025] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-dd25c025] .vben-tree-header{border-bottom:1px solid #183171}[data-v-dd25c025] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-tree-list{background:#13265a!important}[data-v-dd25c025] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-tree-switcher-icon{color:#fff!important}[data-v-dd25c025] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-dd25c025] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-dd25c025] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-dd25c025] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-picker,[data-v-dd25c025] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-dd25c025] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-dd25c025] .ant-picker-focused,[data-v-dd25c025] .ant-picker-range:hover,[data-v-dd25c025] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-dd25c025] .vben-basic-table .ant-picker-range{width:100%}[data-v-dd25c025] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-dd25c025] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-dd25c025] .anticon{color:#fff!important}[data-v-dd25c025] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-dd25c025] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-dd25c025] .ant-picker-cell-in-view{color:#fff!important}[data-v-dd25c025] .ant-picker-content th,[data-v-dd25c025] .ant-picker-header-super-prev-btn,[data-v-dd25c025] .ant-picker-header-prev-btn,[data-v-dd25c025] .ant-picker-header-super-next-btn,[data-v-dd25c025] .ant-picker-header-next-btn,[data-v-dd25c025] .ant-picker-year-btn,[data-v-dd25c025] .ant-picker-month-btn,[data-v-dd25c025] .ant-picker-decade-btn,[data-v-dd25c025] .ant-picker-header-view,[data-v-dd25c025] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-dd25c025] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-dd25c025] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-dd25c025] .ant-card-body{padding:0!important}[data-v-dd25c025] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-dd25c025] .ant-descriptions-view{border:1px solid #183171!important}[data-v-dd25c025] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-dd25c025] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-dd25c025] .ant-descriptions-item-label,[data-v-dd25c025] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-dd25c025] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-dd25c025] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-dd25c025] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-dd25c025] .CodeMirror-cursor{border-left:1px solid white}[data-v-dd25c025] .cm-string{color:#ff8c00!important}[data-v-dd25c025] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-8c5ac3df.css b/detect.gui/Embedded/dist/assets/index-8c5ac3df.css new file mode 100644 index 0000000..4497191 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-8c5ac3df.css @@ -0,0 +1 @@ +.header[data-v-db988f1b]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-db988f1b]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-db988f1b] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-db988f1b] .ant-table-wrapper{background:transparent}[data-v-db988f1b] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-db988f1b] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-db988f1b] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-db988f1b] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-db988f1b] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-db988f1b] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-db988f1b] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-db988f1b] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-db988f1b] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-db988f1b] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-db988f1b] .ant-select-selector .ant-select-selection-item,[data-v-db988f1b] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-db988f1b] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-db988f1b] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-db988f1b] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-db988f1b] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-db988f1b] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-db988f1b] .ant-empty-description{color:#999}[data-v-db988f1b] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-db988f1b] .ant-pagination-options-quick-jumper>input:hover,[data-v-db988f1b] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-db988f1b] .ant-input-clear-icon,[data-v-db988f1b] .ant-input-password-icon{color:#fff!important}[data-v-db988f1b] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-db988f1b] .vben-basic-table-action button:disabled{color:#999!important}[data-v-db988f1b] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-db988f1b] .vben-tree-header{border-bottom:1px solid #183171}[data-v-db988f1b] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-tree-list{background:#13265a!important}[data-v-db988f1b] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-tree-switcher-icon{color:#fff!important}[data-v-db988f1b] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-db988f1b] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-db988f1b] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-db988f1b] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-picker,[data-v-db988f1b] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-db988f1b] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-db988f1b] .ant-picker-focused,[data-v-db988f1b] .ant-picker-range:hover,[data-v-db988f1b] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-db988f1b] .vben-basic-table .ant-picker-range{width:100%}[data-v-db988f1b] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-db988f1b] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-db988f1b] .anticon{color:#fff!important}[data-v-db988f1b] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-db988f1b] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-db988f1b] .ant-picker-cell-in-view{color:#fff!important}[data-v-db988f1b] .ant-picker-content th,[data-v-db988f1b] .ant-picker-header-super-prev-btn,[data-v-db988f1b] .ant-picker-header-prev-btn,[data-v-db988f1b] .ant-picker-header-super-next-btn,[data-v-db988f1b] .ant-picker-header-next-btn,[data-v-db988f1b] .ant-picker-year-btn,[data-v-db988f1b] .ant-picker-month-btn,[data-v-db988f1b] .ant-picker-decade-btn,[data-v-db988f1b] .ant-picker-header-view,[data-v-db988f1b] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-db988f1b] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-db988f1b] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-db988f1b] .ant-card-body{padding:0!important}[data-v-db988f1b] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-db988f1b] .ant-descriptions-view{border:1px solid #183171!important}[data-v-db988f1b] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-db988f1b] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-db988f1b] .ant-descriptions-item-label,[data-v-db988f1b] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-db988f1b] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-db988f1b] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-db988f1b] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-db988f1b] .CodeMirror-cursor{border-left:1px solid white}[data-v-db988f1b] .cm-string{color:#ff8c00!important}[data-v-db988f1b] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-8e331aa4.js b/detect.gui/Embedded/dist/assets/index-8e331aa4.js new file mode 100644 index 0000000..a513228 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-8e331aa4.js @@ -0,0 +1 @@ +var Dt=Object.defineProperty;var H=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable;var x=(t,i,r)=>i in t?Dt(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,X=(t,i)=>{for(var r in i||(i={}))pt.call(i,r)&&x(t,r,i[r]);if(H)for(var r of H(i))Ct.call(i,r)&&x(t,r,i[r]);return t};import{B as Lt,u as ft}from"./index-e60b7cd2.js";import{m as c,a$ as k,b0 as G,b1 as A,M as f,D as I,b2 as v,v as V,ab as b,A as Y,b3 as Q,b4 as Z,B as j,b5 as Ut,b6 as bt,b7 as yt,aa as Bt,a as Gt,b8 as Wt,I as Pt,_ as ht}from"./index.js";import{c as N,u as mt}from"./index-07b093f7.js";import{u as Ft}from"./index-cb1b7a92.js";import{d as z,c as wt,u as o,k as n,a9 as Ht,F as U,Z as xt,_ as Xt,a6 as K}from"./vue-72a104e4.js";import{aq as M}from"./antd-eedb3ef5.js";const kt=N(()=>c(()=>import("./TypePicker-567499e2.js"),["./TypePicker-567499e2.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./TypePicker-e8660c9e.css"],import.meta.url));N(()=>c(()=>import("./ThemeColorPicker-f906b84e.js"),["./ThemeColorPicker-f906b84e.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-e60b7cd2.js","./index-ac2d527c.css","./index-07b093f7.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-fffcad33.css","./ThemeColorPicker-84b84c57.css"],import.meta.url));const vt=N(()=>c(()=>import("./SettingFooter-72beec9a.js"),["./SettingFooter-72beec9a.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./copyTextToClipboard-96e9be8c.js","./SettingFooter-11fe833c.css"],import.meta.url)),_=N(()=>c(()=>import("./SwitchItem-e816ab40.js"),["./SwitchItem-e816ab40.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-e60b7cd2.js","./index-ac2d527c.css","./index-07b093f7.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-fffcad33.css","./SwitchItem-e293bb1b.css"],import.meta.url)),d=N(()=>c(()=>import("./SelectItem-b6bbeb2c.js"),["./SelectItem-b6bbeb2c.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-e60b7cd2.js","./index-ac2d527c.css","./index-07b093f7.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-fffcad33.css","./SelectItem-acbd08e7.css"],import.meta.url)),$=N(()=>c(()=>import("./InputNumberItem-92556698.js"),["./InputNumberItem-92556698.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-e60b7cd2.js","./index-ac2d527c.css","./index-07b093f7.js","./index-cb1b7a92.js","./index-248ee10e.js","./useContentViewHeight-af1e3bfb.js","./useWindowSizeFn-46f0db92.js","./index-054645fa.css","./lock-ba03254e.js","./index-fffcad33.css","./InputNumberItem-9fb89c8f.css"],import.meta.url)),{t:l}=V();var e=(t=>(t[t.CHANGE_LAYOUT=0]="CHANGE_LAYOUT",t[t.CHANGE_THEME_COLOR=1]="CHANGE_THEME_COLOR",t[t.CHANGE_THEME=2]="CHANGE_THEME",t[t.MENU_HAS_DRAG=3]="MENU_HAS_DRAG",t[t.MENU_ACCORDION=4]="MENU_ACCORDION",t[t.MENU_TRIGGER=5]="MENU_TRIGGER",t[t.MENU_TOP_ALIGN=6]="MENU_TOP_ALIGN",t[t.MENU_COLLAPSED=7]="MENU_COLLAPSED",t[t.MENU_COLLAPSED_SHOW_TITLE=8]="MENU_COLLAPSED_SHOW_TITLE",t[t.MENU_WIDTH=9]="MENU_WIDTH",t[t.MENU_SHOW_SIDEBAR=10]="MENU_SHOW_SIDEBAR",t[t.MENU_THEME=11]="MENU_THEME",t[t.MENU_SPLIT=12]="MENU_SPLIT",t[t.MENU_FIXED=13]="MENU_FIXED",t[t.MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE=14]="MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE",t[t.MENU_TRIGGER_MIX_SIDEBAR=15]="MENU_TRIGGER_MIX_SIDEBAR",t[t.MENU_FIXED_MIX_SIDEBAR=16]="MENU_FIXED_MIX_SIDEBAR",t[t.HEADER_SHOW=17]="HEADER_SHOW",t[t.HEADER_THEME=18]="HEADER_THEME",t[t.HEADER_FIXED=19]="HEADER_FIXED",t[t.HEADER_SEARCH=20]="HEADER_SEARCH",t[t.TABS_SHOW_QUICK=21]="TABS_SHOW_QUICK",t[t.TABS_SHOW_REDO=22]="TABS_SHOW_REDO",t[t.TABS_SHOW=23]="TABS_SHOW",t[t.TABS_SHOW_FOLD=24]="TABS_SHOW_FOLD",t[t.LOCK_TIME=25]="LOCK_TIME",t[t.FULL_CONTENT=26]="FULL_CONTENT",t[t.CONTENT_MODE=27]="CONTENT_MODE",t[t.SHOW_BREADCRUMB=28]="SHOW_BREADCRUMB",t[t.SHOW_BREADCRUMB_ICON=29]="SHOW_BREADCRUMB_ICON",t[t.GRAY_MODE=30]="GRAY_MODE",t[t.COLOR_WEAK=31]="COLOR_WEAK",t[t.SHOW_LOGO=32]="SHOW_LOGO",t[t.SHOW_FOOTER=33]="SHOW_FOOTER",t[t.ROUTER_TRANSITION=34]="ROUTER_TRANSITION",t[t.OPEN_PROGRESS=35]="OPEN_PROGRESS",t[t.OPEN_PAGE_LOADING=36]="OPEN_PAGE_LOADING",t[t.OPEN_ROUTE_TRANSITION=37]="OPEN_ROUTE_TRANSITION",t))(e||{});const Kt=[{value:k.FULL,label:l("layout.setting.contentModeFull")},{value:k.FIXED,label:l("layout.setting.contentModeFixed")}],$t=[{value:G.CENTER,label:l("layout.setting.topMenuAlignRight")},{value:G.START,label:l("layout.setting.topMenuAlignLeft")},{value:G.END,label:l("layout.setting.topMenuAlignCenter")}],Vt=t=>[{value:b.NONE,label:l("layout.setting.menuTriggerNone")},{value:b.FOOTER,label:l("layout.setting.menuTriggerBottom")},...t?[]:[{value:b.HEADER,label:l("layout.setting.menuTriggerTop")}]],Yt=[A.ZOOM_FADE,A.FADE,A.ZOOM_OUT,A.FADE_SIDE,A.FADE_BOTTOM,A.FADE_SCALE].map(t=>({label:t,value:t})),Qt=[{title:l("layout.setting.menuTypeSidebar"),mode:f.INLINE,type:I.SIDEBAR},{title:l("layout.setting.menuTypeMix"),mode:f.INLINE,type:I.MIX},{title:l("layout.setting.menuTypeTopMenu"),mode:f.HORIZONTAL,type:I.TOP_MENU},{title:l("layout.setting.menuTypeMixSidebar"),mode:f.INLINE,type:I.MIX_SIDEBAR}],Zt=[{value:v.HOVER,label:l("layout.setting.triggerHover")},{value:v.CLICK,label:l("layout.setting.triggerClick")}];function jt(t,i){const r=Y(),g=zt(t,i);r.setProjectConfig(g),t===e.CHANGE_THEME&&(Q(),Z())}function zt(t,i){const r=Y(),{getThemeColor:g,getDarkMode:D}=j();switch(t){case e.CHANGE_LAYOUT:const{mode:p,type:R,split:O}=i;return{menuSetting:X({mode:p,type:R,collapsed:!1,show:!0,hidden:!1},O===void 0?{split:O}:{})};case e.CHANGE_THEME_COLOR:return g.value===i?{}:{themeColor:i};case e.CHANGE_THEME:return D.value===i?{}:(yt(i),{});case e.MENU_HAS_DRAG:return{menuSetting:{canDrag:i}};case e.MENU_ACCORDION:return{menuSetting:{accordion:i}};case e.MENU_TRIGGER:return{menuSetting:{trigger:i}};case e.MENU_TOP_ALIGN:return{menuSetting:{topMenuAlign:i}};case e.MENU_COLLAPSED:return{menuSetting:{collapsed:i}};case e.MENU_WIDTH:return{menuSetting:{menuWidth:i}};case e.MENU_SHOW_SIDEBAR:return{menuSetting:{show:i}};case e.MENU_COLLAPSED_SHOW_TITLE:return{menuSetting:{collapsedShowTitle:i}};case e.MENU_THEME:return Z(i),{menuSetting:{bgColor:i}};case e.MENU_SPLIT:return{menuSetting:{split:i}};case e.MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE:return{menuSetting:{closeMixSidebarOnChange:i}};case e.MENU_FIXED:return{menuSetting:{fixed:i}};case e.MENU_TRIGGER_MIX_SIDEBAR:return{menuSetting:{mixSideTrigger:i}};case e.MENU_FIXED_MIX_SIDEBAR:return{menuSetting:{mixSideFixed:i}};case e.OPEN_PAGE_LOADING:return r.setPageLoading(!1),{transitionSetting:{openPageLoading:i}};case e.ROUTER_TRANSITION:return{transitionSetting:{basicTransition:i}};case e.OPEN_ROUTE_TRANSITION:return{transitionSetting:{enable:i}};case e.OPEN_PROGRESS:return{transitionSetting:{openNProgress:i}};case e.LOCK_TIME:return{lockTime:i};case e.FULL_CONTENT:return{fullContent:i};case e.CONTENT_MODE:return{contentMode:i};case e.SHOW_BREADCRUMB:return{showBreadCrumb:i};case e.SHOW_BREADCRUMB_ICON:return{showBreadCrumbIcon:i};case e.GRAY_MODE:return bt(i),{grayMode:i};case e.SHOW_FOOTER:return{showFooter:i};case e.COLOR_WEAK:return Ut(i),{colorWeak:i};case e.SHOW_LOGO:return{showLogo:i};case e.TABS_SHOW_QUICK:return{multiTabsSetting:{showQuick:i}};case e.TABS_SHOW:return{multiTabsSetting:{show:i}};case e.TABS_SHOW_REDO:return{multiTabsSetting:{showRedo:i}};case e.TABS_SHOW_FOLD:return{multiTabsSetting:{showFold:i}};case e.HEADER_THEME:return Q(i),{headerSetting:{bgColor:i}};case e.HEADER_SEARCH:return{headerSetting:{showSearch:i}};case e.HEADER_FIXED:return{headerSetting:{fixed:i}};case e.HEADER_SHOW:return{headerSetting:{show:i}};default:return{}}}const{t:s}=V(),qt=z({name:"SettingDrawer",setup(t,{attrs:i}){const{getContentMode:r,getShowFooter:g,getShowBreadCrumb:D,getShowBreadCrumbIcon:p,getShowLogo:R,getFullContent:O,getColorWeak:y,getGrayMode:q,getLockTime:J,getShowDarkModeToggle:W}=j(),{getOpenPageLoading:tt,getBasicTransition:et,getEnableTransition:P,getOpenNProgress:ot}=Bt(),{getIsHorizontal:B,getShowMenu:h,getMenuType:m,getTrigger:it,getCollapsedShowTitle:nt,getMenuFixed:st,getCollapsed:F,getCanDrag:_t,getTopMenuAlign:rt,getAccordion:lt,getMenuWidth:at,getIsTopMenu:Et,getSplit:C,getIsMixSidebar:a,getCloseMixSidebarOnChange:gt,getMixSideTrigger:Ot,getMixSideFixed:St}=Gt(),{getShowHeader:S,getFixed:ut,getShowSearch:Tt}=mt(),{getShowMultipleTab:L,getShowQuick:At,getShowRedo:Mt,getShowFold:ct}=Ft(),E=wt(()=>o(h)&&!o(B));function Nt(){return n(U,null,[n(kt,{menuTypeList:Qt,handler:u=>{jt(e.CHANGE_LAYOUT,{mode:u.mode,type:u.type,split:o(B)?!1:void 0})},def:o(m)},null)])}function Rt(){let u=o(it);const w=Vt(o(C));return w.some(T=>T.value===u)||(u=b.FOOTER),n(U,null,[n(_,{title:s("layout.setting.splitMenu"),event:e.MENU_SPLIT,def:o(C),disabled:!o(E)||o(m)!==I.MIX},null),n(_,{title:s("layout.setting.mixSidebarFixed"),event:e.MENU_FIXED_MIX_SIDEBAR,def:o(St),disabled:!o(a)},null),n(_,{title:s("layout.setting.closeMixSidebarOnChange"),event:e.MENU_CLOSE_MIX_SIDEBAR_ON_CHANGE,def:o(gt),disabled:!o(a)},null),n(_,{title:s("layout.setting.menuCollapse"),event:e.MENU_COLLAPSED,def:o(F),disabled:!o(E)},null),n(_,{title:s("layout.setting.menuDrag"),event:e.MENU_HAS_DRAG,def:o(_t),disabled:!o(E)},null),n(_,{title:s("layout.setting.menuSearch"),event:e.HEADER_SEARCH,def:o(Tt),disabled:!o(S)},null),n(_,{title:s("layout.setting.menuAccordion"),event:e.MENU_ACCORDION,def:o(lt),disabled:!o(E)},null),n(_,{title:s("layout.setting.collapseMenuDisplayName"),event:e.MENU_COLLAPSED_SHOW_TITLE,def:o(nt),disabled:!o(E)||!o(F)||o(a)},null),n(_,{title:s("layout.setting.fixedHeader"),event:e.HEADER_FIXED,def:o(ut),disabled:!o(S)},null),n(_,{title:s("layout.setting.fixedSideBar"),event:e.MENU_FIXED,def:o(st),disabled:!o(E)||o(a)},null),n(d,{title:s("layout.setting.mixSidebarTrigger"),event:e.MENU_TRIGGER_MIX_SIDEBAR,def:o(Ot),options:Zt,disabled:!o(a)},null),n(d,{title:s("layout.setting.topMenuLayout"),event:e.MENU_TOP_ALIGN,def:o(rt),options:$t,disabled:!o(S)||o(C)||!o(Et)&&!o(C)||o(a)},null),n(d,{title:s("layout.setting.menuCollapseButton"),event:e.MENU_TRIGGER,def:u,options:w,disabled:!o(E)||o(a)},null),n(d,{title:s("layout.setting.contentMode"),event:e.CONTENT_MODE,def:o(r),options:Kt},null),n($,{title:s("layout.setting.autoScreenLock"),min:0,event:e.LOCK_TIME,defaultValue:o(J),formatter:T=>parseInt(T)===0?`0(${s("layout.setting.notAutoScreenLock")})`:`${T}${s("layout.setting.minute")}`},null),n($,{title:s("layout.setting.expandedMenuWidth"),max:600,min:100,step:10,event:e.MENU_WIDTH,disabled:!o(E),defaultValue:o(at),formatter:T=>`${parseInt(T)}px`},null)])}function dt(){return n(U,null,[n(_,{title:s("layout.setting.breadcrumb"),event:e.SHOW_BREADCRUMB,def:o(D),disabled:!o(S)},null),n(_,{title:s("layout.setting.breadcrumbIcon"),event:e.SHOW_BREADCRUMB_ICON,def:o(p),disabled:!o(S)},null),n(_,{title:s("layout.setting.tabs"),event:e.TABS_SHOW,def:o(L)},null),n(_,{title:s("layout.setting.tabsRedoBtn"),event:e.TABS_SHOW_REDO,def:o(Mt),disabled:!o(L)},null),n(_,{title:s("layout.setting.tabsQuickBtn"),event:e.TABS_SHOW_QUICK,def:o(At),disabled:!o(L)},null),n(_,{title:s("layout.setting.tabsFoldBtn"),event:e.TABS_SHOW_FOLD,def:o(ct),disabled:!o(L)},null),n(_,{title:s("layout.setting.sidebar"),event:e.MENU_SHOW_SIDEBAR,def:o(h),disabled:o(B)},null),n(_,{title:s("layout.setting.header"),event:e.HEADER_SHOW,def:o(S)},null),n(_,{title:"Logo",event:e.SHOW_LOGO,def:o(R),disabled:o(a)},null),n(_,{title:s("layout.setting.footer"),event:e.SHOW_FOOTER,def:o(g)},null),n(_,{title:s("layout.setting.fullContent"),event:e.FULL_CONTENT,def:o(O)},null),n(_,{title:s("layout.setting.grayMode"),event:e.GRAY_MODE,def:o(q)},null),n(_,{title:s("layout.setting.colorWeak"),event:e.COLOR_WEAK,def:o(y)},null)])}function It(){return n(U,null,[n(_,{title:s("layout.setting.progress"),event:e.OPEN_PROGRESS,def:o(ot)},null),n(_,{title:s("layout.setting.switchLoading"),event:e.OPEN_PAGE_LOADING,def:o(tt)},null),n(_,{title:s("layout.setting.switchAnimation"),event:e.OPEN_ROUTE_TRANSITION,def:o(P)},null),n(d,{title:s("layout.setting.animationType"),event:e.ROUTER_TRANSITION,def:o(et),options:Yt,disabled:!o(P)},null)])}return()=>n(Lt,Ht(i,{title:s("layout.setting.drawerTitle"),width:330,class:"setting-drawer"}),{default:()=>[o(W)&&n(M,null,{default:()=>s("layout.setting.darkMode")}),o(W)&&n(Wt,{class:"mx-auto"},null),n(M,null,{default:()=>s("layout.setting.navMode")}),Nt(),n(M,null,{default:()=>s("layout.setting.interfaceFunction")}),Rt(),n(M,null,{default:()=>s("layout.setting.interfaceDisplay")}),dt(),n(M,null,{default:()=>s("layout.setting.animation")}),It(),n(M,null,null),n(vt,null,null)]})}}),Jt=z({name:"SettingButton",components:{SettingDrawer:qt,Icon:Pt},setup(){const[t,{openDrawer:i}]=ft();return{register:t,openDrawer:i}}});function te(t,i,r,g,D,p){const R=K("Icon"),O=K("SettingDrawer");return xt(),Xt("div",{onClick:i[0]||(i[0]=y=>t.openDrawer(!0))},[n(R,{icon:"ion:settings-outline"}),n(O,{onRegister:t.register},null,8,["onRegister"])])}const ee=ht(Jt,[["render",te]]),Ee=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{jt as b,Ee as i}; diff --git a/detect.gui/Embedded/dist/assets/index-942f317f.js b/detect.gui/Embedded/dist/assets/index-942f317f.js new file mode 100644 index 0000000..8d7ad15 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-942f317f.js @@ -0,0 +1 @@ +import{_ as r}from"./index.js";import"./vue-72a104e4.js";import"./antd-eedb3ef5.js";const t={};function e(n,c){return null}const f=r(t,[["render",e]]);export{f as default}; diff --git a/detect.gui/Embedded/dist/assets/index-9a851ec7.js b/detect.gui/Embedded/dist/assets/index-9a851ec7.js new file mode 100644 index 0000000..d0440f1 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-9a851ec7.js @@ -0,0 +1 @@ +var C=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable;var Y=(n,d)=>{var i={};for(var t in n)H.call(n,t)&&d.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&C)for(var t of C(n))d.indexOf(t)<0&&I.call(n,t)&&(i[t]=n[t]);return i};import{j as P,k as $,l as j,_ as E}from"./index.js";import{u as O,B as U}from"./useTable-3e054214.js";import{T as N}from"./useForm-df5105ea.js";import{j as _}from"./antd-eedb3ef5.js";import{s as V,c as F,b as w,r as K}from"./userAuthorityApi-e5a30d38.js";import{u as z}from"./index-e60b7cd2.js";import{_ as G}from"./drawer.vue_vue_type_script_setup_true_lang-c5fbc028.js";import{d as W,a6 as Z,Z as x,_ as q,k as h,a5 as b,G as J,a4 as L,u as m,a8 as Q}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const X=W({name:"AUTH_SYSTEM_USER_AUTHORITY",__name:"index",setup(n){P();const d=$(),[i,{openDrawer:t}]=z(),[D,{reload:g,setSelectedRowKeys:ee}]=O({title:"用户权限对应表",api:e=>V(S(e)),columns:F,formConfig:{labelWidth:120,schemas:w,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),S=e=>{const y=e,{pageNum:l,pageSize:u,field:p="id",order:c="descend"}=y,B=Y(y,["pageNum","pageSize","field","order"]),s={pageNum:l,pageSize:u,orderByClause:`${p} ${c==="descend"?"desc":"asc"}`};return Object.keys(B).forEach(f=>{const r=w.find(M=>M.field===f),o=e[f],a=f;r?o!==void 0&&o!==""&&(r.component==="Input"?s[a]=`%${o.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?s[a]=j(o)?o.value:o:r.component==="RangePicker"?(s[`${a}From`]=_(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),s[`${a}To`]=_(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?s[a]=_(o).format(r.componentProps.format||"YYYY-MM-DD"):s[a]=o):s[a]=o}),s},T=()=>{t(!0,{isUpdate:!1})},v=e=>{t(!0,{record:e,isUpdate:!0})},k=e=>{K(e.id).then(l=>{g()})},R=()=>{g()},A=e=>{d("/system/user-authority/detail/"+e.id)};return(e,l)=>{const u=Z("a-button");return x(),q("div",null,[h(m(U),{onRegister:m(D)},{toolbar:b(()=>[h(u,{type:"primary",onClick:T},{default:b(()=>l[0]||(l[0]=[J(" 新增")])),_:1})]),bodyCell:b(({column:p,record:c})=>[p.dataIndex==="action"?(x(),L(m(N),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:v.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:A.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:k.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):Q("",!0)]),_:1},8,["onRegister"]),h(G,{onRegister:m(i),onSuccess:R},null,8,["onRegister"])])}}});const _e=E(X,[["__scopeId","data-v-dd25c025"]]);export{_e as default}; diff --git a/detect.gui/Embedded/dist/assets/index-a17248e3.css b/detect.gui/Embedded/dist/assets/index-a17248e3.css new file mode 100644 index 0000000..bffc867 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-a17248e3.css @@ -0,0 +1 @@ +@charset "UTF-8";*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-5{bottom:1.25rem}.left-1\/2{left:50%}.left-5{left:1.25rem}.top-0{top:0}.top-5{top:1.25rem}.inline-grid{display:inline-grid}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.\!mt-4{margin-top:1rem!important}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-5{margin-right:1.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.list-item{display:list-item}.hidden{display:none}.h-16{height:4rem}.h-2\/5{height:40%}.h-full{height:100%}.h-screen{height:100vh}.w-1\/8{width:12.5%}.w-2\/5{width:40%}.w-full{width:100%}.w-screen{width:100vw}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.file-table::file-selector-button{display:table}.border-collapse{border-collapse:collapse}.translate-x-1\/2{--un-translate-x:50%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-self-stretch{justify-self:stretch}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.border-t-0{border-top-width:0}.border-solid{border-style:solid}.bg-black{--un-bg-opacity:1;background-color:rgba(0,0,0,var(--un-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-5{padding:1.25rem}.px,.px-4{padding-left:1rem;padding-right:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.ps{padding-inline-start:1rem}.pt-5{padding-top:1.25rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-gray-300{--un-text-opacity:1;color:rgba(209,213,219,var(--un-text-opacity))}.text-red-500{--un-text-opacity:1;color:rgba(239,68,68,var(--un-text-opacity))}.text-white{--un-text-opacity:1;color:rgba(255,255,255,var(--un-text-opacity))}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (min-width: 768px){.md\:mr-20{margin-right:5rem}.md\:block{display:block}.md\:h-4\/5{height:80%}.md\:opacity-100{opacity:1}}@media (min-width: 1280px){.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1536px){.\32xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}}*>.enter-x:nth-child(1){transform:translate(50px)}*>.-enter-x:nth-child(1){transform:translate(-50px)}*>.enter-x:nth-child(1),*>.-enter-x:nth-child(1){z-index:9;opacity:0;animation:enter-x-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.1s}*>.enter-x:nth-child(2){transform:translate(50px)}*>.-enter-x:nth-child(2){transform:translate(-50px)}*>.enter-x:nth-child(2),*>.-enter-x:nth-child(2){z-index:8;opacity:0;animation:enter-x-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.2s}*>.enter-x:nth-child(3){transform:translate(50px)}*>.-enter-x:nth-child(3){transform:translate(-50px)}*>.enter-x:nth-child(3),*>.-enter-x:nth-child(3){z-index:7;opacity:0;animation:enter-x-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.3s}*>.enter-x:nth-child(4){transform:translate(50px)}*>.-enter-x:nth-child(4){transform:translate(-50px)}*>.enter-x:nth-child(4),*>.-enter-x:nth-child(4){z-index:6;opacity:0;animation:enter-x-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.4s}*>.enter-x:nth-child(5){transform:translate(50px)}*>.-enter-x:nth-child(5){transform:translate(-50px)}*>.enter-x:nth-child(5),*>.-enter-x:nth-child(5){z-index:5;opacity:0;animation:enter-x-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.5s}*>.enter-y:nth-child(1){transform:translate(50px)}*>.-enter-y:nth-child(1){transform:translate(-50px)}*>.enter-y:nth-child(1),*>.-enter-y:nth-child(1){z-index:9;opacity:0;animation:enter-y-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.1s}*>.enter-y:nth-child(2){transform:translate(50px)}*>.-enter-y:nth-child(2){transform:translate(-50px)}*>.enter-y:nth-child(2),*>.-enter-y:nth-child(2){z-index:8;opacity:0;animation:enter-y-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.2s}*>.enter-y:nth-child(3){transform:translate(50px)}*>.-enter-y:nth-child(3){transform:translate(-50px)}*>.enter-y:nth-child(3),*>.-enter-y:nth-child(3){z-index:7;opacity:0;animation:enter-y-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.3s}*>.enter-y:nth-child(4){transform:translate(50px)}*>.-enter-y:nth-child(4){transform:translate(-50px)}*>.enter-y:nth-child(4),*>.-enter-y:nth-child(4){z-index:6;opacity:0;animation:enter-y-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.4s}*>.enter-y:nth-child(5){transform:translate(50px)}*>.-enter-y:nth-child(5){transform:translate(-50px)}*>.enter-y:nth-child(5),*>.-enter-y:nth-child(5){z-index:5;opacity:0;animation:enter-y-animation .4s ease-in-out .3s;animation-fill-mode:forwards;animation-delay:.5s}@keyframes enter-x-animation{to{opacity:1;transform:translate(0)}}@keyframes enter-y-animation{to{opacity:1;transform:translateY(0)}}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.expand-transition-move{transition:transform .4s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.expand-x-transition-move{transition:transform .4s}.fade-transition-enter-active,.fade-transition-leave-active{transition:opacity .2s ease-in-out}.fade-transition-enter-from,.fade-transition-leave-to{opacity:0}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease-in-out}.fade-enter-from,.fade-leave-to{opacity:0}.fade-slide-leave-active,.fade-slide-enter-active{transition:all .3s}.fade-slide-enter-from{transform:translate(-30px);opacity:0}.fade-slide-leave-to{transform:translate(30px);opacity:0}.fade-bottom-enter-active,.fade-bottom-leave-active{transition:opacity .25s,transform .3s}.fade-bottom-enter-from{transform:translateY(-10%);opacity:0}.fade-bottom-leave-to{transform:translateY(10%);opacity:0}.fade-scale-leave-active,.fade-scale-enter-active{transition:all .28s}.fade-scale-enter-from{transform:scale(1.2);opacity:0}.fade-scale-leave-to{transform:scale(.8);opacity:0}.fade-top-enter-active,.fade-top-leave-active{transition:opacity .2s,transform .25s}.fade-top-enter-from{transform:translateY(8%);opacity:0}.fade-top-leave-to{transform:translateY(-8%);opacity:0}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scale-transition-move{transition:transform .4s}.scale-transition-enter-from,.scale-transition-leave,.scale-transition-leave-to{transform:scale(0);opacity:0}.scale-rotate-transition-enter-active,.scale-rotate-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scale-rotate-transition-move{transition:transform .4s}.scale-rotate-transition-enter-from,.scale-rotate-transition-leave,.scale-rotate-transition-leave-to{transform:scale(0) rotate(-45deg);opacity:0}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-y-transition-move{transition:transform .4s}.slide-y-transition-enter-from,.slide-y-transition-leave-to{transform:translateY(-15px);opacity:0}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-y-reverse-transition-move{transition:transform .4s}.slide-y-reverse-transition-enter-from,.slide-y-reverse-transition-leave-to{transform:translateY(15px);opacity:0}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-x-transition-move{transition:transform .4s}.slide-x-transition-enter-from,.slide-x-transition-leave-to{transform:translate(-15px);opacity:0}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-x-reverse-transition-move{transition:transform .4s}.slide-x-reverse-transition-enter-from,.slide-x-reverse-transition-leave-to{transform:translate(15px);opacity:0}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-y-transition-move{transition:transform .4s}.scroll-y-transition-enter-from,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter-from{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-y-reverse-transition-move{transition:transform .4s}.scroll-y-reverse-transition-enter-from,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter-from{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-x-transition-move{transition:transform .4s}.scroll-x-transition-enter-from,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter-from{transform:translate(-15px)}.scroll-x-transition-leave-to{transform:translate(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-x-reverse-transition-move{transition:transform .4s}.scroll-x-reverse-transition-enter-from,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter-from{transform:translate(15px)}.scroll-x-reverse-transition-leave-to{transform:translate(-15px)}.zoom-out-enter-active,.zoom-out-leave-active{transition:opacity .1 ease-in-out,transform .15s ease-out}.zoom-out-enter-from,.zoom-out-leave-to{transform:scale(0);opacity:0}.zoom-fade-enter-active,.zoom-fade-leave-active{transition:transform .2s,opacity .3s ease-out}.zoom-fade-enter-from{transform:scale(.92);opacity:0}.zoom-fade-leave-to{transform:scale(1.06);opacity:0}.collapse-transition{transition:.2s height ease-in-out,.2s padding-top ease-in-out,.2s padding-bottom ease-in-out}#app{width:100%;height:100%}::-webkit-scrollbar{width:7px;height:8px}::-webkit-scrollbar-track{background-color:#0000000d}::-webkit-scrollbar-thumb{border-radius:2px;background-color:#9093994d;box-shadow:inset 0 0 6px #0003}::-webkit-scrollbar-thumb:hover{background-color:#b6b7b9}#nprogress{pointer-events:none}#nprogress .bar{position:fixed;z-index:99999;top:0;left:0;width:100%;height:2px;opacity:.75;background-color:#0960bd}html[data-theme=dark] .ant-pagination.mini .ant-pagination-prev,html[data-theme=dark] .ant-pagination.mini .ant-pagination-next,html[data-theme=dark] .ant-pagination.mini .ant-pagination-item{background-color:#ffffff0a!important}html[data-theme=dark] .ant-pagination.mini .ant-pagination-prev a,html[data-theme=dark] .ant-pagination.mini .ant-pagination-next a,html[data-theme=dark] .ant-pagination.mini .ant-pagination-item a{color:#8b949e!important}html[data-theme=dark] .ant-pagination.mini .ant-select-arrow{color:#000000a6!important}html[data-theme=dark] .ant-pagination.mini .ant-pagination-item-active{border:none;border-radius:none!important;background-color:#0960bd!important}html[data-theme=dark] .ant-pagination.mini .ant-pagination-item-active a{color:#fff!important}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next{border:1px solid;color:#000000e0;font-size:12px}.ant-pagination.mini .ant-pagination-prev:hover a,.ant-pagination.mini .ant-pagination-next:hover a,.ant-pagination.mini .ant-pagination-item:focus a,.ant-pagination.mini .ant-pagination-item:hover a{color:#0960bd}.ant-pagination.mini .ant-pagination-prev,.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-item{margin:0 4px!important;border:none;border-radius:none!important;background-color:#f4f4f5!important}.ant-pagination.mini .ant-pagination-prev a,.ant-pagination.mini .ant-pagination-next a,.ant-pagination.mini .ant-pagination-item a{margin-top:1px;color:#606266}.ant-pagination.mini .ant-pagination-prev:last-child,.ant-pagination.mini .ant-pagination-next:last-child,.ant-pagination.mini .ant-pagination-item:last-child{margin-right:0!important}.ant-pagination.mini .ant-pagination-item-active{border:none;border-radius:none!important;background-color:#0960bd!important}.ant-pagination.mini .ant-pagination-item-active a{color:#fff!important}.ant-pagination.mini .ant-pagination-options{margin-left:12px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:22px;margin:0 6px;line-height:22px;text-align:center}.ant-pagination.mini .ant-select-arrow{color:#cececd}.ant-pagination-disabled{display:none!important}.ant-input-number,.ant-input-number-group-wrapper{width:100%!important;min-width:110px;max-width:100%}.ant-input-affix-wrapper .ant-input-suffix{right:9px}.ant-input-clear-icon{margin-right:5px}.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn textarea.ant-input{padding:4px}.ant-btn-link:hover,.ant-btn-link:focus,.ant-btn-link:active{border-color:transparent!important}.ant-btn-primary{background-color:#0960bd;color:#fff}.ant-btn-primary:hover,.ant-btn-primary:focus{background-color:#0a6cd5;color:#fff}.ant-btn-primary:not(.ant-btn-background-ghost):not([disabled]){color:#fff}.ant-btn-default{border-color:#cececd;background-color:#fff;color:#606266}.ant-btn-default:hover,.ant-btn-default:focus{border-color:#0960bd;background-color:#fff;color:#0960bd}[data-theme=light] .ant-btn.ant-btn-link.is-disabled{border-color:transparent!important;background-color:transparent!important;box-shadow:none;color:#00000040;text-shadow:none;cursor:not-allowed!important}[data-theme=dark] .ant-btn.ant-btn-link.is-disabled{border-color:transparent!important;background-color:transparent!important;box-shadow:none;color:#ffffff40!important;text-shadow:none;cursor:not-allowed!important}.ant-btn-success.ant-btn-link:not([disabled=disabled]){color:#55d187}.ant-btn-success.ant-btn-link:not([disabled=disabled]):hover,.ant-btn-success.ant-btn-link:not([disabled=disabled]):focus{border-color:transparent;color:#7ddca3}.ant-btn-success.ant-btn-link:not([disabled=disabled]):active{color:#34bf6c}.ant-btn-success.ant-btn-link.ant-btn-loading:before,.ant-btn-warning.ant-btn-link.ant-btn-loading:before,.ant-btn-error.ant-btn-link.ant-btn-loading:before,.ant-btn-background-ghost.ant-btn-link.ant-btn-loading:before,.ant-btn.ant-btn-link.ant-btn-loading:before{background:transparent}.ant-btn-success:not(.ant-btn-link,.is-disabled){border-color:#55d187;background-color:#55d187;color:#fff}.ant-btn-success:not(.ant-btn-link,.is-disabled):hover,.ant-btn-success:not(.ant-btn-link,.is-disabled):focus{border-color:#7ddca3;background-color:#7ddca3;color:#fff}.ant-btn-success:not(.ant-btn-link,.is-disabled):active{border-color:#34bf6c;background-color:#34bf6c}.ant-btn-warning.ant-btn-link:not([disabled=disabled]){color:#efbd47}.ant-btn-warning.ant-btn-link:not([disabled=disabled]):hover,.ant-btn-warning.ant-btn-link:not([disabled=disabled]):focus{border-color:transparent;color:#f3ce76}.ant-btn-warning.ant-btn-link:not([disabled=disabled]):active{color:#ebac18}.ant-btn-warning:not(.ant-btn-link,.is-disabled){border-color:#efbd47;background-color:#efbd47;color:#fff}.ant-btn-warning:not(.ant-btn-link,.is-disabled):hover,.ant-btn-warning:not(.ant-btn-link,.is-disabled):focus{border-color:#f3ce76;background-color:#f3ce76;color:#fff}.ant-btn-warning:not(.ant-btn-link,.is-disabled):active{border-color:#ebac18;background-color:#ebac18}.ant-btn-error.ant-btn-link:not([disabled=disabled]){color:#ed6f6f}.ant-btn-error.ant-btn-link:not([disabled=disabled]):hover,.ant-btn-error.ant-btn-link:not([disabled=disabled]):focus{border-color:transparent;color:#f39c9c}.ant-btn-error.ant-btn-link:not([disabled=disabled]):active{color:#e74242}.ant-btn-error:not(.ant-btn-link,.is-disabled){border-color:#ed6f6f;background-color:#ed6f6f;color:#fff}.ant-btn-error:not(.ant-btn-link,.is-disabled):hover,.ant-btn-error:not(.ant-btn-link,.is-disabled):focus{border-color:#f39c9c;background-color:#f39c9c;color:#fff}.ant-btn-error:not(.ant-btn-link,.is-disabled):active{border-color:#e74242;background-color:#e74242}.ant-btn-background-ghost{border-width:1px;background-color:transparent!important}.ant-btn-background-ghost[disabled],.ant-btn-background-ghost[disabled]:hover{border-color:#fff6!important;background-color:transparent!important;color:#fff6!important}.ant-btn-dashed.ant-btn-background-ghost,.ant-btn-default.ant-btn-background-ghost{border-color:#fff;color:#fff}.ant-btn-dashed.ant-btn-background-ghost:hover,.ant-btn-default.ant-btn-background-ghost:hover,.ant-btn-dashed.ant-btn-background-ghost:focus,.ant-btn-default.ant-btn-background-ghost:focus{border-color:#fff;color:#fff}.ant-btn-dashed.ant-btn-background-ghost:active,.ant-btn-default.ant-btn-background-ghost:active{border-color:#e6e6e6;color:#e6e6e6}.ant-btn-dashed.ant-btn-background-ghost[disabled],.ant-btn-default.ant-btn-background-ghost[disabled],.ant-btn-dashed.ant-btn-background-ghost[disabled]:hover,.ant-btn-default.ant-btn-background-ghost[disabled]:hover{border-color:#fff6!important;color:#fff6!important}.ant-btn-background-ghost.ant-btn-success:not(.ant-btn-link){border-width:1px;border-color:#55d187;background-color:transparent;color:#55d187}.ant-btn-background-ghost.ant-btn-success:not(.ant-btn-link):hover,.ant-btn-background-ghost.ant-btn-success:not(.ant-btn-link):focus{border-color:#7ddca3;color:#7ddca3!important}.ant-btn-background-ghost.ant-btn-success:not(.ant-btn-link):active{border-color:#34bf6c;color:#34bf6c}.ant-btn-background-ghost.ant-btn-warning:not(.ant-btn-link){border-width:1px;border-color:#efbd47;background-color:transparent;color:#efbd47}.ant-btn-background-ghost.ant-btn-warning:not(.ant-btn-link):hover,.ant-btn-background-ghost.ant-btn-warning:not(.ant-btn-link):focus{border-color:#f3ce76;color:#f3ce76!important}.ant-btn-background-ghost.ant-btn-warning:not(.ant-btn-link):active{border-color:#ebac18;color:#ebac18}.ant-btn-background-ghost.ant-btn-error:not(.ant-btn-link){border-width:1px;border-color:#ed6f6f;background-color:transparent;color:#ed6f6f}.ant-btn-background-ghost.ant-btn-error:not(.ant-btn-link):hover,.ant-btn-background-ghost.ant-btn-error:not(.ant-btn-link):focus{border-color:#f39c9c;color:#f39c9c!important}.ant-btn-background-ghost.ant-btn-error:not(.ant-btn-link):active{border-color:#e74242;color:#e74242}.ant-btn-ghost.ant-btn-link:not([disabled=disabled]){color:#fff}.ant-btn-ghost.ant-btn-link:not([disabled=disabled]):hover,.ant-btn-ghost.ant-btn-link:not([disabled=disabled]):focus{border-color:transparent;color:#fff}.ant-image-preview-root img{display:unset}.ant-back-top{right:20px;bottom:20px}.collapse-container__body>.ant-descriptions{margin-left:6px}.ant-image-preview-operations{background-color:#0000004d}.ant-popover-content{box-shadow:0 2px 12px #0000001a}.modal-icon-warning{color:#efbd47!important}.modal-icon-success{color:#55d187!important}.modal-icon-error{color:#ed6f6f!important}.modal-icon-info{color:#0960bd!important}.ant-checkbox-checked .ant-checkbox-inner:after,.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border-top:0!important;border-left:0!important}.ant-form-item-control-input-content>div>div{max-width:100%}.bg-white{background-color:#fff!important}html[data-theme=light] .text-secondary{color:#00000073}html[data-theme=light] .ant-alert-success{border:1px solid #b7eb8f;background-color:#f6ffed}html[data-theme=light] .ant-alert-error{border:1px solid #ffccc7;background-color:#fff2f0}html[data-theme=light] .ant-alert-warning{border:1px solid #ffe58f;background-color:#fffbe6}html[data-theme=light] :not(:root):fullscreen::backdrop{background-color:#f0f2f5!important}[data-theme=dark] .text-secondary{color:#8b949e}[data-theme=dark] .ant-card-grid-hoverable:hover{box-shadow:0 3px 6px -4px #0000007a,0 6px 16px #00000052,0 9px 28px 8px #0003}[data-theme=dark] .ant-card-grid{box-shadow:1px 0 #434343,0 1px #434343,1px 1px #434343,1px 0 #434343 inset,0 1px #434343 inset}[data-theme=dark] .ant-calendar-selected-day .ant-calendar-date{color:#000c}[data-theme=dark] .ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{color:#000000e6}[data-theme=dark] ::-webkit-scrollbar-track{background-color:#0000000d}[data-theme=dark] ::-webkit-scrollbar-thumb{background-color:#9093994d;box-shadow:inset 0 0 6px #0003}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background-color:#b6b7b9}[data-theme=dark] #nprogress .bar{background-color:#0960bd}[data-theme=dark] .modal-icon-warning{color:#efbd47!important}[data-theme=dark] .modal-icon-success{color:#55d187!important}[data-theme=dark] .modal-icon-error{color:#ed6f6f!important}[data-theme=dark] .modal-icon-info{color:#0960bd!important}[data-theme=dark] .bg-white{background-color:#151515!important}[data-theme=dark] html[data-theme=light] .text-secondary{color:#00000073}[data-theme=dark] html[data-theme=light] :not(:root):fullscreen::backdrop{background-color:#000!important}[data-theme=dark] [data-theme=dark] .text-secondary{color:#8b949e}[data-theme=dark] html{-webkit-tap-highlight-color:rgba(0,0,0,0)}[data-theme=dark] body{background-color:#000;color:#c9d1d9}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6{color:#ffffffa6}[data-theme=dark] a{background-color:transparent;color:#0960bd}[data-theme=dark] a:hover{color:#2a7dc9}[data-theme=dark] a:active{color:#004496}[data-theme=dark] a[disabled]{color:#ffffff4d}[data-theme=dark] caption{color:#8b949e}[data-theme=dark] mark{background-color:#2c2712}[data-theme=dark] ::selection{background:#0960bd;color:#fff}[data-theme=dark] html[data-theme=dark] .vben-login{background-color:#293146}[data-theme=dark] html[data-theme=dark] .vben-login .ant-input,[data-theme=dark] html[data-theme=dark] .vben-login .ant-input-password{background-color:#232a3b}[data-theme=dark] html[data-theme=dark] .vben-login .ant-btn:not(.ant-btn-link):not(.ant-btn-primary){border:1px solid #4a5569}[data-theme=dark] html[data-theme=dark] .vben-login-form{background:0 0!important}[data-theme=dark] html[data-theme=dark] .vben-login .app-iconify{color:#fff}[data-theme=dark] html[data-theme=dark] .fix-auto-fill input,[data-theme=dark] html[data-theme=dark] input.fix-auto-fill{-webkit-text-fill-color:#c9d1d9!important}@media (max-width: 1200px){[data-theme=dark]{background-color:#293146}}[data-theme=dark] .vben-login .vben-login-form{background-color:#fff}[data-theme=dark] .vben-login .vben-app-logo__title,[data-theme=dark] .vben-login .container .vben-app-logo__title{color:#fff}[data-theme=dark] .vben-login-sign-in-way .anticon{color:#888}[data-theme=dark] .vben-login-sign-in-way .anticon:hover{color:#0960bd}[data-theme=dark] .vben-login .ant-divider-inner-text{color:#8b949e}[data-theme=dark] .vben-app-logo.light{border-bottom:1px solid #303030}[data-theme=dark] .vben-app-logo.light .vben-app-logo__title{color:#0960bd}[data-theme=dark] .vben-app-logo.dark .vben-app-logo__title{color:#fff}[data-theme=dark] html[data-theme=dark] .vben-dark-switch{border:1px solid #c4bcbc}[data-theme=dark] .vben-dark-switch{background-color:#151515}[data-theme=dark] .vben-dark-switch-inner{background-color:#fff}[data-theme=dark] .scroll-wrap,[data-theme=dark] .virtual-scroll-demo-wrap{background-color:#151515}[data-theme=dark] .virtual-scroll-demo__item{border-bottom:1px solid #303030}[data-theme=dark] .lazy-base-demo-wrap,[data-theme=dark] .demo-wrap,[data-theme=dark] .form-wrap{background-color:#151515}[data-theme=dark] .full-loading{background-color:#f0f2f566}[data-theme=dark] html[data-theme=dark] .full-loading:not(.light){background-color:#00000073}[data-theme=dark] .full-loading.dark{background-color:#00000073}[data-theme=dark] .step-form-content{background-color:#151515}[data-theme=dark] .desc-wrap{background-color:#151515!important}[data-theme=dark] .result-success{background-color:#151515}[data-theme=dark] .result-success__content{background-color:#ffffff0a}[data-theme=dark] .result-error{background-color:#151515}[data-theme=dark] .result-error__content{background-color:#ffffff0a}[data-theme=dark] .result-error__content-icon{color:#ff4d4f}[data-theme=dark] .account-center-col:not(:last-child):not(:last-child){border-right:1px dashed rgba(206,206,206,.5)}[data-theme=dark] .account-center-top,[data-theme=dark] .account-center-bottom,[data-theme=dark] .account-setting{background-color:#151515}[data-theme=dark] .account-setting .ant-tabs-tab-active{background-color:#111b26}[data-theme=dark] .list-card__card-title{color:#c9d1d9}[data-theme=dark] .list-card__card-detail{color:#8b949e}[data-theme=dark] .demo,[data-theme=dark] .list-basic__top{background-color:#151515}[data-theme=dark] .list-basic__top-col:not(:last-child){border-right:1px dashed #303030}[data-theme=dark] .list-basic__top-col div,[data-theme=dark] .list-basic__top-col p{color:#c9d1d9}[data-theme=dark] .list-basic__content{background-color:#151515}[data-theme=dark] .list-basic__content .extra{color:#0960bd}[data-theme=dark] .list-search__container{background-color:#151515}[data-theme=dark] .list-search__content,[data-theme=dark] .list-search__action-item{color:#8b949e}[data-theme=dark] .list-search__action-item:first-child,[data-theme=dark] .list-search__action-item:nth-child(2){border-right:1px solid #303030}[data-theme=dark] .list-search__time{color:#00000073}[data-theme=dark] span.iconify{background-color:#555}[data-theme=dark] .vben-default-layout{background-color:#f4f7f9}[data-theme=dark] .vben-basic-table-header-cell__help{color:#000000a6!important}[data-theme=dark] .step1 h3,[data-theme=dark] .step1 h4,[data-theme=dark] .step1 p{color:#c9d1d9}[data-theme=dark] .vben-app-search-modal{background-color:#00000040}[data-theme=dark] .vben-app-search-modal-content{background-color:#151515}[data-theme=dark] .vben-app-search-modal-input{color:#1c1e21}[data-theme=dark] .vben-app-search-modal-input span[role=img]{color:#999}[data-theme=dark] .vben-app-search-modal-cancel{color:#666}[data-theme=dark] .vben-app-search-modal-not-data{color:#969faf}[data-theme=dark] .vben-app-search-modal-list__item{background-color:#151515;box-shadow:0 1px 3px #d4d9e1;color:#c9d1d9}[data-theme=dark] .vben-app-search-modal-list__item--active{background-color:#0960bd;color:#fff}[data-theme=dark] .account-center-application__card-num{color:#8b949e}[data-theme=dark] .account-center-application__card-download{color:#0960bd}[data-theme=dark] [data-theme=dark] .vben-form-design-sider{background-color:#1f1f1f}[data-theme=dark] [data-theme=light] .vben-form-design-sider{background-color:#fff}[data-theme=dark] .vben-st-login{background:#151515}[data-theme=dark] .vben-iframe-page__main{background-color:#151515}[data-theme=dark] .vben-lock-page__hour,[data-theme=dark] .vben-lock-page__minute{background-color:#141313;color:#bababa}[data-theme=dark] .vben-lock-page-entry{background-color:#00000080}[data-theme=dark] .vben-lock-page-entry__header-name{color:#bababa}[data-theme=dark] .vben-lock-page-entry__err-msg{color:#ed6f6f}[data-theme=dark] ul li{border:1px solid #ccc}[data-theme=dark] ul li:hover{border:1px solid #0960bd;box-shadow:0 2px 6px #0960bd;color:#0960bd}[data-theme=dark] .hidden-item{background-color:#f0bfc3}[data-theme=dark] .draggable-box :deep(.list-main) .moving:before{background-color:#0960bd}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box:hover{background-color:#0960bd33}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box:before{background-color:#0960bd}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box.active{background-color:#0960bd33}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box .show-key-box{color:#0960bd}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box .copy,[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box .delete{color:#fff}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box .copy{background-color:#0960bd}[data-theme=dark] .draggable-box :deep(.list-main) .drag-move-box .delete{background-color:#0960bd}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box{background-color:#9867f71f}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box .grid-row{background-color:#9867f71f}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box .grid-row .grid-col .draggable-box{border:1px #ccc}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box .grid-row .grid-col .draggable-box .list-main{border:1px #ccc}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box:before{background:0 0}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box.active{background-color:#9867f73d}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box.active:before{background-color:#9867f7}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box>.copy-delete-box>.copy,[data-theme=dark] .draggable-box :deep(.list-main) .grid-box>.copy-delete-box>.delete{color:#fff}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box>.copy-delete-box>.copy{background-color:#9867f7}[data-theme=dark] .draggable-box :deep(.list-main) .grid-box>.copy-delete-box>.delete{background-color:#9867f7}[data-theme=dark] .form-panel .empty-text{color:#aaa}[data-theme=dark] .operating-area{border-bottom:2px solid #ccc}[data-theme=dark] .operating-area a{color:#666}[data-theme=dark] .operating-area a.disabled,[data-theme=dark] .operating-area a.disabled:hover{color:#ccc}[data-theme=dark] .operating-area a:hover{color:#0960bd}[data-theme=dark] .vben-layout-header{background-color:#fff;color:#fff}[data-theme=dark] .vben-layout-header-left .vben-layout-header-trigger.light:hover{background-color:#f6f6f6}[data-theme=dark] .vben-layout-header-left .vben-layout-header-trigger.light svg{fill:#000}[data-theme=dark] .vben-layout-header--light{border-bottom:1px solid #eee;border-left:1px solid #eee;background-color:#fff!important}[data-theme=dark] .vben-layout-header--light .vben-layout-header-logo{color:#c9d1d9}[data-theme=dark] .vben-layout-header--light .vben-layout-header-logo:hover{background-color:#f6f6f6}[data-theme=dark] .vben-layout-header--light .vben-layout-header-action__item{color:#c9d1d9}[data-theme=dark] .vben-layout-header--light .vben-layout-header-action__item:hover{background-color:#f6f6f6}[data-theme=dark] .vben-layout-header--light .vben-layout-header-action span[role=img],[data-theme=dark] .vben-layout-header--light .vben-layout-header-action-icon{color:#c9d1d9}[data-theme=dark] .vben-layout-header--dark{border-left:1px solid #303030}[data-theme=dark] .vben-layout-header--dark .vben-layout-header-action__item .ant-badge span{color:#fff}[data-theme=dark] .vben-setting-drawer-feature{background-color:#0960bd;color:#fff}[data-theme=dark] .vben-layout-footer,[data-theme=dark] .vben-layout-footer__links a{color:#d9d9d9}[data-theme=dark] .vben-layout-footer__links a:hover,[data-theme=dark] .vben-layout-footer__github:hover{color:#000000d9}[data-theme=dark] .vben-page-footer{border-top:1px solid #303030;background-color:#151515}[data-theme=dark] .vben-collapse-container{background-color:#151515}[data-theme=dark] .vben-collapse-container__header{border-bottom:1px solid #303030}[data-theme=dark] .vben-collapse-container__footer{border-top:1px solid #303030}[data-theme=dark] .vben-page-wrapper-content-bg{background-color:#151515}[data-theme=dark] .vben-basic-help{color:#909399}[data-theme=dark] .vben-basic-help:hover{color:#0960bd}[data-theme=dark] .vben-basic-title{color:#c9d1d9!important}[data-theme=dark] .vben-basic-title-show-span:before{background-color:#0960bd}[data-theme=dark] .vben-cropper-avatar-image-wrapper{border:1px solid #303030;background:#151515}[data-theme=dark] .vben-cropper-avatar-image-mask{background:rgba(0,0,0,.4)}[data-theme=dark] .vben-basic-table-row__striped td{background-color:#1e1e1e}[data-theme=dark] .vben-basic-table-form-container .ant-form,[data-theme=dark] .vben-basic-table .ant-table-wrapper,[data-theme=dark] .vben-tree{background-color:#151515}[data-theme=dark] .vben-tree-header{border-bottom:1px solid #303030}[data-theme=dark] .darg-verify{border:1px solid #ddd;background-color:#eee}[data-theme=dark] .darg-verify-bar{background-color:#55d187}[data-theme=dark] .darg-verify-content.success{-webkit-text-fill-color:#fff}[data-theme=dark] .darg-verify-content>*{-webkit-text-fill-color:#333}[data-theme=dark] .darg-verify-action{background-color:#fff}[data-theme=dark] .ir-dv-img__tip{color:#fff}[data-theme=dark] .ir-dv-img__tip.success{background-color:#55d18799}[data-theme=dark] .ir-dv-img__tip.error{background-color:#ed6f6f99}[data-theme=dark] .ir-dv-img__tip.normal{background-color:#0000004d}[data-theme=dark] .vben-basic-drawer .ant-drawer-close:hover{color:#ed6f6f}[data-theme=dark] .vben-basic-drawer .ant-drawer-body{background-color:#151515}[data-theme=dark] .vben-basic-drawer__detail .ant-drawer-header{border-top:1px solid #303030}[data-theme=dark] .vben-strength-meter-bar{background-color:#ffffff4d}[data-theme=dark] .vben-strength-meter-bar:after,[data-theme=dark] .vben-strength-meter-bar:before{border-color:#fff;background-color:transparent}[data-theme=dark] .vben-strength-meter-bar--fill{background-color:transparent}[data-theme=dark] .vben-strength-meter-bar--fill[data-score="0"]{background-color:#e74242}[data-theme=dark] .vben-strength-meter-bar--fill[data-score="1"]{background-color:#ed6f6f}[data-theme=dark] .vben-strength-meter-bar--fill[data-score="2"]{background-color:#efbd47}[data-theme=dark] .vben-strength-meter-bar--fill[data-score="3"]{background-color:#55d18780}[data-theme=dark] .vben-strength-meter-bar--fill[data-score="4"]{background-color:#55d187}[data-theme=dark] .vben-image-preview .ant-image-preview-operations{background-color:#0006}[data-theme=dark] .vben-app-search-footer{border-top:1px solid #303030;background-color:#151515;color:#666}[data-theme=dark] html[data-theme=dark] .vben-multiple-tabs .ant-tabs-tab{border-bottom:1px solid #303030}[data-theme=dark] html[data-theme=light] .vben-multiple-tabs .ant-tabs-tab:not(.ant-tabs-tab-active){border:1px solid #d9d9d9!important}[data-theme=dark] .vben-multiple-tabs{border-bottom:1px solid #303030;background-color:#151515}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav{background-color:#151515}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab{background-color:#151515;color:#c9d1d9}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab svg{fill:#c9d1d9}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab:not(.ant-tabs-tab-active):hover{color:#0960bd}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab-active{background:#0960bd}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab-active span{color:#fff!important}[data-theme=dark] .vben-multiple-tabs .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab-active svg{fill:#fff}[data-theme=dark] .vben-multiple-tabs-content__extra-fold,[data-theme=dark] .vben-multiple-tabs-content__extra-quick,[data-theme=dark] .vben-multiple-tabs-content__extra-redo{border-left:1px solid #303030;color:#8b949e}[data-theme=dark] .vben-multiple-tabs-content__extra-fold:hover,[data-theme=dark] .vben-multiple-tabs-content__extra-quick:hover,[data-theme=dark] .vben-multiple-tabs-content__extra-redo:hover{color:#c9d1d9}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-logo{border-bottom:1px solid #eee}[data-theme=dark] .vben-layout-mix-sider.light.open>.scrollbar{border-right:1px solid #eee}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-module__item{color:#000000a6}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-module__item--active{color:#0960bd}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-menu-list__content{box-shadow:0 0 4px #0000001a}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-menu-list__title .pushpin{color:#00000059}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-menu-list__title .pushpin:hover{color:#000000d9}[data-theme=dark] .vben-layout-mix-sider.dark .vben-layout-mix-sider-menu-list__title{color:#fff}[data-theme=dark] .vben-layout-mix-sider-module__item{color:#ffffffa6}[data-theme=dark] .vben-layout-mix-sider-module__item:hover,[data-theme=dark] .vben-layout-mix-sider-module__item--active{color:#fff}[data-theme=dark] .vben-layout-mix-sider-module__item--active:before{background-color:#0960bd}[data-theme=dark] .vben-layout-mix-sider-trigger{background-color:#ffffff1a;color:#ffffffa6}[data-theme=dark] .vben-layout-mix-sider.light .vben-layout-mix-sider-trigger{border-top:1px solid #eee;background-color:#fff;color:#000000a6}[data-theme=dark] .vben-layout-mix-sider-menu-list{background-color:#fff}[data-theme=dark] .vben-layout-mix-sider-menu-list__title{border-bottom:1px solid #eee;color:#0960bd}[data-theme=dark] .vben-layout-mix-sider-menu-list__title .pushpin{color:#ffffffa6}[data-theme=dark] .vben-layout-mix-sider-menu-list__title .pushpin:hover{color:#fff}[data-theme=dark] .vben-layout-mix-sider-menu-list__content .ant-menu-inline,[data-theme=dark] .vben-layout-mix-sider-menu-list__content .ant-menu-vertical,[data-theme=dark] .vben-layout-mix-sider-menu-list__content .ant-menu-vertical-left{border-right:1px solid transparent}[data-theme=dark] .vben-layout-mix-sider-drag-bar{background-color:#f8f8f9;box-shadow:0 0 4px #1c243826}[data-theme=dark] .vben-layout-sideBar.ant-layout-sider-dark .ant-layout-sider-trigger{background-color:#ffffff1a;color:#bfbfbf}[data-theme=dark] .vben-layout-sideBar.ant-layout-sider-dark .ant-layout-sider-trigger:hover{background-color:#fff3;color:#fff}[data-theme=dark] .vben-layout-sideBar:not(.ant-layout-sider-dark) .ant-layout-sider-trigger{border-top:1px solid #303030;color:#c9d1d9}[data-theme=dark] .vben-cropper-am-cropper{background:#eee}[data-theme=dark] .vben-cropper-am-preview{border:1px solid #303030}[data-theme=dark] .vben-cropper-am-group{border-top:1px solid #303030}[data-theme=dark] .vben-basic-drawer-footer{border-top:1px solid #303030;background-color:#151515}[data-theme=dark] .vben-basic-drawer-header__back:hover,[data-theme=dark] .vben-basic-modal-close span:first-child:hover{color:#0960bd}[data-theme=dark] .vben-basic-modal-close span:last-child:hover{color:#ed6f6f}[data-theme=dark] html[data-theme=dark] .lf-dnd{background:#080808}[data-theme=dark] .vben-flow-chart-toolbar{border-bottom:1px solid #303030;background-color:#1e1e1e}[data-theme=dark] .vben-flow-chart-toolbar .disabeld{color:#ffffff4d}[data-theme=dark] .vben-flow-chart-toolbar__icon:hover{color:#0960bd}[data-theme=dark] .img-preview{background:rgba(0,0,0,.5)}[data-theme=dark] .img-preview-content{color:#fff}[data-theme=dark] .img-preview__close{background-color:#00000080;color:#fff}[data-theme=dark] .img-preview__close:hover{background-color:#000c}[data-theme=dark] .img-preview__index,[data-theme=dark] .img-preview__controller{background:rgba(109,109,109,.6)}[data-theme=dark] .img-preview__arrow{background-color:#00000080}[data-theme=dark] .img-preview__arrow:hover{background-color:#000c}[data-theme=dark] .vben-darg-bar:hover{background-color:#0960bd;box-shadow:0 0 4px #1c243826}[data-theme=dark] .vben-header-user-dropdown--light:hover{background-color:#f6f6f6}[data-theme=dark] .vben-header-user-dropdown--light .vben-header-user-dropdown__name{color:#c9d1d9}[data-theme=dark] .vben-header-user-dropdown--light .vben-header-user-dropdown__desc{color:#7c8087}[data-theme=dark] .vben-layout-breadcrumb--light .ant-breadcrumb-link{color:#999}[data-theme=dark] .vben-layout-breadcrumb--light .ant-breadcrumb-link a{color:#000000a6}[data-theme=dark] .vben-layout-breadcrumb--light .ant-breadcrumb-link a:hover{color:#0960bd}[data-theme=dark] .vben-layout-breadcrumb--light .ant-breadcrumb-separator{color:#999}[data-theme=dark] .vben-layout-breadcrumb--dark .ant-breadcrumb-link{color:#fff9}[data-theme=dark] .vben-layout-breadcrumb--dark .ant-breadcrumb-link a{color:#fffc}[data-theme=dark] .vben-layout-breadcrumb--dark .ant-breadcrumb-link a:hover{color:#fff}[data-theme=dark] .vben-layout-breadcrumb--dark .ant-breadcrumb-separator,[data-theme=dark] .vben-layout-breadcrumb--dark .anticon{color:#fffc}[data-theme=dark] .file-table thead{background-color:#ffffff0a}[data-theme=dark] .file-table table,[data-theme=dark] .file-table td,[data-theme=dark] .file-table th{border:1px solid #303030}[data-theme=dark] .context-menu{border:1px solid rgba(0,0,0,.08);background-color:#151515;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001a,0 1px 5px #0000000f}[data-theme=dark] .vben-simple-menu-tag{color:#fff}[data-theme=dark] .vben-simple-menu-tag--primary{background-color:#0960bd}[data-theme=dark] .vben-simple-menu-tag--error{background-color:#ed6f6f}[data-theme=dark] .vben-simple-menu-tag--success{background-color:#55d187}[data-theme=dark] .vben-simple-menu-tag--warn{background-color:#efbd47}[data-theme=dark] .vben-editable-cell__icon:hover svg{color:#0960bd}[data-theme=dark] .vben-setting-theme-picker__item{border:1px solid #ddd}[data-theme=dark] .vben-setting-theme-picker__item--active{border:1px solid #0b79ee}[data-theme=dark] .vben-setting-theme-picker__item--active svg{fill:#fff!important}[data-theme=dark] .light-border:after{background-color:#0960bd}[data-theme=dark] .vben-menu-menu-popover .vben-menu-item,[data-theme=dark] .vben-menu-menu-popover .vben-menu-submenu-title,[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-item,[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-submenu-title{color:#ffffffb3}[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-item:hover,[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-submenu-title:hover{color:#fff}[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-item-selected,[data-theme=dark] .vben-menu-menu-popover .vben-menu-dark .vben-menu-submenu-title-selected{background-color:#0960bd!important;color:#fff}[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-item,[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-submenu-title{color:#c9d1d9}[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-item:hover,[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-submenu-title:hover{color:#0960bd}[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-item-selected,[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-submenu-title-selected{background-color:#0960bd1a;color:#0960bd}[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-item-selected:after,[data-theme=dark] .vben-menu-menu-popover .vben-menu-light .vben-menu-submenu-title-selected:after{background-color:#0960bd}[data-theme=dark] .vben-menu{color:#c9d1d9}[data-theme=dark] .vben-menu-light{background-color:#fff}[data-theme=dark] .vben-menu-light .vben-menu-submenu-active{color:#0960bd!important}[data-theme=dark] .vben-menu-light .vben-menu-submenu-active-border:after{background-color:#0960bd}[data-theme=dark] .vben-menu-dark .vben-menu-submenu-active{color:#fff!important}[data-theme=dark] .vben-menu-vertical .vben-menu-item:hover,[data-theme=dark] .vben-menu-vertical .vben-menu-submenu-title:hover{color:#0960bd}[data-theme=dark] .vben-menu-light.vben-menu-vertical .vben-menu-item-active:not(.vben-menu-submenu){background-color:#0960bd1a;color:#0960bd}[data-theme=dark] .vben-menu-light.vben-menu-vertical .vben-menu-item-active:not(.vben-menu-submenu):after{background-color:#0960bd}[data-theme=dark] .vben-menu-light.vben-menu-vertical .vben-menu-item-active.vben-menu-submenu{color:#0960bd}[data-theme=dark] .vben-menu-light.vben-menu-vertical.vben-menu-collapse .vben-menu-submenu-active,[data-theme=dark] .vben-menu-light.vben-menu-vertical.vben-menu-collapse>li.vben-menu-item-active{background-color:#0960bd0d}[data-theme=dark] .vben-menu-light.vben-menu-vertical.vben-menu-collapse .vben-menu-submenu-active:before,[data-theme=dark] .vben-menu-light.vben-menu-vertical.vben-menu-collapse>li.vben-menu-item-active:before{background-color:#0960bd}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-item,[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-submenu-title{color:#ffffffb3}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-item-active:not(.vben-menu-submenu),[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-submenu-title-active:not(.vben-menu-submenu){background-color:#0960bd!important;color:#fff!important}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-item:hover,[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-submenu-title:hover{color:#fff}[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse .vben-menu-submenu-active,[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse>li.vben-menu-item-active{color:#fff!important}[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse .vben-menu-submenu-active:before,[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse>li.vben-menu-item-active:before{background-color:#0960bd}[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse .vben-menu-submenu-active .vben-menu-submenu-collapse,[data-theme=dark] .vben-menu-dark.vben-menu-vertical.vben-menu-collapse>li.vben-menu-item-active .vben-menu-submenu-collapse{background-color:transparent}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-submenu .vben-menu-item-active,[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-submenu .vben-menu-item-active:hover{color:#fff}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-child-item-active>.vben-menu-submenu-title{color:#fff}[data-theme=dark] .vben-menu-dark.vben-menu-vertical .vben-menu-opened .vben-menu-submenu-has-parent-submenu .vben-menu-submenu-title,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark{background-color:transparent}[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-item-active,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-item-open,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-item-selected,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-item:hover,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-submenu-active,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-submenu-open,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-submenu-selected,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-submenu-title:hover,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu-submenu:hover,[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#fff}[data-theme=dark] .vben-basic-menu__sidebar-hor.ant-menu-horizontal.ant-menu-dark .vben-basic-menu-item__level1{background-color:transparent}[data-theme=dark] .vben-setting-menu-type-picker__item{background-color:#f0f2f5}[data-theme=dark] .vben-setting-menu-type-picker__item--light:before,[data-theme=dark] .vben-setting-menu-type-picker__item--sidebar:before{background-color:#273352}[data-theme=dark] .vben-setting-menu-type-picker__item--light:after,[data-theme=dark] .vben-setting-menu-type-picker__item--sidebar:after{background-color:#fff}[data-theme=dark] .vben-setting-menu-type-picker__item--mix:before{background-color:#fff}[data-theme=dark] .vben-setting-menu-type-picker__item--mix:after{background-color:#273352}[data-theme=dark] .vben-setting-menu-type-picker__item--top-menu:after{background-color:#273352}[data-theme=dark] .vben-setting-menu-type-picker__item--dark{background-color:#273352}[data-theme=dark] .vben-setting-menu-type-picker__item--mix-sidebar:before{background-color:#273352}[data-theme=dark] .vben-setting-menu-type-picker__item--mix-sidebar:after{background-color:#fff}[data-theme=dark] .vben-setting-menu-type-picker__item--mix-sidebar .mix-sidebar{background-color:#fff}[data-theme=dark] .vben-setting-menu-type-picker__item--active,[data-theme=dark] .vben-setting-menu-type-picker__item:hover{border:2px solid #0960bd}[data-theme=dark] .vben-basic-column-setting__check-item .ant-checkbox-wrapper:hover{color:#0960bd}[data-theme=dark] .vben-basic-column-setting__fixed-left,[data-theme=dark] .vben-basic-column-setting__fixed-right{color:#00000073}[data-theme=dark] .vben-basic-column-setting__fixed-left.active,[data-theme=dark] .vben-basic-column-setting__fixed-left:hover,[data-theme=dark] .vben-basic-column-setting__fixed-right.active,[data-theme=dark] .vben-basic-column-setting__fixed-right:hover{color:#0960bd}[data-theme=dark] .vben-basic-column-setting__fixed-left.disabled,[data-theme=dark] .vben-basic-column-setting__fixed-right.disabled{color:#ffffff4d}input:-webkit-autofill{box-shadow:0 0 0 1000px #fff inset!important}:-webkit-autofill{transition:background-color 5000s ease-in-out 0s!important}html{overflow:hidden;text-size-adjust:100%}html,body{width:100%;height:100%;overflow:visible;overflow-x:hidden;position:relative}html.color-weak,body.color-weak{filter:invert(80%)}html.gray-mode,body.gray-mode{filter:grayscale(100%);filter:progid:dximagetransform.microsoft.basicimage(grayscale=1)}a:focus,a:active,button,div,svg,span{outline:none}ul{margin:0;padding:0;list-style:none}.ant-dropdown-menu{border:1px solid #183171!important;background-color:#13265a!important}.ant-dropdown-menu-title-content{color:#fff!important}.ant-dropdown-menu-item:hover{background-color:#92d6ed4d!important}.ant-dropdown-menu-item-divider{background-color:#183171!important}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent!important}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:initial}.vxe-grid_scrollbar ::-webkit-scrollbar{width:8px;height:8px}.vxe-grid_scrollbar ::-webkit-scrollbar-track{background-color:#fff}.vxe-grid_scrollbar ::-webkit-scrollbar-thumb{border:1px solid #f1f1f1;border-radius:5px;background-color:#0000001a;box-shadow:inset 0 0 6px #0000004d}.vxe-grid_scrollbar ::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8}.vxe-grid_scrollbar ::-webkit-scrollbar-thumb:active{background-color:#a8a8a8}.vxe-grid_scrollbar ::-webkit-scrollbar-corner{background-color:#fff}.vxe-toolbar .vxe-custom--option-wrapper .vxe-custom--footer{display:flex}.vxe-toolbar .vxe-tools--wrapper,.vxe-toolbar .vxe-tools--operate button:first-child{margin:0 0 0 10px}.vxe-toolbar .vxe-tools--wrapper,.vxe-toolbar .vxe-tools--operate .vxe-button,.vxe-toolbar .vxe-tools--operate .vxe-custom--wrapper{margin-left:1px;border-radius:0!important}.vxe-toolbar .vxe-tools--wrapper,.vxe-toolbar .vxe-tools--operate .vxe-custom--wrapper .vxe-button{margin-left:1px}.vxe-table.cell--highlight .vxe-cell>.ant-time-picker .ant-time-picker-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-time-picker .ant-time-picker-input,.vxe-table.cell--highlight .vxe-cell>.ant-calendar-picker .ant-calendar-picker-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-calendar-picker .ant-calendar-picker-input,.vxe-table.cell--highlight .vxe-cell>.ant-cascader-picker .ant-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-cascader-picker .ant-input,.vxe-table.cell--highlight .vxe-cell>.ant-input-number .ant-input-number-handler-wrap,.vxe-table.cell--highlight .vxe-cell>.ant-input-number .ant-input-number-handler-down,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input-number .ant-input-number-handler-wrap,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input-number .ant-input-number-handler-down,.vxe-table.cell--highlight .vxe-cell>.ant-select .ant-select-selection,.vxe-table.cell--highlight .vxe-tree-cell>.ant-select .ant-select-selection,.vxe-table.cell--highlight .vxe-cell>.ant-select .ant-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-select .ant-input,.vxe-table.cell--highlight .vxe-cell>.ant-input,.vxe-table.cell--highlight .vxe-cell>.ant-input-number,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input-number{border:0;box-shadow:none}.vxe-cell>.ant-input,.vxe-tree-cell>.ant-input,.vxe-form .vxe-form--item-content>.ant-input,.vxe-cell>.ant-input-number,.vxe-tree-cell>.ant-input-number,.vxe-form .vxe-form--item-content>.ant-input-number,.vxe-cell>.ant-select,.vxe-tree-cell>.ant-select,.vxe-form .vxe-form--item-content>.ant-select,.vxe-cell>.ant-cascader-picker,.vxe-tree-cell>.ant-cascader-picker,.vxe-form .vxe-form--item-content>.ant-cascader-picker,.vxe-cell>.ant-calendar-picker,.vxe-tree-cell>.ant-calendar-picker,.vxe-form .vxe-form--item-content>.ant-calendar-picker,.vxe-cell>.ant-time-picker,.vxe-tree-cell>.ant-time-picker,.vxe-form .vxe-form--item-content>.ant-time-picker{width:100%}.vxe-table--filter-antd-wrapper>.ant-input,.vxe-table--filter-antd-wrapper>.ant-input-number,.vxe-table--filter-antd-wrapper>.ant-select,.vxe-table--filter-antd-wrapper>.ant-rate{width:180px}.vxe-cell>.ant-rate,.vxe-tree-cell>.ant-rate{vertical-align:bottom}.vxe-cell>.ant-rate .anticon-star,.vxe-tree-cell>.ant-rate .anticon-star{display:block}.col--valid-error>.vxe-cell>.ant-input,.col--valid-error>.vxe-cell>.ant-select .ant-input,.col--valid-error>.vxe-cell>.ant-select .ant-select-selection,.col--valid-error>.vxe-cell>.ant-input-number,.col--valid-error>.vxe-cell>.ant-cascader-picker .ant-cascader-input,.col--valid-error>.vxe-cell>.ant-calendar-picker .ant-calendar-picker-input,.col--valid-error>.vxe-tree-cell>.ant-input,.col--valid-error>.vxe-tree-cell>.ant-select .ant-input,.col--valid-error>.vxe-tree-cell>.ant-select .ant-select-selection,.col--valid-error>.vxe-tree-cell>.ant-input-number,.col--valid-error>.vxe-tree-cell>.ant-cascader-picker .ant-cascader-input,.col--valid-error>.vxe-tree-cell>.ant-calendar-picker .ant-calendar-picker-input{box-shadow:none}.vxe-table.cell--highlight .vxe-cell>.ant-input,.vxe-table.cell--highlight .vxe-cell>.ant-input-number,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input-number{padding:0}.vxe-table.cell--highlight .vxe-cell>.ant-select .ant-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-select .ant-input{padding:0}.vxe-table.cell--highlight .vxe-cell>.ant-select .ant-select-selection .ant-select-selection__rendered,.vxe-table.cell--highlight .vxe-tree-cell>.ant-select .ant-select-selection .ant-select-selection__rendered{margin:0}.vxe-table.cell--highlight .vxe-cell>.ant-input-number .ant-input-number-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-input-number .ant-input-number-input{padding:0}.vxe-table.cell--highlight .vxe-cell>.ant-cascader-picker .ant-cascader-picker-label,.vxe-table.cell--highlight .vxe-tree-cell>.ant-cascader-picker .ant-cascader-picker-label{padding:0}.vxe-table.cell--highlight .vxe-cell>.ant-calendar-picker .ant-calendar-picker-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-calendar-picker .ant-calendar-picker-input{padding:0}.vxe-table.cell--highlight .vxe-cell>.ant-time-picker .ant-time-picker-input,.vxe-table.cell--highlight .vxe-tree-cell>.ant-time-picker .ant-time-picker-input{padding:0}[data-vxe-ui-theme=light]{--vxe-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--vxe-font-size: 14px;--vxe-font-size-medium: 14px;--vxe-font-size-small: 13px;--vxe-font-size-mini: 12px;--vxe-border-radius: 4px;--vxe-icon-font-family: Verdana, Arial, Tahoma;--vxe-icon-background-color: #fff;--vxe-font-color: #606266;--vxe-primary-color: #409eff;--vxe-success-color: #67c23a;--vxe-info-color: #909399;--vxe-warning-color: #e6a23c;--vxe-danger-color: #f56c6c;--vxe-font-lighten-color: #797b80;--vxe-primary-lighten-color: #73b8ff;--vxe-success-lighten-color: #85cf60;--vxe-info-lighten-color: #abadb1;--vxe-warning-lighten-color: #ecb869;--vxe-danger-lighten-color: #f89c9c;--vxe-font-darken-color: #47494c;--vxe-primary-darken-color: #0d84ff;--vxe-success-darken-color: #529b2e;--vxe-info-darken-color: #767980;--vxe-warning-darken-color: #d48a1b;--vxe-danger-darken-color: #f56c6c;--vxe-font-disabled-color: #BFBFBF;--vxe-primary-disabled-color: #a6d2ff;--vxe-success-disabled-color: #a3db87;--vxe-info-disabled-color: #c5c7ca;--vxe-warning-disabled-color: l #d48a1b;--vxe-danger-disabled-color: #f5a8a8;--vxe-input-border-color: #dcdfe6;--vxe-input-disabled-color: #dcdfe6;--vxe-input-disabled-background-color: #f3f3f3;--vxe-input-placeholder-color: #C0C4CC;--vxe-table-popup-border-color: #DADCE0;--vxe-table-header-font-color: #606266;--vxe-table-footer-font-color: #606266;--vxe-table-border-radius: 4px;--vxe-table-border-width: 1px;--vxe-table-border-color: #e8eaec;--vxe-table-resizable-line-color: #D9DDDF;--vxe-table-resizable-drag-line-color: #409eff;--vxe-table-header-background-color: #f8f8f9;--vxe-table-body-background-color: #ffffff;--vxe-table-footer-background-color: #ffffff;--vxe-table-tree-node-line-color: #909399;--vxe-table-tree-node-line-style: dotted;--vxe-table-header-font-weight: 700;--vxe-table-row-height-default: 48px;--vxe-table-row-height-medium: 44px;--vxe-table-row-height-small: 40px;--vxe-table-row-height-mini: 36px;--vxe-table-row-line-height: 22px;--vxe-table-row-hover-background-color: #f5f7fa;--vxe-table-row-striped-background-color: #fafafa;--vxe-table-row-hover-striped-background-color: #f5f7fa;--vxe-table-row-radio-checked-background-color: #fff3e0;--vxe-table-row-hover-radio-checked-background-color: #ffebbc;--vxe-table-row-checkbox-checked-background-color: #fff3e0;--vxe-table-row-hover-checkbox-checked-background-color: #ffebbc;--vxe-table-row-current-background-color: #e6f7ff;--vxe-table-row-hover-current-background-color: #d7effb;--vxe-table-column-padding-default: 13px 0;--vxe-table-column-padding-medium: 11px 0;--vxe-table-column-padding-small: 9px 0;--vxe-table-column-padding-mini: 7px 0;--vxe-table-column-hover-background-color: #d7effb;--vxe-table-column-current-background-color: #e6f7ff;--vxe-table-column-icon-border-color: #c0c4cc;--vxe-table-column-icon-border-hover-color: #515A6E;--vxe-table-cell-placeholder-color: #C0C4CC;--vxe-table-cell-padding-left: 10px;--vxe-table-cell-padding-right: 10px;--vxe-table-cell-input-height-default: 42px;--vxe-table-cell-input-height-medium: 38px;--vxe-table-cell-input-height-small: 34px;--vxe-table-cell-input-height-mini: 30px;--vxe-table-cell-dirty-width: 5px;--vxe-table-cell-dirty-update-color: #f56c6c;--vxe-table-cell-dirty-insert-color: #19A15F;--vxe-table-cell-area-border-color: #409eff;--vxe-table-cell-area-border-width: 1px;--vxe-table-cell-active-area-background-color: transparent;--vxe-table-cell-main-area-extension-border-color: #fff;--vxe-table-cell-main-area-extension-background-color: #409eff;--vxe-table-cell-extend-area-border-width: 2px;--vxe-table-cell-copy-area-border-width: 3px;--vxe-table-cell-active-area-border-width: 2px;--vxe-table-cell-copy-area-border-color: #409eff;--vxe-table-cell-extend-area-border-color: #409eff;--vxe-table-cell-active-area-border-color: #409eff;--vxe-table-cell-area-background-color: rgba(64, 158, 255, .2);--vxe-table-checkbox-range-border-width: 1px;--vxe-table-checkbox-range-border-color: #006af1;--vxe-table-checkbox-range-background-color: rgba(50, 128, 252, .2);--vxe-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px rgba(0, 0, 0, .12);--vxe-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px rgba(0, 0, 0, .12);--vxe-table-filter-panel-background-color: #fff;--vxe-table-menu-item-width: 178px;--vxe-table-menu-background-color: #fff;--vxe-loading-color: #409eff;--vxe-loading-background-color: rgba(255, 255, 255, .5);--vxe-loading-z-index: 999;--vxe-table-validate-error-color: #f56c6c;--vxe-table-validate-error-background-color: #ffffff;--vxe-grid-maximize-background-color: #fff;--vxe-toolbar-background-color: #fff;--vxe-toolbar-custom-active-background-color: #D9DADB;--vxe-toolbar-panel-background-color: #fff;--vxe-tooltip-dark-color: #fff;--vxe-tooltip-dark-background-color: #303133;--vxe-tooltip-light-background-color: #fff;--vxe-pager-background-color: #fff;--vxe-pager-perfect-background-color: #fff;--vxe-pager-perfect-button-background-color: #f4f4f5;--vxe-modal-header-background-color: #F8F8F8;--vxe-modal-body-background-color: #fff;--vxe-modal-border-color: #ebeef5;--vxe-drawer-header-background-color: #F8F8F8;--vxe-drawer-body-background-color: #fff;--vxe-drawer-border-color: #ebeef5;--vxe-checkbox-font-size-default: 15px;--vxe-checkbox-font-size-medium: 14px;--vxe-checkbox-font-size-small: 13px;--vxe-checkbox-font-size-mini: 12px;--vxe-checkbox-checked-width: .32em;--vxe-checkbox-checked-height: .64em;--vxe-checkbox-indeterminate-width: .6em;--vxe-checkbox-indeterminate-height: 2px;--vxe-checkbox-border-width: 2px;--vxe-checkbox-border-radius: 2px;--vxe-checkbox-icon-background-color: #fff;--vxe-checkbox-checked-icon-border-color: #fff;--vxe-checkbox-indeterminate-icon-background-color: #fff;--vxe-radio-font-size-default: 15px;--vxe-radio-font-size-medium: 14px;--vxe-radio-font-size-small: 13px;--vxe-radio-font-size-mini: 12px;--vxe-radio-border-width: 2px;--vxe-radio-icon-background-color: #fff;--vxe-radio-checked-icon-background-color: #fff;--vxe-radio-indeterminate-icon-background-color: #fff;--vxe-radio-button-default-background-color: #fff;--vxe-button-max-width: 500px;--vxe-button-default-background-color: #fff;--vxe-button-dropdown-panel-background-color: #fff;--vxe-button-height-default: 34px;--vxe-button-height-medium: 32px;--vxe-button-height-small: 30px;--vxe-button-height-mini: 28px;--vxe-button-round-border-radius-default: 17px;--vxe-button-round-border-radius-medium: 16px;--vxe-button-round-border-radius-small: 15px;--vxe-button-round-border-radius-mini: 14px;--vxe-input-background-color: #fff;--vxe-input-panel-background-color: #fff;--vxe-input-number-disabled-color: #e4e7ed;--vxe-input-date-festival-color: #999999;--vxe-input-date-festival-important-color: #409eff;--vxe-input-date-notice-background-color: #FF0000;--vxe-input-date-picker-hover-background-color: #f2f6fc;--vxe-input-date-picker-selected-color: #fff;--vxe-input-date-time-confirm-button-color: #fff;--vxe-input-date-picker-festival-selected-color: #fff;--vxe-input-date-picker-notice-selected-background-color: #fff;--vxe-input-date-extra-color: #67c23a;--vxe-input-date-extra-important-color: #fd2222;--vxe-input-date-title-height-default: 30px;--vxe-input-date-title-height-medium: 29px;--vxe-input-date-title-height-small: 28px;--vxe-input-date-title-height-mini: 26px;--vxe-input-date-time-week-row-height-default: 38px;--vxe-input-date-time-week-row-height-medium: 36px;--vxe-input-date-time-week-row-height-small: 34px;--vxe-input-date-time-week-row-height-mini: 32px;--vxe-input-date-month-year-row-height-default: 48px;--vxe-input-date-month-year-row-height-medium: 46px;--vxe-input-date-month-year-row-height-small: 44px;--vxe-input-date-month-year-row-height-mini: 42px;--vxe-input-date-quarter-row-height-default: 60px;--vxe-input-date-quarter-row-height-medium: 58px;--vxe-input-date-quarter-row-height-small: 56px;--vxe-input-date-quarter-row-height-mini: 54px;--vxe-input-height-default: 34px;--vxe-input-height-medium: 32px;--vxe-input-height-small: 30px;--vxe-input-height-mini: 28px;--vxe-input-count-color: #999;--vxe-input-count-background-color: #fff;--vxe-input-count-error-color: #f56c6c;--vxe-textarea-line-height: 1.5715;--vxe-textarea-background-color: #fff;--vxe-form-item-min-height-default: 36px;--vxe-form-item-min-height-medium: 34px;--vxe-form-item-min-height-small: 32px;--vxe-form-item-min-height-mini: 30px;--vxe-form-background-color: #fff;--vxe-form-validate-error-color: #f56c6c;--vxe-form-validate-error-background-color: inherit;--vxe-select-option-height-default: 30px;--vxe-select-option-height-medium: 28px;--vxe-select-option-height-small: 26px;--vxe-select-option-height-mini: 24px;--vxe-select-option-hover-background-color: #f5f7fa;--vxe-select-panel-background-color: #fff;--vxe-select-empty-color: #C0C4CC;--vxe-optgroup-title-color: #909399;--vxe-switch-font-color: #fff;--vxe-switch-icon-background-color: #fff;--vxe-switch-open-background-color: #409eff;--vxe-switch-close-background-color: rgba(0, 0, 0, .35);--vxe-switch-disabled-background-color: rgba(0, 0, 0, .15);--vxe-pulldown-panel-background-color: #fff}[data-vxe-ui-theme=dark]{color-scheme:dark;--vxe-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--vxe-font-size: 14px;--vxe-font-size-medium: 14px;--vxe-font-size-small: 13px;--vxe-font-size-mini: 12px;--vxe-border-radius: 4px;--vxe-icon-font-family: Verdana, Arial, Tahoma;--vxe-icon-background-color: #98989E;--vxe-font-color: #98989E;--vxe-primary-color: #2C7ECF;--vxe-success-color: #67c23a;--vxe-info-color: #909399;--vxe-warning-color: #e6a23c;--vxe-danger-color: #f56c6c;--vxe-font-lighten-color: #797b80;--vxe-primary-lighten-color: #73b8ff;--vxe-success-lighten-color: #85cf60;--vxe-info-lighten-color: #abadb1;--vxe-warning-lighten-color: #ecb869;--vxe-danger-lighten-color: #f89c9c;--vxe-font-darken-color: #47494c;--vxe-primary-darken-color: #0d84ff;--vxe-success-darken-color: #529b2e;--vxe-info-darken-color: #767980;--vxe-warning-darken-color: #d48a1b;--vxe-danger-darken-color: #f56c6c;--vxe-font-disabled-color: #BFBFBF;--vxe-primary-disabled-color: #a6d2ff;--vxe-success-disabled-color: #a3db87;--vxe-info-disabled-color: #c5c7ca;--vxe-warning-disabled-color: l #d48a1b;--vxe-danger-disabled-color: #f5a8a8;--vxe-input-border-color: #424242;--vxe-input-disabled-color: #8D9095;--vxe-input-disabled-background-color: #585656;--vxe-input-placeholder-color: #8D9095;--vxe-table-popup-border-color: #424242;--vxe-table-header-font-color: #98989E;--vxe-table-footer-font-color: #98989E;--vxe-table-border-radius: 4px;--vxe-table-border-width: 1px;--vxe-table-border-color: #37373A;--vxe-table-resizable-line-color: rgba(255, 255, 255, .1);--vxe-table-resizable-drag-line-color: #409eff;--vxe-table-header-background-color: #28282A;--vxe-table-body-background-color: #151518;--vxe-table-footer-background-color: #151518;--vxe-table-tree-node-line-color: #909399;--vxe-table-tree-node-line-style: dotted;--vxe-table-header-font-weight: 700;--vxe-table-row-height-default: 48px;--vxe-table-row-height-medium: 44px;--vxe-table-row-height-small: 40px;--vxe-table-row-height-mini: 36px;--vxe-table-row-line-height: 22px;--vxe-table-row-hover-background-color: #262727;--vxe-table-row-striped-background-color: #1D1D1D;--vxe-table-row-hover-striped-background-color: #262727;--vxe-table-row-radio-checked-background-color: #604820;--vxe-table-row-hover-radio-checked-background-color: #6e5326;--vxe-table-row-checkbox-checked-background-color: #604820;--vxe-table-row-hover-checkbox-checked-background-color: #6e5326;--vxe-table-row-current-background-color: #18222c;--vxe-table-row-hover-current-background-color: #262727;--vxe-table-column-padding-default: 13px 0;--vxe-table-column-padding-medium: 11px 0;--vxe-table-column-padding-small: 9px 0;--vxe-table-column-padding-mini: 7px 0;--vxe-table-column-hover-background-color: #18222c;--vxe-table-column-current-background-color: #18222c;--vxe-table-column-icon-border-color: #c0c4cc;--vxe-table-column-icon-border-hover-color: #515A6E;--vxe-table-cell-placeholder-color: #C0C4CC;--vxe-table-cell-padding-left: 10px;--vxe-table-cell-padding-right: 10px;--vxe-table-cell-input-height-default: 42px;--vxe-table-cell-input-height-medium: 38px;--vxe-table-cell-input-height-small: 34px;--vxe-table-cell-input-height-mini: 30px;--vxe-table-cell-dirty-width: 5px;--vxe-table-cell-dirty-update-color: #f56c6c;--vxe-table-cell-dirty-insert-color: #19A15F;--vxe-table-cell-area-border-color: #409eff;--vxe-table-cell-area-border-width: 1px;--vxe-table-cell-main-area-extension-border-color: #fff;--vxe-table-cell-main-area-extension-background-color: #409eff;--vxe-table-cell-extend-area-border-width: 2px;--vxe-table-cell-copy-area-border-width: 3px;--vxe-table-cell-active-area-border-width: 2px;--vxe-table-cell-active-area-background-color: transparent;--vxe-table-cell-copy-area-border-color: #409eff;--vxe-table-cell-extend-area-border-color: #409eff;--vxe-table-cell-active-area-border-color: #409eff;--vxe-table-cell-area-background-color: rgba(64, 158, 255, .2);--vxe-table-checkbox-range-border-width: 1px;--vxe-table-checkbox-range-border-color: #006af1;--vxe-table-checkbox-range-background-color: rgba(50, 128, 252, .2);--vxe-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px rgba(0, 0, 0, .5);--vxe-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px rgba(0, 0, 0, .5);--vxe-table-filter-panel-background-color: #151518;--vxe-table-menu-item-width: 178px;--vxe-table-menu-background-color: #fff;--vxe-loading-color: #409eff;--vxe-loading-background-color: rgba(0, 0, 0, .5);--vxe-loading-z-index: 999;--vxe-table-validate-error-color: #f56c6c;--vxe-table-validate-error-background-color: #ffffff;--vxe-grid-maximize-background-color: #fff;--vxe-toolbar-background-color: #151518;--vxe-toolbar-custom-active-background-color: #D9DADB;--vxe-toolbar-panel-background-color: #151518;--vxe-tooltip-dark-color: #fff;--vxe-tooltip-dark-background-color: #303133;--vxe-tooltip-light-background-color: #fff;--vxe-pager-background-color: #151518;--vxe-pager-perfect-background-color: #151518;--vxe-pager-perfect-button-background-color: #151518;--vxe-modal-header-background-color: #151518;--vxe-modal-body-background-color: #151518;--vxe-modal-border-color: #424242;--vxe-drawer-header-background-color: #151518;--vxe-drawer-body-background-color: #151518;--vxe-drawer-border-color: #424242;--vxe-checkbox-font-size-default: 15px;--vxe-checkbox-font-size-medium: 14px;--vxe-checkbox-font-size-small: 13px;--vxe-checkbox-font-size-mini: 12px;--vxe-checkbox-checked-width: .32em;--vxe-checkbox-checked-height: .64em;--vxe-checkbox-indeterminate-width: .6em;--vxe-checkbox-indeterminate-height: 2px;--vxe-checkbox-border-width: 2px;--vxe-checkbox-border-radius: 2px;--vxe-checkbox-icon-background-color: #fff;--vxe-checkbox-checked-icon-border-color: #fff;--vxe-checkbox-indeterminate-icon-background-color: #fff;--vxe-radio-font-size-default: 15px;--vxe-radio-font-size-medium: 14px;--vxe-radio-font-size-small: 13px;--vxe-radio-font-size-mini: 12px;--vxe-radio-border-width: 2px;--vxe-radio-icon-background-color: #fff;--vxe-radio-checked-icon-background-color: #fff;--vxe-radio-indeterminate-icon-background-color: #fff;--vxe-radio-button-default-background-color: #151518;--vxe-button-max-width: 500px;--vxe-button-default-background-color: #151518;--vxe-button-dropdown-panel-background-color: #151518;--vxe-button-height-default: 34px;--vxe-button-height-medium: 32px;--vxe-button-height-small: 30px;--vxe-button-height-mini: 28px;--vxe-button-round-border-radius-default: 17px;--vxe-button-round-border-radius-medium: 16px;--vxe-button-round-border-radius-small: 15px;--vxe-button-round-border-radius-mini: 14px;--vxe-input-background-color: #151518;--vxe-input-panel-background-color: #fff;--vxe-input-number-disabled-color: #e4e7ed;--vxe-input-date-festival-color: #999999;--vxe-input-date-festival-important-color: #409eff;--vxe-input-date-notice-background-color: #FF0000;--vxe-input-date-picker-hover-background-color: #f2f6fc;--vxe-input-date-picker-selected-color: #fff;--vxe-input-date-time-confirm-button-color: #fff;--vxe-input-date-picker-festival-selected-color: #fff;--vxe-input-date-picker-notice-selected-background-color: #fff;--vxe-input-date-extra-color: #67c23a;--vxe-input-date-extra-important-color: #fd2222;--vxe-input-date-title-height-default: 30px;--vxe-input-date-title-height-medium: 29px;--vxe-input-date-title-height-small: 28px;--vxe-input-date-title-height-mini: 26px;--vxe-input-date-time-week-row-height-default: 38px;--vxe-input-date-time-week-row-height-medium: 36px;--vxe-input-date-time-week-row-height-small: 34px;--vxe-input-date-time-week-row-height-mini: 32px;--vxe-input-date-month-year-row-height-default: 48px;--vxe-input-date-month-year-row-height-medium: 46px;--vxe-input-date-month-year-row-height-small: 44px;--vxe-input-date-month-year-row-height-mini: 42px;--vxe-input-date-quarter-row-height-default: 60px;--vxe-input-date-quarter-row-height-medium: 58px;--vxe-input-date-quarter-row-height-small: 56px;--vxe-input-date-quarter-row-height-mini: 54px;--vxe-input-height-default: 34px;--vxe-input-height-medium: 32px;--vxe-input-height-small: 30px;--vxe-input-height-mini: 28px;--vxe-input-count-color: #999;--vxe-input-count-background-color: #151518;--vxe-input-count-error-color: #f56c6c;--vxe-textarea-line-height: 1.5715;--vxe-textarea-background-color: #151518;--vxe-form-item-min-height-default: 36px;--vxe-form-item-min-height-medium: 34px;--vxe-form-item-min-height-small: 32px;--vxe-form-item-min-height-mini: 30px;--vxe-form-background-color: #151518;--vxe-form-validate-error-color: #f56c6c;--vxe-form-validate-error-background-color: inherit;--vxe-select-option-height-default: 30px;--vxe-select-option-height-medium: 28px;--vxe-select-option-height-small: 26px;--vxe-select-option-height-mini: 24px;--vxe-select-option-hover-background-color: #262727;--vxe-select-panel-background-color: #151518;--vxe-select-empty-color: #C0C4CC;--vxe-optgroup-title-color: #909399;--vxe-switch-font-color: #fff;--vxe-switch-icon-background-color: #fff;--vxe-switch-open-background-color: #409eff;--vxe-switch-close-background-color: #4C4D4F;--vxe-switch-disabled-background-color: rgba(0, 0, 0, .15);--vxe-pulldown-panel-background-color: #151518}.vxe-cell--filter{padding:0 .1em 0 .2em;text-align:center;vertical-align:middle;display:inline-block;line-height:0}.vxe-cell--filter.col--filter .vxe-filter--btn{color:var(--vxe-font-color)}.vxe-cell--filter .vxe-filter--btn{color:var(--vxe-table-column-icon-border-color);cursor:pointer}.vxe-cell--filter .vxe-filter--btn:hover{color:var(--vxe-font-color)}.is--filter-active .vxe-cell--filter .vxe-filter--btn{color:var(--vxe-primary-color)}.vxe-table--filter-wrapper{display:none;position:absolute;top:0;min-width:100px;border-radius:var(--vxe-border-radius);background-color:var(--vxe-table-filter-panel-background-color);border:1px solid var(--vxe-table-popup-border-color);box-shadow:0 1px 6px #0003;z-index:10}.vxe-table--filter-wrapper:not(.is--multiple){text-align:center}.vxe-table--filter-wrapper.is--active{display:block}.vxe-table--filter-wrapper .vxe-table--filter-header>li,.vxe-table--filter-wrapper .vxe-table--filter-body>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px;padding:.25em .8em;cursor:pointer}.vxe-table--filter-wrapper .vxe-table--filter-header>li.is--checked,.vxe-table--filter-wrapper .vxe-table--filter-body>li.is--checked{color:var(--vxe-primary-color)}.vxe-table--filter-wrapper .vxe-table--filter-header>li:hover,.vxe-table--filter-wrapper .vxe-table--filter-body>li:hover{background-color:var(--vxe-table-row-hover-background-color)}.vxe-table--filter-wrapper .vxe-table--filter-header{padding-top:.2em}.vxe-table--filter-wrapper .vxe-table--filter-body{max-height:200px;padding-bottom:.2em}.vxe-table--filter-wrapper>ul{list-style-type:none;padding:0;margin:0;overflow:auto;user-select:none}.vxe-table--filter-wrapper.is--multiple>ul>li{padding:.25em .8em .25em 1em}.vxe-table--filter-wrapper .vxe-table--filter-footer{border-top:1px solid var(--vxe-table-popup-border-color);padding:.6em;user-select:none}.vxe-table--filter-wrapper .vxe-table--filter-footer button{background-color:transparent;padding:0 .4em;border:0;color:var(--vxe-font-color);cursor:pointer}.vxe-table--filter-wrapper .vxe-table--filter-footer button:focus{outline:none}.vxe-table--filter-wrapper .vxe-table--filter-footer button:hover{color:var(--vxe-primary-color)}.vxe-table--filter-wrapper .vxe-table--filter-footer button.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-table--filter-option .vxe-checkbox--icon{font-size:1.34em}.vxe-table--filter-option .vxe-checkbox--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-table--filter-option.is--checked,.vxe-table--filter-option.is--indeterminate,.vxe-table--filter-option.is--checked .vxe-checkbox--icon,.vxe-table--filter-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table--filter-option:not(.is--disabled){cursor:pointer}.vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table--filter-option.is--hidden{cursor:default}.vxe-table--filter-option.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-table--filter-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-table--filter-option .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-table--context-menu-wrapper{display:none}.vxe-table--context-menu-wrapper.is--visible{display:block}.vxe-table--context-menu-wrapper,.vxe-table--context-menu-clild-wrapper{position:absolute;top:0;left:0;font-size:12px;border:1px solid var(--vxe-table-popup-border-color);box-shadow:3px 3px 4px -2px #0009;padding:0 1px;user-select:none;color:var(--vxe-font-color);font-family:var(--vxe-font-family);background-color:var(--vxe-table-menu-background-color)}.vxe-context-menu--link{display:block;padding:0 2.5em;width:var(--vxe-table-menu-item-width);line-height:26px;color:var(--vxe-font-color);cursor:pointer}.vxe-context-menu--link .vxe-context-menu--link-prefix,.vxe-context-menu--link .vxe-context-menu--link-suffix{position:absolute;top:5px;margin-right:5px;font-size:16px}.vxe-context-menu--link .vxe-context-menu--link-prefix{left:5px}.vxe-context-menu--link .vxe-context-menu--link-suffix{right:5px}.vxe-context-menu--link .vxe-context-menu--link-suffix.suffix--haschild{top:8px}.vxe-context-menu--link .vxe-context-menu--link-suffix.suffix--haschild:before{position:absolute;content:"";border:4px solid transparent;border-left-color:#727272}.vxe-context-menu--link .vxe-context-menu--link-content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-table--context-menu-clild-wrapper .vxe-context-menu--link{padding:0 2em 0 2.5em}.vxe-context-menu--option-wrapper,.vxe-table--context-menu-clild-wrapper{margin:0;padding:0;list-style-type:none;border-bottom:1px solid #E8EAED}.vxe-context-menu--option-wrapper li,.vxe-table--context-menu-clild-wrapper li{position:relative;margin:1px 0;border:1px solid transparent}.vxe-context-menu--option-wrapper li:last-child,.vxe-table--context-menu-clild-wrapper li:last-child{border:0}.vxe-context-menu--option-wrapper li.link--active,.vxe-table--context-menu-clild-wrapper li.link--active{background-color:#c5c5c5;border-color:#c5c5c5}.vxe-context-menu--option-wrapper li.link--active>.vxe-context-menu--link,.vxe-table--context-menu-clild-wrapper li.link--active>.vxe-context-menu--link{color:#2b2b2b}.vxe-context-menu--option-wrapper li.link--disabled>.vxe-context-menu--link,.vxe-table--context-menu-clild-wrapper li.link--disabled>.vxe-context-menu--link{color:var(--vxe-font-disabled-color);cursor:no-drop}.vxe-context-menu--option-wrapper li.link--disabled.link--active,.vxe-table--context-menu-clild-wrapper li.link--disabled.link--active{border-color:#c0c1c2;background-color:#eee}.vxe-context-menu--option-wrapper li.link--disabled.link--active:hover,.vxe-table--context-menu-clild-wrapper li.link--disabled.link--active:hover{background-color:inherit}.vxe-table--context-menu-clild-wrapper{display:none;top:0;left:100%}.vxe-table--context-menu-clild-wrapper.is--show{display:block}.vxe-export--panel-column>ul{list-style-type:none;overflow:auto;margin:0;padding:0;user-select:none}.vxe-export--panel-column>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.vxe-export--panel>table{width:100%;border:0;table-layout:fixed}.vxe-export--panel>table tr td{padding:0 10px}.vxe-export--panel>table tr td:nth-child(1){text-align:right;width:30%;font-weight:700;padding:8px 10px}.vxe-export--panel>table tr td:nth-child(2){width:70%}.vxe-export--panel>table tr td>.vxe-input,.vxe-export--panel>table tr td>.vxe-select{width:80%}.vxe-export--panel>table tr td>.vxe-export--panel-option-row{padding:.25em 0}.vxe-export--panel .vxe-export--panel-column{width:80%;border:1px solid var(--vxe-input-border-color);margin:3px 0;border-radius:var(--vxe-border-radius);user-select:none}.vxe-export--panel .vxe-export--panel-column>ul>li{padding:.2em 1em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--2{padding-left:3.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--2 .vxe-checkbox--icon{left:1.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--3{padding-left:4.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--3 .vxe-checkbox--icon{left:2.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--4{padding-left:5.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--4 .vxe-checkbox--icon{left:3.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--5{padding-left:6.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--5 .vxe-checkbox--icon{left:4.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--6{padding-left:7.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--6 .vxe-checkbox--icon{left:5.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--7{padding-left:8.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--7 .vxe-checkbox--icon{left:6.8em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--8{padding-left:9.5em}.vxe-export--panel .vxe-export--panel-column>ul>li.level--8 .vxe-checkbox--icon{left:7.8em}.vxe-export--panel .vxe-export--panel-column .vxe-export--panel-column-header{padding:.1em 0;background-color:var(--vxe-table-header-background-color);font-weight:700;border-bottom:1px solid var(--vxe-table-border-color)}.vxe-export--panel .vxe-export--panel-column .vxe-export--panel-column-body{padding:.2em 0;min-height:10em;max-height:17.6em}.vxe-export--panel .vxe-import-selected--file{padding-right:40px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none}.vxe-export--panel .vxe-import-selected--file>i{display:none;position:absolute;top:50%;right:15px;transform:translateY(-50%);font-size:16px;cursor:pointer}.vxe-export--panel .vxe-import-selected--file:hover{color:var(--vxe-primary-color)}.vxe-export--panel .vxe-import-selected--file:hover>i{display:block}.vxe-export--panel .vxe-import-select--file{border:1px dashed var(--vxe-input-border-color);padding:6px 34px;outline:0;border-radius:var(--vxe-border-radius);background-color:var(--vxe-input-background-color);color:inherit;user-select:none;cursor:pointer}.vxe-export--panel .vxe-import-select--file:focus{border-color:var(--vxe-primary-color);box-shadow:0 0 .25em 0 var(--vxe-primary-color)}.vxe-export--panel .vxe-import-select--file:hover{color:var(--vxe-primary-color);border-color:var(--vxe-primary-color)}.vxe-export--panel .vxe-export--panel-btns{text-align:right;padding:.25em}.vxe-export--panel-column-option .vxe-checkbox--icon{font-size:1.34em}.vxe-export--panel-column-option .vxe-checkbox--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-export--panel-column-option.is--checked,.vxe-export--panel-column-option.is--indeterminate,.vxe-export--panel-column-option.is--checked .vxe-checkbox--icon,.vxe-export--panel-column-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-export--panel-column-option:not(.is--disabled){cursor:pointer}.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-export--panel-column-option.is--hidden{cursor:default}.vxe-export--panel-column-option.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-export--panel-column-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-export--panel-column-option .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}[class*=vxe-]:after,[class*=vxe-]:before,[class*=vxe-] *:after,[class*=vxe-] *:before,[class*=vxe-]{box-sizing:border-box}.vxe-table-custom--option{display:flex;flex-direction:row}.vxe-table-custom-wrapper{display:none;position:absolute;top:-4px;right:2px;text-align:left;background-color:var(--vxe-toolbar-panel-background-color);z-index:19;border:1px solid var(--vxe-table-border-color);border-radius:var(--vxe-border-radius);box-shadow:0 1px 6px #0003}.vxe-table-custom-wrapper.is--active{display:block}.vxe-table-custom--header,.vxe-table-custom--body{list-style-type:none;overflow-x:hidden;overflow-y:auto;margin:0;padding:0;user-select:none}.vxe-table-custom--header>li,.vxe-table-custom--body>li{max-width:18em;min-width:14em;padding:.2em 1em}.vxe-table-custom--header>li.level--2,.vxe-table-custom--body>li.level--2{padding-left:3.5em}.vxe-table-custom--header>li.level--2 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--2 .vxe-checkbox--icon{left:1.8em}.vxe-table-custom--header>li.level--3,.vxe-table-custom--body>li.level--3{padding-left:4.5em}.vxe-table-custom--header>li.level--3 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--3 .vxe-checkbox--icon{left:2.8em}.vxe-table-custom--header>li.level--4,.vxe-table-custom--body>li.level--4{padding-left:5.5em}.vxe-table-custom--header>li.level--4 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--4 .vxe-checkbox--icon{left:3.8em}.vxe-table-custom--header>li.level--5,.vxe-table-custom--body>li.level--5{padding-left:6.5em}.vxe-table-custom--header>li.level--5 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--5 .vxe-checkbox--icon{left:4.8em}.vxe-table-custom--header>li.level--6,.vxe-table-custom--body>li.level--6{padding-left:7.5em}.vxe-table-custom--header>li.level--6 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--6 .vxe-checkbox--icon{left:5.8em}.vxe-table-custom--header>li.level--7,.vxe-table-custom--body>li.level--7{padding-left:8.5em}.vxe-table-custom--header>li.level--7 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--7 .vxe-checkbox--icon{left:6.8em}.vxe-table-custom--header>li.level--8,.vxe-table-custom--body>li.level--8{padding-left:9.5em}.vxe-table-custom--header>li.level--8 .vxe-checkbox--icon,.vxe-table-custom--body>li.level--8 .vxe-checkbox--icon{left:7.8em}.vxe-table-custom--header{padding:.28em 0;font-weight:700;border-bottom:1px solid var(--vxe-table-popup-border-color)}.vxe-table-custom--body{padding:.2em 0;max-height:20em}.vxe-table-custom--body .vxe-table-custom--checkbox-option:hover{background-color:var(--vxe-table-row-hover-background-color)}.vxe-table-custom--footer{border-top:1px solid var(--vxe-table-popup-border-color);text-align:right}.vxe-table-custom--footer button{background-color:transparent;width:50%;height:2.5em;border:0;color:var(--vxe-font-color);text-align:center;cursor:pointer}.vxe-table-custom--footer button:focus{outline:none}.vxe-table-custom--footer button:hover{color:var(--vxe-primary-color)}.vxe-table-custom--checkbox-option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}.vxe-table-custom--checkbox-option .vxe-checkbox--icon{font-size:1.34em}.vxe-table-custom--checkbox-option .vxe-checkbox--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-table-custom--checkbox-option.is--checked,.vxe-table-custom--checkbox-option.is--indeterminate,.vxe-table-custom--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-table-custom--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table-custom--checkbox-option:not(.is--disabled){cursor:pointer}.vxe-table-custom--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table-custom--checkbox-option.is--hidden{cursor:default}.vxe-table-custom--checkbox-option.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-table-custom--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-table-custom--checkbox-option .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-table-custom--fixed-option{flex-shrink:0;padding-left:.5em;display:flex;flex-direction:row;align-items:center}.vxe-table-custom--fixed-left-option,.vxe-table-custom--fixed-right-option{line-height:1.34em;font-size:1.1em;padding:0 .2em;cursor:pointer}.vxe-table-custom--fixed-left-option.is--checked,.vxe-table-custom--fixed-left-option:hover,.vxe-table-custom--fixed-right-option.is--checked,.vxe-table-custom--fixed-right-option:hover{color:var(--vxe-primary-color)}.vxe-table-custom--fixed-left-option.is--disabled,.vxe-table-custom--fixed-right-option.is--disabled{cursor:no-drop;color:var(--vxe-input-disabled-color)}.vxe-table-custom-popup--body{overflow:auto;height:100%}.vxe-table-custom-popup--table-wrapper{border-bottom:1px solid var(--vxe-table-border-color)}.vxe-table-custom-popup--table-wrapper table{width:100%;border:0;table-layout:fixed;word-break:break-all;border-spacing:0;border-collapse:separate}.vxe-table-custom-popup--table-wrapper table th{position:sticky;top:0;text-align:left;border-top:1px solid var(--vxe-table-border-color);border-bottom:1px solid var(--vxe-table-border-color);border-left:1px solid var(--vxe-table-border-color);background-color:var(--vxe-table-header-background-color);z-index:7}.vxe-table-custom-popup--table-wrapper table td{border-top:1px solid var(--vxe-table-border-color);border-left:1px solid var(--vxe-table-border-color)}.vxe-table-custom-popup--table-wrapper table tr:first-child td{border-top:0}.vxe-table-custom-popup--table-wrapper table tr:hover{background-color:var(--vxe-table-row-hover-background-color)}.vxe-table-custom-popup--table-wrapper table th,.vxe-table-custom-popup--table-wrapper table td{height:44px;padding:0 .6em}.vxe-table-custom-popup--table-wrapper table th:last-child,.vxe-table-custom-popup--table-wrapper table td:last-child{border-right:1px solid var(--vxe-table-border-color)}.vxe-table-custom-popup--drag-hint{display:none;position:absolute;top:0;left:0;padding:.6em 1em .6em 1.8em;max-width:300px;border-radius:var(--vxe-border-radius);user-select:none;pointer-events:none;background-color:var(--vxe-table-body-background-color);box-shadow:0 0 10px #0003;z-index:33}.vxe-table-custom-popup--name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-table-custom-popup--row.level--2 .vxe-table-custom-popup--name{padding-left:24px}.vxe-table-custom-popup--row.level--3 .vxe-table-custom-popup--name{padding-left:48px}.vxe-table-custom-popup--row.level--4 .vxe-table-custom-popup--name{padding-left:72px}.vxe-table-custom-popup--row.level--5 .vxe-table-custom-popup--name{padding-left:96px}.vxe-table-custom-popup--row.level--6 .vxe-table-custom-popup--name{padding-left:120px}.vxe-table-custom-popup--row.level--7 .vxe-table-custom-popup--name{padding-left:144px}.vxe-table-custom-popup--row.level--8 .vxe-table-custom-popup--name{padding-left:168px}.vxe-table-custom-popup--row.level--9 .vxe-table-custom-popup--name{padding-left:192px}.vxe-table-custom-popup--column-item{position:relative}.vxe-table-custom-popup--column-item.col--sort,.vxe-table-custom-popup--column-item.col--visible,.vxe-table-custom-popup--column-item.col--fixed{text-align:center}.vxe-table-custom-popup--row.active--drag-target[drag-pos=top] .vxe-table-custom-popup--column-item:after{display:block;top:-2px}.vxe-table-custom-popup--row.active--drag-target[drag-pos=bottom] .vxe-table-custom-popup--column-item:after{display:block;bottom:-2px}.vxe-table-custom-popup--row:first-child[drag-pos=top] .vxe-table-custom-popup--column-item:after{top:0}.vxe-table-custom-popup--row:last-child[drag-pos=bottom] .vxe-table-custom-popup--column-item:after{bottom:0}.vxe-table-custom-popup--column-item:after{display:none;content:"";position:absolute;left:-1px;width:calc(100% + 1px);height:3px;background-color:var(--vxe-primary-color);z-index:12}.vxe-table-custom-popup--column-item:last-child:after{width:100%}.vxe-table-custom--list-move{transition:transform .35s}.vxe-table-custom-popup--column-sort-btn{font-size:1.2em;padding:.2em .5em;cursor:grab}.vxe-table-custom-popup--column-sort-btn:active{cursor:grabbing}.vxe-table-custom-popup--table-sort-help-title,.vxe-table-custom-popup--table-sort-help-icon{vertical-align:middle}.vxe-table-custom-popup--table-sort-help-icon{margin-left:5px;cursor:help}[class*=vxe-icon--]{display:inline-block;vertical-align:middle;position:relative;direction:ltr;font-family:var(--vxe-icon-font-family);font-weight:400;user-select:none}[class*=vxe-icon--].rotate45{transform:rotate(45deg)}[class*=vxe-icon--].rotate90{transform:rotate(90deg)}[class*=vxe-icon--].rotate180{transform:rotate(180deg)}.vxe-icon--search,.vxe-icon--print,.vxe-icon--dot,.vxe-icon--calendar,.vxe-icon--eye,.vxe-icon--eye-slash,.vxe-icon--upload,.vxe-icon--download,.vxe-icon--error,.vxe-icon--remove,.vxe-icon--circle-plus,.vxe-icon--success,.vxe-icon--warning,.vxe-icon--info,.vxe-icon--question,.vxe-icon--refresh,.vxe-icon--minus,.vxe-icon--close,.vxe-icon--check,.vxe-icon--plus,.vxe-icon--more,.vxe-icon--edit-outline,.vxe-icon--funnel,.vxe-icon--d-arrow-left,.vxe-icon--d-arrow-right,.vxe-icon--arrow-top,.vxe-icon--arrow-right,.vxe-icon--arrow-left,.vxe-icon--arrow-bottom,.vxe-icon--caret-right,.vxe-icon--caret-left,.vxe-icon--caret-bottom,.vxe-icon--caret-top,.vxe-icon--menu,.vxe-icon--zoomout,.vxe-icon--zoomin,.vxe-icon--square{width:1em;height:1em;line-height:1em}.vxe-icon--search:after,.vxe-icon--search:before,.vxe-icon--print:after,.vxe-icon--print:before,.vxe-icon--dot:before,.vxe-icon--calendar:after,.vxe-icon--calendar:before,.vxe-icon--eye-slash:after,.vxe-icon--eye:before,.vxe-icon--eye-slash:before,.vxe-icon--upload:after,.vxe-icon--download:after,.vxe-icon--upload:before,.vxe-icon--download:before,.vxe-icon--error:after,.vxe-icon--remove:after,.vxe-icon--circle-plus:after,.vxe-icon--success:after,.vxe-icon--warning:after,.vxe-icon--info:after,.vxe-icon--question:after,.vxe-icon--refresh:before,.vxe-icon--refresh:after,.vxe-icon--minus:before,.vxe-icon--close:before,.vxe-icon--check:before,.vxe-icon--plus:before,.vxe-icon--more:before,.vxe-icon--edit-outline:after,.vxe-icon--edit-outline:before,.vxe-icon--funnel:after,.vxe-icon--funnel:before,.vxe-icon--d-arrow-left:before,.vxe-icon--d-arrow-right:before,.vxe-icon--d-arrow-left:after,.vxe-icon--d-arrow-right:after,.vxe-icon--arrow-top:before,.vxe-icon--arrow-right:before,.vxe-icon--arrow-left:before,.vxe-icon--arrow-bottom:before,.vxe-icon--caret-right:before,.vxe-icon--caret-left:before,.vxe-icon--caret-bottom:before,.vxe-icon--caret-top:before,.vxe-icon--zoomout:after,.vxe-icon--zoomout:before,.vxe-icon--zoomin:before,.vxe-icon--zoomin:after,.vxe-icon--square:before{content:"";position:absolute}.vxe-icon--square:before{left:.05em;top:.05em;width:.9em;height:.9em;border-width:.1em;border-style:solid;border-color:inherit}.vxe-icon--zoomin{border-width:.1em;border-style:solid;border-color:inherit;background-color:var(--vxe-icon-background-color)}.vxe-icon--zoomin:before,.vxe-icon--zoomin:after{background-color:inherit}.vxe-icon--zoomin:before{left:-.1em;top:.2em;width:1.1em;height:.4em}.vxe-icon--zoomin:after{top:-.1em;left:.2em;width:.4em;height:1.1em}.vxe-icon--zoomout{position:relative}.vxe-icon--zoomout:before{right:0;top:0;width:.7em;height:.7em;border-width:.1em;border-style:solid;border-color:inherit}.vxe-icon--zoomout:after{left:.1em;bottom:.1em;width:.7em;height:.7em;border-width:.1em;border-style:solid;border-color:inherit;background-color:var(--vxe-icon-background-color)}.vxe-icon--menu:before{content:"";display:inline-block;width:.22em;height:.22em;box-shadow:0 -.36em,-.36em -.36em,.36em -.36em,0 0 0 1em inset,-.36em 0,.36em 0,0 .36em,-.36em .36em,.36em .36em;margin:.26em}.vxe-icon--caret-right:before,.vxe-icon--caret-left:before,.vxe-icon--caret-bottom:before,.vxe-icon--caret-top:before{border-width:.4em;border-style:solid;border-color:transparent}.vxe-icon--caret-top:before{left:.1em;bottom:.3em;border-bottom-color:inherit}.vxe-icon--caret-bottom:before{left:.1em;top:.3em;border-top-color:inherit}.vxe-icon--caret-left:before{right:.3em;bottom:.1em;border-right-color:inherit}.vxe-icon--caret-right:before{left:.3em;bottom:.1em;border-left-color:inherit}.vxe-icon--arrow-top:before,.vxe-icon--arrow-right:before,.vxe-icon--arrow-left:before,.vxe-icon--arrow-bottom:before{top:.4em;left:.14em;width:.7em;height:.7em;border-width:.15em;border-style:solid;border-top-color:inherit;border-right-color:inherit;border-bottom-color:transparent;border-left-color:transparent;border-radius:.15em;transform:rotate(-45deg)}.vxe-icon--arrow-bottom:before{top:0;left:.14em;transform:rotate(135deg)}.vxe-icon--arrow-left:before{top:.18em;left:.35em;transform:rotate(-135deg)}.vxe-icon--arrow-right:before{top:.18em;left:0;transform:rotate(45deg)}.vxe-icon--d-arrow-left:before,.vxe-icon--d-arrow-right:before{left:.15em}.vxe-icon--d-arrow-left:after,.vxe-icon--d-arrow-right:after{left:.58em}.vxe-icon--d-arrow-left:before,.vxe-icon--d-arrow-right:before,.vxe-icon--d-arrow-left:after,.vxe-icon--d-arrow-right:after{top:.18em;width:.7em;height:.7em;border-width:.15em;border-style:solid;border-top-color:inherit;border-right-color:transparent;border-bottom-color:transparent;border-left-color:inherit;border-radius:.15em;transform:rotate(-45deg)}.vxe-icon--d-arrow-right:before,.vxe-icon--d-arrow-right:after{transform:rotate(135deg)}.vxe-icon--d-arrow-right:before{left:-.25em}.vxe-icon--d-arrow-right:after{left:.18em}.vxe-icon--funnel:before{top:.05em;left:0;border-width:.5em;border-style:solid;border-top-color:inherit;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vxe-icon--funnel:after{left:.41em;top:.4em;width:0;height:.5em;border-width:0 .2em 0 0;border-style:solid;border-right-color:inherit}.vxe-icon--edit-outline:before{height:.84em;width:.86em;top:.1em;left:.02em;border-radius:.2em;border-width:.1em;border-style:solid;border-color:inherit}.vxe-icon--edit-outline:after{left:.6em;bottom:.2em;width:0;height:.8em;border-radius:0 0 80% 80%;border-width:0 0 0 .22em;border-style:solid;border-color:inherit;transform:rotate(45deg)}.vxe-icon--more:before{content:"...";top:0;left:.1em;line-height:.5em;font-weight:700}.vxe-icon--plus:before{content:"+";left:-.12em;bottom:-.1em;line-height:1em;font-size:1.6em}.vxe-icon--check:before{left:.25em;bottom:.2em;width:.5em;height:.9em;border-width:.15em;border-style:solid;border-top-color:transparent;border-right-color:inherit;border-bottom-color:inherit;border-radius:.15em;border-left-color:transparent;transform:rotate(45deg)}.vxe-icon--close:before{content:"+";left:-.1em;bottom:-.16em;line-height:1em;font-size:1.8em;transform:rotate(45deg)}.vxe-icon--minus:before{content:"─";left:0;bottom:0;width:100%;text-align:center;line-height:.9em;font-size:1.2em}.vxe-icon--refresh{border-width:.1em;border-style:solid;border-radius:50%;border-right-color:transparent!important;border-left-color:transparent!important}.vxe-icon--refresh:before{left:50%;top:0;transform:translate(50%) rotate(-45deg)}.vxe-icon--refresh:after{right:50%;bottom:0;transform:translate(-50%) rotate(135deg)}.vxe-icon--refresh:before,.vxe-icon--refresh:after{width:0;height:0;border-width:.25em;border-style:solid;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vxe-icon--refresh.roll{animation:rollCircle 1s infinite linear}.vxe-icon--error:before,.vxe-icon--remove:before,.vxe-icon--circle-plus:before,.vxe-icon--success:before,.vxe-icon--warning:before,.vxe-icon--info:before,.vxe-icon--question:before{content:"";border-radius:50%;border-width:.5em;border-style:solid;border-color:inherit;position:absolute;top:0;left:0;transform:scale(.95)}.vxe-icon--warning:after,.vxe-icon--info:after,.vxe-icon--question:after{left:0;bottom:0;width:100%;text-align:center;color:var(--vxe-icon-background-color);transform:rotate(-10deg) scale(.75)}.vxe-icon--question:after{content:"?"}.vxe-icon--info:after{content:"¡"}.vxe-icon--warning:after{content:"!"}.vxe-icon--success:after{content:"✓";left:.25em;bottom:0;color:var(--vxe-icon-background-color);font-size:.65em}.vxe-icon--circle-plus:after{content:"+";left:0;bottom:0;width:100%;text-align:center;color:var(--vxe-icon-background-color);line-height:1.4em;font-size:.8em}.vxe-icon--remove:after{content:"─";left:0;bottom:0;width:100%;text-align:center;line-height:1.5em;color:var(--vxe-icon-background-color);font-size:.7em}.vxe-icon--error:after{content:"×";left:0;bottom:0;width:100%;line-height:1.4em;text-align:center;color:var(--vxe-icon-background-color);font-size:.8em}.vxe-icon--upload,.vxe-icon--download{overflow:hidden}.vxe-icon--upload:before,.vxe-icon--download:before{left:0;width:1em;border-width:0;border-style:solid;border-color:inherit}.vxe-icon--upload:after,.vxe-icon--download:after{width:100%;text-align:center;font-size:2em}.vxe-icon--upload:before{top:.1em;border-top-width:.1em}.vxe-icon--upload:after{content:"↑";left:0;top:.15em}.vxe-icon--download:before{bottom:.05em;border-bottom-width:.1em}.vxe-icon--download:after{content:"↑";left:0;bottom:.15em;transform:rotate(180deg)}.vxe-icon--eye:before,.vxe-icon--eye-slash:before{content:"●";top:.16em;left:0;width:1em;height:.68em;line-height:.25em;border-radius:50%;border-width:.1em;border-style:solid;border-color:inherit;text-align:center}.vxe-icon--eye-slash:after{top:-.1em;left:.45em;width:0;height:1.2em;border-width:0;border-style:solid;border-color:inherit;border-left-width:.1em;transform:rotate(45deg)}.vxe-icon--calendar:before{top:.15em;left:0;width:1em;height:.8em;border-width:.2em .1em .1em .1em;border-radius:.1em .1em 0 0;border-style:solid;border-color:inherit}.vxe-icon--calendar:after{left:.2em;top:0;width:.6em;height:.3em;border-width:0 .1em;border-style:solid;border-color:inherit}.vxe-icon--dot:before{top:.25em;left:.25em;border-radius:50%;border-width:.25em;border-style:solid;border-color:inherit}.vxe-icon--print{box-shadow:inset 0 0 0 .1em;border-width:.2em 0;border-style:solid;border-color:transparent!important;border-radius:.3em .3em 0 0}.vxe-icon--print:before{width:.6em;height:.3em;top:-.2em;left:.2em;box-shadow:inset 0 0 0 .1em}.vxe-icon--print:after{width:.6em;height:.6em;left:.2em;bottom:-.2em;box-shadow:inset 0 0 0 .1em;background-color:var(--vxe-icon-background-color)}.vxe-icon--search:before{top:0;left:0;width:.8em;height:.8em;border-width:.15em;border-style:solid;border-color:inherit;border-radius:50%}.vxe-icon--search:after{top:.75em;left:.6em;width:.35em;height:0;border-width:.15em 0 0 0;border-style:solid;border-color:inherit;transform:rotate(45deg)}.vxe-icon-warnion-circle-fill:before{content:""}@font-face{font-family:vxeiconfont;src:url(data:application/x-font-woff2;charset=utf-8;base64,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) format("woff2")}@keyframes rollCircle{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[class*=vxe-icon-]{font-family:vxeiconfont!important;font-style:normal;font-weight:400;font-size:1.1em;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=vxe-icon-].animat,[class*=vxe-icon-].roll{display:inline-block}[class*=vxe-icon-].animat{transition:transform .25s ease-in-out}[class*=vxe-icon-].rotate45{transform:rotate(45deg)}[class*=vxe-icon-].rotate90{transform:rotate(90deg)}[class*=vxe-icon-].rotate180{transform:rotate(180deg)}[class*=vxe-icon-].roll{animation:rollCircle 1s infinite linear}[class*=vxe-icon-].theme--primary{color:var(--vxe-primary-color)}[class*=vxe-icon-].theme--success{color:var(--vxe-success-color)}[class*=vxe-icon-].theme--info{color:var(--vxe-info-color)}[class*=vxe-icon-].theme--warning{color:var(--vxe-warning-color)}[class*=vxe-icon-].theme--danger{color:var(--vxe-danger-color)}.vxe-icon-sort:before{content:""}.vxe-icon-sort-desc:before{content:""}.vxe-icon-sort-asc:before{content:""}.vxe-icon-end-page:before{content:""}.vxe-icon-home-page:before{content:""}.vxe-icon-time:before{content:""}.vxe-icon-feedback:before{content:""}.vxe-icon-lightning:before{content:""}.vxe-icon-cloudy:before{content:""}.vxe-icon-heavy-rain:before{content:""}.vxe-icon-moon:before{content:""}.vxe-icon-sunny:before{content:""}.vxe-icon-location:before{content:""}.vxe-icon-location-fill:before{content:""}.vxe-icon-microphone-fill:before{content:""}.vxe-icon-microphone:before{content:""}.vxe-icon-share:before{content:""}.vxe-icon-share-fill:before{content:""}.vxe-icon-flag:before{content:""}.vxe-icon-flag-fill:before{content:""}.vxe-icon-platform:before{content:""}.vxe-icon-goods-fill:before{content:""}.vxe-icon-goods:before{content:""}.vxe-icon-funnel-clear:before{content:""}.vxe-icon-envelope:before{content:""}.vxe-icon-envelope-open-fill:before{content:""}.vxe-icon-envelope-open:before{content:""}.vxe-icon-envelope-fill:before{content:""}.vxe-icon-message-fill:before{content:""}.vxe-icon-chat:before{content:""}.vxe-icon-chat-fill:before{content:""}.vxe-icon-send:before{content:""}.vxe-icon-send-fill:before{content:""}.vxe-icon-user:before{content:""}.vxe-icon-user-fill:before{content:""}.vxe-icon-wechat:before{content:""}.vxe-icon-alipay:before{content:""}.vxe-icon-indicator:before{content:""}.vxe-icon-file-excel:before{content:""}.vxe-icon-file-pdf:before{content:""}.vxe-icon-file-image:before{content:""}.vxe-icon-file-markdown:before{content:""}.vxe-icon-file-ppt:before{content:""}.vxe-icon-file-word:before{content:""}.vxe-icon-file-zip:before{content:""}.vxe-icon-file-txt:before{content:""}.vxe-icon-refresh:before{content:""}.vxe-icon-checkbox-unchecked:before{content:""}.vxe-icon-information:before{content:""}.vxe-icon-info-circle-fill:before{content:""}.vxe-icon-info-circle:before{content:""}.vxe-icon-chart-radar:before{content:""}.vxe-icon-chart-bar-x:before{content:""}.vxe-icon-repeat:before{content:""}.vxe-icon-voice-fill:before{content:""}.vxe-icon-voice:before{content:""}.vxe-icon-flow-branch:before{content:""}.vxe-icon-comment:before{content:""}.vxe-icon-folder:before{content:""}.vxe-icon-folder-open:before{content:""}.vxe-icon-picture:before{content:""}.vxe-icon-picture-fill:before{content:""}.vxe-icon-bell:before{content:""}.vxe-icon-bell-fill:before{content:""}.vxe-icon-undo:before{content:""}.vxe-icon-home:before{content:""}.vxe-icon-home-fill:before{content:""}.vxe-icon-checkbox-checked:before{content:""}.vxe-icon-checkbox-indeterminate:before{content:""}.vxe-icon-fullscreen:before{content:""}.vxe-icon-minimize:before{content:""}.vxe-icon-print:before{content:""}.vxe-icon-upload:before{content:""}.vxe-icon-download:before{content:""}.vxe-icon-cloud-upload:before{content:""}.vxe-icon-cloud-download:before{content:""}.vxe-icon-spinner:before{content:""}.vxe-icon-close:before{content:""}.vxe-icon-custom-column:before{content:""}.vxe-icon-edit:before{content:""}.vxe-icon-zoom-in:before{content:""}.vxe-icon-caret-down:before{content:""}.vxe-icon-caret-up:before{content:""}.vxe-icon-caret-right:before{content:""}.vxe-icon-caret-left:before{content:""}.vxe-icon-square-checked-fill:before{content:""}.vxe-icon-square-close:before{content:""}.vxe-icon-square-down:before{content:""}.vxe-icon-square-left:before{content:""}.vxe-icon-square-caret-right:before{content:""}.vxe-icon-square-minus:before{content:""}.vxe-icon-square-plus:before{content:""}.vxe-icon-square-right:before{content:""}.vxe-icon-square-up:before{content:""}.vxe-icon-square-checked:before{content:""}.vxe-icon-square-down-fill:before{content:""}.vxe-icon-square-minus-fill:before{content:""}.vxe-icon-square-close-fill:before{content:""}.vxe-icon-square-left-fill:before{content:""}.vxe-icon-square-caret-right-fill:before{content:""}.vxe-icon-square-up-fill:before{content:""}.vxe-icon-square-right-fill:before{content:""}.vxe-icon-square-plus-fill:before{content:""}.vxe-icon-square-plus-square:before{content:""}.vxe-icon-square-fill:before{content:""}.vxe-icon-square-square:before{content:""}.vxe-icon-sort-alpha-desc:before{content:""}.vxe-icon-sort-alpha-asc:before{content:""}.vxe-icon-sort-numeric-asc:before{content:""}.vxe-icon-sort-numeric-desc:before{content:""}.vxe-icon-star-fill:before{content:""}.vxe-icon-star:before{content:""}.vxe-icon-star-half:before{content:""}.vxe-icon-lock-fill:before{content:""}.vxe-icon-unlock-fill:before{content:""}.vxe-icon-question:before{content:""}.vxe-icon-exclamation:before{content:""}.vxe-icon-ellipsis-h:before{content:""}.vxe-icon-ellipsis-v:before{content:""}.vxe-icon-save:before{content:""}.vxe-icon-setting:before{content:""}.vxe-icon-setting-fill:before{content:""}.vxe-icon-link:before{content:""}.vxe-icon-chart-pie:before{content:""}.vxe-icon-chart-line:before{content:""}.vxe-icon-swap:before{content:""}.vxe-icon-num-list:before{content:""}.vxe-icon-copy:before{content:""}.vxe-icon-company:before{content:""}.vxe-icon-swap-right:before{content:""}.vxe-icon-swap-left:before{content:""}.vxe-icon-table:before{content:""}.vxe-icon-merge-cells:before{content:""}.vxe-icon-paste:before{content:""}.vxe-icon-cut:before{content:""}.vxe-icon-lock:before{content:""}.vxe-icon-unlock:before{content:""}.vxe-icon-chart-bar-y:before{content:""}.vxe-icon-fixed-left-fill:before{content:""}.vxe-icon-fixed-left:before{content:""}.vxe-icon-fixed-right-fill:before{content:""}.vxe-icon-fixed-right:before{content:""}.vxe-icon-swap-down:before{content:""}.vxe-icon-swap-up:before{content:""}.vxe-icon-square:before{content:""}.vxe-icon-check:before{content:""}.vxe-icon-question-circle-fill:before{content:""}.vxe-icon-error-circle-fill:before{content:""}.vxe-icon-delete:before{content:""}.vxe-icon-dot:before{content:""}.vxe-icon-success-circle:before{content:""}.vxe-icon-delete-fill:before{content:""}.vxe-icon-minus:before{content:""}.vxe-icon-maximize:before{content:""}.vxe-icon-question-circle:before{content:""}.vxe-icon-warning-circle:before{content:""}.vxe-icon-warning-circle-fill:before{content:""}.vxe-icon-eye-fill:before{content:""}.vxe-icon-search:before{content:""}.vxe-icon-funnel:before{content:""}.vxe-icon-eye-fill-close:before{content:""}.vxe-icon-search-zoom-in:before{content:""}.vxe-icon-arrow-right:before{content:""}.vxe-icon-arrow-left:before{content:""}.vxe-icon-arrow-up:before{content:""}.vxe-icon-calendar:before{content:""}.vxe-icon-arrow-down:before{content:""}.vxe-icon-warning-triangle:before{content:""}.vxe-icon-add:before{content:""}.vxe-icon-arrow-double-left:before{content:""}.vxe-icon-arrow-double-right:before{content:""}.vxe-icon-menu:before{content:""}.vxe-icon-warning-triangle-fill:before{content:""}.vxe-icon-error-circle:before{content:""}.vxe-icon-zoom-out:before{content:""}.vxe-icon-success-circle-fill:before{content:""}.vxe-icon-radio-checked:before{content:""}.vxe-icon-radio-unchecked:before{content:""}.vxe-radio-button .vxe-radio--label,.vxe-radio .vxe-radio--label,.vxe-checkbox .vxe-checkbox--label,.vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table-custom-popup--drag-hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-loading{display:none;position:absolute;width:100%;height:100%;top:0;left:0;z-index:99;user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-loading.is--visible{display:block}.vxe-loading>.vxe-loading--chunk,.vxe-loading>.vxe-loading--wrapper{width:100%;position:absolute;top:50%;left:0;transform:translateY(-50%);text-align:center;color:var(--vxe-loading-color)}.vxe-loading .vxe-loading--default-icon{font-size:1.4em}.vxe-loading .vxe-loading--text{padding:.4em 0}.vxe-loading .vxe-loading--spinner{display:inline-block;position:relative;width:56px;height:56px}.vxe-loading .vxe-loading--spinner:before,.vxe-loading .vxe-loading--spinner:after{content:"";width:100%;height:100%;border-radius:50%;background-color:var(--vxe-primary-color);opacity:.6;position:absolute;top:0;left:0;animation:bounce 2s infinite ease-in-out}.vxe-loading .vxe-loading--spinner:after{animation-delay:-1s}@keyframes bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}.size--mini .vxe-loading .vxe-loading--spinner{width:38px;height:38px}.size--small .vxe-loading .vxe-loading--spinner{width:44px;height:44px}.size--medium .vxe-loading .vxe-loading--spinner{width:50px;height:50px}.vxe-table--render-default .vxe-header--column.col--ellipsis,.vxe-table--render-default .vxe-body--column.col--ellipsis,.vxe-table--render-default .vxe-footer--column.col--ellipsis,.vxe-table--render-default.vxe-editable .vxe-body--column{height:var(--vxe-table-row-height-default)}.vxe-table--render-default.size--medium .vxe-header--column.col--ellipsis,.vxe-table--render-default.size--medium .vxe-body--column.col--ellipsis,.vxe-table--render-default.size--medium .vxe-footer--column.col--ellipsis,.vxe-table--render-default.vxe-editable.size--medium .vxe-body--column{height:var(--vxe-table-row-height-medium)}.vxe-table--render-default.size--small .vxe-header--column.col--ellipsis,.vxe-table--render-default.size--small .vxe-body--column.col--ellipsis,.vxe-table--render-default.size--small .vxe-footer--column.col--ellipsis,.vxe-table--render-default.vxe-editable.size--small .vxe-body--column{height:var(--vxe-table-row-height-small)}.vxe-table--render-default.size--mini .vxe-header--column.col--ellipsis,.vxe-table--render-default.size--mini .vxe-body--column.col--ellipsis,.vxe-table--render-default.size--mini .vxe-footer--column.col--ellipsis,.vxe-table--render-default.vxe-editable.size--mini .vxe-body--column{height:var(--vxe-table-row-height-mini)}.vxe-table-slots,.vxe-table--file-form{display:none}.vxe-table--print-frame{position:fixed;bottom:-100%;left:-100%;height:0;width:0;border:0}.vxe-table--render-wrapper{background-color:var(--vxe-table-body-background-color)}.vxe-table--body-wrapper{scroll-behavior:auto}.vxe-table--body-wrapper,.vxe-table--fixed-left-body-wrapper,.vxe-table--fixed-right-body-wrapper{overflow-y:auto;overflow-x:auto}.vxe-cell .vxe-default-input,.vxe-cell .vxe-default-textarea,.vxe-table--filter-wrapper .vxe-default-input,.vxe-table--filter-wrapper .vxe-default-textarea{background-color:var(--vxe-table-body-background-color)}.vxe-cell .vxe-default-input,.vxe-cell .vxe-default-textarea,.vxe-cell .vxe-default-select,.vxe-table--filter-wrapper .vxe-default-input,.vxe-table--filter-wrapper .vxe-default-textarea,.vxe-table--filter-wrapper .vxe-default-select{outline:0;padding:0 2px;width:100%;color:var(--vxe-font-color);border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color)}.vxe-cell .vxe-default-input:focus,.vxe-cell .vxe-default-textarea:focus,.vxe-cell .vxe-default-select:focus,.vxe-table--filter-wrapper .vxe-default-input:focus,.vxe-table--filter-wrapper .vxe-default-textarea:focus,.vxe-table--filter-wrapper .vxe-default-select:focus{border:1px solid var(--vxe-primary-color)}.vxe-cell .vxe-default-input[disabled],.vxe-cell .vxe-default-textarea[disabled],.vxe-cell .vxe-default-select[disabled],.vxe-table--filter-wrapper .vxe-default-input[disabled],.vxe-table--filter-wrapper .vxe-default-textarea[disabled],.vxe-table--filter-wrapper .vxe-default-select[disabled]{cursor:not-allowed;background-color:var(--vxe-input-disabled-background-color)}.vxe-cell .vxe-default-input,.vxe-cell .vxe-default-textarea,.vxe-cell .vxe-default-select,.vxe-table--filter-wrapper .vxe-default-input,.vxe-table--filter-wrapper .vxe-default-textarea,.vxe-table--filter-wrapper .vxe-default-select{height:var(--vxe-input-height-default)}.vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-table--filter-wrapper .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:4px}.vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-cell .vxe-default-input[type=number]::-webkit-inner-spin-button,.vxe-table--filter-wrapper .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-table--filter-wrapper .vxe-default-input[type=number]::-webkit-inner-spin-button{height:24px}.vxe-cell .vxe-default-input::placeholder,.vxe-table--filter-wrapper .vxe-default-input::placeholder{color:var(--vxe-input-placeholder-color)}.vxe-cell .vxe-default-textarea,.vxe-table--filter-wrapper .vxe-default-textarea{resize:none;vertical-align:middle}.vxe-cell .vxe-input,.vxe-cell .vxe-textarea,.vxe-cell .vxe-select,.vxe-table--filter-wrapper .vxe-input,.vxe-table--filter-wrapper .vxe-textarea,.vxe-table--filter-wrapper .vxe-select{width:100%;display:block}.vxe-cell .vxe-input>.vxe-input--inner,.vxe-cell .vxe-textarea>.vxe-textarea--inner,.vxe-table--filter-wrapper .vxe-input>.vxe-input--inner,.vxe-table--filter-wrapper .vxe-textarea>.vxe-textarea--inner{padding:0 2px}.vxe-cell .vxe-textarea--inner,.vxe-cell .vxe-default-textarea,.vxe-table--filter-wrapper .vxe-textarea--inner,.vxe-table--filter-wrapper .vxe-default-textarea{resize:none}.vxe-table--checkbox-range,.vxe-table--cell-main-area,.vxe-table--cell-extend-area,.vxe-table--cell-active-area,.vxe-table--cell-copy-area{display:none;position:absolute;pointer-events:none;z-index:1}.vxe-table--fixed-left-wrapper .vxe-table--checkbox-range,.vxe-table--fixed-left-wrapper .vxe-table--cell-main-area,.vxe-table--fixed-left-wrapper .vxe-table--cell-extend-area,.vxe-table--fixed-left-wrapper .vxe-table--cell-active-area,.vxe-table--fixed-left-wrapper .vxe-table--cell-copy-area,.vxe-table--fixed-right-wrapper .vxe-table--checkbox-range,.vxe-table--fixed-right-wrapper .vxe-table--cell-main-area,.vxe-table--fixed-right-wrapper .vxe-table--cell-extend-area,.vxe-table--fixed-right-wrapper .vxe-table--cell-active-area,.vxe-table--fixed-right-wrapper .vxe-table--cell-copy-area{z-index:2}.vxe-table--fixed-left-wrapper .vxe-table--cell-main-area[half="1"],.vxe-table--fixed-left-wrapper .vxe-table--cell-extend-area[half="1"],.vxe-table--fixed-left-wrapper .vxe-table--cell-active-area[half="1"]{border-right:0}.vxe-table--fixed-left-wrapper .vxe-table--cell-copy-area[half="1"]{background-size:var(--vxe-table-cell-copy-area-border-width) 12px,0 12px,12px var(--vxe-table-cell-copy-area-border-width),12px var(--vxe-table-cell-copy-area-border-width)}.vxe-table--fixed-right-wrapper .vxe-table--cell-main-area[half="1"],.vxe-table--fixed-right-wrapper .vxe-table--cell-extend-area[half="1"],.vxe-table--fixed-right-wrapper .vxe-table--cell-active-area[half="1"]{border-left:0}.vxe-table--fixed-right-wrapper .vxe-table--cell-copy-area[half="1"]{background-size:0 12px,var(--vxe-table-cell-copy-area-border-width) 12px,12px var(--vxe-table-cell-copy-area-border-width),12px var(--vxe-table-cell-copy-area-border-width)}.vxe-table--checkbox-range{background-color:var(--vxe-table-checkbox-range-background-color);border:var(--vxe-table-checkbox-range-border-width) solid var(--vxe-table-checkbox-range-border-color)}.vxe-table--cell-area{height:0;font-size:0;display:none}.vxe-table--cell-area>.vxe-table--cell-main-area{background-color:var(--vxe-table-cell-area-background-color);border:var(--vxe-table-cell-area-border-width) solid var(--vxe-table-cell-area-border-color)}.vxe-table--cell-area .vxe-table--cell-main-area-btn{display:none;position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;border-style:solid;border-color:var(--vxe-table-cell-main-area-extension-border-color);border-width:1px 0 0 1px;background-color:var(--vxe-table-cell-main-area-extension-background-color);pointer-events:auto;cursor:crosshair}.vxe-table--cell-area .vxe-table--cell-extend-area{border:var(--vxe-table-cell-extend-area-border-width) solid var(--vxe-table-cell-extend-area-border-color)}@keyframes moveCopyCellBorder{to{background-position:0 -12px,100% 12px,12px 0,-12px 100%}}.vxe-table--cell-copy-area{background:linear-gradient(0deg,transparent 6px,var(--vxe-table-cell-copy-area-border-color) 6px) repeat-y,linear-gradient(0deg,transparent 50%,var(--vxe-table-cell-copy-area-border-color) 0) repeat-y,linear-gradient(90deg,transparent 50%,var(--vxe-table-cell-copy-area-border-color) 0) repeat-x,linear-gradient(90deg,transparent 50%,var(--vxe-table-cell-copy-area-border-color) 0) repeat-x;background-size:var(--vxe-table-cell-copy-area-border-width) 12px,var(--vxe-table-cell-copy-area-border-width) 12px,12px var(--vxe-table-cell-copy-area-border-width),12px var(--vxe-table-cell-copy-area-border-width);background-position:0 0,100% 0,0 0,0 100%;animation:moveCopyCellBorder .5s infinite linear}.vxe-table--cell-active-area{border-color:var(--vxe-table-cell-active-area-border-color);border-style:solid;border-width:var(--vxe-table-cell-active-area-border-width);background-color:var(--vxe-table-cell-active-area-background-color)}.vxe-table--cell-multi-area>.vxe-table--cell-main-area{background-color:var(--vxe-table-cell-area-background-color)}.vxe-table--render-default.is--round:not(.is--header):not(.is--footer) .vxe-table--body-wrapper.body--wrapper,.vxe-table--render-default.is--round .vxe-table--border-line,.vxe-table--render-default.is--round .vxe-table--render-default.is--round{border-radius:var(--vxe-table-border-radius)}.vxe-table--render-default.is--round.is--footer:not(.is--header) .vxe-table--body-wrapper.body--wrapper,.vxe-table--render-default.is--round.is--header .vxe-table--header-wrapper.body--wrapper{border-radius:var(--vxe-table-border-radius) var(--vxe-table-border-radius) 0 0}.vxe-table--render-default.is--round.is--header .vxe-table--header-wrapper.fixed-left--wrapper{border-radius:var(--vxe-table-border-radius) 0 0 0}.vxe-table--render-default.is--round.is--header .vxe-table--header-wrapper.fixed-right--wrapper{border-radius:0 var(--vxe-table-border-radius) 0 0}.vxe-table--render-default.is--round.is--footer .vxe-table--footer-wrapper.body--wrapper,.vxe-table--render-default.is--round.is--header:not(.is--footer) .vxe-table--body-wrapper.body--wrapper{border-radius:0 0 var(--vxe-table-border-radius) var(--vxe-table-border-radius)}.vxe-table--render-default.is--round.is--footer .vxe-table--footer-wrapper.fixed-left--wrapper,.vxe-table--render-default.is--round.is--footer:not(.is--header) .vxe-table--body-wrapper.fixed-left--wrapper,.vxe-table--render-default.is--round.is--header:not(.is--footer) .vxe-table--body-wrapper.fixed-left--wrapper{border-radius:0 0 0 var(--vxe-table-border-radius)}.vxe-table--render-default.is--round.is--footer .vxe-table--footer-wrapper.fixed-right--wrapper,.vxe-table--render-default.is--round.is--footer:not(.is--header) .vxe-table--body-wrapper.fixed-right--wrapper,.vxe-table--render-default.is--round.is--header:not(.is--footer) .vxe-table--body-wrapper.fixed-right--wrapper{border-radius:0 0 var(--vxe-table-border-radius) 0}.vxe-table .vxe-table--header-wrapper{color:var(--vxe-table-header-font-color)}.vxe-table .vxe-table--header-wrapper .vxe-table--header-border-line{position:absolute;left:0;bottom:0;height:0;border-bottom:var(--vxe-table-border-width) solid var(--vxe-table-border-color)}.vxe-table .vxe-cell--sort{text-align:center;position:relative;padding:0 .1em 0 .2em}.vxe-table .vxe-cell--sort-vertical-layout{display:inline-flex;flex-direction:column;height:1.8em;vertical-align:middle}.vxe-table .vxe-cell--sort-vertical-layout .vxe-sort--asc-btn,.vxe-table .vxe-cell--sort-vertical-layout .vxe-sort--desc-btn{height:.6em}.vxe-table .vxe-cell--sort-horizontal-layout{display:inline-flex;flex-direction:row}.vxe-table .vxe-cell--sort-horizontal-layout .vxe-sort--asc-btn,.vxe-table .vxe-cell--sort-horizontal-layout .vxe-sort--desc-btn{width:.5em}.vxe-table .vxe-sort--asc-btn,.vxe-table .vxe-sort--desc-btn{color:var(--vxe-table-column-icon-border-color);cursor:pointer}.vxe-table .vxe-sort--asc-btn:hover,.vxe-table .vxe-sort--desc-btn:hover{color:var(--vxe-font-color)}.vxe-table .vxe-sort--asc-btn.sort--active,.vxe-table .vxe-sort--desc-btn.sort--active{color:var(--vxe-primary-color)}.vxe-header--column{position:relative;font-weight:var(--vxe-table-header-font-weight)}.vxe-header--column.col--ellipsis>.vxe-cell{display:flex;align-items:center}.vxe-header--column.col--ellipsis>.vxe-cell .vxe-cell--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-header--column.col--ellipsis>.vxe-cell>i:not(.vxe-cell--title),.vxe-header--column.col--ellipsis>.vxe-cell>span:not(.vxe-cell--title){flex-shrink:0}.vxe-header--column .vxe-cell--required-icon{display:inline-block;color:var(--vxe-table-validate-error-color);width:.8em;height:1em;line-height:1em;font-family:var(--vxe-icon-font-family);font-weight:400;position:relative}.vxe-header--column .vxe-cell--required-icon:before{content:"*";position:absolute;left:0;top:.2em}.vxe-header--column .vxe-cell--required-icon{margin-right:.1em}.vxe-header--column .vxe-cell--edit-icon,.vxe-header--column .vxe-cell-title-prefix-icon,.vxe-header--column .vxe-cell-title-suffix-icon{margin-right:.2em}.vxe-header--column .vxe-cell-title-prefix-icon,.vxe-header--column .vxe-cell-title-suffix-icon{cursor:help}.vxe-header--column .vxe-resizable{position:absolute;right:-7px;bottom:0;width:14px;height:100%;text-align:center;z-index:1;cursor:col-resize}.vxe-header--column .vxe-resizable.is--line:before,.vxe-header--column .vxe-resizable.is--line:after{content:"";display:inline-block;vertical-align:middle}.vxe-header--column .vxe-resizable.is--line:before{width:1px;height:50%;background-color:var(--vxe-table-resizable-line-color)}.vxe-header--column .vxe-resizable.is--line:after{width:0;height:100%}.vxe-table--fixed-right-wrapper .vxe-header--column .vxe-resizable{right:auto;left:-7px}.vxe-table--render-default{position:relative;font-size:var(--vxe-font-size);color:var(--vxe-font-color);font-family:var(--vxe-font-family);direction:ltr}.vxe-table--render-default .vxe-table--body-wrapper table{background-color:var(--vxe-table-body-background-color)}.vxe-table--render-default .vxe-table--footer-wrapper table{background-color:var(--vxe-table-footer-background-color)}.vxe-table--render-default .vxe-table--header,.vxe-table--render-default .vxe-table--body,.vxe-table--render-default .vxe-table--footer{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-table--render-default .vxe-table--header-wrapper,.vxe-table--render-default .vxe-table--footer-wrapper{overflow-x:hidden;overflow-y:hidden}.vxe-table--render-default:not(.is--empty).is--footer.is--scroll-x .vxe-table--body-wrapper{overflow-x:scroll}.vxe-table--render-default .vxe-body--row.row--stripe{background-color:var(--vxe-table-row-striped-background-color)}.vxe-table--render-default .vxe-body--row.row--radio{background-color:var(--vxe-table-row-radio-checked-background-color)}.vxe-table--render-default .vxe-body--row.row--checked{background-color:var(--vxe-table-row-checkbox-checked-background-color)}.vxe-table--render-default .vxe-body--row.row--current{background-color:var(--vxe-table-row-current-background-color)}.vxe-table--render-default .vxe-body--row.row--hover{background-color:var(--vxe-table-row-hover-background-color)}.vxe-table--render-default .vxe-body--row.row--hover.row--stripe{background-color:var(--vxe-table-row-hover-striped-background-color)}.vxe-table--render-default .vxe-body--row.row--hover.row--radio{background-color:var(--vxe-table-row-hover-radio-checked-background-color)}.vxe-table--render-default .vxe-body--row.row--hover.row--checked{background-color:var(--vxe-table-row-hover-checkbox-checked-background-color)}.vxe-table--render-default .vxe-body--row.row--hover.row--current{background-color:var(--vxe-table-row-hover-current-background-color)}.vxe-table--render-default.drag--resize .vxe-table--main-wrapper *,.vxe-table--render-default.drag--resize .vxe-table--fixed-left-wrapper *,.vxe-table--render-default.drag--resize .vxe-table--fixed-right-wrapper *{cursor:col-resize}.vxe-table--render-default.drag--range .vxe-table--main-wrapper *,.vxe-table--render-default.drag--range .vxe-table--fixed-left-wrapper *,.vxe-table--render-default.drag--range .vxe-table--fixed-right-wrapper *,.vxe-table--render-default.drag--area .vxe-table--main-wrapper *,.vxe-table--render-default.drag--area .vxe-table--fixed-left-wrapper *,.vxe-table--render-default.drag--area .vxe-table--fixed-right-wrapper *{cursor:default}.vxe-table--render-default.drag--extend-range .vxe-table--main-wrapper *,.vxe-table--render-default.drag--extend-range .vxe-table--fixed-left-wrapper *,.vxe-table--render-default.drag--extend-range .vxe-table--fixed-right-wrapper *{cursor:crosshair}.vxe-table--render-default.column--highlight .vxe-header--column:not(.col--seq):hover{background-color:var(--vxe-table-column-hover-background-color)}.vxe-table--render-default.cell--area .vxe-body--row,.vxe-table--render-default.drag--range .vxe-cell--checkbox{user-select:none}.vxe-table--render-default .vxe-header--column,.vxe-table--render-default .vxe-body--column,.vxe-table--render-default .vxe-footer--column{position:relative;line-height:var(--vxe-table-row-line-height);text-align:left}.vxe-table--render-default .vxe-header--column:not(.col--ellipsis),.vxe-table--render-default .vxe-body--column:not(.col--ellipsis),.vxe-table--render-default .vxe-footer--column:not(.col--ellipsis){padding:var(--vxe-table-column-padding-default)}.vxe-table--render-default .vxe-header--column.col--current,.vxe-table--render-default .vxe-body--column.col--current,.vxe-table--render-default .vxe-footer--column.col--current{background-color:var(--vxe-table-column-current-background-color)}.vxe-table--render-default .vxe-header--column.col--center,.vxe-table--render-default .vxe-body--column.col--center,.vxe-table--render-default .vxe-footer--column.col--center{text-align:center}.vxe-table--render-default .vxe-header--column.col--right,.vxe-table--render-default .vxe-body--column.col--right,.vxe-table--render-default .vxe-footer--column.col--right{text-align:right}.vxe-table--render-default .vxe-header--column.col--ellipsis.col--center .vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis.col--center .vxe-cell{justify-content:center}.vxe-table--render-default .vxe-header--column.col--ellipsis.col--right .vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis.col--right .vxe-cell{justify-content:flex-end}.vxe-table--render-default .vxe-table--footer-wrapper{border-top:var(--vxe-table-border-width) solid var(--vxe-table-border-color)}.vxe-table--render-default.border--default .vxe-table--header-wrapper,.vxe-table--render-default.border--full .vxe-table--header-wrapper,.vxe-table--render-default.border--outer .vxe-table--header-wrapper{background-color:var(--vxe-table-header-background-color)}.vxe-table--render-default.border--default .vxe-header--column,.vxe-table--render-default.border--default .vxe-body--column,.vxe-table--render-default.border--default .vxe-footer--column,.vxe-table--render-default.border--inner .vxe-header--column,.vxe-table--render-default.border--inner .vxe-body--column,.vxe-table--render-default.border--inner .vxe-footer--column{background-image:linear-gradient(var(--vxe-table-border-color),var(--vxe-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-table-border-width);background-position:right bottom}.vxe-table--render-default.border--full .vxe-header--column,.vxe-table--render-default.border--full .vxe-body--column,.vxe-table--render-default.border--full .vxe-footer--column{background-image:linear-gradient(var(--vxe-table-border-color),var(--vxe-table-border-color)),linear-gradient(var(--vxe-table-border-color),var(--vxe-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-table-border-width) 100%,100% var(--vxe-table-border-width);background-position:right top,right bottom}.vxe-table--render-default.border--full .vxe-table--fixed-left-wrapper .vxe-body--column{border-right-color:var(--vxe-table-border-color)}.vxe-table--render-default.border--default .vxe-table--header-wrapper .vxe-header--row:last-child .vxe-header--gutter,.vxe-table--render-default.border--full .vxe-table--header-wrapper .vxe-header--row:last-child .vxe-header--gutter,.vxe-table--render-default.border--outer .vxe-table--header-wrapper .vxe-header--row:last-child .vxe-header--gutter,.vxe-table--render-default.border--inner .vxe-table--header-wrapper .vxe-header--row:last-child .vxe-header--gutter{background-image:linear-gradient(var(--vxe-table-border-color),var(--vxe-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-table-border-width);background-position:right bottom}.vxe-table--render-default.border--inner .vxe-table--header-wrapper,.vxe-table--render-default.border--none .vxe-table--header-wrapper{background-color:var(--vxe-table-header-background-color)}.vxe-table--render-default.border--inner .vxe-table--fixed-left-wrapper,.vxe-table--render-default.border--none .vxe-table--fixed-left-wrapper{border-right:0}.vxe-table--render-default.border--inner .vxe-table--border-line{border-width:0 0 1px 0}.vxe-table--render-default.border--none .vxe-table--border-line,.vxe-table--render-default.border--none .vxe-table--header-border-line{display:none}.vxe-table--render-default.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-table--render-default.size--medium .vxe-table--empty-placeholder,.vxe-table--render-default.size--medium .vxe-table--empty-block{min-height:var(--vxe-table-row-height-medium)}.vxe-table--render-default.size--medium .vxe-header--column:not(.col--ellipsis),.vxe-table--render-default.size--medium .vxe-body--column:not(.col--ellipsis),.vxe-table--render-default.size--medium .vxe-footer--column:not(.col--ellipsis){padding:var(--vxe-table-column-padding-medium)}.vxe-table--render-default.size--medium .vxe-cell .vxe-default-input,.vxe-table--render-default.size--medium .vxe-cell .vxe-default-textarea,.vxe-table--render-default.size--medium .vxe-cell .vxe-default-select{height:var(--vxe-input-height-medium)}.vxe-table--render-default.size--medium .vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:3px}.vxe-table--render-default.size--small{font-size:var(--vxe-font-size-small)}.vxe-table--render-default.size--small .vxe-table--empty-placeholder,.vxe-table--render-default.size--small .vxe-table--empty-block{min-height:var(--vxe-table-row-height-small)}.vxe-table--render-default.size--small .vxe-header--column:not(.col--ellipsis),.vxe-table--render-default.size--small .vxe-body--column:not(.col--ellipsis),.vxe-table--render-default.size--small .vxe-footer--column:not(.col--ellipsis){padding:var(--vxe-table-column-padding-small)}.vxe-table--render-default.size--small .vxe-cell .vxe-default-input,.vxe-table--render-default.size--small .vxe-cell .vxe-default-textarea,.vxe-table--render-default.size--small .vxe-cell .vxe-default-select{height:var(--vxe-input-height-small)}.vxe-table--render-default.size--small .vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:2px}.vxe-table--render-default.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-table--render-default.size--mini .vxe-table--empty-placeholder,.vxe-table--render-default.size--mini .vxe-table--empty-block{min-height:var(--vxe-table-row-height-mini)}.vxe-table--render-default.size--mini .vxe-header--column:not(.col--ellipsis),.vxe-table--render-default.size--mini .vxe-body--column:not(.col--ellipsis),.vxe-table--render-default.size--mini .vxe-footer--column:not(.col--ellipsis){padding:var(--vxe-table-column-padding-mini)}.vxe-table--render-default.size--mini .vxe-cell .vxe-default-input,.vxe-table--render-default.size--mini .vxe-cell .vxe-default-textarea,.vxe-table--render-default.size--mini .vxe-cell .vxe-default-select{height:var(--vxe-input-height-mini)}.vxe-table--render-default.size--mini .vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:1px}.vxe-table--render-default .vxe-cell{white-space:pre-line;word-break:break-all;padding-left:var(--vxe-table-cell-padding-left);padding-right:var(--vxe-table-cell-padding-right)}.vxe-table--render-default .vxe-cell--placeholder{color:var(--vxe-table-cell-placeholder-color)}.vxe-table--render-default .vxe-cell--radio{cursor:pointer}.vxe-table--render-default .vxe-cell--radio .vxe-radio--icon{font-size:1.4em}.vxe-table--render-default .vxe-cell--radio .vxe-radio--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-table--render-default .vxe-cell--radio.is--checked,.vxe-table--render-default .vxe-cell--radio.is--checked .vxe-radio--icon{color:var(--vxe-primary-color)}.vxe-table--render-default .vxe-cell--radio:not(.is--disabled){cursor:pointer}.vxe-table--render-default .vxe-cell--radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-primary-color)}.vxe-table--render-default .vxe-cell--radio.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-table--render-default .vxe-cell--radio.is--disabled .vxe-radio--icon{color:var(--vxe-input-disabled-color)}.vxe-table--render-default .vxe-cell--radio .vxe-radio--label{padding-left:.5em;vertical-align:middle}.vxe-table--render-default .vxe-cell--checkbox .vxe-checkbox--icon{font-size:1.34em}.vxe-table--render-default .vxe-cell--checkbox .vxe-checkbox--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-table--render-default .vxe-cell--checkbox.is--checked,.vxe-table--render-default .vxe-cell--checkbox.is--indeterminate,.vxe-table--render-default .vxe-cell--checkbox.is--checked .vxe-checkbox--icon,.vxe-table--render-default .vxe-cell--checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled){cursor:pointer}.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-table--render-default .vxe-cell--checkbox.is--hidden{cursor:default}.vxe-table--render-default .vxe-cell--checkbox.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-table--render-default .vxe-cell--checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-table--render-default .vxe-cell--checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-table--render-default .fixed--hidden{visibility:hidden}.vxe-table--render-default .vxe-table--fixed-left-wrapper,.vxe-table--render-default .vxe-table--fixed-right-wrapper{width:100%;position:absolute;top:0;z-index:5;overflow:hidden;background-color:inherit;transition:.3s box-shadow}.vxe-table--render-default .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper,.vxe-table--render-default .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper{overflow-x:hidden}.vxe-table--render-default .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper{width:calc(100% + 40px)}.vxe-table--render-default.is--header .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper:before,.vxe-table--render-default.is--header .vxe-table--fixed-right-wrapper .vxe-table--body-wrapper:before{display:none}.vxe-table--render-default .vxe-table--fixed-left-wrapper{left:0;width:200px}.vxe-table--render-default .vxe-table--fixed-left-wrapper.scrolling--middle{box-shadow:var(--vxe-table-fixed-left-scrolling-box-shadow)}.vxe-table--render-default .vxe-table--fixed-right-wrapper{right:0}.vxe-table--render-default .vxe-table--fixed-right-wrapper.scrolling--middle{box-shadow:var(--vxe-table-fixed-right-scrolling-box-shadow)}.vxe-table--render-default .vxe-table--header-wrapper,.vxe-table--render-default .vxe-table--body-wrapper,.vxe-table--render-default .vxe-table--footer-wrapper{position:relative}.vxe-table--render-default .vxe-table--header-wrapper.fixed-left--wrapper,.vxe-table--render-default .vxe-table--header-wrapper.fixed-right--wrapper,.vxe-table--render-default .vxe-table--body-wrapper.fixed-left--wrapper,.vxe-table--render-default .vxe-table--body-wrapper.fixed-right--wrapper,.vxe-table--render-default .vxe-table--footer-wrapper.fixed-left--wrapper,.vxe-table--render-default .vxe-table--footer-wrapper.fixed-right--wrapper{position:absolute;top:0}.vxe-table--render-default .vxe-table--header-wrapper.fixed-left--wrapper,.vxe-table--render-default .vxe-table--body-wrapper.fixed-left--wrapper,.vxe-table--render-default .vxe-table--footer-wrapper.fixed-left--wrapper{left:0}.vxe-table--render-default .vxe-table--header-wrapper.fixed-right--wrapper,.vxe-table--render-default .vxe-table--body-wrapper.fixed-right--wrapper,.vxe-table--render-default .vxe-table--footer-wrapper.fixed-right--wrapper{right:0;overflow-y:auto}.vxe-table--render-default .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-table--render-default .vxe-body--y-space{width:0;float:left}.vxe-table--render-default .vxe-table--resizable-bar{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:9;cursor:col-resize}.vxe-table--render-default .vxe-table--resizable-bar:before{content:"";display:block;height:100%;background-color:var(--vxe-table-resizable-drag-line-color)}.vxe-table--render-default .vxe-table--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-table-border-width) solid var(--vxe-table-border-color)}.vxe-table--render-default .vxe-tree--line-wrapper{position:relative;display:block;height:0}.vxe-table--render-default .vxe-tree--line{content:"";position:absolute;bottom:-.9em;width:.8em;border-width:0 0 1px 1px;border-style:var(--vxe-table-tree-node-line-style);border-color:var(--vxe-table-tree-node-line-color);pointer-events:none}.vxe-table--render-default .vxe-cell--tree-node{position:relative}.vxe-table--render-default .vxe-tree--btn-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;transform:translateY(-50%);z-index:1;user-select:none;cursor:pointer}.vxe-table--render-default .vxe-tree--node-btn{display:block;color:var(--vxe-font-lighten-color)}.vxe-table--render-default .vxe-tree--node-btn:hover{color:var(--vxe-font-color)}.vxe-table--render-default .vxe-tree-cell{display:block;padding-left:1.5em}.vxe-table--render-default .vxe-body--column.col--ellipsis>.vxe-cell .vxe-tree-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-table--render-default .vxe-table--expanded{cursor:pointer}.vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn{display:inline-block;width:1em;height:1em;text-align:center;user-select:none;color:var(--vxe-font-lighten-color)}.vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn:hover{color:var(--vxe-font-color)}.vxe-table--render-default .vxe-table--expanded+.vxe-table--expand-label{padding-left:.5em}.vxe-table--render-default .vxe-body--expanded-column{border-bottom:var(--vxe-table-border-width) solid var(--vxe-table-border-color)}.vxe-table--render-default .vxe-body--expanded-column.col--ellipsis>.vxe-body--expanded-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-table--render-default .vxe-body--expanded-cell{position:relative;z-index:1}.vxe-table--render-default .vxe-body--expanded-cell.is--ellipsis{overflow:auto}.vxe-table--render-default .vxe-header--column.col--ellipsis>.vxe-cell,.vxe-table--render-default .vxe-body--column.col--ellipsis>.vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis>.vxe-cell{max-height:var(--vxe-table-row-height-default)}.vxe-table--render-default.size--medium .vxe-header--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--medium .vxe-body--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--medium .vxe-footer--column.col--ellipsis>.vxe-cell{max-height:var(--vxe-table-row-height-medium)}.vxe-table--render-default.size--medium .vxe-cell--checkbox{font-size:var(--vxe-checkbox-font-size-medium)}.vxe-table--render-default.size--medium .vxe-cell--radio{font-size:var(--vxe-radio-font-size-medium)}.vxe-table--render-default.size--small .vxe-header--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--small .vxe-body--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--small .vxe-footer--column.col--ellipsis>.vxe-cell{max-height:var(--vxe-table-row-height-small)}.vxe-table--render-default.size--small .vxe-cell--checkbox{font-size:var(--vxe-checkbox-font-size-small)}.vxe-table--render-default.size--small .vxe-cell--radio{font-size:var(--vxe-radio-font-size-small)}.vxe-table--render-default.size--mini .vxe-header--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--mini .vxe-body--column.col--ellipsis>.vxe-cell,.vxe-table--render-default.size--mini .vxe-footer--column.col--ellipsis>.vxe-cell{max-height:var(--vxe-table-row-height-mini)}.vxe-table--render-default.size--mini .vxe-cell--checkbox{font-size:var(--vxe-checkbox-font-size-mini)}.vxe-table--render-default.size--mini .vxe-cell--radio{font-size:var(--vxe-radio-font-size-mini)}.vxe-table--render-default .vxe-table--empty-placeholder,.vxe-table--render-default .vxe-table--empty-block{min-height:var(--vxe-table-row-height-default);justify-content:center;align-items:center;text-align:center;overflow:hidden;width:100%;pointer-events:none}.vxe-table--render-default .vxe-table--empty-block{display:none;visibility:hidden}.vxe-table--render-default .vxe-table--empty-placeholder{display:none;position:absolute;top:0;z-index:5}.vxe-table--render-default .vxe-table--empty-content{display:block;width:50%;pointer-events:auto}.vxe-table--render-default.is--empty .vxe-table--empty-block,.vxe-table--render-default.is--empty .vxe-table--empty-placeholder{display:flex}.vxe-table--render-default .vxe-body--column.col--selected{box-shadow:inset 0 0 0 2px var(--vxe-primary-color)}.vxe-table--render-default .vxe-body--column.col--active,.vxe-table--render-default .vxe-body--column.col--selected{position:relative}.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-cell--valid-error-hint{width:100%;position:absolute;left:50%;font-size:12px;line-height:1.2em;transform:translate(-50%);text-align:left;z-index:4;padding-left:var(--vxe-table-cell-padding-left);padding-right:var(--vxe-table-cell-padding-right)}.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-cell--valid-error-hint .vxe-cell--valid-error-msg{display:inline-block;border-radius:var(--vxe-border-radius);color:var(--vxe-table-validate-error-color);background-color:var(--vxe-table-validate-error-background-color);pointer-events:auto}.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-default-input,.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-default-textarea,.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-default-select{border-color:var(--vxe-table-validate-error-color)}.vxe-table--render-default .vxe-body--column.col--valid-error .vxe-input>.vxe-input--inner{border-color:var(--vxe-table-validate-error-color)}.vxe-table--render-default.valid-msg--single .vxe-body--row:last-child .vxe-cell--valid-error-hint{bottom:100%}.vxe-table--render-default.valid-msg--single .vxe-body--row:last-child:first-child .vxe-cell--valid-error-hint{bottom:auto}.vxe-table--render-default.valid-msg--full .vxe-body--row:last-child .vxe-cell--valid-error-hint{top:calc(100% - 1.3em)}.vxe-table--render-default.old-cell-valid .vxe-body--column.col--valid-error .vxe-cell--valid-error-hint{width:320px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);text-align:center;pointer-events:none;z-index:4}.vxe-table--render-default.old-cell-valid .vxe-body--column.col--valid-error .vxe-cell--valid-error-hint .vxe-cell--valid-error-msg{display:inline-block;border-radius:4px;padding:8px 12px;color:#fff;background-color:#f56c6c;pointer-events:auto}.vxe-table--render-default.old-cell-valid .vxe-body--row:first-child .vxe-cell--valid-error-hint{bottom:auto;top:calc(100% + 4px)}.vxe-table--render-default.old-cell-valid .vxe-body--column:first-child .vxe-cell--valid-error-hint{left:10px;transform:translate(0);text-align:left}.vxe-table--render-default .vxe-body--row.row--pending{color:var(--vxe-table-validate-error-color);text-decoration:line-through;cursor:no-drop}.vxe-table--render-default .vxe-body--row.row--pending .vxe-body--column{position:relative}.vxe-table--render-default .vxe-body--row.row--pending .vxe-body--column:after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-table-validate-error-color);z-index:1}.vxe-table--render-default .vxe-body--row.row--new>.vxe-body--column{position:relative}.vxe-table--render-default .vxe-body--row.row--new>.vxe-body--column:before{content:"";top:calc(var(--vxe-table-cell-dirty-width) * -1);left:calc(var(--vxe-table-cell-dirty-width) * -1);position:absolute;border-width:var(--vxe-table-cell-dirty-width);border-style:solid;border-color:transparent var(--vxe-table-cell-dirty-insert-color) transparent transparent;transform:rotate(45deg)}.vxe-table--render-default .vxe-body--column.col--dirty{position:relative}.vxe-table--render-default .vxe-body--column.col--dirty:before{content:"";top:calc(var(--vxe-table-cell-dirty-width) * -1);left:calc(var(--vxe-table-cell-dirty-width) * -1);position:absolute;border-width:var(--vxe-table-cell-dirty-width);border-style:solid;border-color:transparent var(--vxe-table-cell-dirty-update-color) transparent transparent;transform:rotate(45deg)}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active{box-shadow:inset 0 0 0 2px var(--vxe-primary-color)}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active.col--valid-error{box-shadow:inset 0 0 0 2px var(--vxe-table-validate-error-color)}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-default-input,.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-default-textarea{border:0;padding:0}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-default-input{height:var(--vxe-table-row-line-height)}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-input .vxe-input--inner{border:0;padding-left:0}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-textarea{height:calc(var(--vxe-table-row-line-height) - 1px)}.vxe-table--render-default.vxe-editable.cell--highlight .vxe-body--column.col--active .vxe-cell .vxe-textarea .vxe-textarea--inner{border:0}.vxe-table--render-default.vxe-editable .vxe-body--column,.vxe-table--render-default.vxe-editable .vxe-body--column.col--active{padding:0}div.vxe-table--tooltip-wrapper.vxe-table--valid-error{padding:0;color:var(--vxe-table-validate-error-color);background-color:var(--vxe-table-validate-error-background-color)}div.vxe-table--tooltip-wrapper.vxe-table--valid-error.old-cell-valid{padding:8px 12px;background-color:#f56c6c;color:#fff}.vxe-table--footer-wrapper{color:var(--vxe-table-footer-font-color);margin-top:-1px}.vxe-table--footer-wrapper.body--wrapper{overflow-x:auto}.vxe-footer--column.col--ellipsis>.vxe-cell{display:flex;align-items:center}.vxe-footer--column.col--ellipsis>.vxe-cell .vxe-cell--item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-grid{position:relative}.vxe-grid.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-grid.is--loading>.vxe-table .vxe-loading{background-color:transparent}.vxe-grid.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-grid-maximize-background-color)}.vxe-grid .vxe-grid--form-wrapper,.vxe-grid .vxe-grid--top-wrapper,.vxe-grid .vxe-grid--bottom-wrapper{position:relative}.vxe-grid{font-size:var(--vxe-font-size)}.vxe-grid.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-grid.size--small{font-size:var(--vxe-font-size-small)}.vxe-grid.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-toolbar{position:relative;display:flex;flex-direction:row;align-items:center;padding:.6em 0;color:var(--vxe-font-color);font-family:var(--vxe-font-family);background-color:var(--vxe-toolbar-background-color)}.vxe-toolbar:after{content:"";display:block;clear:both;height:0;overflow:hidden;visibility:hidden}.vxe-toolbar.is--perfect{border:1px solid var(--vxe-table-border-color);border-bottom-width:0;background-color:var(--vxe-table-header-background-color)}.vxe-toolbar.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--vxe-loading-z-index);user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-toolbar .vxe-buttons--wrapper{flex-grow:1}.vxe-toolbar .vxe-buttons--wrapper>.vxe-button+.vxe-button--item,.vxe-toolbar .vxe-buttons--wrapper>.vxe-button--item+.vxe-button,.vxe-toolbar .vxe-buttons--wrapper>.vxe-button--item+.vxe-button--item{margin-left:.8em}.vxe-toolbar .vxe-buttons--wrapper>.vxe-button--item{display:inline-block}.vxe-toolbar .vxe-tools--wrapper>.vxe-button+.vxe-tool--item,.vxe-toolbar .vxe-tools--wrapper>.vxe-tool--item+.vxe-button,.vxe-toolbar .vxe-tools--wrapper>.vxe-tool--item+.vxe-tool--item{margin-left:.8em}.vxe-toolbar .vxe-tools--wrapper>.vxe-tool--item{display:inline-block}.vxe-toolbar .vxe-tools--wrapper>.vxe-button{display:flex;align-items:center;justify-content:center}.vxe-toolbar .vxe-buttons--wrapper,.vxe-toolbar .vxe-tools--wrapper,.vxe-toolbar .vxe-tools--operate{display:flex;align-items:center}.vxe-toolbar .vxe-buttons--wrapper,.vxe-toolbar .vxe-tools--wrapper{flex-wrap:wrap}.vxe-toolbar .vxe-tools--operate{flex-shrink:0}.vxe-toolbar .vxe-custom--wrapper{position:relative}.vxe-toolbar .vxe-custom--wrapper.is--active>.vxe-button{background-color:var(--vxe-toolbar-custom-active-background-color);border-radius:50%}.vxe-toolbar{font-size:var(--vxe-font-size)}.vxe-toolbar.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-toolbar.size--small{font-size:var(--vxe-font-size-small)}.vxe-toolbar.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-pager{position:relative;display:flex;align-items:center;color:var(--vxe-font-color);font-family:var(--vxe-font-family);text-align:right;background-color:var(--vxe-pager-background-color)}.vxe-pager.is--hidden{display:none}.vxe-pager.align--left{text-align:left}.vxe-pager.align--center{text-align:center}.vxe-pager.is--loading:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--vxe-loading-z-index);user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--next-btn,.vxe-pager .vxe-pager--num-btn,.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--jump-next{color:inherit;outline:0;padding:0;border:1px solid transparent;font-size:inherit}.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):focus,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):focus,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):focus,.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):focus,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):focus{box-shadow:0 0 .25em 0 var(--vxe-primary-color)}.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):hover,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):hover,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):hover,.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):hover,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):hover{color:var(--vxe-primary-lighten-color)}.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):active,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):active,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):active,.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):active,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):active{background-color:#fff}.vxe-pager.is--border:not(.is--background) .vxe-pager--prev-btn,.vxe-pager.is--border:not(.is--background) .vxe-pager--next-btn,.vxe-pager.is--border:not(.is--background) .vxe-pager--num-btn,.vxe-pager.is--border:not(.is--background) .vxe-pager--jump-prev,.vxe-pager.is--border:not(.is--background) .vxe-pager--jump-next,.vxe-pager.is--perfect:not(.is--background) .vxe-pager--prev-btn,.vxe-pager.is--perfect:not(.is--background) .vxe-pager--next-btn,.vxe-pager.is--perfect:not(.is--background) .vxe-pager--num-btn,.vxe-pager.is--perfect:not(.is--background) .vxe-pager--jump-prev,.vxe-pager.is--perfect:not(.is--background) .vxe-pager--jump-next{border-color:var(--vxe-input-border-color)}.vxe-pager.is--background .vxe-pager--prev-btn,.vxe-pager.is--background .vxe-pager--next-btn,.vxe-pager.is--background .vxe-pager--jump-prev,.vxe-pager.is--background .vxe-pager--num-btn,.vxe-pager.is--background .vxe-pager--jump-next,.vxe-pager.is--perfect .vxe-pager--prev-btn,.vxe-pager.is--perfect .vxe-pager--next-btn,.vxe-pager.is--perfect .vxe-pager--jump-prev,.vxe-pager.is--perfect .vxe-pager--num-btn,.vxe-pager.is--perfect .vxe-pager--jump-next{background-color:var(--vxe-pager-perfect-button-background-color)}.vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active,.vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active,.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active,.vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active,.vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active,.vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active{color:#fff;background-color:var(--vxe-primary-color)}.vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active:hover,.vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active:hover,.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active:hover,.vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active:hover,.vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active:hover,.vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active:hover{background-color:var(--vxe-primary-lighten-color)}.vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active:focus,.vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active:focus,.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active:focus,.vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active:focus,.vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active:focus,.vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active:focus{border-color:var(--vxe-primary-color)}.vxe-pager.is--background .vxe-pager--jump-prev:not(.is--disabled).is--active:active,.vxe-pager.is--background .vxe-pager--num-btn:not(.is--disabled).is--active:active,.vxe-pager.is--background .vxe-pager--jump-next:not(.is--disabled).is--active:active,.vxe-pager.is--perfect .vxe-pager--jump-prev:not(.is--disabled).is--active:active,.vxe-pager.is--perfect .vxe-pager--num-btn:not(.is--disabled).is--active:active,.vxe-pager.is--perfect .vxe-pager--jump-next:not(.is--disabled).is--active:active{border-color:var(--vxe-primary-darken-color);background-color:var(--vxe-primary-darken-color)}.vxe-pager.is--perfect{border:1px solid var(--vxe-table-border-color);border-top-width:0;background-color:var(--vxe-pager-perfect-background-color)}.vxe-pager.is--border .vxe-pager--num-btn.is--active{border-color:var(--vxe-primary-color)}.vxe-pager .vxe-pager--wrapper{flex-grow:1}.vxe-pager .vxe-pager--jump-icon,.vxe-pager .vxe-pager--btn-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vxe-pager .vxe-pager--left-wrapper,.vxe-pager .vxe-pager--right-wrapper,.vxe-pager .vxe-pager--total,.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--next-btn,.vxe-pager .vxe-pager--jump,.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--jump-next,.vxe-pager .vxe-pager--count,.vxe-pager .vxe-pager--sizes{margin:0 .4em;vertical-align:middle;display:inline-block}.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--num-btn,.vxe-pager .vxe-pager--jump-next,.vxe-pager .vxe-pager--next-btn{position:relative;cursor:pointer}.vxe-pager .vxe-pager--left-wrapper,.vxe-pager .vxe-pager--right-wrapper,.vxe-pager .vxe-pager--count,.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--next-btn,.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--num-btn,.vxe-pager .vxe-pager--jump-next{height:2.15em;line-height:2em;display:inline-block}.vxe-pager .vxe-pager--jump .vxe-pager--goto,.vxe-pager .vxe-pager--sizes>.vxe-input{height:2.15em;line-height:2.15em}.vxe-pager .vxe-pager--sizes>.vxe-select--panel .vxe-select-option{text-align:center}.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--next-btn,.vxe-pager .vxe-pager--jump-next,.vxe-pager .vxe-pager--num-btn,.vxe-pager .vxe-pager--count{min-width:2.15em}.vxe-pager .vxe-pager--btn-wrapper{padding:0;margin:0;display:inline-block;text-align:center}.vxe-pager .vxe-pager--btn-wrapper .vxe-pager--jump-prev:hover .vxe-pager--jump-more-icon,.vxe-pager .vxe-pager--btn-wrapper .vxe-pager--jump-next:hover .vxe-pager--jump-more-icon{display:none}.vxe-pager .vxe-pager--btn-wrapper .vxe-pager--jump-prev:hover .vxe-pager--jump-icon,.vxe-pager .vxe-pager--btn-wrapper .vxe-pager--jump-next:hover .vxe-pager--jump-icon{display:inline-block}.vxe-pager .vxe-pager--btn-wrapper .vxe-pager--jump-icon{display:none}.vxe-pager .vxe-pager--jump-prev,.vxe-pager .vxe-pager--prev-btn,.vxe-pager .vxe-pager--next-btn,.vxe-pager .vxe-pager--jump-next,.vxe-pager .vxe-pager--num-btn{text-align:center;border-radius:var(--vxe-border-radius);margin:0 .25em;user-select:none;background-color:var(--vxe-pager-background-color)}.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):hover,.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):hover,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):hover,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):hover,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):hover{color:var(--vxe-primary-lighten-color)}.vxe-pager .vxe-pager--jump-prev:not(.is--disabled).is--active,.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):focus,.vxe-pager .vxe-pager--prev-btn:not(.is--disabled).is--active,.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):focus,.vxe-pager .vxe-pager--next-btn:not(.is--disabled).is--active,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):focus,.vxe-pager .vxe-pager--jump-next:not(.is--disabled).is--active,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):focus,.vxe-pager .vxe-pager--num-btn:not(.is--disabled).is--active,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):focus{color:var(--vxe-primary-color)}.vxe-pager .vxe-pager--jump-prev:not(.is--disabled):active,.vxe-pager .vxe-pager--prev-btn:not(.is--disabled):active,.vxe-pager .vxe-pager--next-btn:not(.is--disabled):active,.vxe-pager .vxe-pager--jump-next:not(.is--disabled):active,.vxe-pager .vxe-pager--num-btn:not(.is--disabled):active{color:var(--vxe-primary-darken-color)}.vxe-pager .vxe-pager--jump-prev.is--disabled,.vxe-pager .vxe-pager--prev-btn.is--disabled,.vxe-pager .vxe-pager--next-btn.is--disabled,.vxe-pager .vxe-pager--jump-next.is--disabled,.vxe-pager .vxe-pager--num-btn.is--disabled{cursor:no-drop;color:var(--vxe-font-disabled-color)}.vxe-pager .vxe-pager--jump-prev.is--disabled:hover,.vxe-pager .vxe-pager--prev-btn.is--disabled:hover,.vxe-pager .vxe-pager--next-btn.is--disabled:hover,.vxe-pager .vxe-pager--jump-next.is--disabled:hover,.vxe-pager .vxe-pager--num-btn.is--disabled:hover{color:var(--vxe-font-disabled-color)}.vxe-pager .vxe-pager--num-btn{vertical-align:middle}.vxe-pager .vxe-pager--num-btn.is--active{font-weight:700}.vxe-pager .vxe-pager--sizes{width:7em;text-align:center;cursor:pointer}.vxe-pager .vxe-pager--sizes .vxe-input--inner,.vxe-pager .vxe-pager--count{text-align:center}.vxe-pager .vxe-pager--count>span{vertical-align:middle}.vxe-pager .vxe-pager--count .vxe-pager--separator{margin-right:.2em}.vxe-pager .vxe-pager--count .vxe-pager--separator:before{content:"/"}.vxe-pager .vxe-pager--jump .vxe-pager--goto{border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color);color:var(--vxe-font-color);transition:border .2s ease-in-out;padding:0 .4em;background-color:var(--vxe-input-background-color)}.vxe-pager .vxe-pager--jump .vxe-pager--goto:focus{border:1px solid var(--vxe-primary-color);outline:0}.vxe-pager .vxe-pager--jump .vxe-pager--goto-text{margin-right:.25em}.vxe-pager .vxe-pager--jump .vxe-pager--classifier-text{margin-left:.25em}.vxe-pager .vxe-pager--jump .vxe-pager--goto{width:3.2em;text-align:center}.vxe-pager{font-size:var(--vxe-font-size);height:var(--vxe-table-row-height-default)}.vxe-pager.size--medium{font-size:var(--vxe-font-size-medium);height:var(--vxe-table-row-height-medium)}.vxe-pager.size--small{font-size:var(--vxe-font-size-small);height:var(--vxe-table-row-height-small)}.vxe-pager.size--mini{font-size:var(--vxe-font-size-mini);height:var(--vxe-table-row-height-mini)}.vxe-radio-button .vxe-radio--label,.vxe-radio .vxe-radio--label,.vxe-checkbox .vxe-checkbox--label,.vxe-table-custom-popup--drag-hint,.vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active)>.vxe-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-checkbox-group{display:inline-block;vertical-align:middle;line-height:1}.vxe-checkbox{display:inline-block;vertical-align:middle;white-space:nowrap;line-height:1}.vxe-checkbox .vxe-checkbox--icon{font-size:1.34em}.vxe-checkbox .vxe-checkbox--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-checkbox.is--checked,.vxe-checkbox.is--indeterminate,.vxe-checkbox.is--checked .vxe-checkbox--icon,.vxe-checkbox.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-checkbox:not(.is--disabled){cursor:pointer}.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-checkbox.is--hidden{cursor:default}.vxe-checkbox.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-checkbox.is--disabled .vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle}.vxe-checkbox+.vxe-checkbox{margin-left:10px}.vxe-checkbox>input[type=checkbox]{position:absolute;width:0;height:0;border:0;-webkit-appearance:none;appearance:none}.vxe-checkbox.is--indeterminate>input:not(:checked)+.vxe-checkbox--icon{color:var(--vxe-primary-color)}.vxe-checkbox:not(.is--disabled)>input:focus+.vxe-checkbox--icon{color:var(--vxe-primary-color);box-shadow:0 0 .2em 0 var(--vxe-primary-color)}.vxe-checkbox:not(.is--disabled):hover>input+.vxe-checkbox--icon{border-color:var(--vxe-primary-color)}.vxe-checkbox.is--disabled{cursor:not-allowed}.vxe-checkbox.is--disabled>input+.vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-checkbox.is--disabled>input+.vxe-checkbox--icon+.vxe-checkbox--label{color:var(--vxe-font-disabled-color)}.vxe-checkbox.is--disabled>input:checked+.vxe-checkbox--icon{color:var(--vxe-input-disabled-color)}.vxe-checkbox .vxe-checkbox--label{padding-left:.5em;vertical-align:middle;display:inline-block;max-width:50em}.vxe-checkbox{font-size:var(--vxe-font-size)}.vxe-checkbox.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-checkbox.size--small{font-size:var(--vxe-font-size-small)}.vxe-checkbox.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-button-group{display:inline-flex}[class*=vxe-],[class*=vxe-]:after,[class*=vxe-]:before,[class*=vxe-] *:after,[class*=vxe-] *:before{box-sizing:border-box}.vxe-radio-button .vxe-radio--label,.vxe-radio .vxe-radio--label,.vxe-table-custom-popup--drag-hint,.vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active)>.vxe-cell,.vxe-checkbox .vxe-checkbox--label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=vxe-]{font-variant:tabular-nums;font-feature-settings:"tnum"}.vxe-primary-color{color:var(--vxe-primary-color)}.vxe-success-color{color:var(--vxe-success-color)}.vxe-info-color{color:var(--vxe-info-color)}.vxe-warning-color{color:var(--vxe-warning-color)}.vxe-danger-color{color:var(--vxe-danger-color)}.vxe-perfect-color{color:var(--vxe-table-header-background-color)}.vxe-row:after{content:"";display:block;clear:both;height:0;overflow:hidden;visibility:hidden}.vxe-row>.vxe-col--1{float:left;width:4.16667%}.vxe-row>.vxe-col--2{float:left;width:8.33333%}.vxe-row>.vxe-col--3{float:left;width:12.5%}.vxe-row>.vxe-col--4{float:left;width:16.66667%}.vxe-row>.vxe-col--5{float:left;width:20.83333%}.vxe-row>.vxe-col--6{float:left;width:25%}.vxe-row>.vxe-col--7{float:left;width:29.16667%}.vxe-row>.vxe-col--8{float:left;width:33.33333%}.vxe-row>.vxe-col--9{float:left;width:37.5%}.vxe-row>.vxe-col--10{float:left;width:41.66667%}.vxe-row>.vxe-col--11{float:left;width:45.83333%}.vxe-row>.vxe-col--12{float:left;width:50%}.vxe-row>.vxe-col--13{float:left;width:54.16667%}.vxe-row>.vxe-col--14{float:left;width:58.33333%}.vxe-row>.vxe-col--15{float:left;width:62.5%}.vxe-row>.vxe-col--16{float:left;width:66.66667%}.vxe-row>.vxe-col--17{float:left;width:70.83333%}.vxe-row>.vxe-col--18{float:left;width:75%}.vxe-row>.vxe-col--19{float:left;width:79.16667%}.vxe-row>.vxe-col--20{float:left;width:83.33333%}.vxe-row>.vxe-col--21{float:left;width:87.5%}.vxe-row>.vxe-col--22{float:left;width:91.66667%}.vxe-row>.vxe-col--23{float:left;width:95.83333%}.vxe-row>.vxe-col--24{float:left;width:100%}.is--animat .vxe-sort--asc-btn:before,.is--animat .vxe-sort--asc-btn:after,.is--animat .vxe-sort--desc-btn:before,.is--animat .vxe-sort--desc-btn:after,.is--animat .vxe-filter--btn:before,.is--animat .vxe-filter--btn:after{transition:border .1s ease-in-out}.is--animat .vxe-input--wrapper .vxe-input{transition:border .1s ease-in-out}.is--animat .vxe-table--expand-btn,.is--animat .vxe-tree--node-btn{transition:transform .1s ease-in-out}.is--animat .vxe-checkbox>input:checked+span,.is--animat .vxe-radio>input:checked+span{transition:background-color .1s ease-in-out}.vxe-radio-group{display:inline-block;vertical-align:middle;line-height:1;font-size:0}.vxe-radio-group+.vxe-radio-group{margin-left:10px}.vxe-radio{display:inline-block;vertical-align:middle;white-space:nowrap;line-height:1;cursor:pointer}.vxe-radio .vxe-radio--icon{font-size:1.4em}.vxe-radio .vxe-radio--icon{color:var(--vxe-input-border-color);vertical-align:middle;font-weight:700;user-select:none}.vxe-radio.is--checked,.vxe-radio.is--checked .vxe-radio--icon{color:var(--vxe-primary-color)}.vxe-radio:not(.is--disabled){cursor:pointer}.vxe-radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-primary-color)}.vxe-radio.is--disabled{color:var(--vxe-font-disabled-color);cursor:not-allowed}.vxe-radio.is--disabled .vxe-radio--icon{color:var(--vxe-input-disabled-color)}.vxe-radio .vxe-radio--label{padding-left:.5em;vertical-align:middle}.vxe-radio>input[type=radio]{position:absolute;width:0;height:0;border:0;-webkit-appearance:none;appearance:none}.vxe-radio .vxe-radio--label{vertical-align:middle;display:inline-block;max-width:50em}.vxe-radio:not(.is--disabled)>input:focus+.vxe-radio--icon{color:var(--vxe-primary-color)}.vxe-radio:not(.vxe-radio-button)+.vxe-radio{margin-left:10px}.vxe-radio-button .vxe-radio--label{background-color:var(--vxe-radio-button-default-background-color)}.vxe-radio-button:first-child .vxe-radio--label{border-left:1px solid var(--vxe-input-border-color);border-radius:var(--vxe-border-radius) 0 0 var(--vxe-border-radius)}.vxe-radio-button:last-child .vxe-radio--label{border-radius:0 var(--vxe-border-radius) var(--vxe-border-radius) 0}.vxe-radio-button>input:checked+.vxe-radio--label{color:#fff;background-color:var(--vxe-primary-color);border-color:var(--vxe-primary-color)}.vxe-radio-button .vxe-radio--label{padding:0 1em;line-height:calc(var(--vxe-button-height-default) - 2px);display:inline-block;border-style:solid;border-color:var(--vxe-input-border-color);border-width:1px 1px 1px 0;max-width:50em}.vxe-radio-button.is--disabled{cursor:not-allowed}.vxe-radio-button.is--disabled>input:not(:checked)+.vxe-radio--label{color:var(--vxe-input-disabled-color)}.vxe-radio-button.is--disabled>input:checked+.vxe-radio--label{border-color:var(--vxe-primary-lighten-color);background-color:var(--vxe-primary-lighten-color)}.vxe-radio-button:not(.is--disabled)>input:focus+.vxe-radio--label{border-color:var(--vxe-primary-color);box-shadow:0 0 .2em 0 var(--vxe-primary-color)}.vxe-radio-button:not(.is--disabled):hover>input:not(:checked)+.vxe-radio--label{color:var(--vxe-primary-color)}.vxe-radio-button.size--medium .vxe-radio--label{line-height:calc(var(--vxe-button-height-medium) - 2px)}.vxe-radio-button.size--small .vxe-radio--label{line-height:calc(var(--vxe-button-height-small) - 2px)}.vxe-radio-button.size--mini .vxe-radio--label{line-height:calc(var(--vxe-button-height-mini) - 2px)}.vxe-radio{font-size:var(--vxe-font-size)}.vxe-radio.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-radio.size--small{font-size:var(--vxe-font-size-small)}.vxe-radio.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-input--inner{width:100%;height:100%;border-radius:var(--vxe-border-radius);outline:0;margin:0;font-size:inherit;font-family:inherit;line-height:inherit;padding:0 .6em;color:var(--vxe-font-color);border:1px solid var(--vxe-input-border-color);background-color:var(--vxe-input-background-color);box-shadow:none}.vxe-input--inner::placeholder{color:var(--vxe-input-placeholder-color)}.vxe-input--inner::-webkit-autofill{background-color:var(--vxe-input-background-color)}.vxe-input--inner[type=number]{-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.vxe-input--inner[type=search],.vxe-input--inner[type=search]::-webkit-search-cancel-button,.vxe-input--inner[type=number]::-webkit-outer-spin-button,.vxe-input--inner[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.vxe-input--inner[disabled]{cursor:not-allowed;color:var(--vxe-font-disabled-color);background-color:var(--vxe-input-disabled-background-color)}.vxe-input{display:inline-block;position:relative;width:180px}.vxe-input.is--disabled .vxe-input--date-picker-suffix,.vxe-input.is--disabled .vxe-input--search-suffix,.vxe-input.is--disabled .vxe-input--suffix,.vxe-input.is--disabled .vxe-input--password-suffix,.vxe-input.is--disabled .vxe-input--number-suffix{cursor:no-drop}.vxe-input:not(.is--disabled) .vxe-input--search-suffix,.vxe-input:not(.is--disabled) .vxe-input--clear-icon,.vxe-input:not(.is--disabled) .vxe-input--password-suffix,.vxe-input:not(.is--disabled) .vxe-input--number-suffix{cursor:pointer}.vxe-input:not(.is--disabled).is--active .vxe-input--inner{border:1px solid var(--vxe-primary-color)}.vxe-input .vxe-input--prefix,.vxe-input .vxe-input--suffix,.vxe-input .vxe-input--extra-suffix{display:flex;position:absolute;top:0;width:1.6em;height:100%;user-select:none;align-items:center;justify-content:center;color:var(--vxe-table-column-icon-border-color)}.vxe-input--count{position:absolute;top:1px;right:.5em;height:calc(100% - 2px);color:var(--vxe-input-count-color);background-color:var(--vxe-input-count-background-color)}.vxe-input--count.is--error{color:var(--vxe-input-count-error-color)}.vxe-input .vxe-input--prefix{left:.2em}.vxe-input.is--prefix .vxe-input--inner{padding-left:1.8em}.vxe-input .vxe-input--clear-icon{display:none}.vxe-input .vxe-input--suffix,.vxe-input .vxe-input--extra-suffix{right:.2em}.vxe-input.is--suffix .vxe-input--inner{padding-right:1.8em}.vxe-input.is--suffix.is--count .vxe-input--inner{padding-right:5em}.vxe-input.is--suffix .vxe-input--count{right:2.1em}.vxe-input.is--left .vxe-input--inner{text-align:left}.vxe-input.is--center .vxe-input--inner{text-align:center}.vxe-input.is--right .vxe-input--inner{text-align:right}.vxe-input.is--count .vxe-input--inner{padding-right:3.4em}.vxe-input.is--controls.type--search .vxe-input--inner,.vxe-input.is--controls.type--password .vxe-input--inner,.vxe-input.is--controls.type--number .vxe-input--inner,.vxe-input.is--controls.type--integer .vxe-input--inner,.vxe-input.is--controls.type--float .vxe-input--inner,.vxe-input.is--controls.type--date .vxe-input--inner,.vxe-input.is--controls.type--datetime .vxe-input--inner,.vxe-input.is--controls.type--week .vxe-input--inner,.vxe-input.is--controls.type--month .vxe-input--inner,.vxe-input.is--controls.type--quarter .vxe-input--inner,.vxe-input.is--controls.type--year .vxe-input--inner,.vxe-input.is--controls.type--time .vxe-input--inner{padding-right:1.8em}.vxe-input.is--controls.type--search .vxe-input--suffix,.vxe-input.is--controls.type--password .vxe-input--suffix,.vxe-input.is--controls.type--number .vxe-input--suffix,.vxe-input.is--controls.type--integer .vxe-input--suffix,.vxe-input.is--controls.type--float .vxe-input--suffix,.vxe-input.is--controls.type--date .vxe-input--suffix,.vxe-input.is--controls.type--datetime .vxe-input--suffix,.vxe-input.is--controls.type--week .vxe-input--suffix,.vxe-input.is--controls.type--month .vxe-input--suffix,.vxe-input.is--controls.type--quarter .vxe-input--suffix,.vxe-input.is--controls.type--year .vxe-input--suffix,.vxe-input.is--controls.type--time .vxe-input--suffix{right:1.6em}.vxe-input.is--suffix.is--controls.type--search .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--password .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--number .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--integer .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--float .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--date .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--datetime .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--week .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--month .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--quarter .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--year .vxe-input--inner,.vxe-input.is--suffix.is--controls.type--time .vxe-input--inner{padding-right:3.2em}.vxe-input.is--suffix:hover .vxe-input--suffix.is--clear .vxe-input--suffix-icon{display:none}.vxe-input.is--suffix:hover .vxe-input--suffix.is--clear .vxe-input--clear-icon{display:inline}.vxe-input:not(.is--disabled) .vxe-input--suffix:hover .vxe-input--clear-icon{color:var(--vxe-font-color)}.vxe-input:not(.is--disabled) .vxe-input--suffix:active .vxe-input--clear-icon{color:var(--vxe-primary-color)}.vxe-input:not(.is--disabled) .vxe-input--extra-suffix:hover .vxe-input--search-suffix,.vxe-input:not(.is--disabled) .vxe-input--extra-suffix:hover .vxe-input--password-suffix{color:var(--vxe-font-color)}.vxe-input:not(.is--disabled) .vxe-input--extra-suffix:active .vxe-input--search-suffix,.vxe-input:not(.is--disabled) .vxe-input--extra-suffix:active .vxe-input--password-suffix{color:var(--vxe-primary-color)}.vxe-input:not(.is--disabled) .vxe-input--number-prev:hover,.vxe-input:not(.is--disabled) .vxe-input--number-next:hover{color:var(--vxe-font-color)}.vxe-input:not(.is--disabled) .vxe-input--number-prev:active,.vxe-input:not(.is--disabled) .vxe-input--number-next:active{color:var(--vxe-primary-color)}.vxe-input:not(.is--disabled) .vxe-input--number-prev.is--disabled,.vxe-input:not(.is--disabled) .vxe-input--number-next.is--disabled{cursor:no-drop;color:var(--vxe-input-number-disabled-color)}.vxe-input .vxe-input--password-suffix,.vxe-input .vxe-input--number-suffix,.vxe-input .vxe-input--date-picker-suffix,.vxe-input .vxe-input--search-suffix{position:relative;width:100%;height:100%}.vxe-input .vxe-input--date-picker-icon,.vxe-input .vxe-input--search-icon,.vxe-input .vxe-input--password-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.vxe-input .vxe-input--date-picker-icon[class*=vxe-icon-],.vxe-input .vxe-input--search-icon[class*=vxe-icon-],.vxe-input .vxe-input--password-icon[class*=vxe-icon-]{font-size:1.2em}.vxe-input .vxe-input--date-picker-suffix{display:flex;align-items:center;justify-content:center}.vxe-input .vxe-input--date-picker-suffix .vxe-input--panel-icon{transition:transform .2s ease-in-out}.vxe-input .vxe-input--number-prev,.vxe-input .vxe-input--number-next{position:relative;display:block;height:50%;width:100%;text-align:center}.vxe-input .vxe-input--number-prev-icon,.vxe-input .vxe-input--number-next-icon{line-height:.8em;position:absolute;left:50%;transform:translate(-50%)}.vxe-input .vxe-input--number-prev-icon{bottom:0}.vxe-input .vxe-input--number-next-icon{top:0}.vxe-input--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-font-color);font-size:var(--vxe-font-size);text-align:left}.vxe-input--panel:not(.is--transfer){min-width:100%}.vxe-input--panel.is--transfer{position:fixed}.vxe-input--panel.animat--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden;transform-style:preserve-3d}.vxe-input--panel.animat--leave[placement=top]{transform-origin:center bottom}.vxe-input--panel.animat--enter{opacity:1;transform:scaleY(1)}.vxe-input--panel-wrapper,.vxe-input--panel-layout-wrapper{background-color:var(--vxe-input-panel-background-color);border:1px solid var(--vxe-table-popup-border-color);box-shadow:0 0 6px 2px #0000001a;border-radius:var(--vxe-border-radius)}.vxe-input--panel-wrapper{overflow-x:hidden;overflow-y:auto}.vxe-input--panel-layout-wrapper{display:flex;flex-direction:row}.vxe-input--panel.type--date,.vxe-input--panel.type--week,.vxe-input--panel.type--month,.vxe-input--panel.type--quarter,.vxe-input--panel.type--year{user-select:none}.vxe-input--panel.type--datetime .vxe-input--panel-right-wrapper{display:flex;flex-direction:column;border-left:1px solid var(--vxe-input-border-color)}.vxe-input--panel.type--date .vxe-input--date-picker-body th,.vxe-input--panel.type--datetime .vxe-input--date-picker-body th{width:14.28571%}.vxe-input--panel.type--week .vxe-input--date-picker-body table th{width:12%}.vxe-input--panel.type--week .vxe-input--date-picker-body table th:first-child{width:14%}.vxe-input--panel.type--quarter .vxe-input--date-picker-body table th{width:50%}.vxe-input--panel.type--month .vxe-input--date-picker-body td,.vxe-input--panel.type--year .vxe-input--date-picker-body td{width:25%}.vxe-input--time-picker-title{display:inline-block;text-align:center;border:1px solid var(--vxe-input-border-color);border-radius:var(--vxe-border-radius)}.vxe-input--time-picker-confirm{position:absolute;right:0;top:0}.vxe-input--time-picker-confirm,.vxe-input--date-picker-confirm{outline:0;border:1px solid var(--vxe-input-border-color);border-radius:var(--vxe-border-radius);cursor:pointer;color:var(--vxe-input-date-time-confirm-button-color);border-color:var(--vxe-primary-color);background-color:var(--vxe-primary-color)}.vxe-input--time-picker-confirm:hover,.vxe-input--date-picker-confirm:hover{background-color:var(--vxe-primary-lighten-color);border-color:var(--vxe-primary-lighten-color)}.vxe-input--time-picker-confirm:active,.vxe-input--date-picker-confirm:active{background-color:var(--vxe-primary-darken-color);border-color:var(--vxe-primary-darken-color)}.vxe-input--time-picker-header{display:flex;position:relative;flex-shrink:0}.vxe-input--date-picker-header{display:flex;flex-direction:row;user-select:none}.vxe-input--date-picker-header .vxe-input--date-picker-type-wrapper{flex-grow:1}.vxe-input--date-picker-header .vxe-input--date-picker-btn-wrapper{flex-shrink:0;text-align:center}.vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,.vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn{display:inline-block}.vxe-input--date-picker-btn-wrapper{display:flex;flex-direction:row}.vxe-input--date-picker-label,.vxe-input--date-picker-btn{display:flex;align-items:center;justify-content:center;background-color:var(--vxe-button-default-background-color)}.vxe-input--date-picker-btn.is--disabled{color:var(--vxe-font-disabled-color);cursor:no-drop}.vxe-input--date-picker-btn:not(.is--disabled){cursor:pointer}.vxe-input--date-picker-btn:not(.is--disabled):hover{background-color:#fff}.vxe-input--date-picker-btn:not(.is--disabled):active{background-color:#fff}.vxe-input--date-picker-body{border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-table-popup-border-color);user-select:none}.vxe-input--date-picker-body table{border:0;width:100%;border-spacing:0;border-collapse:separate;text-align:center;table-layout:fixed}.vxe-input--date-picker-body th,.vxe-input--date-picker-body td{font-weight:400}.vxe-input--date-picker-body th{box-shadow:inset 0 -1px 0 0 var(--vxe-table-popup-border-color)}.vxe-input--date-picker-body td.is--prev,.vxe-input--date-picker-body td.is--next,.vxe-input--date-picker-body td.is--prev .vxe-input--date-label,.vxe-input--date-picker-body td.is--prev .vxe-input--date-festival,.vxe-input--date-picker-body td.is--next .vxe-input--date-label,.vxe-input--date-picker-body td.is--next .vxe-input--date-festival{color:var(--vxe-font-disabled-color)}.vxe-input--date-picker-body td.is--now{box-shadow:inset 0 0 0 1px var(--vxe-table-popup-border-color)}.vxe-input--date-picker-body td.is--now:not(.is--selected).is--current{color:var(--vxe-primary-color)}.vxe-input--date-picker-body td.is--now:not(.is--selected).is--current .vxe-input--date-label,.vxe-input--date-picker-body td.is--now:not(.is--selected).is--current .vxe-input--date-festival{color:var(--vxe-primary-color)}.vxe-input--date-picker-body td.is--hover{background-color:var(--vxe-input-date-picker-hover-background-color)}.vxe-input--date-picker-body td.is--selected{color:var(--vxe-input-date-picker-selected-color);background-color:var(--vxe-primary-color)}.vxe-input--date-picker-body td.is--selected.is--prev,.vxe-input--date-picker-body td.is--selected.is--next{background-color:var(--vxe-primary-lighten-color)}.vxe-input--date-picker-body td.is--selected .vxe-input--date-label,.vxe-input--date-picker-body td.is--selected .vxe-input--date-festival{color:var(--vxe-input-date-picker-festival-selected-color)}.vxe-input--date-picker-body td.is--selected .vxe-input--date-label.is-notice:before{background-color:var(--vxe-input-date-picker-notice-selected-background-color)}.vxe-input--date-picker-body td:not(.is--disabled){cursor:pointer}.vxe-input--date-picker-body td.is--disabled{cursor:no-drop;color:var(--vxe-input-disabled-color);background-color:var(--vxe-input-disabled-background-color)}.vxe-input--date-picker-body td.is--disabled .vxe-input--date-label,.vxe-input--date-picker-body td.is--disabled .vxe-input--date-festival{color:var(--vxe-input-disabled-color)}.vxe-input--date-week-view th:first-child{box-shadow:inset -1px -1px 0 0 var(--vxe-table-popup-border-color)}.vxe-input--date-week-view td:first-child{box-shadow:inset -1px 0 0 0 var(--vxe-table-popup-border-color)}.vxe-input--date-label,.vxe-input--date-festival{display:block;overflow:hidden}.vxe-input--date-label{position:relative}.vxe-input--date-label.is-notice:before{content:"";position:absolute;width:4px;height:4px;left:.8em;top:.1em;transform:translate(-50%);border-radius:100%;background-color:var(--vxe-input-date-notice-background-color)}.vxe-input--date-label--extra{position:absolute;right:.1em;top:-.2em;font-size:12px;line-height:12px;transform:scale(.7);color:var(--vxe-input-date-extra-color)}.vxe-input--date-label--extra.is-important{color:var(--vxe-input-date-extra-important-color)}.vxe-input--date-festival{color:var(--vxe-input-date-festival-color);height:14px;line-height:1;overflow:hidden}.vxe-input--date-festival.is-important{color:var(--vxe-input-date-festival-important-color)}.vxe-input--date-festival--label{display:block;font-size:12px;transform:scale(.8)}@keyframes festivalOverlap2{0%,45%,to{transform:translateY(0)}50%,95%{transform:translateY(-14px)}}@keyframes festivalOverlap3{0%,20%,to{transform:translateY(0)}25%,45%,75%,95%{transform:translateY(-14px)}50%,70%{transform:translateY(-28px)}}.vxe-input--date-festival--overlap{display:block;font-size:12px}.vxe-input--date-festival--overlap.overlap--2{animation:festivalOverlap2 6s infinite ease-in-out}.vxe-input--date-festival--overlap.overlap--3{animation:festivalOverlap3 9s infinite ease-in-out}.vxe-input--date-festival--overlap>span{height:14px;display:block;transform:scale(.8)}.vxe-input--time-picker-body{position:relative;display:flex;flex-direction:row;border:1px solid var(--vxe-table-popup-border-color);flex-grow:1;border-radius:var(--vxe-border-radius);user-select:none}.vxe-input--time-picker-body>ul{height:100%;overflow:hidden;margin:0;padding:0}.vxe-input--time-picker-body>ul:before,.vxe-input--time-picker-body>ul:after{content:" ";display:block}.vxe-input--time-picker-body>ul:hover{overflow-y:auto}.vxe-input--time-picker-body>ul>li{display:block}.vxe-input--time-picker-body>ul>li:hover{background-color:var(--vxe-input-date-picker-hover-background-color);cursor:pointer}.vxe-input--time-picker-body>ul>li.is--selected{font-weight:700;color:var(--vxe-primary-color)}.vxe-input--time-picker-body .vxe-input--time-picker-minute-list,.vxe-input--time-picker-body .vxe-input--time-picker-second-list{border-left:1px solid var(--vxe-table-popup-border-color)}.vxe-input{font-size:var(--vxe-font-size);height:var(--vxe-input-height-default);line-height:var(--vxe-input-height-default)}.vxe-input .vxe-input--inner[type=date]::-webkit-inner-spin-button,.vxe-input .vxe-input--inner[type=month]::-webkit-inner-spin-button,.vxe-input .vxe-input--inner[type=week]::-webkit-inner-spin-button{margin-top:6px}.vxe-input .vxe-input--inner[type=date]::-webkit-inner-spin-button,.vxe-input .vxe-input--inner[type=month]::-webkit-inner-spin-button,.vxe-input .vxe-input--inner[type=week]::-webkit-inner-spin-button,.vxe-input .vxe-input--inner[type=number]::-webkit-inner-spin-button{height:24px}.vxe-input.size--medium{font-size:var(--vxe-font-size-medium);height:var(--vxe-input-height-medium);line-height:var(--vxe-input-height-medium)}.vxe-input.size--medium .vxe-input--inner[type=date]::-webkit-inner-spin-button,.vxe-input.size--medium .vxe-input--inner[type=month]::-webkit-inner-spin-button,.vxe-input.size--medium .vxe-input--inner[type=week]::-webkit-inner-spin-button{margin-top:4px}.vxe-input.size--small{font-size:var(--vxe-font-size-small);height:var(--vxe-input-height-small);line-height:var(--vxe-input-height-small)}.vxe-input.size--small .vxe-input--inner[type=date]::-webkit-inner-spin-button,.vxe-input.size--small .vxe-input--inner[type=month]::-webkit-inner-spin-button,.vxe-input.size--small .vxe-input--inner[type=week]::-webkit-inner-spin-button{margin-top:2px}.vxe-input.size--mini{font-size:var(--vxe-font-size-mini);height:var(--vxe-input-height-mini);line-height:var(--vxe-input-height-mini)}.vxe-input.size--mini .vxe-input--inner[type=date]::-webkit-inner-spin-button,.vxe-input.size--mini .vxe-input--inner[type=month]::-webkit-inner-spin-button,.vxe-input.size--mini .vxe-input--inner[type=week]::-webkit-inner-spin-button{margin-top:0}.vxe-input--panel{font-size:var(--vxe-font-size)}.vxe-input--panel .vxe-input--panel-wrapper{max-height:380px}.vxe-input--panel.type--date .vxe-input--panel-wrapper,.vxe-input--panel.type--time .vxe-input--panel-wrapper,.vxe-input--panel.type--week .vxe-input--panel-wrapper,.vxe-input--panel.type--month .vxe-input--panel-wrapper,.vxe-input--panel.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.type--year .vxe-input--panel-wrapper{padding:11px}.vxe-input--panel.type--date .vxe-input--panel-wrapper,.vxe-input--panel.type--month .vxe-input--panel-wrapper,.vxe-input--panel.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.type--year .vxe-input--panel-wrapper{width:336px}.vxe-input--panel.type--week .vxe-input--panel-wrapper{width:380px}.vxe-input--panel.type--time .vxe-input--panel-wrapper{width:170px}.vxe-input--panel.type--datetime .vxe-input--panel-left-wrapper{width:336px}.vxe-input--panel.type--datetime .vxe-input--panel-left-wrapper,.vxe-input--panel.type--datetime .vxe-input--panel-right-wrapper{padding:11px}.vxe-input--panel .vxe-input--time-picker-title{height:30px;line-height:30px;padding:0 11px}.vxe-input--panel .vxe-input--date-picker-label,.vxe-input--panel .vxe-input--date-picker-btn{height:30px;line-height:30px}.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn{margin-left:8px}.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn{width:30px;border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color)}.vxe-input--panel .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,.vxe-input--panel .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn{padding:0 9px}.vxe-input--panel .vxe-input--time-picker-header,.vxe-input--panel .vxe-input--date-picker-header{padding-bottom:8px}.vxe-input--panel .vxe-input--date-picker-body table,.vxe-input--panel .vxe-input--time-picker-body{height:calc(var(--vxe-input-date-time-week-row-height-default) * 6 + var(--vxe-input-date-title-height-default))}.vxe-input--panel .vxe-input--time-picker-body>ul{width:48px}.vxe-input--panel .vxe-input--time-picker-body>ul:before,.vxe-input--panel .vxe-input--time-picker-body>ul:after{height:120px}.vxe-input--panel .vxe-input--time-picker-body>ul>li{height:26px;padding-left:9px}.vxe-input--panel .vxe-input--time-picker-body .vxe-input--time-picker-minute-list{left:48px}.vxe-input--panel .vxe-input--time-picker-body .vxe-input--time-picker-second-list{left:96px}.vxe-input--panel .vxe-input--date-day-view td,.vxe-input--panel .vxe-input--date-week-view td{height:var(--vxe-input-date-time-week-row-height-default)}.vxe-input--panel .vxe-input--date-quarter-view td{height:var(--vxe-input-date-quarter-row-height-default)}.vxe-input--panel .vxe-input--date-month-view td,.vxe-input--panel .vxe-input--date-year-view td{height:var(--vxe-input-date-month-year-row-height-default)}.vxe-input--panel .vxe-input--date-picker-body th{height:var(--vxe-input-date-title-height-default)}.vxe-input--panel .vxe-input--time-picker-confirm,.vxe-input--panel .vxe-input--date-picker-confirm{height:30px;padding:0 9px}.vxe-input--panel .vxe-input--date-label{line-height:calc(var(--vxe-font-size) + 1px)}.vxe-input--panel.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-input--panel.size--medium .vxe-input--panel-wrapper{max-height:360px}.vxe-input--panel.size--medium.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--time .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--week .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--year .vxe-input--panel-wrapper{padding:10px}.vxe-input--panel.size--medium.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--medium.type--year .vxe-input--panel-wrapper{width:336px}.vxe-input--panel.size--medium.type--week .vxe-input--panel-wrapper{width:380px}.vxe-input--panel.size--medium.type--time .vxe-input--panel-wrapper{width:168px}.vxe-input--panel.size--medium.type--datetime .vxe-input--panel-left-wrapper{width:336px}.vxe-input--panel.size--medium.type--datetime .vxe-input--panel-left-wrapper,.vxe-input--panel.size--medium.type--datetime .vxe-input--panel-right-wrapper{padding:10px}.vxe-input--panel.size--medium .vxe-input--time-picker-title{height:29px;line-height:29px;padding:0 10px}.vxe-input--panel.size--medium .vxe-input--date-picker-label,.vxe-input--panel.size--medium .vxe-input--date-picker-btn{height:29px;line-height:29px}.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn{margin-left:7px}.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn{width:29px;border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color)}.vxe-input--panel.size--medium .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,.vxe-input--panel.size--medium .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn{padding:0 8px}.vxe-input--panel.size--medium .vxe-input--time-picker-header,.vxe-input--panel.size--medium .vxe-input--date-picker-header{padding-bottom:7px}.vxe-input--panel.size--medium .vxe-input--date-picker-body table,.vxe-input--panel.size--medium .vxe-input--time-picker-body{height:calc(var(--vxe-input-date-time-week-row-height-medium) * 6 + var(--vxe-input-date-title-height-medium))}.vxe-input--panel.size--medium .vxe-input--time-picker-body>ul{width:48px}.vxe-input--panel.size--medium .vxe-input--time-picker-body>ul:before,.vxe-input--panel.size--medium .vxe-input--time-picker-body>ul:after{height:120px}.vxe-input--panel.size--medium .vxe-input--time-picker-body>ul>li{height:26px;padding-left:8px}.vxe-input--panel.size--medium .vxe-input--time-picker-body .vxe-input--time-picker-minute-list{left:48px}.vxe-input--panel.size--medium .vxe-input--time-picker-body .vxe-input--time-picker-second-list{left:96px}.vxe-input--panel.size--medium .vxe-input--date-day-view td,.vxe-input--panel.size--medium .vxe-input--date-week-view td{height:var(--vxe-input-date-time-week-row-height-medium)}.vxe-input--panel.size--medium .vxe-input--date-quarter-view td{height:var(--vxe-input-date-quarter-row-height-medium)}.vxe-input--panel.size--medium .vxe-input--date-month-view td,.vxe-input--panel.size--medium .vxe-input--date-year-view td{height:var(--vxe-input-date-month-year-row-height-medium)}.vxe-input--panel.size--medium .vxe-input--date-picker-body th{height:var(--vxe-input-date-title-height-medium)}.vxe-input--panel.size--medium .vxe-input--time-picker-confirm,.vxe-input--panel.size--medium .vxe-input--date-picker-confirm{height:29px;padding:0 8px}.vxe-input--panel.size--medium .vxe-input--date-label{line-height:calc(var(--vxe-font-size-medium) + 1px)}.vxe-input--panel.size--small{font-size:var(--vxe-font-size-small)}.vxe-input--panel.size--small .vxe-input--panel-wrapper{max-height:340px}.vxe-input--panel.size--small.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--time .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--week .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--year .vxe-input--panel-wrapper{padding:9px}.vxe-input--panel.size--small.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--small.type--year .vxe-input--panel-wrapper{width:312px}.vxe-input--panel.size--small.type--week .vxe-input--panel-wrapper{width:354px}.vxe-input--panel.size--small.type--time .vxe-input--panel-wrapper{width:154px}.vxe-input--panel.size--small.type--datetime .vxe-input--panel-left-wrapper{width:312px}.vxe-input--panel.size--small.type--datetime .vxe-input--panel-left-wrapper,.vxe-input--panel.size--small.type--datetime .vxe-input--panel-right-wrapper{padding:9px}.vxe-input--panel.size--small .vxe-input--time-picker-title{height:28px;line-height:28px;padding:0 9px}.vxe-input--panel.size--small .vxe-input--date-picker-label,.vxe-input--panel.size--small .vxe-input--date-picker-btn{height:28px;line-height:28px}.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn{margin-left:6px}.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn{width:28px;border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color)}.vxe-input--panel.size--small .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,.vxe-input--panel.size--small .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn{padding:0 7px}.vxe-input--panel.size--small .vxe-input--time-picker-header,.vxe-input--panel.size--small .vxe-input--date-picker-header{padding-bottom:6px}.vxe-input--panel.size--small .vxe-input--date-picker-body table,.vxe-input--panel.size--small .vxe-input--time-picker-body{height:calc(var(--vxe-input-date-time-week-row-height-small) * 6 + var(--vxe-input-date-title-height-small))}.vxe-input--panel.size--small .vxe-input--time-picker-body>ul{width:44px}.vxe-input--panel.size--small .vxe-input--time-picker-body>ul:before,.vxe-input--panel.size--small .vxe-input--time-picker-body>ul:after{height:110px}.vxe-input--panel.size--small .vxe-input--time-picker-body>ul>li{height:26px;padding-left:7px}.vxe-input--panel.size--small .vxe-input--time-picker-body .vxe-input--time-picker-minute-list{left:44px}.vxe-input--panel.size--small .vxe-input--time-picker-body .vxe-input--time-picker-second-list{left:88px}.vxe-input--panel.size--small .vxe-input--date-day-view td,.vxe-input--panel.size--small .vxe-input--date-week-view td{height:var(--vxe-input-date-time-week-row-height-small)}.vxe-input--panel.size--small .vxe-input--date-quarter-view td{height:var(--vxe-input-date-quarter-row-height-small)}.vxe-input--panel.size--small .vxe-input--date-month-view td,.vxe-input--panel.size--small .vxe-input--date-year-view td{height:var(--vxe-input-date-month-year-row-height-small)}.vxe-input--panel.size--small .vxe-input--date-picker-body th{height:var(--vxe-input-date-title-height-small)}.vxe-input--panel.size--small .vxe-input--time-picker-confirm,.vxe-input--panel.size--small .vxe-input--date-picker-confirm{height:28px;padding:0 7px}.vxe-input--panel.size--small .vxe-input--date-label{line-height:calc(var(--vxe-font-size-small) + 1px)}.vxe-input--panel.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-input--panel.size--mini .vxe-input--panel-wrapper{max-height:320px}.vxe-input--panel.size--mini.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--time .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--week .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--year .vxe-input--panel-wrapper{padding:8px}.vxe-input--panel.size--mini.type--date .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--month .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--quarter .vxe-input--panel-wrapper,.vxe-input--panel.size--mini.type--year .vxe-input--panel-wrapper{width:288px}.vxe-input--panel.size--mini.type--week .vxe-input--panel-wrapper{width:326px}.vxe-input--panel.size--mini.type--time .vxe-input--panel-wrapper{width:146px}.vxe-input--panel.size--mini.type--datetime .vxe-input--panel-left-wrapper{width:288px}.vxe-input--panel.size--mini.type--datetime .vxe-input--panel-left-wrapper,.vxe-input--panel.size--mini.type--datetime .vxe-input--panel-right-wrapper{padding:8px}.vxe-input--panel.size--mini .vxe-input--time-picker-title{height:27px;line-height:27px;padding:0 8px}.vxe-input--panel.size--mini .vxe-input--date-picker-label,.vxe-input--panel.size--mini .vxe-input--date-picker-btn{height:27px;line-height:27px}.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn{margin-left:5px}.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn{width:27px;border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color)}.vxe-input--panel.size--mini .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,.vxe-input--panel.size--mini .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn{padding:0 6px}.vxe-input--panel.size--mini .vxe-input--time-picker-header,.vxe-input--panel.size--mini .vxe-input--date-picker-header{padding-bottom:5px}.vxe-input--panel.size--mini .vxe-input--date-picker-body table,.vxe-input--panel.size--mini .vxe-input--time-picker-body{height:calc(var(--vxe-input-date-time-week-row-height-mini) * 6 + var(--vxe-input-date-title-height-mini))}.vxe-input--panel.size--mini .vxe-input--time-picker-body>ul{width:42px}.vxe-input--panel.size--mini .vxe-input--time-picker-body>ul:before,.vxe-input--panel.size--mini .vxe-input--time-picker-body>ul:after{height:100px}.vxe-input--panel.size--mini .vxe-input--time-picker-body>ul>li{height:26px;padding-left:6px}.vxe-input--panel.size--mini .vxe-input--time-picker-body .vxe-input--time-picker-minute-list{left:42px}.vxe-input--panel.size--mini .vxe-input--time-picker-body .vxe-input--time-picker-second-list{left:84px}.vxe-input--panel.size--mini .vxe-input--date-day-view td,.vxe-input--panel.size--mini .vxe-input--date-week-view td{height:var(--vxe-input-date-time-week-row-height-mini)}.vxe-input--panel.size--mini .vxe-input--date-quarter-view td{height:var(--vxe-input-date-quarter-row-height-mini)}.vxe-input--panel.size--mini .vxe-input--date-month-view td,.vxe-input--panel.size--mini .vxe-input--date-year-view td{height:var(--vxe-input-date-month-year-row-height-mini)}.vxe-input--panel.size--mini .vxe-input--date-picker-body th{height:var(--vxe-input-date-title-height-mini)}.vxe-input--panel.size--mini .vxe-input--time-picker-confirm,.vxe-input--panel.size--mini .vxe-input--date-picker-confirm{height:27px;padding:0 6px}.vxe-input--panel.size--mini .vxe-input--date-label{line-height:calc(var(--vxe-font-size-mini) + 1px)}.vxe-textarea{position:relative;display:inline-block}.vxe-textarea:not(.def--cols){width:100%}.vxe-textarea:not(.def--cols) .vxe-textarea--inner{width:100%}.vxe-textarea--inner{border-radius:var(--vxe-border-radius);outline:0;font-size:inherit;color:var(--vxe-font-color);line-height:inherit;border:1px solid var(--vxe-input-border-color);background-color:var(--vxe-textarea-background-color);display:block;padding:.3em .6em}.vxe-textarea--inner::placeholder{color:var(--vxe-input-placeholder-color)}.vxe-textarea--inner:focus{border:1px solid var(--vxe-primary-color)}.vxe-textarea--inner[disabled]{cursor:not-allowed;background-color:var(--vxe-input-disabled-background-color)}.vxe-textarea--inner,.vxe-textarea--autosize{line-height:var(--vxe-textarea-line-height);color:var(--vxe-font-color);font-family:var(--vxe-font-family)}.vxe-textarea--autosize{display:block;position:fixed;top:0;left:0;width:100%;margin:0;padding:.3em .6em;word-wrap:break-word;white-space:pre-wrap;z-index:-1;visibility:hidden}.vxe-textarea--count{position:absolute;bottom:.2em;right:1.4em;padding-left:.2em;color:var(--vxe-input-count-color);background-color:var(--vxe-input-count-background-color)}.vxe-textarea--count.is--error{color:var(--vxe-input-count-error-color)}.vxe-textarea,.vxe-textarea--autosize{font-size:var(--vxe-font-size)}.vxe-textarea.size--medium,.vxe-textarea--autosize.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-textarea.size--small,.vxe-textarea--autosize.size--small{font-size:var(--vxe-font-size-small)}.vxe-textarea.size--mini,.vxe-textarea--autosize.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-textarea:not(.is--autosize){min-height:var(--vxe-input-height-default)}.vxe-textarea.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-textarea.size--medium:not(.is--autosize){min-height:var(--vxe-input-height-medium)}.vxe-textarea.size--small:not(.is--autosize){min-height:var(--vxe-input-height-small)}.vxe-textarea.size--mini:not(.is--autosize){min-height:var(--vxe-input-height-mini)}.vxe-button{position:relative;text-align:center;background-color:var(--vxe-button-default-background-color);outline:0;font-size:var(--vxe-font-size);max-width:var(--vxe-button-max-width);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none;-webkit-appearance:none;appearance:none;transition:border .2s ease-in-out}.vxe-button:not(.is--disabled){color:var(--vxe-font-color);cursor:pointer}.vxe-button.is--loading{cursor:progress}.vxe-button.is--loading:before{content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:#ffffff59;pointer-events:none}.vxe-button.is--disabled{color:var(--vxe-font-disabled-color)}.vxe-button.is--disabled:not(.is--loading){cursor:no-drop}.vxe-button.type--text{text-decoration:none;border:0;padding:.1em .5em;background-color:transparent}.vxe-button.type--text:not(.is--disabled):focus{color:var(--vxe-font-darken-color)}.vxe-button.type--text:not(.is--disabled):hover{color:var(--vxe-primary-lighten-color)}.vxe-button.type--text.theme--primary{color:var(--vxe-primary-color)}.vxe-button.type--text.theme--primary:not(.is--disabled):focus{color:var(--vxe-primary-darken-color)}.vxe-button.type--text.theme--primary:not(.is--disabled):hover{color:var(--vxe-primary-lighten-color)}.vxe-button.type--text.theme--primary.is--disabled{color:var(--vxe-primary-disabled-color)}.vxe-button.type--text.theme--success{color:var(--vxe-success-color)}.vxe-button.type--text.theme--success:not(.is--disabled):focus{color:var(--vxe-success-darken-color)}.vxe-button.type--text.theme--success:not(.is--disabled):hover{color:var(--vxe-success-lighten-color)}.vxe-button.type--text.theme--success.is--disabled{color:var(--vxe-success-disabled-color)}.vxe-button.type--text.theme--info{color:var(--vxe-info-color)}.vxe-button.type--text.theme--info:not(.is--disabled):focus{color:var(--vxe-info-darken-color)}.vxe-button.type--text.theme--info:not(.is--disabled):hover{color:var(--vxe-info-lighten-color)}.vxe-button.type--text.theme--info.is--disabled{color:var(--vxe-info-disabled-color)}.vxe-button.type--text.theme--warning{color:var(--vxe-warning-color)}.vxe-button.type--text.theme--warning:not(.is--disabled):focus{color:var(--vxe-warning-darken-color)}.vxe-button.type--text.theme--warning:not(.is--disabled):hover{color:var(--vxe-warning-lighten-color)}.vxe-button.type--text.theme--warning.is--disabled{color:var(--vxe-warning-disabled-color)}.vxe-button.type--text.theme--danger{color:var(--vxe-danger-color)}.vxe-button.type--text.theme--danger:not(.is--disabled):focus{color:var(--vxe-danger-darken-color)}.vxe-button.type--text.theme--danger:not(.is--disabled):hover{color:var(--vxe-danger-lighten-color)}.vxe-button.type--text.theme--danger.is--disabled{color:var(--vxe-danger-disabled-color)}.vxe-button.type--text.theme--perfect{color:var(--vxe-table-header-background-color)}.vxe-button.type--text.theme--perfect:not(.is--disabled):focus{color:var(--vxe-table-header-background-color)}.vxe-button.type--text.theme--perfect:not(.is--disabled):hover{color:var(--vxe-table-header-background-color)}.vxe-button.type--text.theme--perfect.is--disabled{color:var(--vxe-table-header-background-color)}.vxe-button.type--button{font-family:inherit;height:var(--vxe-button-height-default);line-height:1;border:1px solid var(--vxe-input-border-color)}.vxe-button.type--button.is--round{border-radius:var(--vxe-button-round-border-radius-default)}.vxe-button.type--button:not(.is--round){border-radius:var(--vxe-border-radius)}.vxe-button.type--button.is--circle{padding:0 .5em;min-width:var(--vxe-button-height-default);border-radius:50%}.vxe-button.type--button:not(.is--circle){padding:0 1em}.vxe-button.type--button:not(.is--disabled):hover{color:var(--vxe-primary-lighten-color)}.vxe-button.type--button:not(.is--disabled):focus{border-color:var(--vxe-primary-color)}.vxe-button.type--button:not(.is--disabled):active{color:var(--vxe-primary-darken-color);border-color:var(--vxe-primary-darken-color);background-color:var(--vxe-button-default-background-color)}.vxe-button.type--button.theme--primary{color:#fff}.vxe-button.type--button.theme--primary:not(.is--disabled){border-color:var(--vxe-primary-color);background-color:var(--vxe-primary-color)}.vxe-button.type--button.theme--primary:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-primary-lighten-color);border-color:var(--vxe-primary-lighten-color)}.vxe-button.type--button.theme--primary:not(.is--disabled):active{color:#fff;background-color:var(--vxe-primary-darken-color);border-color:var(--vxe-primary-darken-color)}.vxe-button.type--button.theme--primary.is--disabled{border-color:var(--vxe-primary-disabled-color);background-color:var(--vxe-primary-disabled-color)}.vxe-button.type--button.theme--primary.is--loading{border-color:var(--vxe-primary-color);background-color:var(--vxe-primary-color)}.vxe-button.type--button.theme--success{color:#fff}.vxe-button.type--button.theme--success:not(.is--disabled){border-color:var(--vxe-success-color);background-color:var(--vxe-success-color)}.vxe-button.type--button.theme--success:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-success-lighten-color);border-color:var(--vxe-success-lighten-color)}.vxe-button.type--button.theme--success:not(.is--disabled):active{color:#fff;background-color:var(--vxe-success-darken-color);border-color:var(--vxe-success-darken-color)}.vxe-button.type--button.theme--success.is--disabled{border-color:var(--vxe-success-disabled-color);background-color:var(--vxe-success-disabled-color)}.vxe-button.type--button.theme--success.is--loading{border-color:var(--vxe-success-color);background-color:var(--vxe-success-color)}.vxe-button.type--button.theme--info{color:#fff}.vxe-button.type--button.theme--info:not(.is--disabled){border-color:var(--vxe-info-color);background-color:var(--vxe-info-color)}.vxe-button.type--button.theme--info:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-info-lighten-color);border-color:var(--vxe-info-lighten-color)}.vxe-button.type--button.theme--info:not(.is--disabled):active{color:#fff;background-color:var(--vxe-info-darken-color);border-color:var(--vxe-info-darken-color)}.vxe-button.type--button.theme--info.is--disabled{border-color:var(--vxe-info-disabled-color);background-color:var(--vxe-info-disabled-color)}.vxe-button.type--button.theme--info.is--loading{border-color:var(--vxe-info-color);background-color:var(--vxe-info-color)}.vxe-button.type--button.theme--warning{color:#fff}.vxe-button.type--button.theme--warning:not(.is--disabled){border-color:var(--vxe-warning-color);background-color:var(--vxe-warning-color)}.vxe-button.type--button.theme--warning:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-warning-lighten-color);border-color:var(--vxe-warning-lighten-color)}.vxe-button.type--button.theme--warning:not(.is--disabled):active{color:#fff;background-color:var(--vxe-warning-darken-color);border-color:var(--vxe-warning-darken-color)}.vxe-button.type--button.theme--warning.is--disabled{border-color:var(--vxe-warning-disabled-color);background-color:var(--vxe-warning-disabled-color)}.vxe-button.type--button.theme--warning.is--loading{border-color:var(--vxe-warning-color);background-color:var(--vxe-warning-color)}.vxe-button.type--button.theme--danger{color:#fff}.vxe-button.type--button.theme--danger:not(.is--disabled){border-color:var(--vxe-danger-color);background-color:var(--vxe-danger-color)}.vxe-button.type--button.theme--danger:not(.is--disabled):hover{color:#fff;background-color:var(--vxe-danger-lighten-color);border-color:var(--vxe-danger-lighten-color)}.vxe-button.type--button.theme--danger:not(.is--disabled):active{color:#fff;background-color:var(--vxe-danger-darken-color);border-color:var(--vxe-danger-darken-color)}.vxe-button.type--button.theme--danger.is--disabled{border-color:var(--vxe-danger-disabled-color);background-color:var(--vxe-danger-disabled-color)}.vxe-button.type--button.theme--danger.is--loading{border-color:var(--vxe-danger-color);background-color:var(--vxe-danger-color)}.vxe-button.type--button.theme--perfect{color:var(--vxe-font-color)}.vxe-button.type--button.theme--perfect:not(.is--disabled){border-color:var(--vxe-table-header-background-color);background-color:var(--vxe-table-header-background-color)}.vxe-button.type--button.theme--perfect:not(.is--disabled):hover{color:var(--vxe-font-color);background-color:var(--vxe-table-header-background-color);border-color:var(--vxe-table-header-background-color)}.vxe-button.type--button.theme--perfect:not(.is--disabled):active{color:var(--vxe-font-color);background-color:var(--vxe-table-header-background-color);border-color:var(--vxe-table-header-background-color)}.vxe-button.type--button.theme--perfect.is--disabled,.vxe-button.type--button.theme--perfect.is--loading{border-color:var(--vxe-table-header-background-color);background-color:var(--vxe-table-header-background-color)}.vxe-button.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-button.size--medium.type--button{height:var(--vxe-button-height-medium)}.vxe-button.size--medium.type--button.is--circle{min-width:var(--vxe-button-height-medium)}.vxe-button.size--medium.type--button.is--round{border-radius:var(--vxe-button-round-border-radius-medium)}.vxe-button.size--medium .vxe-button--loading-icon,.vxe-button.size--medium .vxe-button--icon{min-width:var(--vxe-font-size-medium)}.vxe-button.size--small{font-size:var(--vxe-font-size-small)}.vxe-button.size--small.type--button{height:var(--vxe-button-height-small)}.vxe-button.size--small.type--button.is--circle{min-width:var(--vxe-button-height-small)}.vxe-button.size--small.type--button.is--round{border-radius:var(--vxe-button-round-border-radius-small)}.vxe-button.size--small .vxe-button--loading-icon,.vxe-button.size--small .vxe-button--icon{min-width:var(--vxe-font-size-small)}.vxe-button.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-button.size--mini.type--button{height:var(--vxe-button-height-mini)}.vxe-button.size--mini.type--button.is--circle{min-width:var(--vxe-button-height-mini)}.vxe-button.size--mini.type--button.is--round{border-radius:var(--vxe-button-round-border-radius-mini)}.vxe-button.size--mini .vxe-button--loading-icon,.vxe-button.size--mini .vxe-button--icon{min-width:var(--vxe-font-size-mini)}.vxe-input+.vxe-button-wrapper,.vxe-input+.vxe-button.type--button,.vxe-input+.vxe-button--dropdown,.vxe-button+.vxe-button-wrapper,.vxe-button+.vxe-button.type--button,.vxe-button+.vxe-button--dropdown,.vxe-button-wrapper+.vxe-button-wrapper,.vxe-button-wrapper+.vxe-button.type--button,.vxe-button-wrapper+.vxe-button--dropdown{margin-left:12px}.vxe-button--loading-icon,.vxe-button--icon{min-width:var(--vxe-font-size)}.vxe-button--loading-icon+.vxe-button--content,.vxe-button--icon+.vxe-button--content{margin-left:4px}.vxe-button--wrapper,.vxe-button--dropdown{display:inline-block}.vxe-button--dropdown{position:relative}.vxe-button--dropdown+.vxe-button-wrapper,.vxe-button--dropdown+.vxe-button.type--button,.vxe-button--dropdown+.vxe-button--dropdown{margin-left:12px}.vxe-button--dropdown>.vxe-button.type--button.theme--primary{color:#fff}.vxe-button--dropdown>.vxe-button.type--button.theme--success{color:#fff}.vxe-button--dropdown>.vxe-button.type--button.theme--info{color:#fff}.vxe-button--dropdown>.vxe-button.type--button.theme--warning{color:#fff}.vxe-button--dropdown>.vxe-button.type--button.theme--danger{color:#fff}.vxe-button--dropdown>.vxe-button.type--button.theme--perfect{color:var(--vxe-font-color)}.vxe-button--dropdown.is--active>.vxe-button:not(.is--disabled){color:var(--vxe-primary-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--primary{color:var(--vxe-primary-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--success{color:var(--vxe-success-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--info{color:var(--vxe-info-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--warning{color:var(--vxe-warning-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--danger{color:var(--vxe-danger-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--text.theme--perfect{color:var(--vxe-table-header-background-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--primary{color:#fff;background-color:var(--vxe-primary-lighten-color);border-color:var(--vxe-primary-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--success{color:#fff;background-color:var(--vxe-success-lighten-color);border-color:var(--vxe-success-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--info{color:#fff;background-color:var(--vxe-info-lighten-color);border-color:var(--vxe-info-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--warning{color:#fff;background-color:var(--vxe-warning-lighten-color);border-color:var(--vxe-warning-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--danger{color:#fff;background-color:var(--vxe-danger-lighten-color);border-color:var(--vxe-danger-lighten-color)}.vxe-button--dropdown.is--active>.vxe-button.type--button.theme--perfect{color:var(--vxe-font-color);background-color:var(--vxe-table-header-background-color);border-color:var(--vxe-table-header-background-color)}.vxe-button--dropdown.is--active .vxe-button--dropdown-arrow{transform:rotate(180deg)}.vxe-button--dropdown-arrow{display:inline-block;font-size:12px;margin-left:4px;transition:transform .2s ease-in-out}.vxe-button--dropdown-panel{display:none;position:absolute;right:0;padding:4px 0}.vxe-button--dropdown-panel.animat--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden;transform-style:preserve-3d}.vxe-button--dropdown-panel.animat--leave[placement=top]{transform-origin:center bottom}.vxe-button--dropdown-panel.animat--enter{opacity:1;transform:scaleY(1)}.vxe-button--dropdown-wrapper{padding:5px;background-color:var(--vxe-button-dropdown-panel-background-color);border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-input-border-color);box-shadow:0 1px 6px #0003}.vxe-button--dropdown-wrapper>.vxe-button.type--text,.vxe-button--dropdown-wrapper>.vxe-button.type--button{display:block;width:100%;border:0;margin:.4em 0 0}.vxe-button--dropdown-wrapper>.vxe-button.type--text{padding:2px 8px}.vxe-button--dropdown-wrapper>.vxe-button:first-child{margin-top:0}.vxe-button--dropdown-wrapper>.vxe-button:last-child{margin-bottom:0}.vxe-modal--wrapper{display:none;position:fixed;top:0;left:0;line-height:1.5;width:calc(100% + 18px);height:calc(100% + 18px);color:var(--vxe-font-color);font-family:var(--vxe-font-family);transition:top .4s ease-in-out}.vxe-modal--wrapper.is--active{display:block}.vxe-modal--wrapper.is--visible.is--mask:before{background-color:#00000080}.vxe-modal--wrapper.is--visible.type--message .vxe-modal--box{opacity:1;transform:translateY(0)}.vxe-modal--wrapper.is--visible .vxe-modal--box{opacity:1;visibility:visible}.vxe-modal--wrapper.is--loading .vxe-modal--header,.vxe-modal--wrapper.is--loading .vxe-modal--footer{position:relative;border-bottom-color:var(--vxe-loading-background-color)}.vxe-modal--wrapper.is--loading .vxe-modal--header:before,.vxe-modal--wrapper.is--loading .vxe-modal--footer:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-modal--wrapper:not(.lock--view){pointer-events:none}.vxe-modal--wrapper:not(.type--message).lock--scroll{overflow:hidden}.vxe-modal--wrapper:not(.type--message):not(.lock--scroll){overflow:auto}.vxe-modal--wrapper.lock--view:before,.vxe-modal--wrapper.is--mask:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:auto}.vxe-modal--wrapper.is--mask:before{background-color:#0000}.vxe-modal--wrapper.is--animat.is--mask:before{transition:background-color .2s ease-in-out}.vxe-modal--wrapper.is--animat.type--message .vxe-modal--box:not(.is--drag){transition:all .4s ease-out}.vxe-modal--wrapper.type--message .vxe-modal--body,.vxe-modal--wrapper.type--alert .vxe-modal--body,.vxe-modal--wrapper.type--confirm .vxe-modal--body{white-space:normal;word-break:break-word}.vxe-modal--wrapper.type--message{text-align:center}.vxe-modal--wrapper.type--message .vxe-modal--box{display:inline-block;padding:2px 0;margin-top:0;width:auto;box-shadow:0 0 8px #0000001a;opacity:0;transform:translateY(-100%)}.vxe-modal--wrapper.type--message .vxe-modal--box .vxe-modal--body:after{content:"";display:block;clear:both;height:0;overflow:hidden;visibility:hidden}.vxe-modal--wrapper.type--message .vxe-modal--box .vxe-modal--content{max-width:800px;float:left}.vxe-modal--wrapper.type--message .vxe-modal--status-wrapper{font-size:1.4em;padding-left:10px}.vxe-modal--wrapper.type--modal .vxe-modal--box,.vxe-modal--wrapper.type--alert .vxe-modal--box,.vxe-modal--wrapper.type--confirm .vxe-modal--box{display:flex;flex-direction:column;position:fixed;left:50%;top:0;box-shadow:0 0 10px #0003}.vxe-modal--wrapper.type--modal .vxe-modal--body,.vxe-modal--wrapper.type--alert .vxe-modal--body,.vxe-modal--wrapper.type--confirm .vxe-modal--body,.vxe-modal--wrapper.type--modal .vxe-modal--body .vxe-modal--content,.vxe-modal--wrapper.type--alert .vxe-modal--body .vxe-modal--content,.vxe-modal--wrapper.type--confirm .vxe-modal--body .vxe-modal--content{overflow:auto}.vxe-modal--wrapper.type--alert .vxe-modal--status-wrapper,.vxe-modal--wrapper.type--confirm .vxe-modal--status-wrapper{font-size:1.6em;padding-left:10px}.vxe-modal--wrapper .vxe-modal--box{visibility:hidden;width:420px;background-color:var(--vxe-modal-body-background-color);border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-modal-border-color);text-align:left;pointer-events:auto;opacity:0}.vxe-modal--wrapper .vxe-modal--box.is--drag{cursor:move}.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body:after,.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--footer:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body,.vxe-modal--wrapper .vxe-modal--box.is--drag .vxe-modal--body .vxe-modal--content{overflow:hidden}.vxe-modal--wrapper.status--info .vxe-modal--status-wrapper{color:var(--vxe-info-color)}.vxe-modal--wrapper.status--warning .vxe-modal--status-wrapper,.vxe-modal--wrapper.status--question .vxe-modal--status-wrapper{color:var(--vxe-warning-color)}.vxe-modal--wrapper.status--success .vxe-modal--status-wrapper{color:var(--vxe-success-color)}.vxe-modal--wrapper.status--error .vxe-modal--status-wrapper{color:var(--vxe-danger-color)}.vxe-modal--wrapper.status--loading .vxe-modal--status-wrapper{color:var(--vxe-font-disabled-color)}.vxe-modal--wrapper .vxe-modal--status-wrapper{flex-shrink:0;display:flex;align-items:center}.vxe-modal--wrapper .vxe-modal--content{flex-grow:1;padding:.8em 1em;white-space:pre-line}.vxe-modal--wrapper .vxe-modal--header,.vxe-modal--wrapper .vxe-modal--body,.vxe-modal--wrapper .vxe-modal--footer{position:relative}.vxe-modal--wrapper .vxe-modal--body{display:flex;flex-grow:1}.vxe-modal--wrapper .vxe-modal--header{display:flex;flex-direction:row;flex-shrink:0;font-size:1.1em;font-weight:700;border-bottom:1px solid var(--vxe-modal-border-color);background-color:var(--vxe-modal-header-background-color);border-radius:var(--vxe-border-radius) var(--vxe-border-radius) 0 0;user-select:none}.vxe-modal--wrapper .vxe-modal--header.is--draggable .vxe-modal--header-title{cursor:move}.vxe-modal--wrapper .vxe-modal--header.is--ellipsis .vxe-modal--header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-modal--wrapper .vxe-modal--header-title{flex-grow:1;padding:.6em 0 .6em 1em}.vxe-modal--wrapper .vxe-modal--header-right{flex-shrink:0;padding:.6em 1em .6em 0}.vxe-modal--wrapper .vxe-modal--zoom-btn,.vxe-modal--wrapper .vxe-modal--close-btn{cursor:pointer;margin-left:.6em}.vxe-modal--wrapper .vxe-modal--zoom-btn:hover,.vxe-modal--wrapper .vxe-modal--close-btn:hover{color:var(--vxe-primary-color)}.vxe-modal--wrapper .vxe-modal--footer{flex-shrink:0;text-align:right;padding:.4em 1em .8em}.vxe-modal--wrapper.is--maximize .vxe-modal--box .vxe-modal--header{cursor:default}.vxe-modal--wrapper.is--maximize .vxe-modal--resize .wl-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .wr-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .swst-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .sest-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .st-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .swlb-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .selb-resize,.vxe-modal--wrapper.is--maximize .vxe-modal--resize .sb-resize{display:none}.vxe-modal--wrapper .vxe-modal--resize .wl-resize,.vxe-modal--wrapper .vxe-modal--resize .wr-resize,.vxe-modal--wrapper .vxe-modal--resize .swst-resize,.vxe-modal--wrapper .vxe-modal--resize .sest-resize,.vxe-modal--wrapper .vxe-modal--resize .st-resize,.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,.vxe-modal--wrapper .vxe-modal--resize .selb-resize,.vxe-modal--wrapper .vxe-modal--resize .sb-resize{position:absolute;z-index:100}.vxe-modal--wrapper .vxe-modal--resize .wl-resize,.vxe-modal--wrapper .vxe-modal--resize .wr-resize{width:8px;height:100%;top:0;cursor:w-resize}.vxe-modal--wrapper .vxe-modal--resize .wl-resize{left:-5px}.vxe-modal--wrapper .vxe-modal--resize .wr-resize{right:-5px}.vxe-modal--wrapper .vxe-modal--resize .swst-resize,.vxe-modal--wrapper .vxe-modal--resize .sest-resize,.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,.vxe-modal--wrapper .vxe-modal--resize .selb-resize{width:10px;height:10px;z-index:101}.vxe-modal--wrapper .vxe-modal--resize .swst-resize,.vxe-modal--wrapper .vxe-modal--resize .sest-resize{top:-8px}.vxe-modal--wrapper .vxe-modal--resize .swlb-resize,.vxe-modal--wrapper .vxe-modal--resize .selb-resize{bottom:-8px}.vxe-modal--wrapper .vxe-modal--resize .sest-resize,.vxe-modal--wrapper .vxe-modal--resize .swlb-resize{cursor:sw-resize}.vxe-modal--wrapper .vxe-modal--resize .swst-resize,.vxe-modal--wrapper .vxe-modal--resize .selb-resize{cursor:se-resize}.vxe-modal--wrapper .vxe-modal--resize .swst-resize,.vxe-modal--wrapper .vxe-modal--resize .swlb-resize{left:-8px}.vxe-modal--wrapper .vxe-modal--resize .sest-resize,.vxe-modal--wrapper .vxe-modal--resize .selb-resize{right:-8px}.vxe-modal--wrapper .vxe-modal--resize .st-resize,.vxe-modal--wrapper .vxe-modal--resize .sb-resize{width:100%;height:8px;left:0;cursor:s-resize}.vxe-modal--wrapper .vxe-modal--resize .st-resize{top:-5px}.vxe-modal--wrapper .vxe-modal--resize .sb-resize{bottom:-5px}.vxe-modal--wrapper{font-size:var(--vxe-font-size)}.vxe-modal--wrapper.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-modal--wrapper.size--small{font-size:var(--vxe-font-size-small)}.vxe-modal--wrapper.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-drawer--wrapper{display:none;position:fixed;top:0;left:0;line-height:1.5;width:calc(100% + 18px);height:calc(100% + 18px);color:var(--vxe-font-color);font-family:var(--vxe-font-family)}.vxe-drawer--wrapper.is--active{display:block}.vxe-drawer--wrapper.is--visible.is--mask:before{background-color:#00000080}.vxe-drawer--wrapper.is--visible.pos--left .vxe-drawer--box{left:0}.vxe-drawer--wrapper.is--visible.pos--right .vxe-drawer--box{right:0}.vxe-drawer--wrapper.is--visible.pos--top .vxe-drawer--box{top:0}.vxe-drawer--wrapper.is--visible.pos--bottom .vxe-drawer--box{bottom:0}.vxe-drawer--wrapper.is--visible .vxe-drawer--box{opacity:1}.vxe-drawer--wrapper.is--loading .vxe-drawer--header,.vxe-drawer--wrapper.is--loading .vxe-drawer--footer{position:relative;border-bottom-color:var(--vxe-loading-background-color)}.vxe-drawer--wrapper.is--loading .vxe-drawer--header:before,.vxe-drawer--wrapper.is--loading .vxe-drawer--footer:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;user-select:none;background-color:var(--vxe-loading-background-color)}.vxe-drawer--wrapper:not(.lock--view){pointer-events:none}.vxe-drawer--wrapper.lock--scroll{overflow:hidden}.vxe-drawer--wrapper:not(.lock--scroll){overflow:auto}.vxe-drawer--wrapper.lock--view:before,.vxe-drawer--wrapper.is--mask:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:auto}.vxe-drawer--wrapper.is--mask:before{background-color:#0000;transition:background-color .2s ease-in-out}.vxe-drawer--wrapper.pos--left .vxe-drawer--box{top:0;left:-100%;box-shadow:2px 0 10px #0003}.vxe-drawer--wrapper.pos--right .vxe-drawer--box{top:0;right:-100%;box-shadow:-2px 0 10px #0003}.vxe-drawer--wrapper.pos--top .vxe-drawer--box{top:-100%;left:0;box-shadow:0 2px 10px #0003}.vxe-drawer--wrapper.pos--bottom .vxe-drawer--box{bottom:-100%;left:0;box-shadow:0 -2px 10px #0003}.vxe-drawer--wrapper.pos--left .vxe-drawer--box,.vxe-drawer--wrapper.pos--right .vxe-drawer--box{width:30%;height:100%}.vxe-drawer--wrapper.pos--top .vxe-drawer--box,.vxe-drawer--wrapper.pos--bottom .vxe-drawer--box{width:100%;height:30%}.vxe-drawer--wrapper .vxe-drawer--box{display:flex;flex-direction:column;position:fixed;background-color:var(--vxe-drawer-body-background-color);border:1px solid var(--vxe-drawer-border-color);text-align:left;pointer-events:auto;opacity:0;transition:all .3s ease-in-out}.vxe-drawer--wrapper .vxe-drawer--content{flex-grow:1;padding:.8em 1em;white-space:pre-line}.vxe-drawer--wrapper .vxe-drawer--header,.vxe-drawer--wrapper .vxe-drawer--body,.vxe-drawer--wrapper .vxe-drawer--footer{position:relative}.vxe-drawer--wrapper .vxe-drawer--body{display:flex;flex-grow:1;overflow:auto}.vxe-drawer--wrapper .vxe-drawer--body .vxe-drawer--content{overflow:auto}.vxe-drawer--wrapper .vxe-drawer--header{display:flex;flex-direction:row;flex-shrink:0;font-size:1.1em;font-weight:700;border-bottom:1px solid var(--vxe-drawer-border-color);background-color:var(--vxe-drawer-header-background-color)}.vxe-drawer--wrapper .vxe-drawer--header.is--ellipsis .vxe-drawer--header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-drawer--wrapper .vxe-drawer--header-title{flex-grow:1;padding:.6em 0 .6em 1em}.vxe-drawer--wrapper .vxe-drawer--header-right{flex-shrink:0;padding:.6em 1em .6em 0}.vxe-drawer--wrapper .vxe-drawer--close-btn{cursor:pointer;margin-left:.6em}.vxe-drawer--wrapper .vxe-drawer--close-btn:hover{color:var(--vxe-primary-color)}.vxe-drawer--wrapper .vxe-drawer--footer{flex-shrink:0;text-align:right;padding:.4em 1em .8em}.vxe-drawer--wrapper{font-size:var(--vxe-font-size)}.vxe-drawer--wrapper.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-drawer--wrapper.size--small{font-size:var(--vxe-font-size-small)}.vxe-drawer--wrapper.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-table--tooltip-wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;max-width:600px;border-radius:var(--vxe-border-radius);padding:8px 12px;white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px #0003;color:var(--vxe-font-color);font-family:var(--vxe-font-family)}.vxe-table--tooltip-wrapper:not(.is--enterable){pointer-events:none}.vxe-table--tooltip-wrapper.is--visible,.vxe-table--tooltip-wrapper.is--arrow .vxe-table--tooltip-arrow{display:block}.vxe-table--tooltip-wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-table--tooltip-wrapper .vxe-table--tooltip-content{white-space:pre-line}.vxe-table--tooltip-wrapper .vxe-table--tooltip-arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translate(-6px)}.vxe-table--tooltip-wrapper .vxe-table--tooltip-arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-table--tooltip-wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-table--tooltip-wrapper.placement--top .vxe-table--tooltip-arrow{bottom:-12px}.vxe-table--tooltip-wrapper.placement--top .vxe-table--tooltip-arrow:before{top:-7px}.vxe-table--tooltip-wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-table--tooltip-wrapper.placement--bottom .vxe-table--tooltip-arrow{top:-12px}.vxe-table--tooltip-wrapper.placement--bottom .vxe-table--tooltip-arrow:before{top:-4px}.vxe-table--tooltip-wrapper.theme--light{background-color:var(--vxe-tooltip-light-background-color);border:1px solid var(--vxe-input-border-color)}.vxe-table--tooltip-wrapper.theme--light.placement--top .vxe-table--tooltip-arrow{border-top-color:var(--vxe-input-border-color)}.vxe-table--tooltip-wrapper.theme--light.placement--top .vxe-table--tooltip-arrow:before{border-top-color:var(--vxe-tooltip-light-background-color)}.vxe-table--tooltip-wrapper.theme--light.placement--bottom .vxe-table--tooltip-arrow{border-bottom-color:var(--vxe-input-border-color)}.vxe-table--tooltip-wrapper.theme--light.placement--bottom .vxe-table--tooltip-arrow:before{border-bottom-color:var(--vxe-tooltip-light-background-color)}.vxe-table--tooltip-wrapper.theme--dark{background:var(--vxe-tooltip-dark-background-color);color:var(--vxe-tooltip-dark-color)}.vxe-table--tooltip-wrapper.theme--dark.placement--top .vxe-table--tooltip-arrow{border-top-color:var(--vxe-tooltip-dark-background-color)}.vxe-table--tooltip-wrapper.theme--dark.placement--top .vxe-table--tooltip-arrow:before{border-top-color:var(--vxe-tooltip-dark-background-color)}.vxe-table--tooltip-wrapper.theme--dark.placement--bottom .vxe-table--tooltip-arrow{border-bottom-color:var(--vxe-tooltip-dark-background-color)}.vxe-table--tooltip-wrapper.theme--dark.placement--bottom .vxe-table--tooltip-arrow:before{border-bottom-color:var(--vxe-tooltip-dark-background-color)}.vxe-form--item .vxe-default-input[type=submit]:hover,.vxe-form--item .vxe-default-input[type=reset]:hover{color:var(--vxe-primary-lighten-color);border-color:var(--vxe-primary-lighten-color)}.vxe-form{position:relative;font-size:var(--vxe-font-size);color:var(--vxe-font-color);font-family:var(--vxe-font-family);background-color:var(--vxe-form-background-color);text-align:left}.vxe-form--item-row{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form--item-row>.vxe-form--item-col_1{width:4.16667%}.vxe-form--item-row>.vxe-form--item-col_2{width:8.33333%}.vxe-form--item-row>.vxe-form--item-col_3{width:12.5%}.vxe-form--item-row>.vxe-form--item-col_4{width:16.66667%}.vxe-form--item-row>.vxe-form--item-col_5{width:20.83333%}.vxe-form--item-row>.vxe-form--item-col_6{width:25%}.vxe-form--item-row>.vxe-form--item-col_7{width:29.16667%}.vxe-form--item-row>.vxe-form--item-col_8{width:33.33333%}.vxe-form--item-row>.vxe-form--item-col_9{width:37.5%}.vxe-form--item-row>.vxe-form--item-col_10{width:41.66667%}.vxe-form--item-row>.vxe-form--item-col_11{width:45.83333%}.vxe-form--item-row>.vxe-form--item-col_12{width:50%}.vxe-form--item-row>.vxe-form--item-col_13{width:54.16667%}.vxe-form--item-row>.vxe-form--item-col_14{width:58.33333%}.vxe-form--item-row>.vxe-form--item-col_15{width:62.5%}.vxe-form--item-row>.vxe-form--item-col_16{width:66.66667%}.vxe-form--item-row>.vxe-form--item-col_17{width:70.83333%}.vxe-form--item-row>.vxe-form--item-col_18{width:75%}.vxe-form--item-row>.vxe-form--item-col_19{width:79.16667%}.vxe-form--item-row>.vxe-form--item-col_20{width:83.33333%}.vxe-form--item-row>.vxe-form--item-col_21{width:87.5%}.vxe-form--item-row>.vxe-form--item-col_22{width:91.66667%}.vxe-form--item-row>.vxe-form--item-col_23{width:95.83333%}.vxe-form--item-row>.vxe-form--item-col_24{width:100%}.vxe-form-slots{display:none}.vxe-form--item-content,.vxe-form--item-trigger-node{display:inline-block;vertical-align:middle}.vxe-form--item-title{display:flex;flex-direction:row;max-width:320px;padding-right:.8em}.vxe-form--item-title.is--ellipsis .vxe-form--item-title-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix,.vxe-form--item-title .vxe-form--item-title-postfix{flex-shrink:0}.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix{cursor:help;vertical-align:middle}.vxe-form--item-title .vxe-form--item-title-prefix{margin-right:.25em}.vxe-form--item-title .vxe-form--item-title-suffix{margin-left:.2em}.vxe-form--item-title .vxe-form--item-title-postfix{display:flex;align-items:center}.vxe-form--item-title .vxe-form--item-title-content{flex-grow:1}.vxe-form--item-title .vxe-form--item-title-label{vertical-align:middle}.vxe-form--item-trigger-node{font-size:12px;min-width:100px;color:#909399;text-align:center;user-select:none;cursor:pointer}.vxe-form--item-trigger-node .vxe-form--item-trigger-icon{display:inline-block;margin:0 .25em;transition:all .1s}.vxe-form--item-valid{position:absolute;width:100%;font-size:12px;line-height:1.2em;color:var(--vxe-form-validate-error-color);background-color:var(--vxe-form-validate-error-background-color);z-index:1;opacity:0;transform-origin:center top;transform:scaleY(0);transition:all .2s ease-in-out}.vxe-form .vxe-form--gather{display:inline-flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.vxe-form .vxe-form--wrapper{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form .vxe-form--item{display:none;padding:.5em .8em .5em 0}.vxe-form .vxe-form--item.is--vertical{padding:.25em 0}.vxe-form .vxe-form--item.is--active:not(.is--hidden){display:inline-flex}.vxe-form--item.is--colon .vxe-form--item-title-postfix:after{content:":";font-weight:400;margin-left:.2em}.vxe-form--item.is--asterisk.is--required .vxe-form--item-title-content:before{content:"*";color:var(--vxe-form-validate-error-color);font-family:Verdana,Arial,Tahoma;margin-right:.2em;font-weight:400;vertical-align:middle}.vxe-form--item.is--vertical .vxe-form--item-inner{flex-direction:column;align-items:initial}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title{height:2.2em;line-height:2.2em;padding-right:0;max-width:none}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title-content{flex-grow:initial}.vxe-form--item.is--span .vxe-default-input:not([type=submit]):not([type=reset]),.vxe-form--item.is--span .vxe-default-textarea,.vxe-form--item.is--span .vxe-default-select,.vxe-form--item.is--span .vxe-input,.vxe-form--item.is--span .vxe-textarea,.vxe-form--item.is--span .vxe-select{width:100%}.vxe-form--item.is--error .vxe-input>.vxe-input--inner,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner,.vxe-form--item.is--error .vxe-select,.vxe-form--item.is--error .vxe-select.is--active>.vxe-input .vxe-input--inner,.vxe-form--item.is--error .vxe-default-input,.vxe-form--item.is--error .vxe-default-textarea,.vxe-form--item.is--error .vxe-default-select{border-color:var(--vxe-form-validate-error-color)}.vxe-form--item.is--error .vxe-input>.vxe-input--inner:focus,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner:focus,.vxe-form--item.is--error .vxe-default-input[type=text]:focus,.vxe-form--item.is--error .vxe-default-input[type=search]:focus,.vxe-form--item.is--error .vxe-default-textarea:focus,.vxe-form--item.is--error .vxe-default-select:focus{border-color:var(--vxe-form-validate-error-color)}.vxe-form--item.is--error .vxe-form--item-valid{opacity:1;transform:scaleY(1)}.vxe-form--item .vxe-form--item-inner{display:flex;flex-direction:row;align-items:center;flex-grow:1}.vxe-form--item .vxe-form--item-inner .vxe-form--item-title{flex-shrink:0}.vxe-form--item .vxe-form--item-inner .vxe-form--item-content{position:relative;flex-grow:1;word-break:break-all}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-textarea,.vxe-form--item .vxe-default-select{outline:0;border:1px solid var(--vxe-input-border-color);border-radius:var(--vxe-border-radius)}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-select{height:var(--vxe-button-height-default)}.vxe-form--item .vxe-default-input{padding:0 .8em}.vxe-form--item .vxe-default-textarea{height:calc(var(--vxe-button-height-default) * 2);padding:.3em .6em}.vxe-form--item .vxe-default-input[type=number]{padding-right:.2em}.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-input[type=search]{padding:0 1em}.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-textarea,.vxe-form--item .vxe-default-select{color:var(--vxe-font-color)}.vxe-form--item .vxe-default-input[type=text]:focus,.vxe-form--item .vxe-default-input[type=search]:focus,.vxe-form--item .vxe-default-textarea:focus,.vxe-form--item .vxe-default-select:focus{border:1px solid var(--vxe-primary-color)}.vxe-form--item .vxe-default-input[type=text][disabled],.vxe-form--item .vxe-default-input[type=search][disabled],.vxe-form--item .vxe-default-textarea[disabled],.vxe-form--item .vxe-default-select[disabled]{cursor:not-allowed;background-color:var(--vxe-input-disabled-background-color)}.vxe-form--item .vxe-default-input[type=submit],.vxe-form--item .vxe-default-input[type=reset]{line-height:calc(var(--vxe-button-height-default) - 2px);background-color:#fff;cursor:pointer}.vxe-form--item .vxe-default-input[type=submit]:active,.vxe-form--item .vxe-default-input[type=reset]:active{color:var(--vxe-primary-darken-color);border-color:var(--vxe-primary-darken-color)}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:6px}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-form--item .vxe-default-input[type=number]::-webkit-inner-spin-button{height:24px}.vxe-form--item .vxe-default-input::placeholder{color:var(--vxe-input-placeholder-color)}.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-textarea,.vxe-form--item .vxe-default-select{width:180px}.vxe-form--item .vxe-default-textarea{resize:none;vertical-align:middle}.vxe-form--item .vxe-default-textarea::placeholder{color:var(--vxe-input-placeholder-color)}.vxe-form .vxe-form--item-inner{min-height:var(--vxe-form-item-min-height-default)}.vxe-form .vxe-form--item-inner>.align--center{text-align:center}.vxe-form .vxe-form--item-inner>.align--left{text-align:left}.vxe-form .vxe-form--item-inner>.align--right{text-align:right}.vxe-form.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-form.size--medium .vxe-form--item-inner{min-height:var(--vxe-form-item-min-height-medium)}.vxe-form.size--medium .vxe-default-input[type=submit],.vxe-form.size--medium .vxe-default-input[type=reset]{line-height:calc(var(--vxe-button-height-medium) - 2px)}.vxe-form.size--medium .vxe-default-input,.vxe-form.size--medium .vxe-default-select{height:var(--vxe-button-height-medium)}.vxe-form.size--medium .vxe-default-textarea{height:calc(var(--vxe-button-height-medium) * 2)}.vxe-form.size--small{font-size:var(--vxe-font-size-small)}.vxe-form.size--small .vxe-form--item-inner{min-height:var(--vxe-form-item-min-height-small)}.vxe-form.size--small .vxe-default-input[type=submit],.vxe-form.size--small .vxe-default-input[type=reset]{line-height:calc(var(--vxe-button-height-small) - 2px)}.vxe-form.size--small .vxe-default-input,.vxe-form.size--small .vxe-default-select{height:var(--vxe-button-height-small)}.vxe-form.size--small .vxe-default-textarea{height:calc(var(--vxe-button-height-small) * 2)}.vxe-form.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-form.size--mini .vxe-form--item-inner{min-height:var(--vxe-form-item-min-height-mini)}.vxe-form.size--mini .vxe-default-input[type=submit],.vxe-form.size--mini .vxe-default-input[type=reset]{line-height:calc(var(--vxe-button-height-mini) - 2px)}.vxe-form.size--mini .vxe-default-input,.vxe-form.size--mini .vxe-default-select{height:var(--vxe-button-height-mini)}.vxe-form.size--mini .vxe-default-textarea{height:calc(var(--vxe-button-height-mini) * 2)}.vxe-select{position:relative;display:inline-block;width:180px;color:var(--vxe-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input .vxe-input--inner{border:1px solid var(--vxe-primary-color)}.vxe-select-slots{display:none}.vxe-select--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-select--panel.animat--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-select--panel.animat--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.animat--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel-search{display:block}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{position:relative;border-radius:var(--vxe-border-radius);border:1px solid var(--vxe-table-popup-border-color);box-shadow:0 0 6px 2px #0000001a;background-color:var(--vxe-select-panel-background-color)}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-table-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-table-popup-border-color)}.vxe-select--panel-header,.vxe-select--panel-footer{padding:4px 0}.vxe-select-option--wrapper{position:relative;overflow-x:hidden;overflow-y:auto;padding:4px 0;max-height:200px}.vxe-optgroup .vxe-optgroup--title{padding:0 6px;color:var(--vxe-optgroup-title-color);font-size:12px}.vxe-optgroup--wrapper .vxe-select-option{padding:0 20px}.vxe-select-option{padding:0 .6em;max-width:600px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none}.vxe-select-option.is--selected{font-weight:700;color:var(--vxe-primary-color)}.vxe-select-option:not(.is--disabled){cursor:pointer}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-select-option-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-font-disabled-color);cursor:no-drop}.vxe-select--search-icon{margin-right:.5em}.vxe-select--search-loading,.vxe-select--empty-placeholder{padding:0 .6em;text-align:center;color:var(--vxe-select-empty-color)}.vxe-select,.vxe-select--panel{font-size:var(--vxe-font-size)}.vxe-select.size--medium,.vxe-select--panel.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-select.size--small,.vxe-select--panel.size--small{font-size:var(--vxe-font-size-small)}.vxe-select.size--mini,.vxe-select--panel.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-select--panel .vxe-optgroup--title,.vxe-select--panel .vxe-select-option{height:var(--vxe-select-option-height-default)}.vxe-select--panel .vxe-optgroup--title,.vxe-select--panel .vxe-select-option,.vxe-select--panel .vxe-select--search-loading,.vxe-select--panel .vxe-select--empty-placeholder{line-height:var(--vxe-select-option-height-default)}.vxe-select--panel.size--medium .vxe-optgroup--title,.vxe-select--panel.size--medium .vxe-select-option{height:var(--vxe-select-option-height-medium)}.vxe-select--panel.size--medium .vxe-optgroup--title,.vxe-select--panel.size--medium .vxe-select-option,.vxe-select--panel.size--medium .vxe-select--search-loading,.vxe-select--panel.size--medium .vxe-select--empty-placeholder{line-height:var(--vxe-select-option-height-medium)}.vxe-select--panel.size--small .vxe-optgroup--title,.vxe-select--panel.size--small .vxe-select-option{height:var(--vxe-select-option-height-small)}.vxe-select--panel.size--small .vxe-optgroup--title,.vxe-select--panel.size--small .vxe-select-option,.vxe-select--panel.size--small .vxe-select--search-loading,.vxe-select--panel.size--small .vxe-select--empty-placeholder{line-height:var(--vxe-select-option-height-small)}.vxe-select--panel.size--mini .vxe-optgroup--title,.vxe-select--panel.size--mini .vxe-select-option{height:var(--vxe-select-option-height-mini)}.vxe-select--panel.size--mini .vxe-optgroup--title,.vxe-select--panel.size--mini .vxe-select-option,.vxe-select--panel.size--mini .vxe-select--search-loading,.vxe-select--panel.size--mini .vxe-select--empty-placeholder{line-height:var(--vxe-select-option-height-mini)}.vxe-switch{display:inline-block;color:var(--vxe-font-color);vertical-align:middle;padding:.4em;user-select:none;text-align:center}.vxe-switch.is--animat .vxe-switch--button{transition:border-color .3s,background-color .3s}.vxe-switch.is--animat .vxe-switch--icon{transition:all .3s}.vxe-switch.is--on .vxe-switch--button{padding-right:1.7em;background-color:var(--vxe-switch-open-background-color)}.vxe-switch.is--on .vxe-switch--icon{left:100%;transform:translate(-1.4em);color:var(--vxe-primary-color)}.vxe-switch.is--off .vxe-switch--button{padding-left:1.7em;background-color:var(--vxe-switch-close-background-color)}.vxe-switch.is--off .vxe-switch--icon{left:.2em;transform:translate(0);color:var(--vxe-switch-close-background-color)}.vxe-switch.is--on .vxe-switch--label-off,.vxe-switch.is--off .vxe-switch--label-on{height:0;visibility:hidden;overflow:hidden}.vxe-switch.is--on .vxe-switch--label,.vxe-switch.is--off .vxe-switch--label{opacity:1}.vxe-switch:not(.is--disabled) .vxe-switch--button{cursor:pointer}.vxe-switch:not(.is--disabled) .vxe-switch--button:focus{box-shadow:0 0 .4em 0 var(--vxe-primary-color)}.vxe-switch.is--disabled .vxe-switch--button{cursor:no-drop}.vxe-switch.is--disabled.is--on .vxe-switch--button{background-color:var(--vxe-primary-lighten-color)}.vxe-switch.is--disabled.is--on .vxe-switch--icon{color:var(--vxe-primary-lighten-color)}.vxe-switch.is--disabled.is--off .vxe-switch--button{background-color:var(--vxe-switch-disabled-background-color)}.vxe-switch.is--disabled.is--off .vxe-switch--icon{color:var(--vxe-switch-disabled-background-color)}.vxe-switch .vxe-switch--button{display:block;position:relative;height:1.6em;line-height:1;min-width:3.2em;padding:0 .6em;border-radius:1em;border:0;outline:0}.vxe-switch .vxe-switch--label{opacity:0;display:block;color:var(--vxe-switch-font-color);font-size:.8em}.vxe-switch .vxe-switch--icon{position:absolute;top:.2em;left:0;width:1.2em;height:1.2em;line-height:1.4em;text-align:center;border-radius:50%;background-color:var(--vxe-switch-icon-background-color)}.vxe-switch .vxe-switch--label-icon{margin-right:.25em}.vxe-switch{font-size:var(--vxe-font-size)}.vxe-switch.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-switch.size--small{font-size:var(--vxe-font-size-small)}.vxe-switch.size--mini{font-size:var(--vxe-font-size-mini)}.vxe-list{position:relative;display:block;padding:0;color:var(--vxe-font-color);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow:auto}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--virtual-wrapper,.vxe-list .vxe-list--body{padding:0;margin:0;border:0;outline:0}.vxe-list--virtual-wrapper{height:100px}.vxe-pulldown{position:relative;display:inline-block;color:var(--vxe-font-color);text-align:left}.vxe-pulldown--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-font-color);text-align:left}.vxe-pulldown--panel:not(.is--transfer){min-width:100%}.vxe-pulldown--panel.is--transfer{position:fixed}.vxe-pulldown--panel.animat--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-pulldown--panel.animat--leave[placement=top]{transform-origin:center bottom}.vxe-pulldown--panel.animat--enter{opacity:1;transform:scaleY(1)}.vxe-pulldown--panel-wrapper{background-color:var(--vxe-pulldown-panel-background-color)}.vxe-pulldown,.vxe-pulldown--panel{font-size:var(--vxe-font-size)}.vxe-pulldown.size--medium,.vxe-pulldown--panel.size--medium{font-size:var(--vxe-font-size-medium)}.vxe-pulldown.size--small,.vxe-pulldown--panel.size--small{font-size:var(--vxe-font-size-small)}.vxe-pulldown.size--mini,.vxe-pulldown--panel.size--mini{font-size:var(--vxe-font-size-mini)}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}@font-face{font-family:Noto Sans SC;src:url(./NotoSansSC-Regular-faa6c9df.otf)}.custom-modal .ant-modal-content{background-color:#13265a}.ant-modal-header{background-color:#13265a!important}.vben-basic-title{font-family:Noto Sans SC,serif;font-size:16px;color:#fff!important}.ant-btn-primary{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;background-color:#3793d4;box-shadow:inset 0 0 20px 2px #006cc6;height:36px;border-radius:6px;border:none}.ant-btn-primary:hover{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;background-color:#45afdfcc;box-shadow:inset 0 0 20px 2px #006cc6;height:36px;border-radius:6px;border:none}.ant-btn-default{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;background-color:#3a62cbcc;box-shadow:inset 0 0 20px 2px #3a62cb;height:36px;border-radius:6px;border:none}.ant-btn-default:hover{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;background-color:#3a62cbcc;box-shadow:inset 0 0 20px 2px #006cc6;height:36px;border-radius:6px;border:none}.ant-btn-default:disabled,.ant-btn-default:disabled:hover,.ant-btn-default:disabled svg{color:#aaa!important;background-color:#3a62cbcc;box-shadow:inset 0 0 20px 2px #3a62cb}.ant-spin-container{margin:0 5px}.ant-spin-container .scroll-container{padding-top:10px}.ant-tree-checkbox-inner,.ant-checkbox-inner{border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}.ant-form-item-label>label{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;height:36px!important}.vben-basic-table-form-container label{color:transparent!important;width:10px!important}.ant-input-affix-wrapper{border-radius:6px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}.ant-input-affix-wrapper>input.ant-input{height:26px}.ant-input-affix-wrapper:hover,.ant-input-affix-wrapper:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}.ant-input-affix-wrapper>textarea{padding:4px 11px;border:1px solid rgba(45,119,243,.3)}.ant-input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;background:transparent}.ant-input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}.vben-basic-table{background:transparent}.vben-basic-table .ant-table-wrapper{background-color:transparent;padding:0}.ant-table.ant-table-middle{border-radius:0;background-color:transparent!important}.ant-table-title{border-radius:8px 8px 0 0;border-left:1px solid #183171!important;border-top:1px solid #183171!important;border-right:1px solid #183171!important;background-color:#13265a!important}.ant-table-container{border-inline-start:1px solid rgba(45,119,243,.3)!important}.ant-table.ant-table-bordered>.ant-table-container{border-inline-start:1px solid rgba(45,119,243,.3)!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table{border-top:1px solid rgba(45,119,243,.3)!important}.ant-table-cell{background-color:#0d1540!important}.ant-table.ant-table-bordered th,.ant-table.ant-table-bordered td{border-inline-end:1px solid rgba(45,119,243,.3)!important}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td.ant-table-cell-row-hover{background:#273c62!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th{border-bottom:none;background:#13265a!important;font-family:Noto Sans SC,serif;font-size:14px;font-weight:400;color:#fff}.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:hidden!important;border-left:1px solid rgba(45,119,243,.3)!important}.ant-table-tbody>tr>td{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;border-bottom:1px solid rgba(45,119,243,.3)!important}.vben-app-logo[data-v-229a7517]{display:flex;align-items:center;padding-left:7px;transition:all .2s ease;cursor:pointer}.vben-app-logo.light[data-v-229a7517]{border-bottom:1px solid #d9d9d9}.vben-app-logo.collapsed-show-title[data-v-229a7517]{padding-left:20px}.vben-app-logo.light .vben-app-logo__title[data-v-229a7517]{color:#0960bd}.vben-app-logo.dark .vben-app-logo__title[data-v-229a7517]{color:#fff}.vben-app-logo__title[data-v-229a7517]{transition:all .5s;font-size:16px;font-weight:700;line-height:normal}.vben-app-search-footer[data-v-3c05e343]{display:flex;position:relative;flex-shrink:0;align-items:center;height:44px;padding:0 16px;border-top:1px solid #d9d9d9;border-radius:0 0 16px 16px;background-color:#fff;color:#666;font-size:12px}.vben-app-search-footer-item[data-v-3c05e343]{display:flex;align-items:center;justify-content:center;width:20px;height:18px;margin-right:.4em;padding-bottom:2px;border-radius:2px;background-color:linear-gradient(-225deg,#d5dbe4,#f8f8f8);box-shadow:inset 0 -2px #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66}.vben-app-search-footer-item[data-v-3c05e343]:nth-child(2),.vben-app-search-footer-item[data-v-3c05e343]:nth-child(3),.vben-app-search-footer-item[data-v-3c05e343]:nth-child(6){margin-left:14px}.vben-app-search-modal[data-v-5602e8a8]{display:flex;position:fixed;z-index:800;top:0;left:0;justify-content:center;width:100%;height:100%;padding-top:50px;background-color:#00000040}.vben-app-search-modal--mobile[data-v-5602e8a8]{padding:0}.vben-app-search-modal--mobile>div[data-v-5602e8a8]{width:100%}.vben-app-search-modal--mobile .vben-app-search-modal-input[data-v-5602e8a8]{width:calc(100% - 38px)}.vben-app-search-modal--mobile .vben-app-search-modal-cancel[data-v-5602e8a8]{display:inline-block}.vben-app-search-modal--mobile .vben-app-search-modal-content[data-v-5602e8a8]{width:100%;height:100%;border-radius:0}.vben-app-search-modal--mobile .vben-app-search-footer[data-v-5602e8a8]{display:none}.vben-app-search-modal--mobile .vben-app-search-modal-list[data-v-5602e8a8]{height:calc(100% - 80px);max-height:unset}.vben-app-search-modal--mobile .vben-app-search-modal-list__item-enter[data-v-5602e8a8]{opacity:0!important}.vben-app-search-modal-content[data-v-5602e8a8]{position:relative;flex-direction:column;width:632px;margin:0 auto auto;border-radius:16px;background-color:#fff;box-shadow:0 25px 50px -12px #00000040}.vben-app-search-modal-input__wrapper[data-v-5602e8a8]{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 0}.vben-app-search-modal-input[data-v-5602e8a8]{width:100%;height:48px;border-radius:6px;color:#1c1e21;font-size:1.5em}.vben-app-search-modal-input span[role=img][data-v-5602e8a8]{color:#999}.vben-app-search-modal-cancel[data-v-5602e8a8]{display:none;color:#666;font-size:1em}.vben-app-search-modal-not-data[data-v-5602e8a8]{display:flex;align-items:center;justify-content:center;width:100%;height:100px;color:#969faf;font-size:.9}.vben-app-search-modal-list[data-v-5602e8a8]{max-height:472px;margin:14px auto 0;padding:0 14px 20px;overflow:auto}.vben-app-search-modal-list__item[data-v-5602e8a8]{display:flex;position:relative;align-items:center;width:100%;height:56px;margin-top:8px;padding-bottom:4px;padding-left:14px;border-radius:4px;background-color:#fff;box-shadow:0 1px 3px #d4d9e1;color:#000000e0;font-size:14px;cursor:pointer}.vben-app-search-modal-list__item>div[data-v-5602e8a8]:first-child,.vben-app-search-modal-list__item>div[data-v-5602e8a8]:last-child{display:flex;align-items:center}.vben-app-search-modal-list__item--active[data-v-5602e8a8]{background-color:#0960bd;color:#fff}.vben-app-search-modal-list__item--active .vben-app-search-modal-list__item-enter[data-v-5602e8a8]{opacity:1}.vben-app-search-modal-list__item-icon[data-v-5602e8a8]{width:30px}.vben-app-search-modal-list__item-text[data-v-5602e8a8]{flex:1}.vben-app-search-modal-list__item-enter[data-v-5602e8a8]{width:30px;opacity:0}.app-locale-picker-overlay .ant-dropdown-menu-item{min-width:160px}.vben-basic-arrow[data-v-ec9b569e]{display:inline-block;transform:rotate(0);transform-origin:center center;transition:all .3s ease .1s;cursor:pointer}.vben-basic-arrow--active[data-v-ec9b569e]{transform:rotate(90deg)}.vben-basic-arrow.inset[data-v-ec9b569e]{line-height:0px}.vben-basic-arrow.up[data-v-ec9b569e]{transform:rotate(-90deg)}.vben-basic-arrow.down[data-v-ec9b569e],.vben-basic-arrow.up.vben-basic-arrow--active[data-v-ec9b569e]{transform:rotate(90deg)}.vben-basic-arrow.down.vben-basic-arrow--active[data-v-ec9b569e]{transform:rotate(-90deg)}.vben-basic-help{display:inline-block;margin-left:6px;color:#909399;font-size:14px;cursor:pointer}.vben-basic-help:hover{color:#0960bd}.vben-basic-help__wrap p{margin-bottom:0}.vben-basic-title[data-v-3f45b404]{display:flex;position:relative;padding-left:7px;color:#000000e0;font-size:16px;font-weight:500;line-height:24px;cursor:pointer;user-select:none}.vben-basic-title-normal[data-v-3f45b404]{font-size:14px;font-weight:500}.vben-basic-title-show-span[data-v-3f45b404]:before{content:"";position:absolute;top:4px;left:0;width:3px;height:16px;margin-right:4px;background-color:#0960bd}.vben-basic-title-help[data-v-3f45b404]{margin-left:10px}.vben-collapse-container{transition:all .3s ease-in-out;border-radius:2px;background-color:#fff}.vben-collapse-container__header{display:flex;align-items:center;justify-content:space-between;height:32px;border-bottom:1px solid #d9d9d9}.vben-collapse-container__footer{border-top:1px solid #d9d9d9}.vben-collapse-container__action{display:flex;flex:1;align-items:center;justify-content:flex-end;text-align:right}.scrollbar{position:relative;height:100%;overflow:hidden}.scrollbar__wrap{height:100%;overflow:auto}.scrollbar__wrap--hidden-default{scrollbar-width:none}.scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none;width:0;height:0;opacity:0}.scrollbar__thumb{display:block;position:relative;width:0;height:0;transition:.3s background-color;border-radius:inherit;background-color:#9093994d;cursor:pointer}.scrollbar__thumb:hover{background-color:#90939980}.scrollbar__bar{position:absolute;z-index:1;right:2px;bottom:2px;transition:opacity 80ms ease;border-radius:4px;opacity:0}.scrollbar__bar.is-vertical{top:2px;width:6px}.scrollbar__bar.is-vertical>div{width:100%}.scrollbar__bar.is-horizontal{left:2px;height:6px}.scrollbar__bar.is-horizontal>div{height:100%}.scrollbar:active>.scrollbar__bar,.scrollbar:focus>.scrollbar__bar,.scrollbar:hover>.scrollbar__bar{transition:opacity .34s ease-out;opacity:1}.scroll-container{width:100%;height:100%}.scroll-container .scrollbar__wrap{margin-bottom:18px!important;overflow-x:hidden}.scroll-container .scrollbar__view{box-sizing:border-box}.vben-icon-picker .ant-input-group-addon{padding:0}.vben-icon-picker-popover{width:300px}.vben-icon-picker-popover .ant-popover-inner-content{padding:0}.vben-icon-picker-popover .scrollbar{height:220px}html[data-theme=dark] .vben-dark-switch[data-v-a37e5ee9]{border:1px solid #c4bcbc}.vben-dark-switch[data-v-a37e5ee9]{display:flex;position:relative;align-items:center;justify-content:space-between;width:50px;height:26px;margin-left:auto;padding:0 6px;border-radius:30px;background-color:#151515;cursor:pointer}.vben-dark-switch-inner[data-v-a37e5ee9]{position:absolute;z-index:1;width:18px;height:18px;transition:transform .5s,background-color .5s;border-radius:50%;background-color:#fff;will-change:transform}.vben-dark-switch--dark .vben-dark-switch-inner[data-v-a37e5ee9]{transform:translate(calc(100% + 2px))}.vben-svg-icon[data-v-6b7deac0]{display:inline-block;overflow:hidden;fill:currentcolor;vertical-align:-.15em}.svg-icon-spin[data-v-6b7deac0]{animation:loadingCircle 1s infinite linear}.app-iconify{display:inline-block}.app-iconify-spin svg{animation:loadingCircle 1s infinite linear}span.iconify{display:block;min-width:1em;min-height:1em;border-radius:100%;background-color:#5551}.full-loading[data-v-d5adc87e]{display:flex;position:fixed;z-index:200;top:0;left:0;align-items:center;justify-content:center;width:100%;height:100%;background-color:#f0f2f566}.full-loading.absolute[data-v-d5adc87e]{position:absolute;z-index:300;top:0;left:0}html[data-theme=dark] .full-loading[data-v-d5adc87e]:not(.light){background-color:#00000073}.full-loading.dark[data-v-d5adc87e]{background-color:#00000073} diff --git a/detect.gui/Embedded/dist/assets/index-b927c6db.css b/detect.gui/Embedded/dist/assets/index-b927c6db.css new file mode 100644 index 0000000..8964c35 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-b927c6db.css @@ -0,0 +1 @@ +.header[data-v-53e00fd4]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-53e00fd4]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-53e00fd4] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-53e00fd4] .ant-table-wrapper{background:transparent}[data-v-53e00fd4] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-53e00fd4] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-53e00fd4] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-53e00fd4] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-53e00fd4] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-53e00fd4] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-53e00fd4] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-53e00fd4] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-53e00fd4] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-53e00fd4] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-53e00fd4] .ant-select-selector .ant-select-selection-item,[data-v-53e00fd4] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-53e00fd4] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-53e00fd4] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-53e00fd4] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-53e00fd4] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-53e00fd4] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-53e00fd4] .ant-empty-description{color:#999}[data-v-53e00fd4] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-53e00fd4] .ant-pagination-options-quick-jumper>input:hover,[data-v-53e00fd4] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-53e00fd4] .ant-input-clear-icon,[data-v-53e00fd4] .ant-input-password-icon{color:#fff!important}[data-v-53e00fd4] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-53e00fd4] .vben-basic-table-action button:disabled{color:#999!important}[data-v-53e00fd4] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-53e00fd4] .vben-tree-header{border-bottom:1px solid #183171}[data-v-53e00fd4] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-tree-list{background:#13265a!important}[data-v-53e00fd4] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-tree-switcher-icon{color:#fff!important}[data-v-53e00fd4] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-53e00fd4] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-53e00fd4] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-53e00fd4] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-picker,[data-v-53e00fd4] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-53e00fd4] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-53e00fd4] .ant-picker-focused,[data-v-53e00fd4] .ant-picker-range:hover,[data-v-53e00fd4] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-53e00fd4] .vben-basic-table .ant-picker-range{width:100%}[data-v-53e00fd4] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-53e00fd4] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-53e00fd4] .anticon{color:#fff!important}[data-v-53e00fd4] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-53e00fd4] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-53e00fd4] .ant-picker-cell-in-view{color:#fff!important}[data-v-53e00fd4] .ant-picker-content th,[data-v-53e00fd4] .ant-picker-header-super-prev-btn,[data-v-53e00fd4] .ant-picker-header-prev-btn,[data-v-53e00fd4] .ant-picker-header-super-next-btn,[data-v-53e00fd4] .ant-picker-header-next-btn,[data-v-53e00fd4] .ant-picker-year-btn,[data-v-53e00fd4] .ant-picker-month-btn,[data-v-53e00fd4] .ant-picker-decade-btn,[data-v-53e00fd4] .ant-picker-header-view,[data-v-53e00fd4] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-53e00fd4] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-53e00fd4] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-53e00fd4] .ant-card-body{padding:0!important}[data-v-53e00fd4] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-53e00fd4] .ant-descriptions-view{border:1px solid #183171!important}[data-v-53e00fd4] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-53e00fd4] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-53e00fd4] .ant-descriptions-item-label,[data-v-53e00fd4] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-53e00fd4] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-53e00fd4] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-53e00fd4] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-53e00fd4] .CodeMirror-cursor{border-left:1px solid white}[data-v-53e00fd4] .cm-string{color:#ff8c00!important}[data-v-53e00fd4] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-c1cedbf9.js b/detect.gui/Embedded/dist/assets/index-c1cedbf9.js new file mode 100644 index 0000000..c7ebf7a --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-c1cedbf9.js @@ -0,0 +1 @@ +import{u as B,c as q,_ as z,q as A}from"./index.js";import{aZ as N,a_ as h,a$ as L,K as D,Z as M,b0 as R,a7 as $,av as x}from"./antd-eedb3ef5.js";import{d as G,f as P,c as f,u as C,w as I,Z as s,a4 as m,a5 as o,a1 as S,a6 as i,_ as u,a7 as O,k as d,$ as w,ad as V,G as F,a0 as b,a8 as T,F as K}from"./vue-72a104e4.js";const j=[{key:"1",name:"通知",list:[{id:"000000001",avatar:"https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png",title:"你收到了 14 份新周报",description:"",datetime:"2017-08-09",type:"1"},{id:"000000002",avatar:"https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png",title:"你推荐的 曲妮妮 已通过第三轮面试",description:"",datetime:"2017-08-08",type:"1"},{id:"000000003",avatar:"https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png",title:"这种模板可以区分多种通知类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000004",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000005",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"标题可以设置自动显示省略号,本例中标题行数已设为1行,如果内容超过1行将自动截断并支持tooltip显示完整标题。",description:"",datetime:"2017-08-07",type:"1"},{id:"000000006",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000007",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000008",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000009",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"},{id:"000000010",avatar:"https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png",title:"左侧图标用于区分不同的类型",description:"",datetime:"2017-08-07",type:"1"}]},{key:"2",name:"消息",list:[{id:"000000006",avatar:"https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg",title:"曲丽丽 评论了你",description:"描述信息描述信息描述信息",datetime:"2017-08-07",type:"2",clickClose:!0},{id:"000000007",avatar:"https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg",title:"朱偏右 回复了你",description:"这种模板用于提醒谁与你发生了互动",datetime:"2017-08-07",type:"2",clickClose:!0},{id:"000000008",avatar:"https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg",title:"标题",description:"请将鼠标移动到此处,以便测试超长的消息在此处将如何处理。本例中设置的描述最大行数为2,超过2行的描述内容将被省略并且可以通过tooltip查看完整内容",datetime:"2017-08-07",type:"2",clickClose:!0}]},{key:"3",name:"待办",list:[{id:"000000009",avatar:"",title:"任务名称",description:"任务需要在 2017-01-12 20:00 前启动",datetime:"",extra:"未开始",color:"",type:"3"},{id:"000000010",avatar:"",title:"第三方紧急代码变更",description:"冠霖 需在 2017-01-07 前完成代码变更任务",datetime:"",extra:"马上到期",color:"red",type:"3"},{id:"000000011",avatar:"",title:"信息安全考试",description:"指派竹尔于 2017-01-09 前完成更新并发布",datetime:"",extra:"已耗时 8 天",color:"gold",type:"3"},{id:"000000012",avatar:"",title:"ABCD 版本发布",description:"指派竹尔于 2017-01-09 前完成更新并发布",datetime:"",extra:"进行中",color:"blue",type:"3"}]}],E=G({components:{[N.name]:N,[h.name]:h,[h.Item.name]:h.Item,AListItemMeta:h.Item.Meta,ATypographyParagraph:L.Paragraph,[D.name]:D},props:{list:{type:Array,default:()=>[]},pageSize:{type:[Boolean,Number],default:5},currentPage:{type:Number,default:1},titleRows:{type:Number,default:1},descRows:{type:Number,default:2},onTitleClick:{type:Function}},emits:["update:currentPage"],setup(t,{emit:g}){const{prefixCls:y}=B("header-notify-list"),r=P(t.currentPage||1),_=f(()=>{const{pageSize:a,list:c}=t;if(a===!1)return[];let p=q(a)?a:5;return c.slice(p*(C(r)-1),p*C(r))});I(()=>t.currentPage,a=>{r.value=a});const n=f(()=>!!t.onTitleClick),l=f(()=>{const{list:a,pageSize:c}=t;return c>0&&a&&a.length>c?{total:a.length,pageSize:c,current:C(r),onChange(p){r.value=p,g("update:currentPage",p)}}:!1});function v(a){t.onTitleClick&&t.onTitleClick(a)}return{prefixCls:y,getPagination:l,getData:_,handleTitleClick:v,isTitleClickable:n}}});const X={class:"title"},Z={key:0,class:"extra"},H={key:1},U={key:0,class:"description"},J={class:"datetime"};function W(t,g,y,r,_,n){const l=i("a-typography-paragraph"),v=i("a-tag"),a=i("a-avatar"),c=i("a-list-item-meta"),p=i("a-list-item"),k=i("a-list");return s(),m(k,{class:S(t.prefixCls),bordered:"",pagination:t.getPagination},{default:o(()=>[(s(!0),u(K,null,O(t.getData,e=>(s(),m(p,{key:e.id,class:"list-item"},{default:o(()=>[d(c,null,{title:o(()=>[w("div",X,[d(l,{onClick:at=>t.handleTitleClick(e),style:V([{width:"100%","margin-bottom":"0 !important"},{cursor:t.isTitleClickable?"pointer":""}]),delete:!!e.titleDelete,ellipsis:t.$props.titleRows&&t.$props.titleRows>0?{rows:t.$props.titleRows,tooltip:!!e.title}:!1,content:e.title},null,8,["onClick","style","delete","ellipsis","content"]),e.extra?(s(),u("div",Z,[d(v,{class:"tag",color:e.color},{default:o(()=>[F(b(e.extra),1)]),_:2},1032,["color"])])):T("",!0)])]),avatar:o(()=>[e.avatar?(s(),m(a,{key:0,class:"avatar",src:e.avatar},null,8,["src"])):(s(),u("span",H,b(e.avatar),1))]),description:o(()=>[w("div",null,[e.description?(s(),u("div",U,[d(l,{style:{width:"100%","margin-bottom":"0 !important"},ellipsis:t.$props.descRows&&t.$props.descRows>0?{rows:t.$props.descRows,tooltip:!!e.description}:!1,content:e.description},null,8,["ellipsis","content"])])):T("",!0),w("div",J,b(e.datetime),1)])]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["class","pagination"])}const Y=z(E,[["render",W],["__scopeId","data-v-851bd126"]]),Q=G({components:{Popover:M,BellOutlined:R,Tabs:$,TabPane:$.TabPane,Badge:x,NoticeList:Y},setup(){const{prefixCls:t}=B("header-notify"),{createMessage:g}=A(),y=P(j),r=f(()=>{let n=0;for(let l=0;l[d(p,null,{default:o(()=>[(s(!0),u(K,null,O(t.listData,e=>(s(),m(c,{key:e.key},{tab:o(()=>[F(b(e.name)+" ",1),e.list.length!==0?(s(),u("span",tt,"("+b(e.list.length)+")",1)):T("",!0)]),default:o(()=>[e.key==="1"?(s(),m(a,{key:0,list:e.list,onTitleClick:t.onNoticeClick},null,8,["list","onTitleClick"])):(s(),m(a,{key:1,list:e.list},null,8,["list"]))]),_:2},1024))),128))]),_:1})]),default:o(()=>[d(v,{count:t.count,dot:"",numberStyle:t.numberStyle},{default:o(()=>[d(l)]),_:1},8,["count","numberStyle"])]),_:1},8,["overlayClassName"])],2)}const nt=z(Q,[["render",et]]);export{nt as default}; diff --git a/detect.gui/Embedded/dist/assets/index-c49b687f.js b/detect.gui/Embedded/dist/assets/index-c49b687f.js new file mode 100644 index 0000000..63cc577 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-c49b687f.js @@ -0,0 +1 @@ +var w=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var C=(n,p)=>{var i={};for(var o in n)N.call(n,o)&&p.indexOf(o)<0&&(i[o]=n[o]);if(n!=null&&w)for(var o of w(n))p.indexOf(o)<0&&V.call(n,o)&&(i[o]=n[o]);return i};import{j as z,k as L,l as q,q as W}from"./index.js";import{u as Z,B as J}from"./useTable-3e054214.js";import{T as Q}from"./useForm-df5105ea.js";import{j as b,a9 as X,P as ee}from"./antd-eedb3ef5.js";import{s as te,c as oe,a as E,r as se,b as ae}from"./taskProgressApi-a25fdfc1.js";import{u as ne}from"./index-e60b7cd2.js";import{_ as re}from"./drawer.vue_vue_type_script_setup_true_lang-1021b9c6.js";import{d as ie,f as le,a6 as ce,n as de,Z as m,_ as v,k as S,a5 as c,u as a,F as me,$ as P,a0 as ue,G as x,a4 as k,a8 as Y,m as fe}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const pe={key:1},Ee=ie({name:"AUTH_DATA_TASK_PROGRESS",__name:"index",setup(n){const{createMessage:p}=W(),{hasPermission:i}=z(),o=L(),u=le([]),B=e=>{u.value=e.filter(t=>typeof t!="undefined")},[H,{openDrawer:y}]=ne(),[K,{reload:A,setSelectedRowKeys:T}]=Z({title:"任务检测过程数据表",api:e=>te(O(e)),columns:oe,formConfig:{labelWidth:120,schemas:E,showAdvancedButton:!1},rowSelection:{type:"checkbox",onChange:B},useSearchForm:!0,showTableSetting:!1,bordered:!1,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),O=e=>{const R=e,{pageNum:t,pageSize:h,field:g="id",order:_="descend"}=R,f=C(R,["pageNum","pageSize","field","order"]),r={pageNum:t,pageSize:h,orderByClause:`${g} ${_==="descend"?"desc":"asc"}`};return Object.keys(f).forEach(D=>{const d=E.find(I=>I.field===D),s=e[D],l=D;d?s!==void 0&&s!==""&&(d.component==="Input"?r[l]=`%${s.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(d.component)?r[l]=q(s)?s.value:s:d.component==="RangePicker"?(r[`${l}From`]=b(s[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),r[`${l}To`]=b(s[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):d.component==="DatePicker"?r[l]=b(s).format(d.componentProps.format||"YYYY-MM-DD"):r[l]=s):r[l]=s}),r},M=()=>{y(!0,{isUpdate:!1})},$=e=>{y(!0,{record:e,isUpdate:!0})},G=e=>{se(e.id).then(t=>{A(),T([])})},U=()=>{if(u.value.length===0){p.error("当前未选中任何项目!");return}ae(u.value).then(e=>{A(),T([])})},j=()=>{A()},F=e=>{o("/data/task-progress/detail/"+e.id)};return(e,t)=>{const h=ce("a-button"),g=de("auth");return m(),v("div",null,[S(a(J),{onRegister:a(K)},{headerTop:c(()=>[S(a(X),{type:"info","show-icon":""},{message:c(()=>[u.value.length>0?(m(),v(me,{key:0},[P("span",null,"已选中"+ue(u.value.length)+"条记录",1),S(h,{type:"link",onClick:t[0]||(t[0]=_=>a(T)([])),size:"small"},{default:c(()=>t[1]||(t[1]=[x("清空")])),_:1}),a(i)("AUTH_DATA_TASK_PROGRESS:DELETE")?(m(),k(a(ee),{key:0,class:"ml-4",title:"确定要全部删除吗?","ok-text":"是","cancel-text":"否",onConfirm:U},{default:c(()=>t[2]||(t[2]=[P("a",{href:"#",class:"text-red-500"},"删除",-1)])),_:1})):Y("",!0)],64)):(m(),v("span",pe,"未选中任何项目"))]),_:1})]),toolbar:c(()=>[fe((m(),k(h,{type:"primary",onClick:M},{default:c(()=>t[3]||(t[3]=[x(" 新增")])),_:1})),[[g,"AUTH_DATA_TASK_PROGRESS:ADD"]])]),bodyCell:c(({column:_,record:f})=>[_.dataIndex==="action"?(m(),k(a(Q),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:$.bind(null,f),ifShow:a(i)("AUTH_DATA_TASK_PROGRESS:EDIT"),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:F.bind(null,f),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:G.bind(null,f),placement:"topRight"},ifShow:a(i)("AUTH_DATA_TASK_PROGRESS:DELETE")}]},null,8,["actions","dropDownActions"])):Y("",!0)]),_:1},8,["onRegister"]),S(re,{onRegister:a(H),onSuccess:j},null,8,["onRegister"])])}}});export{Ee as default}; diff --git a/detect.gui/Embedded/dist/assets/index-cb1b7a92.js b/detect.gui/Embedded/dist/assets/index-cb1b7a92.js new file mode 100644 index 0000000..75f57c4 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-cb1b7a92.js @@ -0,0 +1 @@ +import M from"./index-248ee10e.js";import{A as L,ag as C,_ as P,B as $,aa as A}from"./index.js";import{c as l,S as B,J as I,u as g,d as k,Z as m,_ as d,F as S,a7 as N,a8 as b,a6 as T,m as E,A as O,a4 as p,k as w,a5 as _,q as V,af as y,ak as j}from"./vue-72a104e4.js";import{a8 as K}from"./antd-eedb3ef5.js";function R(){const e=L(),s=l(()=>e.getMultiTabsSetting.show),o=l(()=>e.getMultiTabsSetting.showQuick),r=l(()=>e.getMultiTabsSetting.showRedo),i=l(()=>e.getMultiTabsSetting.showFold);function u(t){e.setProjectConfig({multiTabsSetting:t})}return{setMultipleTabSetting:u,getShowMultipleTab:s,getShowQuick:o,getShowRedo:r,getShowFold:i}}function q(){const e=B(),{currentRoute:s}=e,{getShowMultipleTab:o}=R(),r=C(),i=l(()=>t(I(e.getRoutes()))||[]),u=l(()=>r.getTabList.reduce((n,c)=>(c.meta&&Reflect.has(c.meta,"frameSrc")&&n.push(c.name),n),[]));function t(n){let c=[];for(const F of n){const{meta:{frameSrc:v}={},children:h}=F;v&&c.push(F),h&&h.length&&c.push(...t(h))}return c=K(c,"name"),c}function a(n){return n.name===g(s).name}function f(n){return g(o)?g(u).includes(n):e.currentRoute.value.name===n}return{hasRenderFrame:f,getFramePages:i,showIframe:a,getAllFramePages:t}}const D=k({name:"FrameLayout",components:{FramePage:M},setup(){const{getFramePages:e,hasRenderFrame:s,showIframe:o}=q(),r=l(()=>g(e).length>0);return{getFramePages:e,hasRenderFrame:s,showIframe:o,showFrame:r}}}),Q={key:0};function z(e,s,o,r,i,u){const t=T("FramePage");return e.showFrame?(m(),d("div",Q,[(m(!0),d(S,null,N(e.getFramePages,a=>(m(),d(S,{key:a.path},[a.meta.frameSrc&&e.hasRenderFrame(a.name)?E((m(),p(t,{key:0,frameSrc:a.meta.frameSrc},null,8,["frameSrc"])),[[O,e.showIframe(a)]]):b("",!0)],64))),128))])):b("",!0)}const J=P(D,[["render",z]]);function Z({route:e,openCache:s,cacheTabs:o,enableTransition:r,def:i}){if(!r)return;const u=o.includes(e.name),t="fade-slide";let a=t;return s&&(a=u&&e.meta.loaded?t:void 0),a||e.meta.transitionName||i}const G=k({name:"PageLayout",components:{FrameLayout:J},setup(){const{getShowMultipleTab:e}=R(),s=C(),{getOpenKeepAlive:o,getCanEmbedIFramePage:r}=$(),{getBasicTransition:i,getEnableTransition:u}=A(),t=l(()=>g(o)&&g(e)),a=l(()=>g(o)?s.getCachedTabList:[]);return{getTransitionName:Z,openCache:t,getEnableTransition:u,getBasicTransition:i,getCaches:a,getCanEmbedIFramePage:r}}});function H(e,s,o,r,i,u){const t=T("RouterView"),a=T("FrameLayout");return m(),d(S,null,[w(t,null,{default:_(({Component:f,route:n})=>[w(V,{name:e.getTransitionName({route:n,openCache:e.openCache,enableTransition:e.getEnableTransition,cacheTabs:e.getCaches,def:e.getBasicTransition}),mode:"out-in",appear:""},{default:_(()=>[e.openCache?(m(),p(j,{key:0,include:e.getCaches},[(m(),p(y(f),{key:n.fullPath}))],1032,["include"])):(m(),p(y(f),{key:n.fullPath}))]),_:2},1032,["name"])]),_:1}),e.getCanEmbedIFramePage?(m(),p(a,{key:0})):b("",!0)],64)}const U=P(G,[["render",H]]),ee=Object.freeze(Object.defineProperty({__proto__:null,default:U},Symbol.toStringTag,{value:"Module"}));export{U as P,ee as i,R as u}; diff --git a/detect.gui/Embedded/dist/assets/index-ccf6944d.js b/detect.gui/Embedded/dist/assets/index-ccf6944d.js new file mode 100644 index 0000000..d0002e8 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-ccf6944d.js @@ -0,0 +1 @@ +var me=Object.defineProperty,he=Object.defineProperties;var ye=Object.getOwnPropertyDescriptors;var x=Object.getOwnPropertySymbols;var Ce=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var ee=(e,o,l)=>o in e?me(e,o,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[o]=l,H=(e,o)=>{for(var l in o||(o={}))Ce.call(o,l)&&ee(e,l,o[l]);if(x)for(var l of x(o))Me.call(o,l)&&ee(e,l,o[l]);return e},E=(e,o)=>he(e,ye(o));var A=(e,o,l)=>new Promise((i,a)=>{var c=u=>{try{n(l.next(u))}catch(d){a(d)}},t=u=>{try{n(l.throw(u))}catch(d){a(d)}},n=u=>u.done?i(u.value):Promise.resolve(u.value).then(c,t);n((l=l.apply(e,o)).next())});import{v as se,F as be,d as He,aQ as Se,L as Fe,K as ke,a3 as ve,aR as $e,_ as L,u as re,az as Oe,f as ie,aO as Be,h as Pe,aD as ce,ao as Te,w as we}from"./index.js";import{h as q,u as r,d as D,I as Re,k as S,a9 as R,i as De,f as m,c as F,w as ue,o as Ne,b as de,y as O,a6 as y,n as We,Z as M,a4 as P,a5 as g,m as _e,_ as V,ab as B,ad as Ee,F as Le,a8 as Y,a1 as je,G as U,a0 as G,g as K,z as Ie,aa as te,a7 as ne,ag as oe,ah as ae,r as pe,J as z}from"./vue-72a104e4.js";import{M as Ae,T as ze,a3 as Ve,a4 as qe,O as Xe,o as X,b as Ye}from"./antd-eedb3ef5.js";import{u as Ue}from"./useWindowSizeFn-46f0db92.js";const{t:le}=se(),Ge={open:{type:Boolean},scrollTop:{type:Boolean,default:!0},height:{type:Number},minHeight:{type:Number},draggable:{type:Boolean,default:!0},centered:{type:Boolean},cancelText:{type:String,default:le("common.cancelText")},okText:{type:String,default:le("common.okText")},closeFunc:Function},Q=Object.assign({},Ge,{defaultFullscreen:{type:Boolean},canFullscreen:{type:Boolean,default:!0},wrapperFooterOffset:{type:Number,default:0},helpMessage:[String,Array],useWrapper:{type:Boolean,default:!0},loading:{type:Boolean},loadingTip:{type:String},showCancelBtn:{type:Boolean,default:!0},showOkBtn:{type:Boolean,default:!0},wrapperProps:Object,afterClose:Function,bodyStyle:Object,closable:{type:Boolean,default:!0},closeIcon:Object,confirmLoading:{type:Boolean},destroyOnClose:{type:Boolean},footer:Object,getContainer:Function,mask:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},maskStyle:Object,okType:{type:String,default:"primary"},okButtonProps:Object,cancelButtonProps:Object,title:{type:String},open:{type:Boolean},width:[String,Number],wrapClassName:{type:String},zIndex:{type:Number}});function Je(e){const o=(a,c)=>getComputedStyle(a)[c],l=a=>{if(!a)return;a.setAttribute("data-drag",r(e.draggable));const c=a.querySelector(".ant-modal-header"),t=a.querySelector(".ant-modal");!c||!t||!r(e.draggable)||(c.style.cursor="move",c.onmousedown=n=>{if(!n)return;const u=n.clientX,d=n.clientY,p=document.body.clientWidth,f=document.documentElement.clientHeight,h=t.offsetWidth,b=t.offsetHeight,k=t.offsetLeft,v=p-t.offsetLeft-h,$=t.offsetTop,j=f-t.offsetTop-b,T=o(t,"left"),N=o(t,"top");let W=+T,_=+N;T.includes("%")?(W=+document.body.clientWidth*(+T.replace(/%/g,"")/100),_=+document.body.clientHeight*(+N.replace(/%/g,"")/100)):(W=+T.replace(/px/g,""),_=+N.replace(/px/g,"")),document.onmousemove=function(I){let s=I.clientX-u,C=I.clientY-d;-s>k?s=-k:s>v&&(s=v),-C>$?C=-$:C>j&&(C=j),t.style.cssText+=`;left:${s+W}px;top:${C+_}px;`},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null}})},i=()=>{const a=document.querySelectorAll(".ant-modal-wrap");for(const c of Array.from(a)){if(!c)continue;const t=o(c,"display"),n=c.getAttribute("data-drag");t!=="none"&&(n===null||r(e.destroyOnClose))&&l(c)}};q(()=>{!r(e.open)||!r(e.draggable)||be(()=>{i()},30)})}function Ke(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!De(e)}const Qe=D({name:"Modal",inheritAttrs:!1,props:Q,emits:["cancel"],setup(e,{slots:o,emit:l}){const{open:i,draggable:a,destroyOnClose:c}=Re(e),t=He();Je({open:i,destroyOnClose:c,draggable:a});const n=u=>{l("cancel",u)};return()=>{let u;const d=E(H(H({},r(t)),e),{onCancel:n});return S(Ae,R({class:"custom-modal"},d),Ke(u=Se(o))?u:{default:()=>[u]})}}}),fe=Symbol();function Ze(e){return ke(e,fe)}function St(){return Fe(fe)}const xe={loading:{type:Boolean},useWrapper:{type:Boolean,default:!0},modalHeaderHeight:{type:Number,default:57},modalFooterHeight:{type:Number,default:74},minHeight:{type:Number,default:200},height:{type:Number},footerOffset:{type:Number,default:0},open:{type:Boolean},fullScreen:{type:Boolean},loadingTip:{type:String}},et=D({name:"ModalWrapper",components:{ScrollContainer:ve},inheritAttrs:!1,props:xe,emits:["height-change","ext-height"],setup(e,{emit:o}){const l=m(null),i=m(null),a=m(0),c=m(0);let t=0;Ue(d.bind(null)),$e(i,()=>{d()},{attributes:!0,subtree:!0}),Ze({redoModalHeight:d});const n=F(()=>({minHeight:`${e.minHeight}px`,[e.fullScreen?"height":"maxHeight"]:`${r(a)}px`}));q(()=>{e.useWrapper&&d()}),ue(()=>e.fullScreen,p=>{d(),p?c.value=a.value:a.value=c.value}),Ne(()=>{const{modalHeaderHeight:p,modalFooterHeight:f}=e;o("ext-height",p+f)}),de(()=>{});function u(){return A(this,null,function*(){O(()=>{var f;const p=r(l);p&&((f=p==null?void 0:p.scrollTo)==null||f.call(p,0))})})}function d(){return A(this,null,function*(){if(!e.open)return;const p=r(l);if(!p)return;const f=p.$el.parentElement;if(f){f.style.padding="0",yield O();try{const h=f.parentElement&&f.parentElement.parentElement;if(!h)return;const b=getComputedStyle(h).top,k=Number.parseInt(b);let v=window.innerHeight-k*2+(e.footerOffset||0)-e.modalFooterHeight-e.modalHeaderHeight;k<40&&(v-=26),yield O();const $=r(i);if(!$)return;yield O(),t=$.scrollHeight,e.fullScreen?a.value=window.innerHeight-e.modalFooterHeight-e.modalHeaderHeight-28:a.value=e.height?e.height:t>v?v:t,o("height-change",r(a))}catch(h){}}})}return{wrapperRef:l,spinRef:i,spinStyle:n,scrollTop:u,setModalHeight:d}}}),tt=["loading-tip"];function nt(e,o,l,i,a,c){const t=y("ScrollContainer"),n=We("loading");return M(),P(t,{ref:"wrapperRef"},{default:g(()=>[_e((M(),V("div",{ref:"spinRef",style:Ee(e.spinStyle),"loading-tip":e.loadingTip},[B(e.$slots,"default")],12,tt)),[[n,e.loading]])]),_:3},512)}const ot=L(et,[["render",nt]]),at=D({name:"ModalClose",components:{Tooltip:ze,FullscreenExitOutlined:Ve,FullscreenOutlined:qe,CloseOutlined:Xe},props:{canFullscreen:{type:Boolean,default:!0},fullScreen:{type:Boolean}},emits:["cancel","fullscreen"],setup(e,{emit:o}){const{prefixCls:l}=re("basic-modal-close"),{t:i}=se(),a=F(()=>[l,`${l}--custom`,{[`${l}--can-full`]:e.canFullscreen}]);function c(n){o("cancel",n)}function t(n){n==null||n.stopPropagation(),n==null||n.preventDefault(),o("fullscreen")}return{t:i,getClass:a,prefixCls:l,handleCancel:c,handleFullScreen:t}}});function lt(e,o,l,i,a,c){const t=y("FullscreenExitOutlined"),n=y("Tooltip"),u=y("FullscreenOutlined"),d=y("CloseOutlined");return M(),V("div",{class:je(e.getClass)},[e.canFullscreen?(M(),V(Le,{key:0},[e.fullScreen?(M(),P(n,{key:0,title:e.t("component.modal.restore"),placement:"bottom"},{default:g(()=>[S(t,{role:"full",onClick:e.handleFullScreen},null,8,["onClick"])]),_:1},8,["title"])):(M(),P(n,{key:1,title:e.t("component.modal.maximize"),placement:"bottom"},{default:g(()=>[S(u,{role:"close",onClick:e.handleFullScreen},null,8,["onClick"])]),_:1},8,["title"]))],64)):Y("",!0),S(n,{title:e.t("component.modal.close"),placement:"bottom"},{default:g(()=>[S(d,{onClick:e.handleCancel},null,8,["onClick"])]),_:1},8,["title"])],2)}const st=L(at,[["render",lt]]),rt=D({name:"BasicModalFooter",props:Q,emits:["ok","cancel"],setup(e,{emit:o}){function l(a){o("ok",a)}function i(a){o("cancel",a)}return{handleOk:l,handleCancel:i}}});function it(e,o,l,i,a,c){const t=y("a-button");return M(),V("div",null,[B(e.$slots,"insertFooter"),e.showCancelBtn?(M(),P(t,R({key:0},e.cancelButtonProps,{onClick:e.handleCancel}),{default:g(()=>[U(G(e.cancelText),1)]),_:1},16,["onClick"])):Y("",!0),B(e.$slots,"centerFooter"),e.showOkBtn?(M(),P(t,R({key:1,type:e.okType,onClick:e.handleOk,loading:e.confirmLoading},e.okButtonProps),{default:g(()=>[U(G(e.okText),1)]),_:1},16,["type","onClick","loading"])):Y("",!0),B(e.$slots,"appendFooter")])}const ct=L(rt,[["render",it]]),ut=D({name:"BasicModalHeader",components:{BasicTitle:Oe},props:{helpMessage:{type:[String,Array]},title:{type:String}}});function dt(e,o,l,i,a,c){const t=y("BasicTitle");return M(),P(t,{helpMessage:e.helpMessage},{default:g(()=>[U(G(e.title),1)]),_:1},8,["helpMessage"])}const pt=L(ut,[["render",dt]]);function ft(e){const o=m(!1),l=F(()=>{const a=r(e.wrapClassName)||"";return r(o)?`fullscreen-modal ${a} `:r(a)});function i(a){a&&a.stopPropagation(),o.value=!r(o)}return{getWrapClassName:l,handleFullScreen:i,fullScreenRef:o}}const gt=D({name:"BasicModal",components:{Modal:Qe,ModalWrapper:ot,ModalClose:st,ModalFooter:ct,ModalHeader:pt},inheritAttrs:!1,props:Q,emits:["open-change","height-change","cancel","ok","register","update:open"],setup(e,{emit:o,attrs:l}){const i=m(!1),a=m(null),c=m(null),{prefixCls:t}=re("basic-modal"),n=m(0),u={setModalProps:T,emitOpen:void 0,redoModalHeight:()=>{O(()=>{r(c)&&r(c).setModalHeight()})}},d=K();d&&o("register",u,d.uid);const p=F(()=>H(H({},e),r(a))),{handleFullScreen:f,getWrapClassName:h,fullScreenRef:b}=ft({modalWrapperRef:c,extHeightRef:n,wrapClassName:Ie(p.value,"wrapClassName")}),k=F(()=>{const s=E(H({},r(p)),{open:r(i),okButtonProps:void 0,cancelButtonProps:void 0,title:void 0});return E(H({},s),{wrapClassName:r(h)})}),v=F(()=>{const s=E(H(H({},l),r(p)),{open:r(i)});return s.wrapClassName=`${(s==null?void 0:s.wrapClassName)||""} ${r(h)}vben-basic-modal-wrap`,r(b)?X(s,["height","title"]):X(s,"title")}),$=F(()=>{if(!r(b))return r(k).height});q(()=>{i.value=!!e.open,b.value=!!e.defaultFullscreen}),ue(()=>r(i),s=>{var C;o("open-change",s),o("update:open",s),d&&((C=u.emitOpen)==null||C.call(u,s,d.uid)),O(()=>{e.scrollTop&&s&&r(c)&&r(c).scrollTop()})},{immediate:!1});function j(s){return A(this,null,function*(){var C,Z;if(s==null||s.stopPropagation(),!((Z=(C=s.target)==null?void 0:C.classList)!=null&&Z.contains(t+"-close--custom"))){if(e.closeFunc&&ie(e.closeFunc)){const ge=yield e.closeFunc();i.value=!ge;return}i.value=!1,o("cancel",s)}})}function T(s){a.value=Be(r(a)||{},s),Reflect.has(s,"open")&&(i.value=!!s.open),Reflect.has(s,"defaultFullscreen")&&(b.value=!!s.defaultFullscreen)}function N(s){o("ok",s)}function W(s){o("height-change",s)}function _(s){n.value=s}function I(s){e.canFullscreen&&(s.stopPropagation(),f(s))}return{handleCancel:j,getBindValue:v,getProps:k,handleFullScreen:f,fullScreenRef:b,getMergeProps:p,handleOk:N,openRef:i,omit:X,modalWrapperRef:c,handleExtHeight:_,handleHeightChange:W,handleTitleDbClick:I,getWrapperHeight:$}}});function mt(e,o,l,i,a,c){const t=y("ModalClose"),n=y("ModalHeader"),u=y("ModalFooter"),d=y("ModalWrapper"),p=y("Modal");return M(),P(p,R(e.getBindValue,{onCancel:e.handleCancel}),te({default:g(()=>[S(d,R({useWrapper:e.getProps.useWrapper,footerOffset:e.wrapperFooterOffset,fullScreen:e.fullScreenRef,ref:"modalWrapperRef",loading:e.getProps.loading,"loading-tip":e.getProps.loadingTip,minHeight:e.getProps.minHeight,height:e.getWrapperHeight,open:e.openRef,modalFooterHeight:e.footer!==void 0&&!e.footer?0:void 0},e.omit(e.getProps.wrapperProps,"open","height","modalFooterHeight"),{onExtHeight:e.handleExtHeight,onHeightChange:e.handleHeightChange}),{default:g(()=>[B(e.$slots,"default")]),_:3},16,["useWrapper","footerOffset","fullScreen","loading","loading-tip","minHeight","height","open","modalFooterHeight","onExtHeight","onHeightChange"])]),_:2},[e.$slots.closeIcon?void 0:{name:"closeIcon",fn:g(()=>[S(t,{canFullscreen:e.getProps.canFullscreen,fullScreen:e.fullScreenRef,onCancel:e.handleCancel,onFullscreen:e.handleFullScreen},null,8,["canFullscreen","fullScreen","onCancel","onFullscreen"])]),key:"0"},e.$slots.title?void 0:{name:"title",fn:g(()=>[S(n,{helpMessage:e.getProps.helpMessage,title:e.getMergeProps.title,onDblclick:e.handleTitleDbClick},null,8,["helpMessage","title","onDblclick"])]),key:"1"},e.$slots.footer?void 0:{name:"footer",fn:g(()=>[S(u,R(e.getBindValue,{onOk:e.handleOk,onCancel:e.handleCancel}),te({_:2},[ne(Object.keys(e.$slots),f=>({name:f,fn:g(h=>[B(e.$slots,f,oe(ae(h||{})))])}))]),1040,["onOk","onCancel"])]),key:"2"},ne(Object.keys(e.omit(e.$slots,"default")),f=>({name:f,fn:g(h=>[B(e.$slots,f,oe(ae(h||{})))])}))]),1040,["onCancel"])}const ht=L(gt,[["render",mt]]),w=pe({}),J=pe({});function Ft(){const e=m(null),o=m(!1),l=m(0);function i(t,n){if(!K())throw new Error("useModal() can only be used inside setup() or functional components!");l.value=n,de(()=>{e.value=null,o.value=!1,w[String(r(l))]=null}),!(r(o)&&Pe()&&t===r(e))&&(e.value=t,o.value=!0,t.emitOpen=(u,d)=>{J[d]=u})}const a=()=>{const t=r(e);return t||ce("useModal instance is undefined!"),t},c={setModalProps:t=>{var n;(n=a())==null||n.setModalProps(t)},getOpen:F(()=>J[~~r(l)]),redoModalHeight:()=>{var t,n;(n=(t=a())==null?void 0:t.redoModalHeight)==null||n.call(t)},openModal:(t=!0,n,u=!0)=>{var f;if((f=a())==null||f.setModalProps({open:t}),!n)return;const d=r(l);if(u){w[d]=null,w[d]=z(n);return}Ye(z(w[d]),z(n))||(w[d]=z(n))},closeModal:()=>{var t;(t=a())==null||t.setModalProps({open:!1})}};return[i,c]}const kt=e=>{const o=m(null),l=K(),i=m(0),a=()=>{const t=r(o);return t||ce("useModalInner instance is undefined!"),t},c=(t,n)=>{Te(()=>{o.value=null}),i.value=n,o.value=t,l==null||l.emit("register",t,n)};return q(()=>{const t=w[r(i)];t&&(!e||!ie(e)||O(()=>{e(t)}))}),[c,{changeLoading:(t=!0)=>{var n;(n=a())==null||n.setModalProps({loading:t})},getOpen:F(()=>J[~~r(i)]),changeOkLoading:(t=!0)=>{var n;(n=a())==null||n.setModalProps({confirmLoading:t})},closeModal:()=>{var t;(t=a())==null||t.setModalProps({open:!1})},setModalProps:t=>{var n;(n=a())==null||n.setModalProps(t)},redoModalHeight:()=>{var n;const t=(n=a())==null?void 0:n.redoModalHeight;t&&t()}}]},vt=we(ht);export{vt as B,kt as a,St as b,Ft as u}; diff --git a/detect.gui/Embedded/dist/assets/index-df6647e6.js b/detect.gui/Embedded/dist/assets/index-df6647e6.js new file mode 100644 index 0000000..777e117 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-df6647e6.js @@ -0,0 +1 @@ +import{m as D,p as U,u as b,am as N,v as O,W as P,b9 as S,_ as x}from"./index.js";import{D as A}from"./siteSetting-efd6ab5b.js";import{c as v,u as E}from"./index-07b093f7.js";import{u as R}from"./index-ccf6944d.js";import{h as V}from"./header-b90f4bbc.js";import{D as B,q as L}from"./antd-eedb3ef5.js";import{d as T,c as F,Z as l,_ as W,k as t,a5 as g,F as q,a6 as n,a4 as _,a8 as k,$ as a,a1 as s,a0 as I}from"./vue-72a104e4.js";import"./index-cb1b7a92.js";import"./index-248ee10e.js";import"./useContentViewHeight-af1e3bfb.js";import"./useWindowSizeFn-46f0db92.js";import"./lock-ba03254e.js";const z=T({name:"UserDropdown",components:{Dropdown:B,Menu:L,MenuItem:v(()=>D(()=>import("./DropMenuItem-ea8db23a.js"),["./DropMenuItem-ea8db23a.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css"],import.meta.url)),MenuDivider:L.Divider,LockAction:v(()=>D(()=>import("./LockModal-0cf56fb3.js"),["./LockModal-0cf56fb3.js","./index.js","./vue-72a104e4.js","./antd-eedb3ef5.js","./index-a17248e3.css","./index-ccf6944d.js","./useWindowSizeFn-46f0db92.js","./index-7064e331.css","./useForm-df5105ea.js","./copyTextToClipboard-96e9be8c.js","./useForm-01d9c31d.css","./lock-ba03254e.js","./header-b90f4bbc.js","./LockModal-ca58db68.css"],import.meta.url))},props:{theme:U.oneOf(["dark","light"])},setup(){const{prefixCls:e}=b("header-user-dropdown"),{t:h}=O(),{getShowDoc:C,getUseLockPage:w}=E(),c=N(),y=F(()=>{const{realName:f="",avatar:M,tenant:$}=c.getUserInfo||{};return{realName:f,avatar:M||V,desc:"",tenant:$}}),[o,{openModal:p}]=R();function u(){p(!0)}function m(){c.confirmLoginOut()}function d(){P(A)}function r(){S.push("/change-password")}function i(f){switch(f.key){case"password":r();break;case"logout":m();break;case"doc":d();break;case"lock":u();break}}return{prefixCls:e,t:h,getUserInfo:y,handleMenuClick:i,getShowDoc:C,register:o,getUseLockPage:w}}});const H=["src"];function Z(e,h,C,w,c,y){const o=n("MenuItem"),p=n("MenuDivider"),u=n("Menu"),m=n("Dropdown"),d=n("LockAction");return l(),W(q,null,[t(m,{placement:"bottomLeft",overlayClassName:`${e.prefixCls}-dropdown-overlay`},{overlay:g(()=>[t(u,{onClick:e.handleMenuClick},{default:g(()=>[e.getShowDoc?(l(),_(o,{key:"doc",text:e.t("layout.header.dropdownItemDoc"),icon:"ion:document-text-outline"},null,8,["text"])):k("",!0),e.getShowDoc?(l(),_(p,{key:1})):k("",!0),e.getUseLockPage?(l(),_(o,{key:"lock",text:e.t("layout.header.tooltipLock"),icon:"ion:lock-closed-outline"},null,8,["text"])):k("",!0),t(o,{key:"password",text:e.t("layout.header.tooltipChangePassword"),icon:"ion:document-lock-outline"},null,8,["text"]),t(o,{key:"logout",text:e.t("layout.header.dropdownItemLoginOut"),icon:"ion:power-outline"},null,8,["text"])]),_:1},8,["onClick"])]),default:g(()=>{var r,i;return[a("span",{class:s([[e.prefixCls,`${e.prefixCls}--${e.theme}`],"flex"])},[a("span",{style:{"margin-right":"10px"},class:s(`${e.prefixCls}__name`)},I((i=(r=e.getUserInfo.tenant)==null?void 0:r.productList)==null?void 0:i[0].name),3),a("img",{class:s(`${e.prefixCls}__header`),src:e.getUserInfo.avatar},null,10,H),a("span",{class:s(`${e.prefixCls}__info hidden md:block`)},[a("span",{class:s([`${e.prefixCls}__name`,"truncate"])},I(e.getUserInfo.realName),3)],2)],2)]}),_:1},8,["overlayClassName"]),t(d,{onRegister:e.register},null,8,["onRegister"])],64)}const se=x(z,[["render",Z]]);export{se as default}; diff --git a/detect.gui/Embedded/dist/assets/index-e60b7cd2.js b/detect.gui/Embedded/dist/assets/index-e60b7cd2.js new file mode 100644 index 0000000..18f20e6 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-e60b7cd2.js @@ -0,0 +1 @@ +var de=Object.defineProperty,fe=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var G=Object.getOwnPropertySymbols;var we=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var J=(e,s,o)=>s in e?de(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,D=(e,s)=>{for(var o in s||(s={}))we.call(s,o)&&J(e,o,s[o]);if(G)for(var o of G(s))he.call(s,o)&&J(e,o,s[o]);return e},L=(e,s)=>fe(e,ge(s));var U=(e,s,o)=>new Promise((c,l)=>{var p=i=>{try{n(o.next(i))}catch(u){l(u)}},t=i=>{try{n(o.throw(i))}catch(u){l(u)}},n=i=>i.done?c(i.value):Promise.resolve(i.value).then(p,t);n((o=o.apply(e,s)).next())});import{v as Y,u as z,_ as A,az as ye,p as N,a3 as me,d as De,aO as Z,c as Ce,f as x,ao as ee,h as ke,aD as te,w as $e}from"./index.js";import{d as E,c as w,a6 as C,Z as f,_ as b,F as Be,ab as g,a4 as S,a5 as h,G as R,a0 as P,a9 as T,a8 as O,a1 as $,ad as oe,$ as K,k as V,f as k,g as _,u as a,J as v,w as Q,y as se,n as ve,aa as W,m as be,a7 as Oe,ag as Se,ah as Pe,r as ne,h as Te}from"./vue-72a104e4.js";import{aO as _e,a5 as Fe,b as He}from"./antd-eedb3ef5.js";const{t:X}=Y(),re={confirmLoading:{type:Boolean},showCancelBtn:{type:Boolean,default:!0},cancelButtonProps:Object,cancelText:{type:String,default:X("common.cancelText")},showOkBtn:{type:Boolean,default:!0},okButtonProps:Object,okText:{type:String,default:X("common.okText")},okType:{type:String,default:"primary"},showFooter:{type:Boolean},footerHeight:{type:[String,Number],default:60}},Le=D({isDetail:{type:Boolean},title:{type:String,default:""},loadingText:{type:String},showDetailBack:{type:Boolean,default:!0},open:{type:Boolean},loading:{type:Boolean},maskClosable:{type:Boolean,default:!0},getContainer:{type:[Object,String]},closeFunc:{type:[Function,Object],default:null},destroyOnClose:{type:Boolean}},re),Ne=E({name:"BasicDrawerFooter",props:L(D({},re),{height:{type:String,default:"60px"}}),emits:["ok","close"],setup(e,{emit:s}){const{prefixCls:o}=z("basic-drawer-footer"),c=w(()=>{const t=`${e.height}`;return{height:t,lineHeight:`calc(${t} - 1px)`}});function l(){s("ok")}function p(){s("close")}return{handleOk:l,prefixCls:o,handleClose:p,getStyle:c}}});function Re(e,s,o,c,l,p){const t=C("a-button");return e.showFooter||e.$slots.footer?(f(),b("div",{key:0,class:$(e.prefixCls),style:oe([e.getStyle,{background:"#13265a"}])},[e.$slots.footer?g(e.$slots,"footer",{key:1}):(f(),b(Be,{key:0},[g(e.$slots,"insertFooter"),e.showCancelBtn?(f(),S(t,T({key:0},e.cancelButtonProps,{onClick:e.handleClose,class:"mr-2 form-cancel"}),{default:h(()=>[R(P(e.cancelText),1)]),_:1},16,["onClick"])):O("",!0),g(e.$slots,"centerFooter"),e.showOkBtn?(f(),S(t,T({key:1,type:e.okType,onClick:e.handleOk},e.okButtonProps,{class:"mr-2 form-ok",loading:e.confirmLoading}),{default:h(()=>[R(P(e.okText),1)]),_:1},16,["type","onClick","loading"])):O("",!0),g(e.$slots,"appendFooter")],64))],6)):O("",!0)}const Ve=A(Ne,[["render",Re]]),je=E({name:"BasicDrawerHeader",components:{BasicTitle:ye,ArrowLeftOutlined:_e},props:{isDetail:N.bool,showDetailBack:N.bool,title:N.string},emits:["close"],setup(e,{emit:s}){const{prefixCls:o}=z("basic-drawer-header");function c(){s("close")}return{prefixCls:o,handleClose:c}}});const ze={key:1};function Ae(e,s,o,c,l,p){const t=C("BasicTitle"),n=C("ArrowLeftOutlined");return e.isDetail?(f(),b("div",{key:1,class:$([e.prefixCls,`${e.prefixCls}--detail`])},[K("span",{class:$(`${e.prefixCls}__twrap`)},[e.showDetailBack?(f(),b("span",{key:0,onClick:s[0]||(s[0]=(...i)=>e.handleClose&&e.handleClose(...i))},[V(n,{class:$(`${e.prefixCls}__back`)},null,8,["class"])])):O("",!0),e.title?(f(),b("span",ze,P(e.title),1)):O("",!0)],2),K("span",{class:$(`${e.prefixCls}__toolbar`)},[g(e.$slots,"titleToolbar")],2)],2)):(f(),S(t,{key:0,class:$(e.prefixCls),style:{"font-family":'"Noto Sans SC", serif',"font-size":"16px",color:"#ffffff"}},{default:h(()=>[g(e.$slots,"title"),R(" "+P(e.$slots.title?"":e.title),1)]),_:3},8,["class"]))}const Ee=A(je,[["render",Ae]]),Ie=E({components:{Drawer:Fe,ScrollContainer:me,DrawerFooter:Ve,DrawerHeader:Ee},inheritAttrs:!1,props:Le,emits:["open-change","ok","close","register"],setup(e,{emit:s}){const o=k(!1),c=De(),l=k(null),{t:p}=Y(),{prefixVar:t,prefixCls:n}=z("basic-drawer"),i={setDrawerProps:ce,emitOpen:void 0},u=_();u&&s("register",i,u.uid);const m=w(()=>Z(v(e),a(l))),y=w(()=>{const r=L(D(D({placement:"right"},a(c)),a(m)),{open:a(o)});r.title=void 0;const{isDetail:d,width:H,wrapClassName:M,getContainer:pe}=r;if(d){H||(r.width="100%");const q=`${n}__detail`;r.rootClassName=M?`${M} ${q}`:q,pe||(r.getContainer=`.${t}-layout-content`)}return r}),F=w(()=>D(D({},c),a(y))),I=w(()=>{const{footerHeight:r,showFooter:d}=a(y);return d&&r?Ce(r)?`${r}px`:`${r.replace("px","")}px`:"0px"}),ae=w(()=>({position:"relative",height:`calc(100% - ${a(I)})`})),le=w(()=>{var r;return!!((r=a(y))!=null&&r.loading)});Q(()=>e.open,(r,d)=>{r!==d&&(o.value=r)},{deep:!0}),Q(()=>o.value,r=>{se(()=>{var d;s("open-change",r),u&&((d=i.emitOpen)==null||d.call(i,r,u.uid))})});function ie(r){return U(this,null,function*(){const{closeFunc:d}=a(y);if(s("close",r),d&&x(d)){const H=yield d();o.value=!H;return}o.value=!1})}function ce(r){l.value=Z(a(l)||{},r),Reflect.has(r,"open")&&(o.value=!!r.open)}function ue(){s("ok")}return{onClose:ie,t:p,prefixCls:n,getMergeProps:m,getScrollContentStyle:ae,getProps:y,getLoading:le,getBindValues:F,getFooterHeight:I,handleOk:ue}}});function Me(e,s,o,c,l,p){const t=C("DrawerHeader"),n=C("ScrollContainer"),i=C("DrawerFooter"),u=C("Drawer"),m=ve("loading");return f(),S(u,T({onClose:e.onClose},e.getBindValues,{closable:!1,style:{background:"#13265a"},headerStyle:{"border-bottom":"1px solid #183171"},bodyStyle:{padding:"24px 24px 0 0"}}),W({default:h(()=>[be((f(),S(n,{style:oe([e.getScrollContentStyle,{"padding-left":"24px","padding-right":"10px"}]),"loading-tip":e.loadingText||e.t("common.loadingText")},{default:h(()=>[g(e.$slots,"default")]),_:3},8,["style","loading-tip"])),[[m,e.getLoading]]),V(i,T(e.getProps,{onClose:e.onClose,onOk:e.handleOk,height:e.getFooterHeight,style:{"border-top":"1px solid #183171"}}),W({_:2},[Oe(Object.keys(e.$slots),y=>({name:y,fn:h(F=>[g(e.$slots,y,Se(Pe(F||{})))])}))]),1040,["onClose","onOk","height"])]),_:2},[e.$slots.title?{name:"title",fn:h(()=>[g(e.$slots,"title")]),key:"1"}:{name:"title",fn:h(()=>[V(t,{title:e.getMergeProps.title,isDetail:e.isDetail,showDetailBack:e.showDetailBack,onClose:e.onClose},{titleToolbar:h(()=>[g(e.$slots,"titleToolbar")]),_:3},8,["title","isDetail","showDetailBack","onClose"])]),key:"0"}]),1040,["onClose"])}const qe=A(Ie,[["render",Me]]),B=ne({}),j=ne({});function Ke(){if(!_())throw new Error("useDrawer() can only be used inside setup() or functional components!");const e=k(null),s=k(!1),o=k(0);function c(t,n){ee(()=>{e.value=null,s.value=null,B[a(o)]=null}),!(a(s)&&ke()&&t===a(e))&&(o.value=n,e.value=t,s.value=!0,t.emitOpen=(i,u)=>{j[u]=i})}const l=()=>{const t=a(e);return t||te("useDrawer instance is undefined!"),t},p={setDrawerProps:t=>{var n;(n=l())==null||n.setDrawerProps(t)},getOpen:w(()=>j[~~a(o)]),openDrawer:(t=!0,n,i=!0)=>{var m;if((m=l())==null||m.setDrawerProps({open:t}),!n)return;if(i){B[a(o)]=null,B[a(o)]=v(n);return}He(v(B[a(o)]),v(n))||(B[a(o)]=v(n))},closeDrawer:()=>{var t;(t=l())==null||t.setDrawerProps({open:!1})}};return[c,p]}const Qe=e=>{const s=k(null),o=_(),c=k(0);if(!_())throw new Error("useDrawerInner() can only be used inside setup() or functional components!");const l=()=>{const t=a(s);if(!t){te("useDrawerInner instance is undefined!");return}return t},p=(t,n)=>{ee(()=>{s.value=null}),c.value=n,s.value=t,o==null||o.emit("register",t,n)};return Te(()=>{const t=B[a(c)];t&&(!e||!x(e)||se(()=>{e(t)}))}),[p,{changeLoading:(t=!0)=>{var n;(n=l())==null||n.setDrawerProps({loading:t})},changeOkLoading:(t=!0)=>{var n;(n=l())==null||n.setDrawerProps({confirmLoading:t})},getOpen:w(()=>j[~~a(c)]),closeDrawer:()=>{var t;(t=l())==null||t.setDrawerProps({open:!1})},setDrawerProps:t=>{var n;(n=l())==null||n.setDrawerProps(t)}}]},We=$e(qe);export{We as B,Qe as a,Ke as u}; diff --git a/detect.gui/Embedded/dist/assets/index-e6731dea.css b/detect.gui/Embedded/dist/assets/index-e6731dea.css new file mode 100644 index 0000000..dd0571b --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-e6731dea.css @@ -0,0 +1 @@ +.header[data-v-75abe5ab]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-75abe5ab]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-75abe5ab] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-75abe5ab] .ant-table-wrapper{background:transparent}[data-v-75abe5ab] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-75abe5ab] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-75abe5ab] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-75abe5ab] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-75abe5ab] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-75abe5ab] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-75abe5ab] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-75abe5ab] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-75abe5ab] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-75abe5ab] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-75abe5ab] .ant-select-selector .ant-select-selection-item,[data-v-75abe5ab] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-75abe5ab] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-75abe5ab] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-75abe5ab] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-75abe5ab] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-75abe5ab] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-75abe5ab] .ant-empty-description{color:#999}[data-v-75abe5ab] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-75abe5ab] .ant-pagination-options-quick-jumper>input:hover,[data-v-75abe5ab] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-75abe5ab] .ant-input-clear-icon,[data-v-75abe5ab] .ant-input-password-icon{color:#fff!important}[data-v-75abe5ab] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-75abe5ab] .vben-basic-table-action button:disabled{color:#999!important}[data-v-75abe5ab] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-75abe5ab] .vben-tree-header{border-bottom:1px solid #183171}[data-v-75abe5ab] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-tree-list{background:#13265a!important}[data-v-75abe5ab] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-tree-switcher-icon{color:#fff!important}[data-v-75abe5ab] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-75abe5ab] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-75abe5ab] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-75abe5ab] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-picker,[data-v-75abe5ab] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-75abe5ab] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-75abe5ab] .ant-picker-focused,[data-v-75abe5ab] .ant-picker-range:hover,[data-v-75abe5ab] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-75abe5ab] .vben-basic-table .ant-picker-range{width:100%}[data-v-75abe5ab] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-75abe5ab] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-75abe5ab] .anticon{color:#fff!important}[data-v-75abe5ab] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-75abe5ab] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-75abe5ab] .ant-picker-cell-in-view{color:#fff!important}[data-v-75abe5ab] .ant-picker-content th,[data-v-75abe5ab] .ant-picker-header-super-prev-btn,[data-v-75abe5ab] .ant-picker-header-prev-btn,[data-v-75abe5ab] .ant-picker-header-super-next-btn,[data-v-75abe5ab] .ant-picker-header-next-btn,[data-v-75abe5ab] .ant-picker-year-btn,[data-v-75abe5ab] .ant-picker-month-btn,[data-v-75abe5ab] .ant-picker-decade-btn,[data-v-75abe5ab] .ant-picker-header-view,[data-v-75abe5ab] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-75abe5ab] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-75abe5ab] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-75abe5ab] .ant-card-body{padding:0!important}[data-v-75abe5ab] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-75abe5ab] .ant-descriptions-view{border:1px solid #183171!important}[data-v-75abe5ab] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-75abe5ab] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-75abe5ab] .ant-descriptions-item-label,[data-v-75abe5ab] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-75abe5ab] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-75abe5ab] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-75abe5ab] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-75abe5ab] .CodeMirror-cursor{border-left:1px solid white}[data-v-75abe5ab] .cm-string{color:#ff8c00!important}[data-v-75abe5ab] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-e73cf221.css b/detect.gui/Embedded/dist/assets/index-e73cf221.css new file mode 100644 index 0000000..2c19fc0 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-e73cf221.css @@ -0,0 +1 @@ +.header[data-v-fdc90b07]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-fdc90b07]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-fdc90b07] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-fdc90b07] .ant-table-wrapper{background:transparent}[data-v-fdc90b07] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-fdc90b07] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-fdc90b07] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-fdc90b07] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-fdc90b07] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-fdc90b07] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-fdc90b07] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-fdc90b07] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-fdc90b07] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-fdc90b07] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-fdc90b07] .ant-select-selector .ant-select-selection-item,[data-v-fdc90b07] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-fdc90b07] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-fdc90b07] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-fdc90b07] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-fdc90b07] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-fdc90b07] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-fdc90b07] .ant-empty-description{color:#999}[data-v-fdc90b07] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-fdc90b07] .ant-pagination-options-quick-jumper>input:hover,[data-v-fdc90b07] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-fdc90b07] .ant-input-clear-icon,[data-v-fdc90b07] .ant-input-password-icon{color:#fff!important}[data-v-fdc90b07] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-fdc90b07] .vben-basic-table-action button:disabled{color:#999!important}[data-v-fdc90b07] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-fdc90b07] .vben-tree-header{border-bottom:1px solid #183171}[data-v-fdc90b07] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-tree-list{background:#13265a!important}[data-v-fdc90b07] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-tree-switcher-icon{color:#fff!important}[data-v-fdc90b07] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-fdc90b07] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-fdc90b07] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-fdc90b07] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-picker,[data-v-fdc90b07] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-fdc90b07] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-fdc90b07] .ant-picker-focused,[data-v-fdc90b07] .ant-picker-range:hover,[data-v-fdc90b07] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-fdc90b07] .vben-basic-table .ant-picker-range{width:100%}[data-v-fdc90b07] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-fdc90b07] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-fdc90b07] .anticon{color:#fff!important}[data-v-fdc90b07] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-fdc90b07] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-fdc90b07] .ant-picker-cell-in-view{color:#fff!important}[data-v-fdc90b07] .ant-picker-content th,[data-v-fdc90b07] .ant-picker-header-super-prev-btn,[data-v-fdc90b07] .ant-picker-header-prev-btn,[data-v-fdc90b07] .ant-picker-header-super-next-btn,[data-v-fdc90b07] .ant-picker-header-next-btn,[data-v-fdc90b07] .ant-picker-year-btn,[data-v-fdc90b07] .ant-picker-month-btn,[data-v-fdc90b07] .ant-picker-decade-btn,[data-v-fdc90b07] .ant-picker-header-view,[data-v-fdc90b07] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-fdc90b07] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-fdc90b07] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-fdc90b07] .ant-card-body{padding:0!important}[data-v-fdc90b07] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-fdc90b07] .ant-descriptions-view{border:1px solid #183171!important}[data-v-fdc90b07] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-fdc90b07] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-fdc90b07] .ant-descriptions-item-label,[data-v-fdc90b07] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-fdc90b07] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-fdc90b07] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-fdc90b07] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-fdc90b07] .CodeMirror-cursor{border-left:1px solid white}[data-v-fdc90b07] .cm-string{color:#ff8c00!important}[data-v-fdc90b07] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/index-f3708506.js b/detect.gui/Embedded/dist/assets/index-f3708506.js new file mode 100644 index 0000000..03b2881 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-f3708506.js @@ -0,0 +1 @@ +import{B as g,u as v}from"./useTable-3e054214.js";import{T as C}from"./useForm-df5105ea.js";import{S as w,r as T,q as B,s as S,_ as R}from"./index.js";import{u as k}from"./index-e60b7cd2.js";import{R as D,c as y,s as I}from"./drawer-170ccb98.js";import{d as $,l as A,a6 as a,Z as _,_ as E,$ as h,k as r,a5 as m,G as F,a4 as N,a8 as V}from"./vue-72a104e4.js";import{N as x}from"./antd-eedb3ef5.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";import"./authorityApi-323b0ce5.js";const P=$({name:"UserPage",methods:{PlusOutlined:x,h:A},components:{SvgIcon:w,BasicTable:g,RoleDrawer:D,TableAction:C},setup(){const{createMessage:e}=B(),[o,{openDrawer:i}]=k(),[p,{reload:l}]=v({api:S,columns:y,formConfig:{labelWidth:0,schemas:I,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,pagination:!1,actionColumn:{width:180,title:"操作",dataIndex:"action",fixed:void 0}});function f(){i(!0,{isUpdate:!1})}function c(n){i(!0,{record:n,isUpdate:!0})}function u(n){T(n.id).then(t=>{e.success("删除用户成功!"),l()},t=>{e.error(`删除用户失败:${t}`)})}function d(){l()}return{registerTable:p,registerDrawer:o,handleCreate:f,handleEdit:c,handleDelete:u,handleSuccess:d}}});const U={class:"header"};function z(e,o,i,p,l,f){const c=a("SvgIcon"),u=a("a-button"),d=a("TableAction"),n=a("BasicTable"),t=a("RoleDrawer");return _(),E("div",null,[h("div",U,[r(c,{size:"19",name:"list"}),o[0]||(o[0]=h("div",{class:"title"},"用户列表",-1))]),r(n,{onRegister:e.registerTable},{toolbar:m(()=>[r(u,{type:"primary",onClick:e.handleCreate,icon:e.h(e.PlusOutlined)},{default:m(()=>o[1]||(o[1]=[F("新 增")])),_:1},8,["onClick","icon"])]),bodyCell:m(({column:b,record:s})=>[b.key==="action"?(_(),N(d,{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:e.handleEdit.bind(null,s),divider:!0,disabled:s.username==="admin"},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:e.handleDelete.bind(null,s),placement:"topRight"},disabled:s.username==="admin"}]},null,8,["actions"])):V("",!0)]),_:1},8,["onRegister"]),r(t,{onRegister:e.registerDrawer,onSuccess:e.handleSuccess},null,8,["onRegister","onSuccess"])])}const Y=R(P,[["render",z],["__scopeId","data-v-0024f4f5"]]);export{Y as default}; diff --git a/detect.gui/Embedded/dist/assets/index-fde1cef6.js b/detect.gui/Embedded/dist/assets/index-fde1cef6.js new file mode 100644 index 0000000..9dfaa44 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/index-fde1cef6.js @@ -0,0 +1 @@ +var C=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable;var Y=(a,d)=>{var i={};for(var t in a)H.call(a,t)&&d.indexOf(t)<0&&(i[t]=a[t]);if(a!=null&&C)for(var t of C(a))d.indexOf(t)<0&&I.call(a,t)&&(i[t]=a[t]);return i};import{j as P,k as $,l as j,_ as O}from"./index.js";import{u as E,B as N}from"./useTable-3e054214.js";import{T as U}from"./useForm-df5105ea.js";import{j as _}from"./antd-eedb3ef5.js";import{s as V,r as F}from"./authorityApi-323b0ce5.js";import{u as K}from"./index-e60b7cd2.js";import{_ as z}from"./drawer.vue_vue_type_script_setup_true_lang-b206d10f.js";import{c as G,s as w}from"./schema-9d07929f.js";import{d as W,a6 as Z,Z as x,_ as q,k as h,a5 as b,G as J,a4 as L,u as m,a8 as Q}from"./vue-72a104e4.js";import"./index-ccf6944d.js";import"./useWindowSizeFn-46f0db92.js";import"./onMountedOrActivated-ee461833.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-96e9be8c.js";const X=W({name:"AUTH_SYSTEM_AUTHORITY",__name:"index",setup(a){P();const d=$(),[i,{openDrawer:t}]=K(),[D,{reload:g,setSelectedRowKeys:ee}]=E({title:"权限表",api:e=>V(T(e)),columns:G,formConfig:{labelWidth:120,schemas:w,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),T=e=>{const y=e,{pageNum:l,pageSize:p,field:u="id",order:c="descend"}=y,B=Y(y,["pageNum","pageSize","field","order"]),n={pageNum:l,pageSize:p,orderByClause:`${u} ${c==="descend"?"desc":"asc"}`};return Object.keys(B).forEach(f=>{const r=w.find(M=>M.field===f),o=e[f],s=f;r?o!==void 0&&o!==""&&(r.component==="Input"?n[s]=`%${o.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?n[s]=j(o)?o.value:o:r.component==="RangePicker"?(n[`${s}From`]=_(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),n[`${s}To`]=_(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?n[s]=_(o).format(r.componentProps.format||"YYYY-MM-DD"):n[s]=o):n[s]=o}),n},v=()=>{t(!0,{isUpdate:!1})},S=e=>{t(!0,{record:e,isUpdate:!0})},k=e=>{F(e.id).then(l=>{g()})},R=()=>{g()},A=e=>{d("/system/authority/detail/"+e.id)};return(e,l)=>{const p=Z("a-button");return x(),q("div",null,[h(m(N),{onRegister:m(D)},{toolbar:b(()=>[h(p,{type:"primary",onClick:v},{default:b(()=>l[0]||(l[0]=[J(" 新增")])),_:1})]),bodyCell:b(({column:u,record:c})=>[u.dataIndex==="action"?(x(),L(m(U),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:S.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:A.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:k.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):Q("",!0)]),_:1},8,["onRegister"]),h(z,{onRegister:m(i),onSuccess:R},null,8,["onRegister"])])}}});const he=O(X,[["__scopeId","data-v-0e16eaba"]]);export{he as default}; diff --git a/detect.gui/Embedded/dist/assets/modal-f0d4aa47.css b/detect.gui/Embedded/dist/assets/modal-f0d4aa47.css new file mode 100644 index 0000000..3339f36 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/modal-f0d4aa47.css @@ -0,0 +1 @@ +.header[data-v-df60aa36]{padding:5px 20px;height:50px;display:flex;background-color:#2d77f333;align-items:center}.header .title[data-v-df60aa36]{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;padding-left:10px}[data-v-df60aa36] .ant-form{background-color:transparent;padding:0;margin:10px 20px 2px 10px}[data-v-df60aa36] .ant-table-wrapper{background:transparent}[data-v-df60aa36] .ant-pagination-total-text{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-pagination.ant-pagination-mini .ant-pagination-item{min-width:28px;height:28px;margin:0;line-height:26px}[data-v-df60aa36] .ant-pagination .ant-pagination-item-active:hover{border-color:#2d77f34d!important;background:rgba(45,119,243,.2)!important}[data-v-df60aa36] .ant-pagination .ant-pagination-item-active{font-weight:700;border-color:#2d77f366!important;background:rgba(45,119,243,.3)!important}[data-v-df60aa36] .ant-pagination .ant-pagination-item a{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-pagination.ant-pagination-mini .ant-pagination-prev,[data-v-df60aa36] .ant-pagination.ant-pagination-mini .ant-pagination-next{width:28px;height:28px;padding-top:2px;color:#fff}[data-v-df60aa36] .ant-pagination.ant-pagination-mini .ant-pagination-options-quick-jumper{height:28px;line-height:28px;font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-select-selector{border:1px solid rgba(45,119,243,.3)!important;background-color:#2d77f333!important;height:36px!important}[data-v-df60aa36] .ant-pagination-options .ant-select-selector{height:28px!important}[data-v-df60aa36] .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border:1px solid rgba(45,119,243,.4)!important;background-color:#2d77f34d!important}[data-v-df60aa36] .ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:36px;padding:1px 11px 0}[data-v-df60aa36] .ant-select .ant-select-selection-placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa;line-height:34px}[data-v-df60aa36] .ant-select-selector .ant-select-selection-item,[data-v-df60aa36] .ant-select-selection-item{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;line-height:34px}[data-v-df60aa36] .ant-select-open .ant-select-selection-item{color:#aaa}[data-v-df60aa36] .ant-select .ant-select-arrow{padding-top:2px;color:#fff}[data-v-df60aa36] .ant-select-dropdown{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-df60aa36] .ant-select-item-option-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-select-item-option-active{background-color:#92d6ed4d!important}[data-v-df60aa36] .ant-select-item-option-selected{font-weight:400!important;background-color:#92d6ed66!important}[data-v-df60aa36] .ant-empty-description{color:#999}[data-v-df60aa36] .ant-pagination-options-quick-jumper>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff;height:26px!important;line-height:26px;background-color:#2d77f333;border:1px solid rgba(45,119,243,.3)}[data-v-df60aa36] .ant-pagination-options-quick-jumper>input:hover,[data-v-df60aa36] .ant-pagination-options-quick-jumper>input:focus{background-color:#2d77f34d;border:1px solid rgba(45,119,243,.4)}[data-v-df60aa36] .ant-input-clear-icon,[data-v-df60aa36] .ant-input-password-icon{color:#fff!important}[data-v-df60aa36] .ant-select-clear{color:#fff!important;background:transparent!important}[data-v-df60aa36] .vben-basic-table-action button:disabled{color:#999!important}[data-v-df60aa36] .vben-tree{border-radius:6px!important;border:1px solid #183171!important;background-color:#13265a!important}[data-v-df60aa36] .vben-tree-header{border-bottom:1px solid #183171}[data-v-df60aa36] .vben-basic-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-tree-list{background:#13265a!important}[data-v-df60aa36] .vben-tree__title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-tree-switcher-icon{color:#fff!important}[data-v-df60aa36] .ant-dropdown-trigger{padding-top:2px;color:#fff!important}[data-v-df60aa36] .ant-tree-treenode .ant-tree-treenode-switcher-close .ant-tree-treenode-selected{background-color:#92d6ed4d!important}[data-v-df60aa36] .ant-popover-inner{border:1px solid #183171!important;background-color:#13265a!important}[data-v-df60aa36] .ant-popconfirm-message-title{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-picker,[data-v-df60aa36] .ant-picker-range{height:36px;border-color:#2d77f34d;background:rgba(45,119,243,.2)}[data-v-df60aa36] .ant-picker:hover{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-df60aa36] .ant-picker-focused,[data-v-df60aa36] .ant-picker-range:hover,[data-v-df60aa36] .ant-picker-range:focus{border-color:#2d77f366;background:rgba(45,119,243,.3)}[data-v-df60aa36] .vben-basic-table .ant-picker-range{width:100%}[data-v-df60aa36] .ant-picker-input>input{font-family:Noto Sans SC,serif;font-size:14px;color:#fff}[data-v-df60aa36] .ant-picker-input>input::placeholder{font-family:Noto Sans SC,serif;font-size:14px;color:#aaa}[data-v-df60aa36] .anticon{color:#fff!important}[data-v-df60aa36] .ant-picker-panel-layout{border:1px solid #183171!important;background-color:#13265a!important}[data-v-df60aa36] .ant-picker-cell{font-family:Noto Sans SC,serif;font-size:14px;color:#999}[data-v-df60aa36] .ant-picker-cell-in-view{color:#fff!important}[data-v-df60aa36] .ant-picker-content th,[data-v-df60aa36] .ant-picker-header-super-prev-btn,[data-v-df60aa36] .ant-picker-header-prev-btn,[data-v-df60aa36] .ant-picker-header-super-next-btn,[data-v-df60aa36] .ant-picker-header-next-btn,[data-v-df60aa36] .ant-picker-year-btn,[data-v-df60aa36] .ant-picker-month-btn,[data-v-df60aa36] .ant-picker-decade-btn,[data-v-df60aa36] .ant-picker-header-view,[data-v-df60aa36] .ant-picker-time-panel-cell-inner{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-df60aa36] .ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background-color:#92d6ed4d!important}[data-v-df60aa36] .ant-card{border:1px solid #183171!important;background-color:#13265a!important}[data-v-df60aa36] .ant-card-body{padding:0!important}[data-v-df60aa36] .ant-page-header-heading-title{font-family:Noto Sans SC,serif;font-size:20px;font-weight:400;color:#fff!important}[data-v-df60aa36] .ant-descriptions-view{border:1px solid #183171!important}[data-v-df60aa36] .ant-descriptions-row{border-bottom:1px solid #183171!important}[data-v-df60aa36] .ant-descriptions-item-label{background-color:#92d6ed0d!important}[data-v-df60aa36] .ant-descriptions-item-label,[data-v-df60aa36] .ant-descriptions-item-content{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important;border-inline-end:1px solid #183171!important}[data-v-df60aa36] .CodeMirror{border-radius:6px;border:1px solid rgba(45,119,243,.3)!important;background-color:#13265a!important}[data-v-df60aa36] .CodeMirror-lines{font-family:Noto Sans SC,serif;font-size:14px;color:#fff!important}[data-v-df60aa36] .CodeMirror-gutters{border-right:1px solid rgba(45,119,243,.3)!important}[data-v-df60aa36] .CodeMirror-cursor{border-left:1px solid white}[data-v-df60aa36] .cm-string{color:#ff8c00!important}[data-v-df60aa36] .ant-descriptions-item-label{width:120px} diff --git a/detect.gui/Embedded/dist/assets/modal-fe4687ff.js b/detect.gui/Embedded/dist/assets/modal-fe4687ff.js new file mode 100644 index 0000000..7bafabd --- /dev/null +++ b/detect.gui/Embedded/dist/assets/modal-fe4687ff.js @@ -0,0 +1 @@ +var q=Object.defineProperty;var p=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var g=(o,s,e)=>s in o?q(o,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[s]=e,i=(o,s)=>{for(var e in s||(s={}))h.call(s,e)&&g(o,e,s[e]);if(p)for(var e of p(s))v.call(s,e)&&g(o,e,s[e]);return o};var w=(o,s)=>{var e={};for(var l in o)h.call(o,l)&&s.indexOf(l)<0&&(e[l]=o[l]);if(o!=null&&p)for(var l of p(o))s.indexOf(l)<0&&v.call(o,l)&&(e[l]=o[l]);return e};var f=(o,s,e)=>new Promise((l,c)=>{var u=r=>{try{n(e.next(r))}catch(m){c(m)}},d=r=>{try{n(e.throw(r))}catch(m){c(m)}},n=r=>r.done?l(r.value):Promise.resolve(r.value).then(u,d);n((e=e.apply(o,s)).next())});import{a as x,B as F}from"./index-ccf6944d.js";import{u as M,B as k}from"./useForm-df5105ea.js";import{d as R,f as P,c as W,u as t,Z as H,a4 as L,a5 as X,k as Y,a9 as O}from"./vue-72a104e4.js";import{_ as S}from"./index.js";import"./antd-eedb3ef5.js";import"./useWindowSizeFn-46f0db92.js";import"./copyTextToClipboard-96e9be8c.js";const U=R({__name:"modal",emits:["success","register"],setup(o,{emit:s}){const e=P(),l=P(!0),c=s,u=W(()=>t(l)?"编辑":"新增"),[d,{closeModal:n,setModalProps:r}]=x(a=>f(this,null,function*(){yield y(),r({confirmLoading:!1}),l.value=!!(a!=null&&a.isUpdate),e.value=a==null?void 0:a.record,yield C(i({},a.record))})),m=[{colProps:{span:24},field:"code",label:"预埋件编号",componentProps:{allowClear:!1,placeholder:"预埋件编号"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入预埋件编号!"}]},{colProps:{span:24},field:"type",label:"类型",componentProps:{allowClear:!1,placeholder:"类型"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入类型!"}]},{colProps:{span:24},field:"x",label:"X(mm)",componentProps:{allowClear:!1,placeholder:"X(mm)"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入X(mm)!"}]},{colProps:{span:24},field:"y",label:"Y(mm)",componentProps:{allowClear:!1,placeholder:"Y(mm)"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入Y(mm)!"}]},{colProps:{span:24},field:"w",label:"W(mm)",componentProps:{allowClear:!1,placeholder:"W(mm)"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入W(mm)!"}]},{colProps:{span:24},field:"h",label:"H(mm)",componentProps:{allowClear:!1,placeholder:"H(mm)"},component:"Input",defaultValue:void 0,rules:[{required:!0,message:"请输入H(mm)!"}]}],[b,{resetFields:y,setFieldsValue:C,validate:I}]=M({labelWidth:90,schemas:m,showActionButtonGroup:!1});function V(){return f(this,null,function*(){try{const a=yield I();r({confirmLoading:!0});const _=w(a,[]);n();const B=Object.assign({},i(i({},t(e)),_));c("success",B)}catch(a){}finally{r({confirmLoading:!1})}})}return(a,_)=>(H(),L(t(F),O(a.$attrs,{onRegister:t(d),closable:!1,showFooter:"",title:u.value,width:"400px",onOk:V}),{default:X(()=>[Y(t(k),{onRegister:t(b)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});const D=S(U,[["__scopeId","data-v-df60aa36"]]);export{D as default}; diff --git a/detect.gui/Embedded/dist/assets/schema-f1b33936.js b/detect.gui/Embedded/dist/assets/schema-f1b33936.js new file mode 100644 index 0000000..d2f2ebb --- /dev/null +++ b/detect.gui/Embedded/dist/assets/schema-f1b33936.js @@ -0,0 +1 @@ +var P=Object.defineProperty,I=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var u=(e,a,l)=>a in e?P(e,a,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[a]=l,n=(e,a)=>{for(var l in a||(a={}))p.call(a,l)&&u(e,l,a[l]);if(d)for(var l of d(a))c.call(a,l)&&u(e,l,a[l]);return e},m=(e,a)=>I(e,T(a));var f=(e,a)=>{var l={};for(var t in e)p.call(e,t)&&a.indexOf(t)<0&&(l[t]=e[t]);if(e!=null&&d)for(var t of d(e))a.indexOf(t)<0&&c.call(e,t)&&(l[t]=e[t]);return l};import{o as r}from"./index.js";import{b as F}from"./deviceApi-af691457.js";const s="/v1/data/task",H=e=>r.post({url:`${s}/`,data:e}),R=(e,a=!1)=>r.put({url:`${s}/`,data:e,params:{updateAllFields:a}}),$=e=>r.delete({url:`${s}/${e}`}),k=e=>r.get({url:`${s}/search`,params:e}),A=e=>r.get({url:`${s}/${e}`}),y=e=>r.post({url:`${s}/ocr`,data:e}),o={xs:{span:24},sm:{span:24},lg:{span:4}},q={span:24},i={model:"Task",viewInPage:!0,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:o,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"name",label:"任务名称",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"任务名称"},colProps:o,component:"Input",rules:[{required:!0,message:"请输入任务名称!"}]},table:{}},{field:"deviceSn",label:"设备",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"请选择设备",labelInValue:!1,api:F,params:{},resultField:"result",labelField:"name",valueField:"deviceSn"},colProps:o,component:"ApiSelect",rules:[{required:!0,message:"请选择设备!"}]},table:{}},{field:"paramJson",label:"任务参数",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"任务参数",autoSize:{minRows:15,maxRows:15}},slot:"paramJson",colProps:{span:24},rules:[{required:!0,message:"请输入任务参数!"}]},table:{}},{field:"resultJson",label:"任务结果",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"任务结果",autoSize:{minRows:15,maxRows:15}},component:"InputTextArea",colProps:{span:24}},table:{}},{field:"startTimeQuery",label:"开始时间",defaultValue:void 0,form:{colProps:o,component:"RangePicker",componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},rules:[{required:!0,message:"请输入开始时间!"}]},table:{}},{field:"startTime",label:"开始时间",defaultValue:void 0,form:{colProps:o,component:"DatePicker",componentProps:{allowClear:!1,placeholder:"开始时间",format:"YYYY-MM-DD HH:mm:ss",valueFormat:"YYYY-MM-DD HH:mm:ss",showTime:!0},rules:[{required:!0,message:"请输入开始时间!"}]},table:{}},{field:"endTime",label:"结束时间",defaultValue:void 0,form:{colProps:o,component:"DatePicker",componentProps:{allowClear:!1,placeholder:"结束时间",format:"YYYY-MM-DD HH:mm:ss",valueFormat:"YYYY-MM-DD HH:mm:ss",showTime:!0},rules:[{required:!0,message:"请输入结束时间!"}]},table:{}},{field:"state",label:"状态",defaultValue:void 0,form:{colProps:o,component:"Select",componentProps:{allowClear:!0,placeholder:"请选择状态",options:[{value:0,label:"未开始"},{value:1,label:"进行中"},{value:2,label:"已完成"}],labelField:"label",valueField:"value"},rules:[{required:!0,message:"请选择状态!"}]},table:{customRender:({text:e,record:a})=>{if(a.state===0)return"未开始";if(a.state===1)return"进行中";if(a.state===2)return"已完成"}}},{field:"createTime",label:"创建日期",defaultValue:void 0,form:{colProps:o,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{}},{field:"updateTime",label:"UpdateTime",defaultValue:void 0,form:{colProps:o,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},M=["name","deviceSn","startTimeQuery","state"],w=["name","deviceSn"],D=["name","deviceSn","startTime","endTime","state","createTime"],x=["name","deviceSn","paramJson","resultJson","startTime","endTime","state"],Y=new Map(M.map((e,a)=>[e,a])),B=i.properties.filter(e=>M.includes(e.field)).map(t=>{var{field:e,label:a,form:h}=t,l=f(h,[]);return m(n({field:e,label:a,defaultValue:void 0},l),{required:!1,rules:[{required:!1}]})}).sort((e,a)=>{const l=Y.get(e.field),t=Y.get(a.field);return l-t}),b=new Map(w.map((e,a)=>[e,a])),J=i.properties.filter(e=>w.includes(e.field)).map(({field:e,label:a,defaultValue:l,form:t})=>m(n({field:e,label:a,defaultValue:l},t),{colProps:q})).sort((e,a)=>{const l=b.get(e.field),t=b.get(a.field);return l-t}),v=new Map(D.map((e,a)=>[e,a])),z=i.properties.filter(e=>D.includes(e.field)).map(({field:e,label:a,table:l})=>n({dataIndex:e,title:a},l)).sort((e,a)=>{const l=v.get(e.dataIndex),t=v.get(a.dataIndex);return l-t}),g=new Map(x.map((e,a)=>[e,a])),Q=i.properties.filter(e=>x.includes(e.field)).map(({field:e,label:a,table:l})=>n({dataIndex:e,title:a},l)).sort((e,a)=>{const l=g.get(e.dataIndex),t=g.get(a.dataIndex);return l-t});export{B as a,H as b,z as c,Q as d,J as f,A as g,y as i,$ as r,k as s,R as u}; diff --git a/detect.gui/Embedded/dist/assets/schema-f8c0dfeb.js b/detect.gui/Embedded/dist/assets/schema-f8c0dfeb.js new file mode 100644 index 0000000..9ca6546 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/schema-f8c0dfeb.js @@ -0,0 +1 @@ +var T=Object.defineProperty,v=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var c=(e,a,t)=>a in e?T(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,l=(e,a)=>{for(var t in a||(a={}))m.call(a,t)&&c(e,t,a[t]);if(d)for(var t of d(a))u.call(a,t)&&c(e,t,a[t]);return e},p=(e,a)=>v(e,D(a));var f=(e,a)=>{var t={};for(var o in e)m.call(e,o)&&a.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&d)for(var o of d(e))a.indexOf(o)<0&&u.call(e,o)&&(t[o]=e[o]);return t};import{o as r}from"./index.js";const n="/v1/system/constant",V=e=>r.post({url:`${n}/`,data:e}),$=(e,a=!1)=>r.put({url:`${n}/`,data:e,params:{updateAllFields:a}}),A=e=>r.delete({url:`${n}/${e}`}),B=e=>r.get({url:`${n}/search`,params:e}),y=e=>r.get({url:`${n}/${e}`}),s={xs:{span:24},sm:{span:24},lg:{span:8}},F={span:24},i={model:"Constant",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:s,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"code",label:"编码",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"编码"},colProps:s,component:"Input",rules:[{required:!0,message:"请输入编码!"}]},table:{}},{field:"name",label:"名称",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"名称"},colProps:s,component:"Input",rules:[{required:!0,message:"请输入名称!"}]},table:{}},{field:"description",label:"描述",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"描述"},component:"InputTextArea",colProps:{span:24},rules:[{required:!0,message:"请输入描述!"}]},table:{}},{field:"createTime",label:"CreateTime",defaultValue:void 0,form:{colProps:s,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{}},{field:"updateTime",label:"UpdateTime",defaultValue:void 0,form:{colProps:s,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},M=["code","name"],Y=["code","name","description"],h=["code","name","description","createTime","updateTime"],w=["code","name","description","createTime","updateTime"],g=new Map(M.map((e,a)=>[e,a])),k=i.properties.filter(e=>M.includes(e.field)).map(o=>{var{field:e,label:a,form:P}=o,t=f(P,[]);return p(l({field:e,label:a,defaultValue:void 0},t),{required:!1,rules:[{required:!1}]})}).sort((e,a)=>{const t=g.get(e.field),o=g.get(a.field);return t-o}),x=new Map(Y.map((e,a)=>[e,a])),R=i.properties.filter(e=>Y.includes(e.field)).map(({field:e,label:a,defaultValue:t,form:o})=>p(l({field:e,label:a,defaultValue:t},o),{colProps:F})).sort((e,a)=>{const t=x.get(e.field),o=x.get(a.field);return t-o}),I=new Map(h.map((e,a)=>[e,a])),S=i.properties.filter(e=>h.includes(e.field)).map(({field:e,label:a,table:t})=>l({dataIndex:e,title:a},t)).sort((e,a)=>{const t=I.get(e.dataIndex),o=I.get(a.dataIndex);return t-o}),b=new Map(w.map((e,a)=>[e,a])),U=i.properties.filter(e=>w.includes(e.field)).map(({field:e,label:a,table:t})=>l({dataIndex:e,title:a},t)).sort((e,a)=>{const t=b.get(e.dataIndex),o=b.get(a.dataIndex);return t-o});export{k as a,V as b,S as c,U as d,R as f,y as g,A as r,B as s,$ as u}; diff --git a/detect.gui/Embedded/dist/assets/taskProgressApi-a25fdfc1.js b/detect.gui/Embedded/dist/assets/taskProgressApi-a25fdfc1.js new file mode 100644 index 0000000..6f1baaf --- /dev/null +++ b/detect.gui/Embedded/dist/assets/taskProgressApi-a25fdfc1.js @@ -0,0 +1 @@ +var T=Object.defineProperty,Y=Object.defineProperties;var w=Object.getOwnPropertyDescriptors;var n=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var p=(e,a,t)=>a in e?T(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,d=(e,a)=>{for(var t in a||(a={}))m.call(a,t)&&p(e,t,a[t]);if(n)for(var t of n(a))u.call(a,t)&&p(e,t,a[t]);return e},c=(e,a)=>Y(e,w(a));var f=(e,a)=>{var t={};for(var s in e)m.call(e,s)&&a.indexOf(s)<0&&(t[s]=e[s]);if(e!=null&&n)for(var s of n(e))a.indexOf(s)<0&&u.call(e,s)&&(t[s]=e[s]);return t};import{o}from"./index.js";const r={xs:{span:24},sm:{span:24},lg:{span:8}},P={span:24},i={model:"TaskProgress",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:r,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"taskId",label:"dat_detect_task.id",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"dat_detect_task.id"},colProps:r,component:"InputNumber",rules:[{required:!0,message:"请输入dat_detect_task.id!"}]},table:{}},{field:"deviceSn",label:"设备序列号",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"设备序列号"},colProps:r,component:"Input"},table:{}},{field:"taskDataJson",label:"参数配置",defaultValue:void 0,form:{componentProps:{allowClear:!0,placeholder:"参数配置"},component:"InputTextArea",colProps:{span:24}},table:{}},{field:"createTime",label:"CreateTime",defaultValue:void 0,form:{colProps:r,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{}},{field:"updateTime",label:"UpdateTime",defaultValue:void 0,form:{colProps:r,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},v=["id","taskId","deviceSn","createTime","updateTime"],h=["taskId","deviceSn","taskDataJson"],k=["taskId","deviceSn","taskDataJson","createTime","updateTime"],D=["taskId","deviceSn","taskDataJson","createTime","updateTime"],I=new Map(v.map((e,a)=>[e,a])),q=i.properties.filter(e=>v.includes(e.field)).map(s=>{var{field:e,label:a,form:M}=s,t=f(M,[]);return c(d({field:e,label:a,defaultValue:void 0},t),{required:!1,rules:[{required:!1}]})}).sort((e,a)=>{const t=I.get(e.field),s=I.get(a.field);return t-s}),g=new Map(h.map((e,a)=>[e,a])),$=i.properties.filter(e=>h.includes(e.field)).map(({field:e,label:a,defaultValue:t,form:s})=>c(d({field:e,label:a,defaultValue:t},s),{colProps:P})).sort((e,a)=>{const t=g.get(e.field),s=g.get(a.field);return t-s}),x=new Map(k.map((e,a)=>[e,a])),S=i.properties.filter(e=>k.includes(e.field)).map(({field:e,label:a,table:t})=>d({dataIndex:e,title:a},t)).sort((e,a)=>{const t=x.get(e.dataIndex),s=x.get(a.dataIndex);return t-s}),b=new Map(D.map((e,a)=>[e,a])),V=i.properties.filter(e=>D.includes(e.field)).map(({field:e,label:a,table:t})=>d({dataIndex:e,title:a},t)).sort((e,a)=>{const t=b.get(e.dataIndex),s=b.get(a.dataIndex);return t-s}),l="/v1/data/task-progress",A=e=>o.post({url:`${l}/`,data:e}),_=(e,a=!1)=>o.put({url:`${l}/`,data:e,params:{updateAllFields:a}}),B=e=>o.delete({url:`${l}/${e}`}),J=e=>o.get({url:`${l}/search`,params:e}),y=e=>o.get({url:`${l}/${e}`}),R=e=>o.post({url:`${l}/batch-delete`,data:e});export{q as a,R as b,S as c,V as d,A as e,$ as f,y as g,B as r,J as s,_ as u}; diff --git a/detect.gui/Embedded/dist/assets/useContentViewHeight-af1e3bfb.js b/detect.gui/Embedded/dist/assets/useContentViewHeight-af1e3bfb.js new file mode 100644 index 0000000..fe1fe43 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/useContentViewHeight-af1e3bfb.js @@ -0,0 +1 @@ +var h=(t,i,e)=>new Promise((a,o)=>{var H=n=>{try{u(e.next(n))}catch(s){o(s)}},m=n=>{try{u(e.throw(n))}catch(s){o(s)}},u=n=>n.done?a(n.value):Promise.resolve(n.value).then(H,m);u((e=e.apply(t,i)).next())});import{K as w}from"./index.js";import{u as d}from"./useWindowSizeFn-46f0db92.js";import{f as r,c as p,u as c}from"./vue-72a104e4.js";const l=Symbol();function v(t){return w(t,l,{native:!0})}const g=r(0),f=r(0);function P(){function t(e){g.value=e}function i(e){f.value=e}return{headerHeightRef:g,footerHeightRef:f,setHeaderHeight:t,setFooterHeight:i}}function R(){const t=r(window.innerHeight),i=r(window.innerHeight),e=p(()=>c(t)-c(g)-c(f)||0);d(()=>{t.value=window.innerHeight},{wait:100,immediate:!0});function a(o){return h(this,null,function*(){i.value=o})}v({contentHeight:e,setPageHeight:a,pageHeight:i})}export{R as a,P as u}; diff --git a/detect.gui/Embedded/dist/assets/useForm-df5105ea.js b/detect.gui/Embedded/dist/assets/useForm-df5105ea.js new file mode 100644 index 0000000..8fefb6f --- /dev/null +++ b/detect.gui/Embedded/dist/assets/useForm-df5105ea.js @@ -0,0 +1,2 @@ +var wn=Object.defineProperty,vn=Object.defineProperties;var An=Object.getOwnPropertyDescriptors;var vt=Object.getOwnPropertySymbols;var kn=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable;var Re=Math.pow,At=(e,t,n)=>t in e?wn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,C=(e,t)=>{for(var n in t||(t={}))kn.call(t,n)&&At(e,n,t[n]);if(vt)for(var n of vt(t))Sn.call(t,n)&&At(e,n,t[n]);return e},le=(e,t)=>vn(e,An(t));var j=(e,t,n)=>new Promise((o,i)=>{var s=a=>{try{r(n.next(a))}catch(c){i(c)}},l=a=>{try{r(n.throw(a))}catch(c){i(c)}},r=a=>a.done?o(a.value):Promise.resolve(a.value).then(s,l);r((n=n.apply(e,t)).next())});import{f as B,c as N,u as f,d as J,h as Te,w as Y,Z as _,a4 as z,a5 as D,ad as Bt,a1 as ve,k as P,$ as ke,_ as X,F as pe,a7 as fe,a8 as ee,g as jt,r as We,a2 as Cn,y as Ee,J as Be,a6 as $,G as Q,a0 as te,a9 as H,aa as Se,ab as ce,ag as Ce,ah as Ie,o as rt,p as Tn,e as Fn,I as xt,m as Pn,i as In,A as Mn,al as _n,am as Rn,b as Dn}from"./vue-72a104e4.js";import{u as xe,U as ct,v as ue,a3 as $n,S as kt,I as He,p as T,d as ut,f as W,_ as ne,i as $e,at as be,aE as On,aF as Ln,ai as En,j as Bn,Q as De,q as jn,aB as xn,W as Nn,w as Ze,ao as Un,c as dt,e as St,aG as qn,aH as zn,K as Vn,L as Gn,aI as Wn,aJ as Hn,l as we,aK as Ct,ap as ge,aL as ot,aM as Yn,aN as Tt,aD as Ge,aO as Nt,aP as Kn,h as Zn,aC as Xn}from"./index.js";import{w as Me,Z as Jn,aw as Qn,ax as eo,b as to,al as Oe,o as Ne,J as he,af as Ut,ay as ft,az as no,aA as qt,aB as it,aC as oo,aq as ht,aD as io,T as zt,au as lo,aE as so,K as Xe,aF as ao,a9 as ro,aG as co,B as uo,ae as fo,ag as ho,ah as po,ai as Vt,aH as mo,aI as go,aj as Ue,ak as Gt,aJ as Ye,aK as pt,e as Ae,aL as bo,s as Pe,aM as Ft,a8 as yo,aN as wo}from"./antd-eedb3ef5.js";import{b as Wt,B as Ht,a as Yt,u as Pt}from"./index-ccf6944d.js";import{c as vo}from"./copyTextToClipboard-96e9be8c.js";const Ao={prefix:"ant-design",icons:["account-book-filled","account-book-outlined","account-book-twotone","aim-outlined","alert-filled","alert-outlined","alert-twotone","alibaba-outlined","align-center-outlined","align-left-outlined","align-right-outlined","alipay-circle-filled","alipay-circle-outlined","alipay-outlined","alipay-square-filled","aliwangwang-filled","aliwangwang-outlined","aliyun-outlined","amazon-circle-filled","amazon-outlined","amazon-square-filled","android-filled","android-outlined","ant-cloud-outlined","ant-design-outlined","apartment-outlined","api-filled","api-outlined","api-twotone","apple-filled","apple-outlined","appstore-add-outlined","appstore-filled","appstore-outlined","appstore-twotone","area-chart-outlined","arrow-down-outlined","arrow-left-outlined","arrow-right-outlined","arrow-up-outlined","arrows-alt-outlined","audio-filled","audio-muted-outlined","audio-outlined","audio-twotone","audit-outlined","backward-filled","backward-outlined","bank-filled","bank-outlined","bank-twotone","bar-chart-outlined","barcode-outlined","bars-outlined","behance-circle-filled","behance-outlined","behance-square-filled","behance-square-outlined","bell-filled","bell-outlined","bell-twotone","bg-colors-outlined","block-outlined","bold-outlined","book-filled","book-outlined","book-twotone","border-bottom-outlined","border-horizontal-outlined","border-inner-outlined","border-left-outlined","border-outer-outlined","border-outlined","border-right-outlined","border-top-outlined","border-verticle-outlined","borderless-table-outlined","box-plot-filled","box-plot-outlined","box-plot-twotone","branches-outlined","bug-filled","bug-outlined","bug-twotone","build-filled","build-outlined","build-twotone","bulb-filled","bulb-outlined","bulb-twotone","calculator-filled","calculator-outlined","calculator-twotone","calendar-filled","calendar-outlined","calendar-twotone","camera-filled","camera-outlined","camera-twotone","car-filled","car-outlined","car-twotone","caret-down-filled","caret-down-outlined","caret-left-filled","caret-left-outlined","caret-right-filled","caret-right-outlined","caret-up-filled","caret-up-outlined","carry-out-filled","carry-out-outlined","carry-out-twotone","check-circle-filled","check-circle-outlined","check-circle-twotone","check-outlined","check-square-filled","check-square-outlined","check-square-twotone","chrome-filled","chrome-outlined","ci-circle-filled","ci-circle-outlined","ci-circle-twotone","ci-outlined","ci-twotone","clear-outlined","clock-circle-filled","clock-circle-outlined","clock-circle-twotone","close-circle-filled","close-circle-outlined","close-circle-twotone","close-outlined","close-square-filled","close-square-outlined","close-square-twotone","cloud-download-outlined","cloud-filled","cloud-outlined","cloud-server-outlined","cloud-sync-outlined","cloud-twotone","cloud-upload-outlined","cluster-outlined","code-filled","code-outlined","code-sandbox-circle-filled","code-sandbox-outlined","code-sandbox-square-filled","code-twotone","codepen-circle-filled","codepen-circle-outlined","codepen-outlined","codepen-square-filled","coffee-outlined","column-height-outlined","column-width-outlined","comment-outlined","compass-filled","compass-outlined","compass-twotone","compress-outlined","console-sql-outlined","contacts-filled","contacts-outlined","contacts-twotone","container-filled","container-outlined","container-twotone","control-filled","control-outlined","control-twotone","copy-filled","copy-outlined","copy-twotone","copyright-circle-filled","copyright-circle-outlined","copyright-circle-twotone","copyright-outlined","copyright-twotone","credit-card-filled","credit-card-outlined","credit-card-twotone","crown-filled","crown-outlined","crown-twotone","customer-service-filled","customer-service-outlined","customer-service-twotone","dash-outlined","dashboard-filled","dashboard-outlined","dashboard-twotone","database-filled","database-outlined","database-twotone","delete-column-outlined","delete-filled","delete-outlined","delete-row-outlined","delete-twotone","delivered-procedure-outlined","deployment-unit-outlined","desktop-outlined","diff-filled","diff-outlined","diff-twotone","dingding-outlined","dingtalk-circle-filled","dingtalk-outlined","dingtalk-square-filled","disconnect-outlined","dislike-filled","dislike-outlined","dislike-twotone","dollar-circle-filled","dollar-circle-outlined","dollar-circle-twotone","dollar-outlined","dollar-twotone","dot-chart-outlined","double-left-outlined","double-right-outlined","down-circle-filled","down-circle-outlined","down-circle-twotone","down-outlined","down-square-filled","down-square-outlined","down-square-twotone","download-outlined","drag-outlined","dribbble-circle-filled","dribbble-outlined","dribbble-square-filled","dribbble-square-outlined","dropbox-circle-filled","dropbox-outlined","dropbox-square-filled","edit-filled","edit-outlined","edit-twotone","ellipsis-outlined","enter-outlined","environment-filled","environment-outlined","environment-twotone","euro-circle-filled","euro-circle-outlined","euro-circle-twotone","euro-outlined","euro-twotone","exception-outlined","exclamation-circle-filled","exclamation-circle-outlined","exclamation-circle-twotone","exclamation-outlined","expand-alt-outlined","expand-outlined","experiment-filled","experiment-outlined","experiment-twotone","export-outlined","eye-filled","eye-invisible-filled","eye-invisible-outlined","eye-invisible-twotone","eye-outlined","eye-twotone","facebook-filled","facebook-outlined","fall-outlined","fast-backward-filled","fast-backward-outlined","fast-forward-filled","fast-forward-outlined","field-binary-outlined","field-number-outlined","field-string-outlined","field-time-outlined","file-add-filled","file-add-outlined","file-add-twotone","file-done-outlined","file-excel-filled","file-excel-outlined","file-excel-twotone","file-exclamation-filled","file-exclamation-outlined","file-exclamation-twotone","file-filled","file-gif-outlined","file-image-filled","file-image-outlined","file-image-twotone","file-jpg-outlined","file-markdown-filled","file-markdown-outlined","file-markdown-twotone","file-outlined","file-pdf-filled","file-pdf-outlined","file-pdf-twotone","file-ppt-filled","file-ppt-outlined","file-ppt-twotone","file-protect-outlined","file-search-outlined","file-sync-outlined","file-text-filled","file-text-outlined","file-text-twotone","file-twotone","file-unknown-filled","file-unknown-outlined","file-unknown-twotone","file-word-filled","file-word-outlined","file-word-twotone","file-zip-filled","file-zip-outlined","file-zip-twotone","filter-filled","filter-outlined","filter-twotone","fire-filled","fire-outlined","fire-twotone","flag-filled","flag-outlined","flag-twotone","folder-add-filled","folder-add-outlined","folder-add-twotone","folder-filled","folder-open-filled","folder-open-outlined","folder-open-twotone","folder-outlined","folder-twotone","folder-view-outlined","font-colors-outlined","font-size-outlined","fork-outlined","form-outlined","format-painter-filled","format-painter-outlined","forward-filled","forward-outlined","frown-filled","frown-outlined","frown-twotone","fullscreen-exit-outlined","fullscreen-outlined","function-outlined","fund-filled","fund-outlined","fund-projection-screen-outlined","fund-twotone","fund-view-outlined","funnel-plot-filled","funnel-plot-outlined","funnel-plot-twotone","gateway-outlined","gif-outlined","gift-filled","gift-outlined","gift-twotone","github-filled","github-outlined","gitlab-filled","gitlab-outlined","global-outlined","gold-filled","gold-outlined","gold-twotone","golden-filled","google-circle-filled","google-outlined","google-plus-circle-filled","google-plus-outlined","google-plus-square-filled","google-square-filled","group-outlined","hdd-filled","hdd-outlined","hdd-twotone","heart-filled","heart-outlined","heart-twotone","heat-map-outlined","highlight-filled","highlight-outlined","highlight-twotone","history-outlined","home-filled","home-outlined","home-twotone","hourglass-filled","hourglass-outlined","hourglass-twotone","html5-filled","html5-outlined","html5-twotone","idcard-filled","idcard-outlined","idcard-twotone","ie-circle-filled","ie-outlined","ie-square-filled","import-outlined","inbox-outlined","info-circle-filled","info-circle-outlined","info-circle-twotone","info-outlined","insert-row-above-outlined","insert-row-below-outlined","insert-row-left-outlined","insert-row-right-outlined","instagram-filled","instagram-outlined","insurance-filled","insurance-outlined","insurance-twotone","interaction-filled","interaction-outlined","interaction-twotone","issues-close-outlined","italic-outlined","key-outlined","laptop-outlined","layout-filled","layout-outlined","layout-twotone","left-circle-filled","left-circle-outlined","left-circle-twotone","left-outlined","left-square-filled","left-square-outlined","left-square-twotone","like-filled","like-outlined","like-twotone","line-chart-outlined","line-height-outlined","line-outlined","link-outlined","linkedin-filled","linkedin-outlined","loading-3-quarters-outlined","loading-outlined","lock-filled","lock-outlined","lock-twotone","login-outlined","logout-outlined","mac-command-filled","mac-command-outlined","mail-filled","mail-outlined","mail-twotone","man-outlined","medicine-box-filled","medicine-box-outlined","medicine-box-twotone","medium-circle-filled","medium-outlined","medium-square-filled","medium-workmark-outlined","meh-filled","meh-outlined","meh-twotone","menu-fold-outlined","menu-outlined","menu-unfold-outlined","merge-cells-outlined","message-filled","message-outlined","message-twotone","minus-circle-filled","minus-circle-outlined","minus-circle-twotone","minus-outlined","minus-square-filled","minus-square-outlined","minus-square-twotone","mobile-filled","mobile-outlined","mobile-twotone","money-collect-filled","money-collect-outlined","money-collect-twotone","monitor-outlined","more-outlined","node-collapse-outlined","node-expand-outlined","node-index-outlined","notification-filled","notification-outlined","notification-twotone","number-outlined","one-to-one-outlined","ordered-list-outlined","paper-clip-outlined","partition-outlined","pause-circle-filled","pause-circle-outlined","pause-circle-twotone","pause-outlined","pay-circle-filled","pay-circle-outlined","percentage-outlined","phone-filled","phone-outlined","phone-twotone","pic-center-outlined","pic-left-outlined","pic-right-outlined","picture-filled","picture-outlined","picture-twotone","pie-chart-filled","pie-chart-outlined","pie-chart-twotone","play-circle-filled","play-circle-outlined","play-circle-twotone","play-square-filled","play-square-outlined","play-square-twotone","plus-circle-filled","plus-circle-outlined","plus-circle-twotone","plus-outlined","plus-square-filled","plus-square-outlined","plus-square-twotone","pound-circle-filled","pound-circle-outlined","pound-circle-twotone","pound-outlined","poweroff-outlined","printer-filled","printer-outlined","printer-twotone","profile-filled","profile-outlined","profile-twotone","project-filled","project-outlined","project-twotone","property-safety-filled","property-safety-outlined","property-safety-twotone","pull-request-outlined","pushpin-filled","pushpin-outlined","pushpin-twotone","qq-circle-filled","qq-outlined","qq-square-filled","qrcode-outlined","question-circle-filled","question-circle-outlined","question-circle-twotone","question-outlined","radar-chart-outlined","radius-bottomleft-outlined","radius-bottomright-outlined","radius-setting-outlined","radius-upleft-outlined","radius-upright-outlined","read-filled","read-outlined","reconciliation-filled","reconciliation-outlined","reconciliation-twotone","red-envelope-filled","red-envelope-outlined","red-envelope-twotone","reddit-circle-filled","reddit-outlined","reddit-square-filled","redo-outlined","reload-outlined","rest-filled","rest-outlined","rest-twotone","retweet-outlined","right-circle-filled","right-circle-outlined","right-circle-twotone","right-outlined","right-square-filled","right-square-outlined","right-square-twotone","rise-outlined","robot-filled","robot-outlined","rocket-filled","rocket-outlined","rocket-twotone","rollback-outlined","rotate-left-outlined","rotate-right-outlined","safety-certificate-filled","safety-certificate-outlined","safety-certificate-twotone","safety-outlined","save-filled","save-outlined","save-twotone","scan-outlined","schedule-filled","schedule-outlined","schedule-twotone","scissor-outlined","search-outlined","security-scan-filled","security-scan-outlined","security-scan-twotone","select-outlined","send-outlined","setting-filled","setting-outlined","setting-twotone","shake-outlined","share-alt-outlined","shop-filled","shop-outlined","shop-twotone","shopping-cart-outlined","shopping-filled","shopping-outlined","shopping-twotone","shrink-outlined","signal-filled","sisternode-outlined","sketch-circle-filled","sketch-outlined","sketch-square-filled","skin-filled","skin-outlined","skin-twotone","skype-filled","skype-outlined","slack-circle-filled","slack-outlined","slack-square-filled","slack-square-outlined","sliders-filled","sliders-outlined","sliders-twotone","small-dash-outlined","smile-filled","smile-outlined","smile-twotone","snippets-filled","snippets-outlined","snippets-twotone","solution-outlined","sort-ascending-outlined","sort-descending-outlined","sound-filled","sound-outlined","sound-twotone","split-cells-outlined","star-filled","star-outlined","star-twotone","step-backward-filled","step-backward-outlined","step-forward-filled","step-forward-outlined","stock-outlined","stop-filled","stop-outlined","stop-twotone","strikethrough-outlined","subnode-outlined","swap-left-outlined","swap-outlined","swap-right-outlined","switcher-filled","switcher-outlined","switcher-twotone","sync-outlined","table-outlined","tablet-filled","tablet-outlined","tablet-twotone","tag-filled","tag-outlined","tag-twotone","tags-filled","tags-outlined","tags-twotone","taobao-circle-filled","taobao-circle-outlined","taobao-outlined","taobao-square-filled","team-outlined","thunderbolt-filled","thunderbolt-outlined","thunderbolt-twotone","to-top-outlined","tool-filled","tool-outlined","tool-twotone","trademark-circle-filled","trademark-circle-outlined","trademark-circle-twotone","trademark-outlined","transaction-outlined","translation-outlined","trophy-filled","trophy-outlined","trophy-twotone","twitter-circle-filled","twitter-outlined","twitter-square-filled","underline-outlined","undo-outlined","ungroup-outlined","unlock-filled","unlock-outlined","unlock-twotone","unordered-list-outlined","up-circle-filled","up-circle-outlined","up-circle-twotone","up-outlined","up-square-filled","up-square-outlined","up-square-twotone","upload-outlined","usb-filled","usb-outlined","usb-twotone","user-add-outlined","user-delete-outlined","user-outlined","user-switch-outlined","usergroup-add-outlined","usergroup-delete-outlined","verified-outlined","vertical-align-bottom-outlined","vertical-align-middle-outlined","vertical-align-top-outlined","vertical-left-outlined","vertical-right-outlined","video-camera-add-outlined","video-camera-filled","video-camera-outlined","video-camera-twotone","wallet-filled","wallet-outlined","wallet-twotone","warning-filled","warning-outlined","warning-twotone","wechat-filled","wechat-outlined","weibo-circle-filled","weibo-circle-outlined","weibo-outlined","weibo-square-filled","weibo-square-outlined","whats-app-outlined","wifi-outlined","windows-filled","windows-outlined","woman-outlined","yahoo-filled","yahoo-outlined","youtube-filled","youtube-outlined","yuque-filled","yuque-outlined","zhihu-circle-filled","zhihu-outlined","zhihu-square-filled","zoom-in-outlined","zoom-out-outlined"]};function ko(e,t,n){const o=(t-1)*Number(n);return o+Number(n)>=e.length?e.slice(o,e.length):e.slice(o,o+Number(n))}function So(e,t){const n=B(1),o=B(t),i=N(()=>ko(f(e),f(n),f(o))),s=N(()=>f(e).length);function l(a){n.value=a}function r(a){o.value=a}return{setCurrentPage:l,getTotal:s,setPageSize:r,getPaginationList:i}}const Co=["icon-download-count","icon-dynamic-avatar-1","icon-dynamic-avatar-2","icon-dynamic-avatar-3","icon-dynamic-avatar-4","icon-dynamic-avatar-5","icon-dynamic-avatar-6","icon-list","icon-moon","icon-sun","icon-test","icon-total-sales","icon-transaction","icon-visit-count"],To={class:"flex justify-between"},Fo={key:0},Po={class:"flex flex-wrap px-2"},Io=["onClick","title"],Mo={key:0,class:"flex py-2 items-center justify-center"},_o={key:1,class:"p-5"},Ro={key:0,class:"cursor-pointer px-2 py-1 flex items-center"},Do=J({__name:"IconPicker",props:{value:{default:""},width:{default:"100%"},pageSize:{default:140},copy:{type:Boolean,default:!1},mode:{default:"iconify"}},emits:["change","update:value"],setup(e,{emit:t}){const n=Me,o=Jn,i=Qn,s=eo;function l(){var S;const h=Ao,y=h==null?void 0:h.prefix;let k=[];return k=((S=h==null?void 0:h.icons)!=null?S:[]).map(M=>`${y}:${M}`),k}function r(){return Co.map(h=>h.replace("icon-",""))}const a=e,c=t,u=a.mode==="svg",p=u?r():l(),b=B(""),g=B(!1),d=B(p),{t:m}=ue(),{prefixCls:w}=xe("icon-picker"),A=ct(V,100),{getPaginationList:v,getTotal:F,setCurrentPage:I}=So(d,a.pageSize);Te(()=>{b.value=a.value}),Y(()=>b.value,h=>(c("update:value",h),c("change",h)));function O(h){I(h)}function G(h){b.value=h,a.copy&&vo(h,m("component.icon.copy"))}function V(h){const y=h.target.value;if(!y){I(1),d.value=p;return}d.value=p.filter(k=>k.includes(y))}return(h,y)=>(_(),z(f(n),{disabled:"",style:Bt({width:h.width}),placeholder:f(m)("component.icon.placeholder"),class:ve(f(w)),value:b.value,"onUpdate:value":y[1]||(y[1]=k=>b.value=k)},{addonAfter:D(()=>[P(f(o),{placement:"bottomLeft",trigger:"click",modelValue:g.value,"onUpdate:modelValue":y[0]||(y[0]=k=>g.value=k),overlayClassName:`${f(w)}-popover`},{title:D(()=>[ke("div",To,[P(f(n),{placeholder:f(m)("component.icon.search"),onChange:f(A),allowClear:""},null,8,["placeholder","onChange"])])]),content:D(()=>[f(v).length?(_(),X("div",Fo,[P(f($n),{class:"border border-solid border-t-0"},{default:D(()=>[ke("ul",Po,[(_(!0),X(pe,null,fe(f(v),k=>(_(),X("li",{key:k,class:ve([b.value===k?"border border-primary":"","p-2 w-1/8 cursor-pointer mr-1 mt-1 flex justify-center items-center border border-solid hover:border-primary"]),onClick:S=>G(k),title:k},[u?(_(),z(kt,{key:0,name:k},null,8,["name"])):(_(),z(He,{key:1,icon:k},null,8,["icon"]))],10,Io))),128))])]),_:1}),f(F)>=h.pageSize?(_(),X("div",Mo,[P(f(i),{showLessItems:"",size:"small",pageSize:h.pageSize,total:f(F),onChange:O},null,8,["pageSize","total"])])):ee("",!0)])):(_(),X("div",_o,[P(f(s))]))]),default:D(()=>[u&&b.value?(_(),X("span",Ro,[P(kt,{name:b.value},null,8,["name"])])):(_(),z(He,{key:1,icon:b.value||"ion:apps-outline",class:"cursor-pointer px-2 py-1"},null,8,["icon"]))]),_:1},8,["modelValue","overlayClassName"])]),_:1},8,["style","placeholder","class","value"]))}});function qe(e,t="value",n="change",o){const i=jt(),s=i==null?void 0:i.emit,l=We({value:e[t]}),r=Cn(l),a=u=>{l.value=u};return Te(()=>{l.value=e[t]}),[N({get(){return l.value},set(u){to(u,r.value)||(l.value=u,Ee(()=>{s==null||s(n,u,...Be(f(o))||[])}))}}),a,r]}const $o=J({name:"ApiRadioGroup",components:{RadioGroup:Oe.Group,RadioButton:Oe.Button,Radio:Oe},props:{api:{type:Function,default:null},params:{type:[Object,String],default:()=>({})},value:{type:[String,Number,Boolean]},isBtn:{type:[Boolean],default:!1},numberToString:T.bool,resultField:T.string.def(""),labelField:T.string.def("label"),valueField:T.string.def("value"),immediate:T.bool.def(!0)},emits:["options-change","change"],setup(e,{emit:t}){const n=B([]),o=B(!1),i=B(!0),s=B([]),l=ut(),{t:r}=ue(),[a]=qe(e,"value","change",s),c=N(()=>{const{labelField:g,valueField:d,numberToString:m}=e;return f(n).reduce((w,A)=>{if(A){const v=A[d];w.push(C({label:A[g],value:m?`${v}`:v},Ne(A,[g,d])))}return w},[])});Te(()=>{e.immediate&&u()}),Y(()=>e.params,()=>{!f(i)&&u()},{deep:!0});function u(){return j(this,null,function*(){const g=e.api;if(!(!g||!W(g))){n.value=[];try{o.value=!0;const d=yield g(e.params);if(Array.isArray(d)){n.value=d,p();return}e.resultField&&(n.value=he(d,e.resultField)||[]),p()}catch(d){}finally{o.value=!1}}})}function p(){t("options-change",f(c))}function b(...g){s.value=g}return{state:a,getOptions:c,attrs:l,loading:o,t:r,handleClick:b,props:e}}});function Oo(e,t,n,o,i,s){const l=$("RadioButton"),r=$("Radio"),a=$("RadioGroup");return _(),z(a,H(e.attrs,{value:e.state,"onUpdate:value":t[0]||(t[0]=c=>e.state=c),"button-style":"solid"}),{default:D(()=>[(_(!0),X(pe,null,fe(e.getOptions,c=>(_(),X(pe,{key:`${c.value}`},[e.props.isBtn?(_(),z(l,{key:0,value:c.value,disabled:c.disabled,onClick:u=>e.handleClick(c)},{default:D(()=>[Q(te(c.label),1)]),_:2},1032,["value","disabled","onClick"])):(_(),z(r,{key:1,value:c.value,disabled:c.disabled,onClick:u=>e.handleClick(c)},{default:D(()=>[Q(te(c.label),1)]),_:2},1032,["value","disabled","onClick"]))],64))),128))]),_:1},16,["value"])}const Lo=ne($o,[["render",Oo]]),Eo=J({name:"RadioButtonGroup",components:{RadioGroup:Oe.Group,RadioButton:Oe.Button},props:{value:{type:[String,Number,Boolean]},options:{type:Array,default:()=>[]}},emits:["change"],setup(e){const t=ut(),n=B([]),[o]=qe(e,"value","change",n),i=N(()=>{const{options:l}=e;return!l||(l==null?void 0:l.length)===0?[]:l.some(a=>$e(a))?l.map(a=>({label:a,value:a})):l});function s(...l){n.value=l}return{state:o,getOptions:i,attrs:t,handleClick:s}}});function Bo(e,t,n,o,i,s){const l=$("RadioButton"),r=$("RadioGroup");return _(),z(r,H(e.attrs,{value:e.state,"onUpdate:value":t[0]||(t[0]=a=>e.state=a),"button-style":"solid"}),{default:D(()=>[(_(!0),X(pe,null,fe(e.getOptions,a=>(_(),z(l,{key:`${a.value}`,value:a.value,disabled:a.disabled,onClick:c=>e.handleClick(a)},{default:D(()=>[Q(te(a.label),1)]),_:2},1032,["value","disabled","onClick"]))),128))]),_:1},16,["value"])}const jo=ne(Eo,[["render",Bo]]),xo=J({name:"ApiSelect",components:{Select:Ut,LoadingOutlined:ft},inheritAttrs:!1,props:{value:[Array,Object,String,Number],numberToString:T.bool,api:{type:Function,default:null},params:T.any.def({}),resultField:T.string.def(""),labelField:T.string.def("label"),valueField:T.string.def("value"),immediate:T.bool.def(!0),alwaysLoad:T.bool.def(!1),options:T.array.def([])},emits:["options-change","change","update:value"],setup(e,{emit:t}){const n=B([]),o=B(!1),i=B(!1),s=B([]),l=ut(),{t:r}=ue(),[a]=qe(e,"value","change",s),c=N(()=>{const{labelField:d,valueField:m,numberToString:w}=e;let A=f(n).reduce((v,F)=>{if(F){const I=he(F,m);v.push(le(C({},Ne(F,[d,m])),{label:he(F,d),value:w?`${I}`:I}))}return v},[]);return A.length>0?A:e.options});Y(()=>a.value,d=>{t("update:value",d)}),Y(()=>e.params,()=>{!f(i)&&u()},{deep:!0,immediate:e.immediate});function u(){return j(this,null,function*(){const d=e.api;if(!(!d||!W(d)||o.value)){n.value=[];try{o.value=!0;const m=yield d(e.params);if(i.value=!0,Array.isArray(m)){n.value=m,b();return}e.resultField&&(n.value=he(m,e.resultField)||[]),b()}catch(m){}finally{o.value=!1}}})}function p(d){return j(this,null,function*(){d&&(e.alwaysLoad?yield u():!e.immediate&&!f(i)&&(yield u()))})}function b(){t("options-change",f(c))}function g(d,...m){t("change",...m),s.value=m}return{state:a,attrs:l,getOptions:c,loading:o,t:r,handleFetch:p,handleChange:g}}});function No(e,t,n,o,i,s){const l=$("LoadingOutlined"),r=$("Select");return _(),z(r,H({onDropdownVisibleChange:e.handleFetch},e.$attrs,{onChange:e.handleChange,options:e.getOptions,value:e.state,"onUpdate:value":t[0]||(t[0]=a=>e.state=a)}),Se({_:2},[fe(Object.keys(e.$slots),a=>({name:a,fn:D(c=>[ce(e.$slots,a,Ce(Ie(c||{})))])})),e.loading?{name:"suffixIcon",fn:D(()=>[P(l,{spin:""})]),key:"0"}:void 0,e.loading?{name:"notFoundContent",fn:D(()=>[ke("span",null,[P(l,{spin:"",class:"mr-1"}),Q(" "+te(e.t("component.form.apiSelectNotFound")),1)])]),key:"1"}:void 0]),1040,["onDropdownVisibleChange","onChange","options","value"])}const Uo=ne(xo,[["render",No]]),qo=J({name:"ApiTree",components:{ATree:no},props:{api:{type:Function},params:{type:Object},immediate:{type:Boolean,default:!0},resultField:T.string.def(""),afterFetch:{type:Function}},emits:["options-change","change"],setup(e,{attrs:t,emit:n}){const o=B([]),i=B(!1),s=B(!1),l=N(()=>C(C({},e.api?{treeData:f(o)}:{}),t));function r(...c){n("change",...c)}Y(()=>e.params,()=>{!f(i)&&a()},{deep:!0}),Y(()=>e.immediate,c=>{c&&!i.value&&a()}),rt(()=>{e.immediate&&a()});function a(){return j(this,null,function*(){const{api:c,afterFetch:u}=e;if(!c||!W(c))return;s.value=!0,o.value=[];let p;try{p=yield c(e.params)}catch(b){}u&&W(u)&&(p=u(p)),s.value=!1,p&&(be(p)||(p=he(p,e.resultField)),o.value=p||[],i.value=!0,n("options-change",o.value))})}return{getAttrs:l,loading:s,handleChange:r}}});function zo(e,t,n,o,i,s){const l=$("a-tree");return _(),z(l,H(e.getAttrs,{onChange:e.handleChange}),Se({_:2},[fe(Object.keys(e.$slots),r=>({name:r,fn:D(a=>[ce(e.$slots,r,Ce(Ie(a||{})))])}))]),1040,["onChange"])}const Vo=ne(qo,[["render",zo]]),Go=J({name:"ApiTreeSelect",components:{ATreeSelect:qt,LoadingOutlined:ft},props:{api:{type:Function},params:{type:Object},immediate:{type:Boolean,default:!0},resultField:T.string.def(""),labelField:T.string.def("title"),valueField:T.string.def("value"),childrenField:T.string.def("children")},emits:["options-change","change"],setup(e,{attrs:t,emit:n}){const o=B([]),i=B(!1),s=B(!1),l=N(()=>C(C({},e.api?{treeData:f(o)}:{}),t)),r={children:e.childrenField,value:e.valueField,label:e.labelField};function a(...u){n("change",...u)}Y(()=>e.params,()=>{!f(i)&&c()},{deep:!0}),Y(()=>e.immediate,u=>{u&&!i.value&&c()}),rt(()=>{e.immediate&&c()});function c(){return j(this,null,function*(){const{api:u}=e;if(!u||!W(u)||s.value)return;s.value=!0,o.value=[];let p;try{p=yield u(e.params)}catch(b){}s.value=!1,p&&(be(p)||(p=he(p,e.resultField)),o.value=p||[],i.value=!0,n("options-change",o.value))})}return{getAttrs:l,loading:s,handleChange:a,fieldNames:r}}});function Wo(e,t,n,o,i,s){const l=$("LoadingOutlined"),r=$("a-tree-select");return _(),z(r,H(e.getAttrs,{onChange:e.handleChange,"field-names":e.fieldNames}),Se({_:2},[fe(Object.keys(e.$slots),a=>({name:a,fn:D(c=>[ce(e.$slots,a,Ce(Ie(c||{})))])})),e.loading?{name:"suffixIcon",fn:D(()=>[P(l,{spin:""})]),key:"0"}:void 0]),1040,["onChange","field-names"])}const Ho=ne(Go,[["render",Wo]]),Yo=J({name:"ApiCascader",components:{LoadingOutlined:ft,[it.name]:it},props:{value:{type:Array},api:{type:Function,default:null},numberToString:T.bool,resultField:T.string.def(""),labelField:T.string.def("label"),valueField:T.string.def("value"),childrenField:T.string.def("children"),asyncFetchParamKey:T.string.def("parentCode"),asyncFetchParamValue:T.string.def("value"),immediate:T.bool.def(!0),initFetchParams:{type:Object,default:()=>({})},isLeaf:{type:Function,default:null},displayRenderArray:{type:Array}},emits:["change","defaultChange"],setup(e,{emit:t}){const n=B([]),o=B([]),i=B(!1),s=B([]),l=B(!0),{t:r}=ue(),[a]=qe(e,"value","change",s);Y(n,d=>{const m=c(d);o.value=m},{deep:!0});function c(d){const{labelField:m,valueField:w,numberToString:A,childrenField:v,isLeaf:F}=e;return d.reduce((I,O)=>{if(O){const G=O[w],V=le(C({},Ne(O,[m,w])),{label:O[m],value:A?`${G}`:G,isLeaf:F&&typeof F=="function"?F(O):!1}),h=Reflect.get(O,v);h&&Reflect.set(V,v,c(h)),I.push(V)}return I},[])}function u(){return j(this,null,function*(){const d=e.api;if(!(!d||!W(d))){n.value=[],i.value=!0;try{const m=yield d(e.initFetchParams);if(Array.isArray(m)){n.value=m;return}e.resultField&&(n.value=he(m,e.resultField)||[])}catch(m){}finally{i.value=!1}}})}function p(d){return j(this,null,function*(){const m=d[d.length-1];m.loading=!0;const w=e.api;if(!(!w||!W(w)))try{const A=yield w({[e.asyncFetchParamKey]:Reflect.get(m,e.asyncFetchParamValue)});if(Array.isArray(A)){const v=c(A);m.children=v;return}if(e.resultField){const v=c(he(A,e.resultField)||[]);m.children=v}}catch(A){}finally{m.loading=!1}})}Te(()=>{e.immediate&&u()}),Y(()=>e.initFetchParams,()=>{!f(l)&&u()},{deep:!0});function b(d,m){s.value=m,t("defaultChange",d,m)}function g({labels:d,selectedOptions:m}){return f(s).length===m.length?d.join(" / "):e.displayRenderArray?e.displayRenderArray.join(" / "):""}return{state:a,options:o,loading:i,t:r,handleChange:b,loadData:p,handleRenderDisplay:g}}});function Ko(e,t,n,o,i,s){const l=$("LoadingOutlined"),r=$("a-cascader");return _(),z(r,{value:e.state,"onUpdate:value":t[0]||(t[0]=a=>e.state=a),options:e.options,"load-data":e.loadData,"change-on-select":"",onChange:e.handleChange,displayRender:e.handleRenderDisplay},Se({_:2},[e.loading?{name:"suffixIcon",fn:D(()=>[P(l,{spin:""})]),key:"0"}:void 0,e.loading?{name:"notFoundContent",fn:D(()=>[ke("span",null,[P(l,{spin:"",class:"mr-1"}),Q(" "+te(e.t("component.form.apiSelectNotFound")),1)])]),key:"1"}:void 0]),1032,["value","options","load-data","onChange","displayRender"])}const Zo=ne(Yo,[["render",Ko]]),Xo=J({name:"ApiTransfer",components:{Transfer:oo},props:{value:{type:Array},api:{type:Function,default:null},params:{type:Object},dataSource:{type:Array},immediate:T.bool.def(!0),alwaysLoad:T.bool.def(!1),afterFetch:{type:Function},resultField:T.string.def(""),labelField:T.string.def("title"),valueField:T.string.def("key"),showSearch:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},filterOption:{type:Function},selectedKeys:{type:Array},showSelectAll:{type:Boolean,default:!1},targetKeys:{type:Array}},emits:["options-change","change"],setup(e,{attrs:t,emit:n}){const o=B([]),i=B([]),{t:s}=ue(),l=N(()=>C(C({},e.api?{}:{dataSource:f(o)}),t)),r=N(()=>{const{labelField:b,valueField:g}=e;return f(o).reduce((d,m)=>(m&&d.push(le(C({},Ne(m,[b,g])),{title:m[b],key:m[g]})),d),[])}),a=N(()=>Array.isArray(e.value)?e.value:Array.isArray(e.targetKeys)?e.targetKeys:[]);function c(b,g,d){i.value=b,n("change",b)}Te(()=>{e.immediate&&!e.alwaysLoad&&u()}),Y(()=>e.params,()=>{u()},{deep:!0});function u(){return j(this,null,function*(){const b=e.api;if(!b||!W(b)){Array.isArray(e.dataSource)&&(o.value=e.dataSource);return}o.value=[];try{const g=yield b(e.params);if(Array.isArray(g)){o.value=g,p();return}e.resultField&&(o.value=he(g,e.resultField)||[]),p()}catch(g){}})}function p(){n("options-change",f(r))}return{getTargetKeys:a,getdataSource:r,t:s,getAttrs:l,handleChange:c}}});function Jo(e,t,n,o,i,s){const l=$("Transfer");return _(),z(l,{"data-source":e.getdataSource,"filter-option":e.filterOption,render:r=>r.title,showSelectAll:e.showSelectAll,selectedKeys:e.selectedKeys,targetKeys:e.getTargetKeys,showSearch:e.showSearch,onChange:e.handleChange},null,8,["data-source","filter-option","render","showSelectAll","selectedKeys","targetKeys","showSearch","onChange"])}const Qo=ne(Xo,[["render",Jo]]),Kt={helpText:{type:String,default:""},maxSize:{type:Number,default:10},maxNumber:{type:Number,default:1/0},accept:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!0},uploadParams:{type:Object,default:()=>({})},api:{type:Function,default:null,required:!0},name:{type:String,default:"file"},filename:{type:String,default:null}},ei=le(C({value:{type:Array,default:()=>[]}},Kt),{showPreview:{type:Boolean,default:!0},showPreviewNumber:{type:Boolean,default:!0},emptyHidePreview:{type:Boolean,default:!1}}),ti={value:{type:Array,default:()=>[]}},ni={columns:{type:Array,default:null},actionColumn:{type:Object,default:null},dataSource:{type:Array,default:null}},{t:Je}=ue();function oi({acceptRef:e,helpTextRef:t,maxNumberRef:n,maxSizeRef:o}){const i=N(()=>{const r=f(e);return r&&r.length>0?r:[]}),s=N(()=>f(i).map(r=>r.indexOf("/")>0||r.startsWith(".")?r:`.${r}`).join(",")),l=N(()=>{const r=f(t);if(r)return r;const a=[],c=f(e);c.length>0&&a.push(Je("component.upload.accept",[c.join(",")]));const u=f(o);u&&a.push(Je("component.upload.maxSize",[u]));const p=f(n);return p&&p!==1/0&&a.push(Je("component.upload.maxNumber",[p])),a.join(",")});return{getAccept:i,getStringAccept:s,getHelpText:l}}var se=(e=>(e.SUCCESS="success",e.ERROR="error",e.UPLOADING="uploading",e))(se||{});function ii(e){return Zt(e.name)}function Zt(e){return/\.(jpg|jpeg|png|gif|webp)$/i.test(e)}function li(e){return new Promise((t,n)=>{const o=new FileReader;o.readAsDataURL(e),o.onload=()=>t({result:o.result,file:e}),o.onerror=i=>n(i)})}const Xt=Symbol("basic-table");function Vs(e){Tn(Xt,e)}function si(){return Fn(Xt)}const{table:ai}=On,{pageSizeOptions:ri,defaultPageSize:ci,fetchSetting:ui,defaultSize:di,defaultSortFn:fi,defaultFilterFn:hi}=ai,Gs="key",Ws=ri,Hs=ci,Ys=ui,Ks=di,Zs=fi,Xs=hi,Js="center",Qs="INDEX",pi="ACTION",mi=J({name:"TableAction",components:{Icon:He,PopConfirmButton:Ln,Divider:ht,Dropdown:En,MoreOutlined:io,Tooltip:zt},props:{actions:{type:Array,default:null},dropDownActions:{type:Array,default:null},divider:T.bool.def(!0),outside:T.bool,stopButtonPropagation:T.bool.def(!1)},setup(e){const{prefixCls:t}=xe("basic-table-action");let n={};e.outside||(n=si());const{hasPermission:o}=Bn();function i(u){const p=u.ifShow;let b=!0;return De(p)&&(b=p),W(p)&&(b=p(u)),b}const s=N(()=>(Be(e.actions)||[]).filter(u=>o(u.auth)&&i(u)).map(u=>{const{popConfirm:p}=u;return le(C(C({getPopupContainer:()=>{var b;return(b=f(n==null?void 0:n.wrapRef))!=null?b:document.body},type:"link",size:"small"},u),p||{}),{onConfirm:p==null?void 0:p.confirm,onCancel:p==null?void 0:p.cancel,enable:!!p})})),l=N(()=>{const u=(Be(e.dropDownActions)||[]).filter(p=>o(p.auth)&&i(p));return u.map((p,b)=>{const{label:g,popConfirm:d}=p;return le(C(C({},p),d),{onConfirm:d==null?void 0:d.confirm,onCancel:d==null?void 0:d.cancel,text:g,divider:b{var b,g;const p=(((b=n==null?void 0:n.getColumns)==null?void 0:b.call(n))||[]).find(d=>d.flag===pi);return(g=p==null?void 0:p.align)!=null?g:"left"});function a(u){return C({getPopupContainer:()=>{var p;return(p=f(n==null?void 0:n.wrapRef))!=null?p:document.body},placement:"bottom"},$e(u)?{title:u}:u)}function c(u){if(!e.stopButtonPropagation)return;u.composedPath().find(g=>{var d;return((d=g.tagName)==null?void 0:d.toUpperCase())==="BUTTON"})&&u.stopPropagation()}return{prefixCls:t,getActions:s,getDropdownList:l,getAlign:r,onCellClick:c,getTooltip:a}}});function gi(e,t,n,o,i,s){const l=$("Icon"),r=$("PopConfirmButton"),a=$("Tooltip"),c=$("Divider"),u=$("MoreOutlined"),p=$("a-button"),b=$("Dropdown");return _(),X("div",{class:ve([e.prefixCls,e.getAlign]),onClick:t[0]||(t[0]=(...g)=>e.onCellClick&&e.onCellClick(...g))},[(_(!0),X(pe,null,fe(e.getActions,(g,d)=>(_(),X(pe,{key:`${d}-${g.label}`},[g.tooltip?(_(),z(a,H({key:0,ref_for:!0},e.getTooltip(g.tooltip)),{default:D(()=>[P(r,H({ref_for:!0},g),{default:D(()=>[g.icon?(_(),z(l,{key:0,icon:g.icon,class:ve({"mr-1":!!g.label})},null,8,["icon","class"])):ee("",!0),g.label?(_(),X(pe,{key:1},[Q(te(g.label),1)],64)):ee("",!0)]),_:2},1040)]),_:2},1040)):(_(),z(r,H({key:1,ref_for:!0},g),{default:D(()=>[g.icon?(_(),z(l,{key:0,icon:g.icon,class:ve({"mr-1":!!g.label})},null,8,["icon","class"])):ee("",!0),g.label?(_(),X(pe,{key:1},[Q(te(g.label),1)],64)):ee("",!0)]),_:2},1040)),e.divider&&d0?(_(),z(b,{key:0,trigger:["hover"],dropMenuList:e.getDropdownList,popconfirm:""},{default:D(()=>[ce(e.$slots,"more"),e.$slots.more?ee("",!0):(_(),z(p,{key:0,type:"link",size:"small"},{default:D(()=>[P(u,{class:"icon-more"})]),_:1}))]),_:3},8,["dropMenuList"])):ee("",!0)],2)}const Jt=ne(mi,[["render",gi]]),bi=J({components:{Image:lo},props:{fileUrl:T.string.def(""),fileName:T.string.def("")}});const yi={class:"thumb"};function wi(e,t,n,o,i,s){const l=$("Image");return _(),X("span",yi,[e.fileUrl?(_(),z(l,{key:0,src:e.fileUrl,width:104},null,8,["src"])):ee("",!0)])}const Qt=ne(bi,[["render",wi]]),{t:re}=ue();function vi(){return[{dataIndex:"thumbUrl",title:re("component.upload.legend"),width:100,customRender:({record:e})=>{const{thumbUrl:t}=e||{};return t&&P(Qt,{fileUrl:t},null)}},{dataIndex:"name",title:re("component.upload.fileName"),align:"left",customRender:({text:e,record:t})=>{const{percent:n,status:o}=t||{};let i="normal";return o===se.ERROR?i="exception":o===se.UPLOADING?i="active":o===se.SUCCESS&&(i="success"),P("span",null,[P("p",{class:"truncate mb-1",title:e},[e]),P(so,{percent:n,size:"small",status:i},null)])}},{dataIndex:"size",title:re("component.upload.fileSize"),width:100,customRender:({text:e=0})=>e&&(e/1024).toFixed(2)+"KB"},{dataIndex:"status",title:re("component.upload.fileStatue"),width:100,customRender:({text:e})=>e===se.SUCCESS?P(Xe,{color:"green"},{default:()=>re("component.upload.uploadSuccess")}):e===se.ERROR?P(Xe,{color:"red"},{default:()=>re("component.upload.uploadError")}):e===se.UPLOADING?P(Xe,{color:"blue"},{default:()=>re("component.upload.uploading")}):e}]}function Ai(e){return{width:120,title:re("component.upload.operating"),dataIndex:"action",fixed:!1,customRender:({record:t})=>{const n=[{label:re("component.upload.del"),color:"error",onClick:e.bind(null,t)}];return P(Jt,{actions:n,outside:!0},null)}}}function ki(){return[{dataIndex:"url",title:re("component.upload.legend"),width:100,customRender:({record:e})=>{const{url:t}=e||{};return Zt(t)&&P(Qt,{fileUrl:t},null)}},{dataIndex:"name",title:re("component.upload.fileName"),align:"left"}]}function Si({handleRemove:e,handleDownload:t}){return{width:160,title:re("component.upload.operating"),dataIndex:"action",fixed:!1,customRender:({record:n})=>{const o=[{label:re("component.upload.del"),color:"error",onClick:e.bind(null,n)},{label:re("component.upload.download"),onClick:t.bind(null,n)}];return P(Jt,{actions:o,outside:!0},null)}}}const lt=[];for(let e=0;e<=15;e++)lt[e]=e.toString(16);function Ci(){let e="";for(let t=1;t<=36;t++)t===9||t===14||t===19||t===24?e+="-":t===15?e+=4:t===20?e+=lt[Math.random()*4|8]:e+=lt[Math.random()*16|0];return e.replace(/-/g,"")}const en=J({name:"FileList",props:ni,setup(e){const t=Wt();return Y(()=>e.dataSource,()=>{Ee(()=>{var n;(n=t==null?void 0:t.redoModalHeight)==null||n.call(t)})}),()=>{const{columns:n,actionColumn:o,dataSource:i}=e,s=[...n,o];return P("table",{class:"file-table"},[P("colgroup",null,[s.map(l=>{const{width:r=0,dataIndex:a}=l,c={width:`${r}px`,minWidth:`${r}px`};return P("col",{style:r?c:{},key:a},null)})]),P("thead",null,[P("tr",{class:"file-table-tr"},[s.map(l=>{const{title:r="",align:a="center",dataIndex:c}=l;return P("th",{class:["file-table-th",a],key:c},[r])})])]),P("tbody",null,[i.map((l={},r)=>P("tr",{class:"file-table-tr",key:`${r+l.name||""}`},[s.map(a=>{const{dataIndex:c="",customRender:u,align:p="center"}=a,b=u&&W(u);return P("td",{class:["file-table-td",p],key:c},[b?u==null?void 0:u({text:l[c],record:l}):l[c]])})]))])])}}});const Ti=J({components:{BasicModal:Ht,Upload:ao,Alert:ro,FileList:en},props:le(C({},Kt),{previewFileList:{type:Array,default:()=>[]}}),emits:["change","register","delete"],setup(e,{emit:t}){const n=We({fileList:[]}),o=B(!1),i=B([]),{accept:s,helpText:l,maxNumber:r,maxSize:a}=xt(e),{t:c}=ue(),[u,{closeModal:p}]=Yt(),{getStringAccept:b,getHelpText:g}=oi({acceptRef:s,helpTextRef:l,maxNumberRef:r,maxSizeRef:a}),{createMessage:d}=jn(),m=N(()=>i.value.length>0&&!i.value.every(h=>h.status===se.SUCCESS)),w=N(()=>{const h=i.value.some(y=>y.status===se.SUCCESS);return{disabled:o.value||i.value.length===0||!h}}),A=N(()=>{const h=i.value.some(y=>y.status===se.ERROR);return o.value?c("component.upload.uploading"):c(h?"component.upload.reUploadFailed":"component.upload.startUpload")});function v(h){const{size:y,name:k}=h,{maxSize:S}=e;if(S&&h.size/1024/1024>=S)return d.error(c("component.upload.maxSizeMultiple",[S])),!1;const M={uuid:Ci(),file:h,size:y,name:k,percent:0,type:k.split(".").pop()};return ii(h)?li(h).then(({result:L})=>{i.value=[...f(i),C({thumbUrl:L},M)]}):i.value=[...f(i),M],!1}function F(h){const y=i.value.findIndex(k=>k.uuid===h.uuid);y!==-1&&i.value.splice(y,1),t("delete",h)}function I(h){return j(this,null,function*(){var k;const{api:y}=e;if(!y||!W(y))return xn();try{h.status=se.UPLOADING;const S=yield(k=e.api)==null?void 0:k.call(e,{data:C({},e.uploadParams||{}),file:h.file,name:e.name,filename:e.filename},function(x){const E=x.loaded/x.total*100|0;h.percent=E}),{data:M}=S;return h.status=se.SUCCESS,h.responseData=M,{success:!0,error:null}}catch(S){return h.status=se.ERROR,{success:!1,error:S}}})}function O(){return j(this,null,function*(){var y;const{maxNumber:h}=e;if(i.value.length+((y=e.previewFileList)==null?void 0:y.length)>h)return d.warning(c("component.upload.maxNumber",[h]));try{o.value=!0;const k=i.value.filter(L=>L.status!==se.SUCCESS)||[],S=yield Promise.all(k.map(L=>I(L)));o.value=!1;const M=S.filter(L=>!L.success);if(M.length>0)throw M}catch(k){throw o.value=!1,k}})}function G(){const{maxNumber:h}=e;if(i.value.length>h)return d.warning(c("component.upload.maxNumber",[h]));if(o.value)return d.warning(c("component.upload.saveWarn"));const y=[];for(const k of i.value){const{status:S,responseData:M}=k;S===se.SUCCESS&&M&&y.push(M.url)}if(y.length<=0)return d.warning(c("component.upload.saveError"));i.value=[],p(),t("change",y)}function V(){return j(this,null,function*(){return o.value?(d.warning(c("component.upload.uploadWait")),!1):(i.value=[],!0)})}return{columns:vi(),actionColumn:Ai(F),register:u,closeModal:p,getHelpText:g,getStringAccept:b,getOkButtonProps:w,beforeUpload:v,fileListRef:i,state:n,isUploadingRef:o,handleStartUpload:O,handleOk:G,handleCloseFunc:V,getIsSelectFile:m,getUploadBtnText:A,t:c}}});const Fi={class:"upload-modal-toolbar"};function Pi(e,t,n,o,i,s){const l=$("a-button"),r=$("Alert"),a=$("Upload"),c=$("FileList"),u=$("BasicModal");return _(),z(u,H({width:"800px",title:e.t("component.upload.upload"),okText:e.t("component.upload.save")},e.$attrs,{onRegister:e.register,onOk:e.handleOk,closeFunc:e.handleCloseFunc,maskClosable:!1,keyboard:!1,class:"upload-modal",okButtonProps:e.getOkButtonProps,cancelButtonProps:{disabled:e.isUploadingRef}}),{centerFooter:D(()=>[P(l,{onClick:e.handleStartUpload,color:"success",disabled:!e.getIsSelectFile,loading:e.isUploadingRef},{default:D(()=>[Q(te(e.getUploadBtnText),1)]),_:1},8,["onClick","disabled","loading"])]),default:D(()=>[ke("div",Fi,[P(r,{message:e.getHelpText,type:"info",banner:"",class:"upload-modal-toolbar__text"},null,8,["message"]),P(a,{accept:e.getStringAccept,multiple:e.multiple,"before-upload":e.beforeUpload,"show-upload-list":!1,class:"upload-modal-toolbar__btn"},{default:D(()=>[P(l,{type:"primary"},{default:D(()=>[Q(te(e.t("component.upload.choose")),1)]),_:1})]),_:1},8,["accept","multiple","before-upload"])]),P(c,{dataSource:e.fileListRef,columns:e.columns,actionColumn:e.actionColumn},null,8,["dataSource","columns","actionColumn"])]),_:1},16,["title","okText","onRegister","onOk","closeFunc","okButtonProps","cancelButtonProps"])}const Ii=ne(Ti,[["render",Pi]]);function Mi({url:e,target:t="_blank",fileName:n}){const o=window.navigator.userAgent.toLowerCase().indexOf("chrome")>-1,i=window.navigator.userAgent.toLowerCase().indexOf("safari")>-1;if(/(iP)/g.test(window.navigator.userAgent))return!1;if(o||i){const s=document.createElement("a");if(s.href=e,s.target=t,s.download!==void 0&&(s.download=n||e.substring(e.lastIndexOf("/")+1,e.length)),document.createEvent){const l=document.createEvent("MouseEvents");return l.initEvent("click",!0,!0),s.dispatchEvent(l),!0}}return e.indexOf("?")===-1&&(e+="?download"),Nn(e,{target:t}),!0}const _i=J({components:{BasicModal:Ht,FileList:en},props:ti,emits:["list-change","register","delete"],setup(e,{emit:t}){const[n,{closeModal:o}]=Yt(),{t:i}=ue(),s=B([]);Y(()=>e.value,a=>{be(a)||(a=[]),s.value=a.filter(c=>!!c).map(c=>({url:c,type:c.split(".").pop()||"",name:c.split("/").pop()||""}))},{immediate:!0});function l(a){const c=s.value.findIndex(u=>u.url===a.url);if(c!==-1){const u=s.value.splice(c,1);t("delete",u[0].url),t("list-change",s.value.map(p=>p.url))}}function r(a){const{url:c=""}=a;Mi({url:c})}return{t:i,register:n,closeModal:o,fileListRef:s,columns:ki(),actionColumn:Si({handleRemove:l,handleDownload:r})}}});function Ri(e,t,n,o,i,s){const l=$("FileList"),r=$("BasicModal");return _(),z(r,H({width:"800px",title:e.t("component.upload.preview"),class:"upload-preview-modal"},e.$attrs,{onRegister:e.register,showOkBtn:!1}),{default:D(()=>[P(l,{dataSource:e.fileListRef,columns:e.columns,actionColumn:e.actionColumn},null,8,["dataSource","columns","actionColumn"])]),_:1},16,["title","onRegister"])}const Di=ne(_i,[["render",Ri]]),$i=J({name:"BasicUpload",components:{UploadModal:Ii,Space:co,UploadPreviewModal:Di,Icon:He,Tooltip:zt},props:ei,emits:["change","delete","preview-delete","update:value"],setup(e,{emit:t,attrs:n}){const{t:o}=ue(),[i,{openModal:s}]=Pt(),[l,{openModal:r}]=Pt(),a=B([]),c=N(()=>{const{showPreview:m,emptyHidePreview:w}=e;return m?w&&w?a.value.length>0:!0:!1}),u=N(()=>{const m=C(C({},n),e);return Ne(m,"onChange")});Y(()=>e.value,(m=[])=>{a.value=be(m)?m:[]},{immediate:!0});function p(m){a.value=[...f(a),...m||[]],t("update:value",a.value),t("change",a.value)}function b(m){a.value=[...m||[]],t("update:value",a.value),t("change",a.value)}function g(m){t("delete",m)}function d(m){t("preview-delete",m)}return{registerUploadModal:i,openUploadModal:s,handleChange:p,handlePreviewChange:b,registerPreviewModal:l,openPreviewModal:r,fileList:a,showPreview:c,bindValue:u,handleDelete:g,handlePreviewDelete:d,t:o}}});function Oi(e,t,n,o,i,s){const l=$("a-button"),r=$("Icon"),a=$("Tooltip"),c=$("Space"),u=$("UploadModal"),p=$("UploadPreviewModal");return _(),X("div",null,[P(c,null,{default:D(()=>[P(l,{type:"primary",onClick:e.openUploadModal,preIcon:"carbon:cloud-upload"},{default:D(()=>[Q(te(e.t("component.upload.upload")),1)]),_:1},8,["onClick"]),e.showPreview?(_(),z(a,{key:0,placement:"bottom"},{title:D(()=>[Q(te(e.t("component.upload.uploaded"))+" ",1),e.fileList.length?(_(),X(pe,{key:0},[Q(te(e.fileList.length),1)],64)):ee("",!0)]),default:D(()=>[P(l,{onClick:e.openPreviewModal},{default:D(()=>[P(r,{icon:"bi:eye"}),e.fileList.length&&e.showPreviewNumber?(_(),X(pe,{key:0},[Q(te(e.fileList.length),1)],64)):ee("",!0)]),_:1},8,["onClick"])]),_:1})):ee("",!0)]),_:1}),P(u,H(e.bindValue,{previewFileList:e.fileList,onRegister:e.registerUploadModal,onChange:e.handleChange,onDelete:e.handleDelete}),null,16,["previewFileList","onRegister","onChange","onDelete"]),P(p,{value:e.fileList,onRegister:e.registerPreviewModal,onListChange:e.handlePreviewChange,onDelete:e.handlePreviewDelete},null,8,["value","onRegister","onListChange","onDelete"])])}const Li=ne($i,[["render",Oi]]),Ei=Ze(Li),st=(e,t)=>e.push.apply(e,t),Le=e=>e.sort((t,n)=>t.i-n.i||t.j-n.j),It=e=>{const t={};let n=1;return e.forEach(o=>{t[o]=n,n+=1}),t};var Bi={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const Mt=2050,_t=1e3,ji=Bi,xi=10,Ni=1e4,tn=10,nn=50,on=20,ln=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,Ui=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,qi=/^[A-Z\xbf-\xdf]+$/,sn=/^[^a-z\xdf-\xff]+$/,zi=/^[a-z\xdf-\xff]+$/,Vi=/^[^A-Z\xbf-\xdf]+$/,Gi=/[a-z\xdf-\xff]/,Wi=/[A-Z\xbf-\xdf]/,Hi=/[^A-Za-z\xbf-\xdf]/gi,Yi=/^\d+$/,mt=new Date().getFullYear(),Ki={recentYear:/19\d\d|200\d|201\d|202\d/g},an=[" ",",",";",":","|","/","\\","_",".","-"],Zi=an.length;class Xi{match({password:t}){const n=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],o=this.filterNoise(n);return Le(o)}getMatchesWithSeparator(t){const n=[],o=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let i=0;i<=Math.abs(t.length-6);i+=1)for(let s=i+5;s<=i+9&&!(s>=t.length);s+=1){const l=t.slice(i,+s+1||9e9),r=o.exec(l);if(r!=null){const a=this.mapIntegersToDayMonthYear([parseInt(r[1],10),parseInt(r[3],10),parseInt(r[4],10)]);a!=null&&n.push({pattern:"date",token:l,i,j:s,separator:r[2],year:a.year,month:a.month,day:a.day})}}return n}getMatchesWithoutSeparator(t){const n=[],o=/^\d{4,8}$/,i=s=>Math.abs(s.year-mt);for(let s=0;s<=Math.abs(t.length-4);s+=1)for(let l=s+3;l<=s+7&&!(l>=t.length);l+=1){const r=t.slice(s,+l+1||9e9);if(o.exec(r)){const a=[],c=r.length;if(ji[c].forEach(([p,b])=>{const g=this.mapIntegersToDayMonthYear([parseInt(r.slice(0,p),10),parseInt(r.slice(p,b),10),parseInt(r.slice(b),10)]);g!=null&&a.push(g)}),a.length>0){let p=a[0],b=i(a[0]);a.slice(1).forEach(g=>{const d=i(g);d{let o=!1;const i=t.length;for(let s=0;s=n.j){o=!0;break}}return!o})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let n=0,o=0,i=0;for(let s=0,l=t.length;s99&&r<_t||r>Mt)return null;r>31&&(o+=1),r>12&&(n+=1),r<=0&&(i+=1)}return o>=2||n===3||i>=2?null:this.getDayMonth(t)}getDayMonth(t){const n=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],o=n.length;for(let i=0;i=1&&s<=31&&l>=1&&l<=12)return{day:s,month:l}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const me=new Uint32Array(65536),Ji=(e,t)=>{const n=e.length,o=t.length,i=1<{const n=t.length,o=e.length,i=[],s=[],l=Math.ceil(n/32),r=Math.ceil(o/32);for(let d=0;d>>v&1,O=i[v/32|0]>>>v&1,G=F|d,V=((F|O)&m)+m^m|F|O;let h=d|~(V|m),y=m&V;h>>>31^I&&(s[v/32|0]^=1<>>31^O&&(i[v/32|0]^=1<>>d&1,A=i[d/32|0]>>>d&1,v=m|c,F=((m|A)&u)+u^u|m|A;let I=c|~(F|u),O=u&F;g+=I>>>o-1&1,g-=O>>>o-1&1,I>>>31^w&&(s[d/32|0]^=1<>>31^A&&(i[d/32|0]^=1<{if(e.length{const o=e.length<=t.length,i=e.length<=n;return o||i?Math.ceil(e.length/4):n},nl=(e,t,n)=>{let o=0;const i=Object.keys(t).find(s=>{const l=tl(e,s,n);if(Math.abs(e.length-s.length)>l)return!1;const r=el(e,s),a=r<=l;return a&&(o=r),a});return i?{levenshteinDistance:o,levenshteinDistanceEntry:i}:{}};var Rt={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},Qe={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class je{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...n){const o=t.charAt(0);this.children.has(o)||this.children.set(o,new je([...this.parents,o]));let i=this.children.get(o);for(let s=1;s(Object.entries(e).forEach(([n,o])=>{o.forEach(i=>{t.addSub(i,n)})}),t);class ol{constructor(){this.matchers={},this.l33tTable=Rt,this.trieNodeRoot=Dt(Rt,new je),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=Qe,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=Dt(t.l33tTable,new je)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let n=!0;return Object.keys(Qe).forEach(o=>{if(o in t){const i=o;Object.keys(Qe[i]).forEach(s=>{s in t[i]||(n=!1)})}else n=!1}),n}setRankedDictionaries(){const t={},n={};Object.keys(this.dictionary).forEach(o=>{t[o]=It(this.dictionary[o]),n[o]=this.getRankedDictionariesMaxWordSize(this.dictionary[o])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=n}getRankedDictionariesMaxWordSize(t){const n=t.map(o=>typeof o!="string"?o.toString().length:o.length);return n.length===0?0:n.reduce((o,i)=>Math.max(o,i),-1/0)}buildSanitizedRankedDictionary(t){const n=[];return t.forEach(o=>{const i=typeof o;(i==="string"||i==="number"||i==="boolean")&&n.push(o.toString().toLowerCase())}),It(n)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const n=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(n),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(n)}addMatcher(t,n){this.matchers[t]||(this.matchers[t]=n)}}const R=new ol;class il{constructor(t){this.defaultMatch=t}match({password:t}){const n=t.split("").reverse().join("");return this.defaultMatch({password:n}).map(o=>le(C({},o),{token:o.token.split("").reverse().join(""),reversed:!0,i:t.length-1-o.j,j:t.length-1-o.i}))}}class ll{constructor({substr:t,limit:n,trieRoot:o}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=n,this.trieRoot=o}getAllPossibleSubsAtIndex(t){const n=[];let o=this.trieRoot;for(let i=t;i=this.limit)return;if(o===this.substr.length){t===n&&this.finalPasswords.push({password:this.buffer.join(""),changes:s});return}const a=[...this.getAllPossibleSubsAtIndex(o)];let c=!1;for(let u=o+a.length-1;u>=o;u-=1){const p=a[u-o];if(p.isTerminal()){if(l===p.parents.join("")&&r>=3)continue;c=!0;const b=p.subs;for(const g of b){this.buffer.push(g);const d=s.concat({i,letter:g,substitution:p.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:n,index:u+1,subIndex:i+g.length,changes:d,lastSubLetter:p.parents.join(""),consecutiveSubCount:l===p.parents.join("")?r+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!c){const u=this.substr.charAt(o);this.buffer.push(u),this.helper({onlyFullSub:t,isFullSub:n&&!c,index:o+1,subIndex:i+1,changes:s,lastSubLetter:l,consecutiveSubCount:r}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const sl=(e,t,n)=>new ll({substr:e,limit:t,trieRoot:n}).getAll(),al=(e,t,n)=>{const i=e.changes.filter(c=>c.ic-u.letter.length+u.substitution.length,t),s=e.changes.filter(c=>c.i>=t&&c.i<=n),l=s.reduce((c,u)=>c-u.letter.length+u.substitution.length,n-t+i),r=[],a=[];return s.forEach(c=>{r.findIndex(p=>p.letter===c.letter&&p.substitution===c.substitution)<0&&(r.push({letter:c.letter,substitution:c.substitution}),a.push(`${c.substitution} -> ${c.letter}`))}),{i,j:l,subs:r,subDisplay:a.join(", ")}};class rl{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,n){return t.some(o=>Object.entries(o).every(([i,s])=>i==="subs"||s===n[i]))}match({password:t}){const n=[],o=sl(t,R.l33tMaxSubstitutions,R.trieNodeRoot);let i=!1,s=!0;return o.forEach(l=>{if(i)return;const r=this.defaultMatch({password:l.password,useLevenshtein:s});s=!1,r.forEach(a=>{i||(i=a.i===0&&a.j===t.length-1);const c=al(l,a.i,a.j),u=t.slice(c.i,+c.j+1||9e9),p=C(le(C({},a),{l33t:!0,token:u}),c),b=this.isAlreadyIncluded(n,p);u.toLowerCase()!==a.matchedWord&&!b&&n.push(p)})}),n.filter(l=>l.token.length>1)}}class cl{constructor(){this.l33t=new rl(this.defaultMatch),this.reverse=new il(this.defaultMatch)}match({password:t}){const n=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return Le(n)}defaultMatch({password:t,useLevenshtein:n=!0}){const o=[],i=t.length,s=t.toLowerCase();return Object.keys(R.rankedDictionaries).forEach(l=>{const r=R.rankedDictionaries[l],a=R.rankedDictionariesMaxWordSize[l],c=Math.min(a,i);for(let u=0;u{const s=n[i];s.lastIndex=0;let l;for(;l=s.exec(t);)if(l){const r=l[0];o.push({pattern:"regex",token:r,i:l.index,j:l.index+l[0].length-1,regexName:i,regexMatch:l})}}),Le(o)}}var _e={nCk(e,t){let n=e;if(t>n)return 0;if(t===0)return 1;let o=1;for(let i=1;i<=t;i+=1)o*=n,o/=i,n-=1;return o},log10(e){return e===0?0:Math.log(e)/Math.log(10)},log2(e){return Math.log(e)/Math.log(2)},factorial(e){let t=1;for(let n=2;n<=e;n+=1)t*=n;return t}},dl=({token:e})=>{let t=Re(xi,e.length);t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let n;return e.length===1?n=tn+1:n=nn+1,Math.max(t,n)},fl=({year:e,separator:t})=>{let o=Math.max(Math.abs(e-mt),on)*365;return t&&(o*=4),o};const hl=e=>{const t=e.split(""),n=t.filter(l=>l.match(Wi)).length,o=t.filter(l=>l.match(Gi)).length;let i=0;const s=Math.min(n,o);for(let l=1;l<=s;l+=1)i+=_e.nCk(n+o,l);return i};var pl=e=>{const t=e.replace(Hi,"");if(t.match(Vi)||t.toLowerCase()===t)return 1;const n=[ln,Ui,sn],o=n.length;for(let i=0;i{let n=0,o=e.indexOf(t);for(;o>=0;)n+=1,o=e.indexOf(t,o+t.length);return n},ml=({sub:e,token:t})=>{const n=t.toLowerCase(),o=$t(n,e.substitution),i=$t(n,e.letter);return{subbedCount:o,unsubbedCount:i}};var gl=({l33t:e,subs:t,token:n})=>{if(!e)return 1;let o=1;return t.forEach(i=>{const{subbedCount:s,unsubbedCount:l}=ml({sub:i,token:n});if(s===0||l===0)o*=2;else{const r=Math.min(l,s);let a=0;for(let c=1;c<=r;c+=1)a+=_e.nCk(l+s,c);o*=a}}),o},bl=({rank:e,reversed:t,l33t:n,subs:o,token:i,dictionaryName:s})=>{const l=e,r=pl(i),a=gl({l33t:n,subs:o,token:i}),c=t&&2||1;let u;return s==="diceware"?u=Re(6,5)/2:u=l*r*a*c,{baseGuesses:l,uppercaseVariations:r,l33tVariations:a,calculation:u}},yl=({regexName:e,regexMatch:t,token:n})=>{const o={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(e in o)return Re(o[e],n.length);switch(e){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-mt),on)}return 0},wl=({baseGuesses:e,repeatCount:t})=>e*t,vl=({token:e,ascending:t})=>{const n=e.charAt(0);let o=0;return["a","A","z","Z","0","1","9"].includes(n)?o=4:n.match(/\d/)?o=10:o=26,t||(o*=2),o*e.length};const Al=e=>{let t=0;return Object.keys(e).forEach(n=>{const o=e[n];t+=o.filter(i=>!!i).length}),t/=Object.entries(e).length,t},kl=({token:e,graph:t,turns:n})=>{const o=Object.keys(R.graphs[t]).length,i=Al(R.graphs[t]);let s=0;const l=e.length;for(let r=2;r<=l;r+=1){const a=Math.min(n,r-1);for(let c=1;c<=a;c+=1)s+=_e.nCk(r-1,c-1)*o*Re(i,c)}return s};var Sl=({graph:e,token:t,shiftedCount:n,turns:o})=>{let i=kl({token:t,graph:e,turns:o});if(n){const s=t.length-n;if(n===0||s===0)i*=2;else{let l=0;for(let r=1;r<=Math.min(n,s);r+=1)l+=_e.nCk(n+s,r);i*=l}}return Math.round(i)},Cl=()=>Zi;const Tl=(e,t)=>{let n=1;return e.token.lengthOt[e]?Ot[e](t):R.matchers[e]&&"scoring"in R.matchers[e]?R.matchers[e].scoring(t):0;var Pl=(e,t)=>{const n={};if("guesses"in e&&e.guesses!=null)return e;const o=Tl(e,t),i=Fl(e.pattern,e);let s=0;typeof i=="number"?s=i:e.pattern==="dictionary"&&(s=i.calculation,n.baseGuesses=i.baseGuesses,n.uppercaseVariations=i.uppercaseVariations,n.l33tVariations=i.l33tVariations);const l=Math.max(s,o);return le(C(C({},e),n),{guesses:l,guessesLog10:_e.log10(l)})};const de={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(e,t){const n=[];for(let o=0;o1&&(i*=this.optimal.pi[o.i-1][t-1]);let s=_e.factorial(t)*i;this.excludeAdditive||(s+=Re(Ni,t-1));let l=!1;Object.keys(this.optimal.g[n]).forEach(r=>{const a=this.optimal.g[n][r];parseInt(r,10)<=t&&a<=s&&(l=!0)}),l||(this.optimal.g[n][t]=s,this.optimal.m[n][t]=o,this.optimal.pi[n][t]=i)},bruteforceUpdate(e){let t=this.makeBruteforceMatch(0,e);this.update(t,1);for(let n=1;n<=e;n+=1){t=this.makeBruteforceMatch(n,e);const o=this.optimal.m[n-1];Object.keys(o).forEach(i=>{o[i].pattern!=="bruteforce"&&this.update(t,parseInt(i,10)+1)})}},unwind(e){const t=[];let n=e-1,o=0,i=1/0;const s=this.optimal.g[n];for(s&&Object.keys(s).forEach(l=>{const r=s[l];r=0;){const l=this.optimal.m[n][o];t.unshift(l),n=l.i-1,o-=1}return t}};var at={mostGuessableMatchSequence(e,t,n=!1){de.password=e,de.excludeAdditive=n;const o=e.length;let i=de.fillArray(o,"array");t.forEach(a=>{i[a.j].push(a)}),i=i.map(a=>a.sort((c,u)=>c.i-u.i)),de.optimal={m:de.fillArray(o,"object"),pi:de.fillArray(o,"object"),g:de.fillArray(o,"object")};for(let a=0;a{c.i>0?Object.keys(de.optimal.m[c.i-1]).forEach(u=>{de.update(c,parseInt(u,10)+1)}):de.update(c,1)}),de.bruteforceUpdate(a);const s=de.unwind(o),l=s.length,r=this.getGuesses(e,l);return{password:e,guesses:r,guessesLog10:_e.log10(r),sequence:s}},getGuesses(e,t){const n=e.length;let o=0;return e.length===0?o=1:o=de.optimal.g[n-1][t],o}};class Il{match({password:t,omniMatch:n}){const o=[];let i=0;for(;il instanceof Promise)?Promise.all(o):o}normalizeMatch(t,n,o,i){const s={pattern:"repeat",i:o.index,j:n,token:o[0],baseToken:t,baseGuesses:0,repeatCount:o[0].length/t.length};return i instanceof Promise?i.then(l=>le(C({},s),{baseGuesses:l})):le(C({},s),{baseGuesses:i})}getGreedyMatch(t,n){const o=/(.+)\1+/g;return o.lastIndex=n,o.exec(t)}getLazyMatch(t,n){const o=/(.+?)\1+/g;return o.lastIndex=n,o.exec(t)}setMatchToken(t,n){const o=/^(.+?)\1+$/;let i,s="";if(n&&t[0].length>n[0].length){i=t;const l=o.exec(i[0]);l&&(s=l[1])}else i=n,i&&(s=i[1]);return{match:i,baseToken:s}}getBaseGuesses(t,n){const o=n.match(t);return o instanceof Promise?o.then(s=>at.mostGuessableMatchSequence(t,s).guesses):at.mostGuessableMatchSequence(t,o).guesses}}class Ml{constructor(){this.MAX_DELTA=5}match({password:t}){const n=[];if(t.length===1)return[];let o=0,i=null;const s=t.length;for(let l=1;l1||Math.abs(o)===1){const l=Math.abs(o);if(l>0&&l<=this.MAX_DELTA){const r=i.slice(t,+n+1||9e9),{sequenceName:a,sequenceSpace:c}=this.getSequence(r);return s.push({pattern:"sequence",i:t,j:n,token:i.slice(t,+n+1||9e9),sequenceName:a,sequenceSpace:c,ascending:o>0})}}return null}getSequence(t){let n="unicode",o=26;return zi.test(t)?(n="lower",o=26):qi.test(t)?(n="upper",o=26):Yi.test(t)&&(n="digits",o=10),{sequenceName:n,sequenceSpace:o}}}class _l{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const n=[];return Object.keys(R.graphs).forEach(o=>{const i=R.graphs[o];st(n,this.helper(t,i,o))}),Le(n)}checkIfShifted(t,n,o){return!t.includes("keypad")&&this.SHIFTED_RX.test(n.charAt(o))?1:0}helper(t,n,o){let i;const s=[];let l=0;const r=t.length;for(;l2&&s.push({pattern:"spatial",i:l,j:a-1,token:t.slice(l,a),graph:o,turns:u,shiftedCount:i}),l=a;break}}}return s}}const Rl=new RegExp(`[${an.join("")}]`);class Ke{static getMostUsedSeparatorChar(t){const n=[...t.split("").filter(i=>Rl.test(i)).reduce((i,s)=>{const l=i.get(s);return l?i.set(s,l+1):i.set(s,1),i},new Map).entries()].sort(([i,s],[l,r])=>r-s);if(!n.length)return;const o=n[0];if(!(o[1]<2))return o[0]}static getSeparatorRegex(t){return new RegExp(`([^${t} +])(${t})(?!${t})`,"g")}match({password:t}){const n=[];if(t.length===0)return n;const o=Ke.getMostUsedSeparatorChar(t);if(o===void 0)return n;const i=Ke.getSeparatorRegex(o);for(const s of t.matchAll(i)){if(s.index===void 0)continue;const l=s.index+1;n.push({pattern:"separator",token:o,i:l,j:l})}return n}}class Dl{constructor(){this.matchers={date:Xi,dictionary:cl,regex:ul,repeat:Il,sequence:Ml,spatial:_l,separator:Ke}}match(t){const n=[],o=[];return[...Object.keys(this.matchers),...Object.keys(R.matchers)].forEach(s=>{if(!this.matchers[s]&&!R.matchers[s])return;const l=this.matchers[s]?this.matchers[s]:R.matchers[s].Matching,a=new l().match({password:t,omniMatch:this});a instanceof Promise?(a.then(c=>{st(n,c)}),o.push(a)):st(n,a)}),o.length>0?new Promise((s,l)=>{Promise.all(o).then(()=>{s(Le(n))}).catch(r=>{l(r)})}):Le(n)}}const rn=1,cn=rn*60,un=cn*60,dn=un*24,fn=dn*31,hn=fn*12,$l=hn*100,et={second:rn,minute:cn,hour:un,day:dn,month:fn,year:hn,century:$l};class Ol{translate(t,n){let o=t;n!==void 0&&n!==1&&(o+="s");const{timeEstimation:i}=R.translations;return i[o].replace("{base}",`${n}`)}estimateAttackTimes(t){const n={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},o={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(n).forEach(i=>{const s=n[i];o[i]=this.displayTime(s)}),{crackTimesSeconds:n,crackTimesDisplay:o,score:this.guessesToScore(t)}}guessesToScore(t){return t<1e3+5?0:t<1e6+5?1:t<1e8+5?2:t<1e10+5?3:4}displayTime(t){let n="centuries",o;const i=Object.keys(et),s=i.findIndex(l=>t-1&&(n=i[s-1],s!==0?o=Math.round(t/et[n]):n="ltSecond"),this.translate(n,o)}}var Ll=()=>null,El=()=>({warning:R.translations.warnings.dates,suggestions:[R.translations.suggestions.dates]});const Bl=(e,t)=>{let n=null;return t&&!e.l33t&&!e.reversed?e.rank<=10?n=R.translations.warnings.topTen:e.rank<=100?n=R.translations.warnings.topHundred:n=R.translations.warnings.common:e.guessesLog10<=4&&(n=R.translations.warnings.similarToCommon),n},jl=(e,t)=>{let n=null;return t&&(n=R.translations.warnings.wordByItself),n},xl=(e,t)=>t?R.translations.warnings.namesByThemselves:R.translations.warnings.commonNames,Nl=(e,t)=>{let n=null;const o=e.dictionaryName,i=o==="lastnames"||o.toLowerCase().includes("firstnames");return o==="passwords"?n=Bl(e,t):o.includes("wikipedia")?n=jl(e,t):i?n=xl(e,t):o==="userInputs"&&(n=R.translations.warnings.userInputs),n};var Ul=(e,t)=>{const n=Nl(e,t),o=[],i=e.token;return i.match(ln)?o.push(R.translations.suggestions.capitalization):i.match(sn)&&i.toLowerCase()!==i&&o.push(R.translations.suggestions.allUppercase),e.reversed&&e.token.length>=4&&o.push(R.translations.suggestions.reverseWords),e.l33t&&o.push(R.translations.suggestions.l33t),{warning:n,suggestions:o}},ql=e=>e.regexName==="recentYear"?{warning:R.translations.warnings.recentYears,suggestions:[R.translations.suggestions.recentYears,R.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},zl=e=>{let t=R.translations.warnings.extendedRepeat;return e.baseToken.length===1&&(t=R.translations.warnings.simpleRepeat),{warning:t,suggestions:[R.translations.suggestions.repeated]}},Vl=()=>({warning:R.translations.warnings.sequences,suggestions:[R.translations.suggestions.sequences]}),Gl=e=>{let t=R.translations.warnings.keyPattern;return e.turns===1&&(t=R.translations.warnings.straightRow),{warning:t,suggestions:[R.translations.suggestions.longerKeyboardPattern]}},Wl=()=>null;const Lt={warning:null,suggestions:[]};class Hl{constructor(){this.matchers={bruteforce:Ll,date:El,dictionary:Ul,regex:ql,repeat:zl,sequence:Vl,spatial:Gl,separator:Wl},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(R.translations.suggestions.useWords,R.translations.suggestions.noNeed)}getFeedback(t,n){if(n.length===0)return this.defaultFeedback;if(t>2)return Lt;const o=R.translations.suggestions.anotherWord,i=this.getLongestMatch(n);let s=this.getMatchFeedback(i,n.length===1);return s!=null?s.suggestions.unshift(o):s={warning:null,suggestions:[o]},s}getLongestMatch(t){let n=t[0];return t.slice(1).forEach(i=>{i.token.length>n.token.length&&(n=i)}),n}getMatchFeedback(t,n){return this.matchers[t.pattern]?this.matchers[t.pattern](t,n):R.matchers[t.pattern]&&"feedback"in R.matchers[t.pattern]?R.matchers[t.pattern].feedback(t,n):Lt}}const pn=()=>new Date().getTime(),Yl=(e,t,n)=>{const o=new Hl,i=new Ol,s=at.mostGuessableMatchSequence(t,e),l=pn()-n,r=i.estimateAttackTimes(s.guesses);return le(C(C({calcTime:l},s),r),{feedback:o.getFeedback(r.score,s.sequence)})},Kl=(e,t)=>(t&&R.extendUserInputsDictionary(t),new Dl().match(e)),Zl=(e,t)=>{const n=pn(),o=Kl(e,t);if(o instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return Yl(o,e,n)},Xl=J({name:"StrengthMeter",components:{InputPassword:Me.Password},props:{value:T.string,showInput:T.bool.def(!0),disabled:T.bool},emits:["score-change","change"],setup(e,{emit:t}){const n=B(""),{prefixCls:o}=xe("strength-meter"),i=N(()=>{const{disabled:l}=e;if(l)return-1;const a=f(n)?Zl(f(n)).score:-1;return t("score-change",a),a});function s(l){n.value=l.target.value}return Te(()=>{n.value=e.value||""}),Y(()=>f(n),l=>{t("change",l)}),{getPasswordStrength:i,handleChange:s,prefixCls:o,innerValueRef:n}}});const Jl=["data-score"];function Ql(e,t,n,o,i,s){const l=$("InputPassword");return _(),X("div",{class:ve([e.prefixCls,"relative"])},[e.showInput?(_(),z(l,H({key:0},e.$attrs,{allowClear:"",value:e.innerValueRef,onChange:e.handleChange,disabled:e.disabled}),Se({_:2},[fe(Object.keys(e.$slots),r=>({name:r,fn:D(a=>[ce(e.$slots,r,Ce(Ie(a||{})),void 0,!0)])}))]),1040,["value","onChange","disabled"])):ee("",!0),ke("div",{class:ve(`${e.prefixCls}-bar`)},[ke("div",{class:ve(`${e.prefixCls}-bar--fill`),"data-score":e.getPasswordStrength},null,10,Jl)],2)],2)}const es=ne(Xl,[["render",Ql],["__scopeId","data-v-3d7eec59"]]),ts=Ze(es);function ns(e){const t=B(e),n=B(!1);let o;function i(){o&&window.clearInterval(o)}function s(){n.value=!1,i(),o=null}function l(){f(n)||o||(n.value=!0,o=setInterval(()=>{f(t)===1?(s(),t.value=e):t.value-=1},1e3))}function r(){t.value=e,s()}function a(){r(),l()}return Un(()=>{r()}),{start:l,reset:r,restart:a,clear:i,stop:s,currentCount:t,isStart:n}}const os={value:{type:[Object,Number,String,Array]},count:{type:Number,default:60},beforeStartFunc:{type:Function,default:null}},is=J({name:"CountButton",components:{Button:uo},props:os,setup(e){const t=B(!1),{currentCount:n,isStart:o,start:i,reset:s}=ns(e.count),{t:l}=ue(),r=N(()=>f(o)?l("component.countdown.sendText",[f(n)]):l("component.countdown.normalText"));Te(()=>{e.value===void 0&&s()});function a(){return j(this,null,function*(){const{beforeStartFunc:c}=e;if(c&&W(c)){t.value=!0;try{(yield c())&&i()}finally{t.value=!1}}else i()})}return{handleStart:a,currentCount:n,loading:t,getButtonText:r,isStart:o}}});function ls(e,t,n,o,i,s){const l=$("Button");return _(),z(l,H(e.$attrs,{disabled:e.isStart,onClick:e.handleStart,loading:e.loading}),{default:D(()=>[Q(te(e.getButtonText),1)]),_:1},16,["disabled","onClick","loading"])}const mn=ne(is,[["render",ls]]),ss={value:{type:String},size:{type:String,validator:e=>["default","large","small"].includes(e)},count:{type:Number,default:60},sendCodeApi:{type:Function,default:null}},as=J({name:"CountDownInput",components:{CountButton:mn},inheritAttrs:!1,props:ss,setup(e){const{prefixCls:t}=xe("countdown-input"),[n]=qe(e);return{prefixCls:t,state:n}}});function rs(e,t,n,o,i,s){const l=$("CountButton"),r=$("a-input");return _(),z(r,H(e.$attrs,{class:e.prefixCls,size:e.size,value:e.state}),Se({addonAfter:D(()=>[P(l,{size:e.size,count:e.count,value:e.state,beforeStartFunc:e.sendCodeApi},null,8,["size","count","value","beforeStartFunc"])]),_:2},[fe(Object.keys(e.$slots).filter(a=>a!=="addonAfter"),a=>({name:a,fn:D(c=>[ce(e.$slots,a,Ce(Ie(c||{})))])}))]),1040,["class","size","value"])}const cs=ne(as,[["render",rs]]),us=Ze(cs);Ze(mn);const U=new Map;U.set("Input",Me);U.set("InputGroup",Me.Group);U.set("InputPassword",Me.Password);U.set("InputSearch",Me.Search);U.set("InputTextArea",Me.TextArea);U.set("InputNumber",fo);U.set("AutoComplete",ho);U.set("Select",Ut);U.set("ApiSelect",Uo);U.set("ApiTree",Vo);U.set("TreeSelect",qt);U.set("ApiTreeSelect",Ho);U.set("ApiRadioGroup",Lo);U.set("Switch",po);U.set("RadioButtonGroup",jo);U.set("RadioGroup",Oe.Group);U.set("Checkbox",Vt);U.set("CheckboxGroup",Vt.Group);U.set("ApiCascader",Zo);U.set("Cascader",it);U.set("Slider",mo);U.set("Rate",go);U.set("ApiTransfer",Qo);U.set("DatePicker",Ue);U.set("MonthPicker",Ue.MonthPicker);U.set("RangePicker",Ue.RangePicker);U.set("WeekPicker",Ue.WeekPicker);U.set("YearPicker",Ue.YearPicker);U.set("TimePicker",Gt);U.set("TimeRangePicker",Gt.TimeRangePicker);U.set("StrengthMeter",ts);U.set("IconPicker",Do);U.set("InputCountDown",us);U.set("Upload",Ei);U.set("Divider",ht);const{t:tt}=ue();function Et(e){return e.includes("Input")||e.includes("Complete")?tt("common.inputText"):e.includes("Picker")||e.includes("Select")||e.includes("Cascader")||e.includes("Checkbox")||e.includes("Radio")||e.includes("Switch")?tt("common.chooseText"):""}const ds=["DatePicker","MonthPicker","WeekPicker","TimePicker"];function fs(){return[...ds,"RangePicker"]}function hs(e,t,n){Reflect.has(e,"type")||(["DatePicker","MonthPicker","WeekPicker","TimePicker"].includes(t)?e.type=n?"string":"object":["RangePicker","Upload","CheckboxGroup","TimePicker"].includes(t)?e.type="array":["InputNumber"].includes(t)&&(e.type="number"))}function ps(e,t){return e&&["Input","InputPassword","InputSearch","InputTextArea"].includes(e)&&t&&dt(t)?`${t}`:t}const gn=fs(),ms=["Input","InputPassword","InputSearch","InputTextArea"],gs=["Upload","ApiTransfer","ApiTree","ApiTreeSelect","ApiRadioGroup","ApiCascader","AutoComplete","RadioButtonGroup"];function bs(e,t){return N(()=>{const n=f(e),{labelCol:o={},wrapperCol:i={}}=n.itemProps||{},{labelWidth:s,disabledLabelWidth:l}=n,{labelWidth:r,labelCol:a,wrapperCol:c,layout:u}=f(t);if(!r&&!s&&!a||l)return o.style={textAlign:"left"},{labelCol:o,wrapperCol:i};let p=s||r;const b=C(C({},a),o),g=C(C({},c),i);return p&&(p=dt(p)?`${p}px`:p),{labelCol:C({style:{width:p}},b),wrapperCol:C({style:{width:u==="vertical"?"100%":`calc(100% - ${p})`}},g)}})}function nt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!In(e)}const ys=J({name:"BasicFormItem",inheritAttrs:!1,props:{schema:{type:Object,default:()=>({})},formProps:{type:Object,default:()=>({})},allDefaultValues:{type:Object,default:()=>({})},formModel:{type:Object,default:()=>({})},setFormModel:{type:Function,default:null},tableAction:{type:Object},formActionType:{type:Object},isAdvanced:{type:Boolean}},setup(e,{slots:t}){const{t:n}=ue(),{schema:o,formProps:i}=xt(e),s=bs(o,i),l=N(()=>{const{allDefaultValues:d,formModel:m,schema:w}=e,{mergeDynamicData:A}=e.formProps;return{field:w.field,model:m,values:C(C(C({},A),d),m),schema:w}}),r=N(()=>{var F;const{schema:d,tableAction:m,formModel:w,formActionType:A}=e;let{componentProps:v={}}=d;return W(v)&&(v=(F=v({schema:d,tableAction:m,formModel:w,formActionType:A}))!=null?F:{}),d.component==="Divider"&&(v=Object.assign({type:"horizontal"},{orientation:"left",plain:!0},v)),v}),a=N(()=>{const{disabled:d}=e.formProps,{dynamicDisabled:m}=e.schema,{disabled:w=!1}=f(r);let A=!!d||w;return De(m)&&(A=m),W(m)&&(A=m(f(l))),A});function c(){const{show:d,ifShow:m}=e.schema,{showAdvancedButton:w}=e.formProps,A=w&&De(e.isAdvanced)?e.isAdvanced:!0;let v=!0,F=!0;return De(d)&&(v=d),De(m)&&(F=m),W(d)&&(v=d(f(l))),W(m)&&(F=m(f(l))),v=v&&A,{isShow:v,isIfShow:F}}function u(){var L;const{rules:d=[],component:m,rulesMessageJoinLabel:w,label:A,dynamicRules:v,required:F}=e.schema;if(W(v))return v(f(l));let I=Ae(d);const{rulesMessageJoinLabel:O}=e.formProps,V=(Reflect.has(e.schema,"rulesMessageJoinLabel")?w:O)?A:"",h=m?Et(m)+V:V;function y(x,E){const ae=x.message||h;return E===void 0||zn(E)||Array.isArray(E)&&E.length===0||typeof E=="string"&&E.trim()===""||typeof E=="object"&&Reflect.has(E,"checked")&&Reflect.has(E,"halfChecked")&&Array.isArray(E.checked)&&Array.isArray(E.halfChecked)&&E.checked.length===0&&E.halfChecked.length===0?Promise.reject(ae):Promise.resolve()}const k=W(F)?F(f(l)):F;k&&(!I||I.length===0?I=[{required:k,validator:y}]:I.findIndex(E=>Reflect.has(E,"required"))===-1&&I.push({required:k,validator:y}));const S=I.findIndex(x=>Reflect.has(x,"required")&&!Reflect.has(x,"validator"));if(S!==-1){const x=I[S],{isShow:E}=c();if(E||(x.required=!1),m){x.message=x.message||h,(m.includes("Input")||m.includes("Textarea"))&&(x.whitespace=!0);const ae=(L=f(r))==null?void 0:L.valueFormat;hs(x,m,ae)}}const M=I.findIndex(x=>x.max);return M!==-1&&!I[M].validator&&(I[M].message=I[M].message||n("component.form.maxTip",[I[M].max])),I}function p(){var x;const{renderComponentContent:d,component:m,field:w,changeEvent:A="change",valueField:v}=e.schema,F=m&&["Switch","Checkbox"].includes(m),I=`on${bo(A)}`,O={[I]:(...E)=>{const[ae]=E;y[I]&&y[I](...E);const ye=ae?ae.target:null,oe=ye?F?ye.checked:ye.value:ae;e.setFormModel(w,oe,e.schema)}},G=U.get(m),{autoSetPlaceHolder:V,size:h}=e.formProps,y=le(C({allowClear:!0,getPopupContainer:E=>E.parentNode,size:h},f(r)),{disabled:f(a)});!y.disabled&&V&&m!=="RangePicker"&&m&&(y.placeholder=((x=f(r))==null?void 0:x.placeholder)||Et(m)),y.codeField=w,y.formValues=f(l);const S={[v||(F?"checked":"value")]:e.formModel[w]},M=C(C(C({},y),O),S);if(!d)return P(G,M,null);const L=W(d)?C({},d(f(l),{disabled:f(a)})):{default:()=>d};return P(G,M,nt(L)?L:{default:()=>[L]})}function b(){const{label:d,helpMessage:m,helpComponentProps:w,subLabel:A}=e.schema,v=A?P("span",null,[d,Q(" "),P("span",{class:"text-secondary"},[A])]):d,F=W(m)?m(f(l)):m;return!F||Array.isArray(F)&&F.length===0?v:P("span",null,[v,P(qn,H({placement:"top",class:"mx-1",text:F},w),null)])}function g(){const{itemProps:d,slot:m,render:w,field:A,suffix:v,component:F}=e.schema,{labelCol:I,wrapperCol:O}=f(s),{colon:G}=e.formProps,V={disabled:f(a)};if(F==="Divider"){let h;return P(Ye,{span:24},{default:()=>[P(ht,f(r),nt(h=b())?h:{default:()=>[h]})]})}else{const h=()=>m?St(t,m,f(l),V):w?w(f(l),V):p(),y=!!v,k=W(v)?v(f(l)):v;return gs.includes(F)&&e.schema&&(e.schema.itemProps=C({autoLink:!1},e.schema.itemProps)),P(pt.Item,H({name:A,colon:G,class:{"suffix-item":y}},d,{label:b(),rules:u(),labelCol:I,wrapperCol:O}),{default:()=>[P("div",{style:"display:flex"},[P("div",{style:"flex:1;"},[h()]),y&&P("span",{class:"suffix"},[k])])]})}}return()=>{let d;const{colProps:m={},colSlot:w,renderColContent:A,component:v,slot:F}=e.schema;if(!U.has(v)&&!F)return null;const{baseColProps:I={}}=e.formProps,O=C(C({},I),m),{isIfShow:G,isShow:V}=c(),h=f(l),y={disabled:f(a)};return G&&Pn(P(Ye,O,nt(d=(()=>w?St(t,w,h,y):A?A(h,y):g())())?d:{default:()=>[d]}),[[Mn,V]])}}}),bn=Symbol();function ws(e){return Vn(e,bn)}function vs(){return Gn(bn)}const As=J({name:"BasicFormAction",components:{FormItem:pt.Item,Button:Wn,BasicArrow:Hn,[Ye.name]:Ye},props:{showActionButtonGroup:T.bool.def(!0),showResetButton:T.bool.def(!0),showSubmitButton:T.bool.def(!0),showAdvancedButton:T.bool.def(!0),resetButtonOptions:{type:Object,default:()=>({})},submitButtonOptions:{type:Object,default:()=>({})},actionColOptions:{type:Object,default:()=>({})},actionSpan:T.number.def(6),isAdvanced:T.bool,hideAdvanceBtn:T.bool},emits:["toggle-advanced"],setup(e,{emit:t}){const{t:n}=ue(),o=N(()=>{const{showAdvancedButton:r,actionSpan:a,actionColOptions:c}=e,u=24-a,p=r?{span:u<6?24:u}:{};return C(C({style:{textAlign:"right"},span:r?6:4},p),c)}),i=N(()=>Object.assign({text:n("common.resetText")},e.resetButtonOptions)),s=N(()=>Object.assign({text:n("common.queryText")},e.submitButtonOptions));function l(){t("toggle-advanced")}return C({t:n,actionColOpt:o,getResetBtnOptions:i,getSubmitBtnOptions:s,toggleAdvanced:l},vs())}});function ks(e,t,n,o,i,s){const l=$("Button"),r=$("BasicArrow"),a=$("FormItem"),c=$("a-col");return e.showActionButtonGroup?(_(),z(c,Ce(H({key:0},e.actionColOpt)),{default:D(()=>[ke("div",{style:Bt([{width:"100%"},{textAlign:e.actionColOpt.style.textAlign}])},[P(a,null,{default:D(()=>[ce(e.$slots,"resetBefore"),e.showResetButton?(_(),z(l,H({key:0,type:"default",class:"mr-2"},e.getResetBtnOptions,{onClick:e.resetAction}),{default:D(()=>[Q(te(e.getResetBtnOptions.text),1)]),_:1},16,["onClick"])):ee("",!0),ce(e.$slots,"submitBefore"),e.showSubmitButton?(_(),z(l,H({key:1,type:"primary",class:"mr-2"},e.getSubmitBtnOptions,{onClick:e.submitAction}),{default:D(()=>[Q(te(e.getSubmitBtnOptions.text),1)]),_:1},16,["onClick"])):ee("",!0),ce(e.$slots,"advanceBefore"),e.showAdvancedButton&&!e.hideAdvanceBtn?(_(),z(l,{key:2,type:"link",size:"small",onClick:e.toggleAdvanced},{default:D(()=>[Q(te(e.isAdvanced?e.t("component.form.putAway"):e.t("component.form.unfold"))+" ",1),P(r,{class:"ml-1",expand:!e.isAdvanced,up:""},null,8,["expand"])]),_:1},8,["onClick"])):ee("",!0),ce(e.$slots,"advanceAfter")]),_:3})],4)]),_:3},16)):ee("",!0)}const Ss=ne(As,[["render",ks]]);function Cs(e,t,n){const o=/^\[(.+)\]$/;if(o.test(e)){const i=e.match(o);if(i&&i[1]){const s=i[1].split(",");return t=Array.isArray(t)?t:[t],s.forEach((l,r)=>{Pe(n,l.trim(),t[r])}),!0}}}function Ts(e,t,n){const o=/^\{(.+)\}$/;if(o.test(e)){const i=e.match(o);if(i&&i[1]){const s=i[1].split(",");return t=we(t)?t:{},s.forEach(l=>{Pe(n,l.trim(),t[l.trim()])}),!0}}}function Fs({defaultValueRef:e,getSchema:t,formModel:n,getProps:o}){function i(a){var u,p;if(!we(a))return{};const c={};for(const b of Object.entries(a)){let[,g]=b;const[d]=b;if(!d||be(g)&&g.length===0||W(g))continue;const m=f(o).transformDateFunc;we(g)&&(g=m==null?void 0:m(g)),be(g)&&((u=g[0])!=null&&u.format)&&((p=g[1])!=null&&p.format)&&(g=g.map(w=>m==null?void 0:m(w))),$e(g)&&(g===""?g=void 0:g=g.trim()),!Cs(d,g,c)&&!Ts(d,g,c)&&Pe(c,d,g)}return s(c)}function s(a){const c=f(o).fieldMapToTime;if(!c||!Array.isArray(c))return a;for(const[u,[p,b],g="YYYY-MM-DD"]of c){if(!u||!p||!b)continue;if(!he(a,u)){Ft(a,u);continue}const[d,m]=he(a,u),[w,A]=Array.isArray(g)?g:[g,g];Ct(d)&&Pe(a,p,l(d,w)),Ct(m)&&Pe(a,b,l(m,A)),Ft(a,u)}return a}function l(a,c){return c==="timestamp"?ge(a).unix():c==="timestampStartDay"?ge(a).startOf("day").unix():ge(a).format(c)}function r(){const a=f(t),c={};a.forEach(u=>{const{defaultValue:p,defaultValueObj:b}=u,g=Object.keys(b||{});g.length&&g.map(d=>{c[d]=b[d],n[d]===void 0&&(n[d]=b[d])}),ot(p)||(c[u.field]=p,n[u.field]===void 0&&(n[u.field]=p))}),e.value=Ae(c)}return{handleFormValues:i,initDefault:r}}const Fe=24;function Ps({advanceState:e,emit:t,getProps:n,getSchema:o,formModel:i,defaultValueRef:s}){const l=jt(),{realWidthRef:r,screenEnum:a,screenRef:c}=Yn(),u=N(()=>{if(!e.isAdvanced)return 0;const w=f(n).emptySpan||0;if(dt(w))return w;if(we(w)){const{span:A=0}=w,v=f(c);return w[v.toLowerCase()]||A||0}return 0}),p=ct(d,30);Y([()=>f(o),()=>e.isAdvanced,()=>f(r)],()=>{const{showAdvancedButton:w}=f(n);w&&p()},{immediate:!0});function b(w,A=0,v=!1){const F=f(r),I=parseInt(w.md)||parseInt(w.xs)||parseInt(w.sm)||w.span||Fe,O=parseInt(w.lg)||I,G=parseInt(w.xl)||O,V=parseInt(w.xxl)||G;return F<=a.LG?A+=I:FFe*2&&A<=Fe*(f(n).autoAdvancedLine||3)?e.hideAdvanceBtn=!1:e.isLoad||(e.isLoad=!0,e.isAdvanced=!e.isAdvanced),{isAdvanced:e.isAdvanced,itemColSum:A}):A>Fe*(f(n).alwaysShowLines||1)?{isAdvanced:e.isAdvanced,itemColSum:A}:{isAdvanced:!0,itemColSum:A}}const g=_n({});function d(){var F;let w=0,A=0;const{baseColProps:v={}}=f(n);for(const I of f(o)){const{show:O,colProps:G}=I;let V=!0;if(De(O)&&(V=O),W(O)&&(V=O({schema:I,model:i,field:I.field,values:C(C({},f(s)),i)})),V&&(G||v)){const{itemColSum:h,isAdvanced:y}=b(C(C({},v),G),w);w=h||0,y&&(A=w),g[I.field]=y}}(F=l==null?void 0:l.proxy)==null||F.$forceUpdate(),e.actionSpan=A%Fe+f(u),b(f(n).actionColOptions||{span:Fe},w,!0),t("advanced-change")}function m(){e.isAdvanced=!e.isAdvanced}return{handleToggleAdvanced:m,fieldsIsAdvancedMap:g}}function Is(e,t={}){const n=/^\[(.+)\]$/;if(n.test(e)){const o=e.match(n);if(o&&o[1]){const i=o[1].split(",");if(!i.length)return;const s=[];return i.forEach((l,r)=>{Pe(s,r,t[l.trim()])}),s.filter(Boolean).length?s:void 0}}}function Ms(e,t={}){const n=/^\{(.+)\}$/;if(n.test(e)){const o=e.match(n);if(o&&o[1]){const i=o[1].split(",");if(!i.length)return;const s={};return i.forEach(l=>{Pe(s,l.trim(),t[l.trim()])}),Object.values(s).filter(Boolean).length?s:void 0}}}function _s({emit:e,getProps:t,formModel:n,getSchema:o,defaultValueRef:i,formElRef:s,schemaRef:l,handleFormValues:r}){function a(){return j(this,null,function*(){const{resetFunc:h,submitOnReset:y}=f(t);h&&W(h)&&(yield h()),f(s)&&(Object.keys(n).forEach(S=>{const M=f(o).find(E=>E.field===S),L=M==null?void 0:M.defaultValueObj,x=Object.keys(L||{});x.length&&x.map(E=>{n[E]=L[E]}),n[S]=Rs(M,i,S)}),Ee(()=>O()),e("reset",Be(n)),y&&V())})}const c=()=>f(o).map(h=>[...h.fields||[],h.field]).flat(1).filter(Boolean);function u(h){return j(this,null,function*(){const y=c(),k=".",S=y.filter(L=>String(L).indexOf(k)>=0),M=[];y.forEach(L=>{const x=f(o).find(K=>K.field===L);let E=he(h,L);const ae=Reflect.has(h,L);E=ps(x==null?void 0:x.component,E);const{componentProps:ye}=x||{};let oe=ye;typeof ye=="function"&&(oe=oe({formModel:f(n)}));const ze=Is(L,h)||Ms(L,h);if(ae||ze){const K=ze||E;if(v(L))if(Array.isArray(K)){const q=[];for(const Z of K)q.push(Z?ge(Z):null);f(n)[L]=q}else f(n)[L]=K?oe!=null&&oe.valueFormat?K:ge(K):null;else f(n)[L]=K;oe!=null&&oe.onChange&&(oe==null||oe.onChange(K)),M.push(L)}else S.forEach(K=>{try{const q=K.split(".").reduce((Z,ie)=>Z[ie],h);Tt(q)&&(f(n)[K]=f(q),M.push(K))}catch(q){Tt(i.value[K])&&(f(n)[K]=Ae(f(i.value[K])))}})}),F(M).catch(L=>{})})}function p(h){return j(this,null,function*(){const y=Ae(f(o));if(!h)return;let k=$e(h)?[h]:h;$e(h)&&(k=[h]);for(const S of k)b(S,y);l.value=y})}function b(h,y){if($e(h)){const k=y.findIndex(S=>S.field===h);k!==-1&&(delete n[h],y.splice(k,1))}}function g(h,y,k=!1){return j(this,null,function*(){const S=Ae(f(o)),M=Array.isArray(h)?h.map(E=>E.field):[h.field];if(S.find(E=>M.includes(E.field))){Ge("There are schemas that have already been added");return}const L=S.findIndex(E=>E.field===y),x=we(h)?[h]:h;!y||L===-1||k?k?S.unshift(...x):S.push(...x):L!==-1&&S.splice(L+1,0,...x),l.value=S,w(h)})}function d(h){return j(this,null,function*(){let y=[];if(we(h)&&y.push(h),be(h)&&(y=[...h]),!y.every(S=>S.component==="Divider"||Reflect.has(S,"field")&&S.field)){Ge("All children of the form Schema array that need to be updated must contain the `field` field");return}l.value=y})}function m(h){return j(this,null,function*(){let y=[];if(we(h)&&y.push(h),be(h)&&(y=[...h]),!y.every(M=>M.component==="Divider"||Reflect.has(M,"field")&&M.field)){Ge("All children of the form Schema array that need to be updated must contain the `field` field");return}const S=[];f(o).forEach(M=>{let L;if(y.forEach(x=>{M.field===x.field&&(L=x)}),L!==void 0&&M.field===L.field){const x=Nt(M,L);S.push(x)}else S.push(M)}),w(S),l.value=yo(S,"field")})}function w(h){let y=[];we(h)&&y.push(h),be(h)&&(y=[...h]);const k={},S=A();y.forEach(M=>{M.component!="Divider"&&Reflect.has(M,"field")&&M.field&&!ot(M.defaultValue)&&(!(M.field in S)||ot(S[M.field])||Kn(S[M.field]))&&(k[M.field]=M.defaultValue)}),u(k)}function A(){return f(s)?r(Be(f(n))):{}}function v(h){return f(o).some(y=>y.field===h?gn.includes(y.component):!1)}function F(h){return j(this,null,function*(){var k;const y=(k=f(s))==null?void 0:k.validateFields(h);return r(y)})}function I(h){return j(this,null,function*(){var S;let y;h===void 0?y=c():y=h===Array.isArray(h)?h:void 0;const k=yield(S=f(s))==null?void 0:S.validate(y);return r(k)})}function O(h){return j(this,null,function*(){var y;yield(y=f(s))==null?void 0:y.clearValidate(h)})}function G(h,y){return j(this,null,function*(){var k;yield(k=f(s))==null?void 0:k.scrollToField(h,y)})}function V(h){return j(this,null,function*(){h&&h.preventDefault();const{submitFunc:y}=f(t);if(y&&W(y)){yield y();return}if(f(s))try{const S=yield I();e("submit",S)}catch(S){if((S==null?void 0:S.outOfDate)===!1&&(S!=null&&S.errorFields))return;throw new Error(S)}})}return{handleSubmit:V,clearValidate:O,validate:I,validateFields:F,getFieldsValue:A,updateSchema:m,resetSchema:d,appendSchemaByField:g,removeSchemaByField:p,resetFields:a,setFieldsValue:u,scrollToField:G}}function Rs(e,t,n){let o=Ae(t.value[n]);return $s(e)?o||"":(!o&&e&&Ds(e)&&(o=[0,0]),o)}function Ds(e){if(e.component==="Slider"&&e.componentProps&&"range"in e.componentProps)return!0}function $s(e){return(e==null?void 0:e.component)&&ms.includes(e.component)}function Os(i){return j(this,arguments,function*({getSchema:e,getProps:t,formElRef:n,isInitedDefault:o}){Te(()=>j(this,null,function*(){if(f(o)||!f(t).autoFocusFirstItem)return;yield Ee();const s=f(e),l=f(n),r=l==null?void 0:l.$el;if(!l||!r||!s||s.length===0||!s[0].component.includes("Input"))return;const c=r.querySelector(".ant-row:first-child input");c&&(c==null||c.focus())}))})}const Ls={model:{type:Object,default:()=>({})},labelWidth:{type:[Number,String],default:0},fieldMapToTime:{type:Array,default:()=>[]},compact:T.bool,schemas:{type:Array,default:()=>[]},mergeDynamicData:{type:Object,default:null},baseRowStyle:{type:Object},baseColProps:{type:Object},autoSetPlaceHolder:T.bool.def(!0),autoSubmitOnEnter:T.bool.def(!1),submitOnReset:T.bool,submitOnChange:T.bool,size:T.oneOf(["default","small","large"]).def("default"),disabled:T.bool,emptySpan:{type:[Number,Object],default:0},showAdvancedButton:T.bool,transformDateFunc:{type:Function,default:e=>{var t,n;return(n=(t=e==null?void 0:e.format)==null?void 0:t.call(e,"YYYY-MM-DD HH:mm:ss"))!=null?n:e}},rulesMessageJoinLabel:T.bool.def(!0),autoAdvancedLine:T.number.def(3),alwaysShowLines:T.number.def(1),showActionButtonGroup:T.bool.def(!0),actionColOptions:Object,showResetButton:T.bool.def(!0),autoFocusFirstItem:T.bool,resetButtonOptions:Object,showSubmitButton:T.bool.def(!0),submitButtonOptions:Object,resetFunc:Function,submitFunc:Function,hideRequiredMark:T.bool,labelCol:Object,layout:T.oneOf(["horizontal","vertical","inline"]).def("horizontal"),tableAction:{type:Object},wrapperCol:Object,colon:T.bool,labelAlign:T.string,rowProps:Object},Es=J({name:"BasicForm",components:{FormItem:ys,Form:pt,Row:wo,FormAction:Ss},props:Ls,emits:["advanced-change","reset","submit","register","field-value-change"],setup(e,{emit:t,attrs:n}){const o=We({}),i=Wt(),s=We({isAdvanced:!0,hideAdvanceBtn:!1,isLoad:!1,actionSpan:6}),l=B({}),r=B(!1),a=B({}),c=B(null),u=B(null),{prefixCls:p}=xe("basic-form"),b=N(()=>C(C({},e),f(a))),g=N(()=>[p,{[`${p}--compact`]:f(b).compact}]),d=N(()=>{const{baseRowStyle:q={},rowProps:Z}=f(b);return C({style:q},Z)}),m=N(()=>C(C(C({},n),e),f(b))),w=N(()=>{const q=f(c)||f(b).schemas;for(const Z of q){const{defaultValue:ie,component:gt,componentProps:bt,isHandleDateDefaultValue:yn=!0}=Z;if(yn&&ie&&gn.includes(gt)){const Ve=bt?bt.valueFormat:null;if(!Array.isArray(ie))Z.defaultValue=Ve?ge(ie).format(Ve):ge(ie);else{const yt=[];ie.forEach(wt=>{yt.push(Ve?ge(wt).format(Ve):ge(wt))}),Z.defaultValue=yt}}}return f(b).showAdvancedButton?Ae(q.filter(Z=>Z.component!=="Divider")):Ae(q)}),{handleToggleAdvanced:A,fieldsIsAdvancedMap:v}=Ps({advanceState:s,emit:t,getProps:b,getSchema:w,formModel:o,defaultValueRef:l}),{handleFormValues:F,initDefault:I}=Fs({getProps:b,defaultValueRef:l,getSchema:w,formModel:o});Os({getSchema:w,getProps:b,isInitedDefault:r,formElRef:u});const{handleSubmit:O,setFieldsValue:G,clearValidate:V,validate:h,validateFields:y,getFieldsValue:k,updateSchema:S,resetSchema:M,appendSchemaByField:L,removeSchemaByField:x,resetFields:E,scrollToField:ae}=_s({emit:t,getProps:b,formModel:o,getSchema:w,defaultValueRef:l,formElRef:u,schemaRef:c,handleFormValues:F});ws({resetAction:E,submitAction:O}),Y(()=>f(b).model,()=>{const{model:q}=f(b);q&&G(q)},{immediate:!0}),Y(()=>f(b).schemas,q=>{M(q!=null?q:[])}),Y(()=>w.value,q=>{Ee(()=>{var Z;(Z=i==null?void 0:i.redoModalHeight)==null||Z.call(i)}),!f(r)&&q!=null&&q.length&&(I(),r.value=!0)}),Y(()=>o,ct(()=>{f(b).submitOnChange&&O()},300),{deep:!0});function ye(q){return j(this,null,function*(){a.value=Nt(f(a)||{},q)})}function oe(q,Z,ie){o[q]=Z,t("field-value-change",q,Z),ie&&ie.itemProps&&!ie.itemProps.autoLink&&y([q]).catch(gt=>{})}function ze(q){const{autoSubmitOnEnter:Z}=f(b);if(Z&&q.key==="Enter"&&q.target&&q.target instanceof HTMLElement){const ie=q.target;ie&&ie.tagName&&ie.tagName.toUpperCase()=="INPUT"&&O()}}const K={getFieldsValue:k,setFieldsValue:G,resetFields:E,updateSchema:S,resetSchema:M,setProps:ye,removeSchemaByField:x,appendSchemaByField:L,clearValidate:V,validateFields:y,validate:h,submit:O,scrollToField:ae};return rt(()=>{I(),t("register",K)}),C({getBindValue:m,handleToggleAdvanced:A,handleEnterPress:ze,formModel:o,defaultValueRef:l,advanceState:s,getRow:d,getProps:b,formElRef:u,getSchema:w,formActionType:K,setFormModel:oe,getFormClass:g,getFormActionBindProps:N(()=>C(C({},b.value),s)),fieldsIsAdvancedMap:v},K)}});function Bs(e,t,n,o,i,s){const l=$("FormItem"),r=$("FormAction"),a=$("Row"),c=$("Form");return _(),z(c,H(e.getBindValue,{class:e.getFormClass,ref:"formElRef",model:e.formModel,onKeypress:Rn(e.handleEnterPress,["enter"])}),{default:D(()=>[P(a,Ce(Ie(e.getRow)),{default:D(()=>[ce(e.$slots,"formHeader"),(_(!0),X(pe,null,fe(e.getSchema,u=>(_(),z(l,{key:u.field,isAdvanced:e.fieldsIsAdvancedMap[u.field],tableAction:e.tableAction,formActionType:e.formActionType,schema:u,formProps:e.getProps,allDefaultValues:e.defaultValueRef,formModel:e.formModel,setFormModel:e.setFormModel},Se({_:2},[fe(Object.keys(e.$slots),p=>({name:p,fn:D(b=>[ce(e.$slots,p,H({ref_for:!0},b||{}))])}))]),1032,["isAdvanced","tableAction","formActionType","schema","formProps","allDefaultValues","formModel","setFormModel"]))),128)),P(r,H(e.getFormActionBindProps,{onToggleAdvanced:e.handleToggleAdvanced}),Se({_:2},[fe(["resetBefore","submitBefore","advanceBefore","advanceAfter"],u=>({name:u,fn:D(p=>[ce(e.$slots,u,Ce(Ie(p||{})))])}))]),1040,["onToggleAdvanced"]),ce(e.$slots,"formFooter")]),_:3},16)]),_:3},16,["class","model","onKeypress"])}const ea=ne(Es,[["render",Bs]]);function ta(e){const t=B(null),n=B(!1);function o(){return j(this,null,function*(){const l=f(t);return l||Ge("The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!"),yield Ee(),l})}function i(l){Dn(()=>{t.value=null,n.value=null}),!(f(n)&&Zn()&&l===f(t))&&(t.value=l,n.value=!0,Y(()=>e,()=>{e&&l.setProps(Xn(e))},{immediate:!0,deep:!0}))}return[i,{scrollToField:(l,r)=>j(this,null,function*(){(yield o()).scrollToField(l,r)}),setProps:l=>j(this,null,function*(){(yield o()).setProps(l)}),updateSchema:l=>j(this,null,function*(){(yield o()).updateSchema(l)}),resetSchema:l=>j(this,null,function*(){(yield o()).resetSchema(l)}),clearValidate:l=>j(this,null,function*(){(yield o()).clearValidate(l)}),resetFields:()=>j(this,null,function*(){o().then(l=>j(this,null,function*(){yield l.resetFields()}))}),removeSchemaByField:l=>j(this,null,function*(){var r;(r=f(t))==null||r.removeSchemaByField(l)}),getFieldsValue:()=>{var l;return(l=f(t))==null?void 0:l.getFieldsValue()},setFieldsValue:l=>j(this,null,function*(){(yield o()).setFieldsValue(l)}),appendSchemaByField:(l,r,a)=>j(this,null,function*(){(yield o()).appendSchemaByField(l,r,a)}),submit:()=>j(this,null,function*(){return(yield o()).submit()}),validate:l=>j(this,null,function*(){return(yield o()).validate(l)}),validateFields:l=>j(this,null,function*(){return(yield o()).validateFields(l)})}]}export{Uo as A,ea as B,Js as D,Ys as F,Qs as I,Hs as P,jo as R,Jt as T,Ws as a,Ho as b,Lo as c,si as d,pi as e,Gs as f,Ci as g,Zs as h,Xs as i,Ks as j,Vs as k,ta as u}; diff --git a/detect.gui/Embedded/dist/assets/useTable-3e054214.js b/detect.gui/Embedded/dist/assets/useTable-3e054214.js new file mode 100644 index 0000000..1942bd5 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/useTable-3e054214.js @@ -0,0 +1 @@ +var Wt=Object.defineProperty,qt=Object.defineProperties;var Zt=Object.getOwnPropertyDescriptors;var lt=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable;var at=(e,n,o)=>n in e?Wt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,K=(e,n)=>{for(var o in n||(n={}))Xt.call(n,o)&&at(e,o,n[o]);if(lt)for(var o of lt(n))en.call(n,o)&&at(e,o,n[o]);return e},de=(e,n)=>qt(e,Zt(n));var Z=(e,n,o)=>new Promise((c,s)=>{var u=a=>{try{r(o.next(a))}catch(l){s(l)}},i=a=>{try{r(o.throw(a))}catch(l){s(l)}},r=a=>a.done?c(a.value):Promise.resolve(a.value).then(u,i);r((o=o.apply(e,n)).next())});import{P as Me,a as tn,A as nn,b as on,R as ln,c as an,d as Fe,D as sn,I as De,e as ze,f as fe,g as st,F as Et,h as rn,i as cn,j as un,B as dn,u as fn,k as gn}from"./useForm-df5105ea.js";import{_ as he,as as it,u as _e,v as Te,Q as V,ac as hn,p as W,c as Je,f as G,at as ve,i as Oe,au as mn,j as pn,av as Cn,aw as bn,F as An,l as Sn,ax as yn,U as vn,b as wn,a3 as Rn,I as En,al as rt,ay as Tt,a5 as Tn,az as kn,e as Ue,aA as In,P as Bn,aB as Fn,h as _n,aC as ct,aD as Qn}from"./index.js";import{ab as Ve,ac as Pn,ad as Dn,w as On,ae as Kn,af as Hn,ag as $n,ah as xn,ai as Ye,aj as Nn,ak as Ln,al as Mn,Z as kt,O as ut,am as dt,y as ft,s as gt,p as zn,e as be,b as jn,an as Jn,J as ht,o as Xe,ao as Un,T as je,ap as Gn,aq as It,ar as Vn,D as Yn,q as mt,a6 as Wn,a3 as qn,a4 as Zn,as as Bt,at as Xn,S as eo,au as pt,av as to}from"./antd-eedb3ef5.js";import{d as ie,a6 as x,Z as U,_ as Re,ab as we,G as Ce,a0 as ee,k as P,c as T,f as N,w as Ee,u as t,l as Pe,h as Be,m as We,A as Ft,n as no,a9 as qe,y as Ae,J as q,r as et,o as oo,I as lo,a4 as te,a5 as $,$ as ge,a1 as Ie,F as Ct,a7 as Ze,a8 as se,e as ao,aa as bt,ag as Ne,ah as Le,b as so}from"./vue-72a104e4.js";import{b as io}from"./index-ccf6944d.js";import{u as ro}from"./useWindowSizeFn-46f0db92.js";import{o as co}from"./onMountedOrActivated-ee461833.js";import uo from"./sortable.esm-15c0a34e.js";const fo=ie({name:"EditTableHeaderIcon",components:{FormOutlined:Ve},props:{title:{type:String,default:""}}}),go={class:"edit-header-cell"};function ho(e,n,o,c,s,u){const i=x("FormOutlined");return U(),Re("span",go,[we(e.$slots,"default"),Ce(" "+ee(e.title)+" ",1),P(i)])}const At=he(fo,[["render",ho]]),mo=ie({name:"TableHeaderCell",components:{EditTableHeaderCell:At,BasicHelp:it},props:{column:{type:Object,default:()=>({})}},setup(e){const{prefixCls:n}=_e("basic-table-header-cell"),o=T(()=>{var u;return!!((u=e.column)!=null&&u.edit)}),c=T(()=>{var i,r;const u=e.column;return typeof u.customHeaderRender=="function"?u.customHeaderRender(e.column):((i=e.column)==null?void 0:i.customTitle)||((r=e.column)==null?void 0:r.title)}),s=T(()=>{var u;return(u=e.column)==null?void 0:u.helpMessage});return()=>P("div",null,[o.value?P(At,null,{default:()=>[c.value]}):P("span",{class:"default-header-cell"},[c.value]),s.value&&P(it,{text:s.value,class:`${n}__help`},null)])}});function po({page:e,type:n,originalElement:o}){return n==="prev"?e===0?null:P(Pn,null,null):n==="next"?e===1?null:P(Dn,null,null):o}function Co(e){const{t:n}=Te(),o=N({}),c=N(!0);Ee(()=>t(e).pagination,l=>{!V(l)&&l&&(o.value=K(K({},t(o)),l!=null?l:{}))});const s=T(()=>{const{pagination:l}=t(e);return!t(c)||V(l)&&!l?!1:K(K({current:1,pageSize:Me,size:"small",defaultPageSize:Me,showTotal:y=>n("component.table.total",{total:y}),showSizeChanger:!0,pageSizeOptions:tn,itemRender:po,showQuickJumper:!0},V(l)?{}:l),t(o))});function u(l){const y=t(s);o.value=K(K({},V(y)?{}:y),l)}function i(){return t(s)}function r(){return t(c)}function a(l){return Z(this,null,function*(){c.value=l})}return{getPagination:i,getPaginationInfo:s,setShowPagination:a,getShowPagination:r,setPagination:u}}const ae=new Map;ae.set("Input",On);ae.set("InputNumber",Kn);ae.set("Select",Hn);ae.set("ApiSelect",nn);ae.set("AutoComplete",$n);ae.set("ApiTreeSelect",on);ae.set("Switch",xn);ae.set("Checkbox",Ye);ae.set("DatePicker",Nn);ae.set("TimePicker",Ln);ae.set("RadioGroup",Mn.Group);ae.set("RadioButtonGroup",ln);ae.set("ApiRadioGroup",an);const St=({component:e="Input",rule:n=!0,ruleMessage:o,popoverVisible:c,getPopupContainer:s},{attrs:u})=>{const i=ae.get(e),r=Pe(i,u);return n?Pe(kt,K({overlayClassName:"edit-cell-rule-popover",open:!!c},s?{getPopupContainer:s}:{}),{default:()=>r,content:()=>o}):r},{t:Ge}=Te();function yt(e){return e.includes("Input")||e.includes("AutoComplete")?Ge("common.inputText"):e.includes("Picker")||e.includes("Select")||e.includes("Checkbox")||e.includes("Radio")||e.includes("Switch")||e.includes("DatePicker")||e.includes("TimePicker")?Ge("common.chooseText"):""}const bo=ie({name:"EditableCell",components:{FormOutlined:Ve,CloseOutlined:ut,CheckOutlined:dt,CellComponent:St,Spin:ft},directives:{clickOutside:hn},props:{value:{type:[String,Number,Boolean,Object],default:""},record:{type:Object},column:{type:Object,default:()=>({})},index:W.number},setup(e){const n=Fe(),o=N(!1),c=N(),s=N(!1),u=N(""),i=N([]),r=N(e.value),a=N(e.value),l=N(!1),{prefixCls:y}=_e("editable-cell"),w=T(()=>{var d;return((d=e.column)==null?void 0:d.editComponent)||"Input"}),H=T(()=>{var d;return(d=e.column)==null?void 0:d.editRule}),R=T(()=>t(u)&&t(s)),S=T(()=>{const d=t(w);return["Checkbox","Switch"].includes(d)}),g=T(()=>{var le,ce,me;const d=t(S),m=d?"checked":"value",f=t(r),p=d?Je(f)||V(f)?f:!!f:f;let C=(ce=(le=e.column)==null?void 0:le.editComponentProps)!=null?ce:{};const{record:v,column:k,index:_}=e;G(C)&&(C=(me=C({text:f,record:v,column:k,index:_}))!=null?me:{}),C.onChangeTemp=C.onChange,delete C.onChange;const J=t(w),X={};return J==="ApiSelect"&&(X.cache=!0),b(v,k,p),de(K(K({size:"small",getPopupContainer:()=>{var pe;return(pe=t(n==null?void 0:n.wrapRef.value))!=null?pe:document.body},placeholder:yt(t(w))},X),C),{[m]:p,disabled:t(I)})});function b(d,m,f){if(!d)return!1;const{key:p,dataIndex:C}=m;if(!p&&!C)return;gt(d,C||p,f)}const I=T(()=>{const{editDynamicDisabled:d}=e.column;let m=!1;if(V(d)&&(m=d),G(d)){const{record:f}=e;m=d({record:f})}return m}),Q=T(()=>{var v,k,_;const{editValueMap:d}=e.column,m=t(r);if(d&&G(d))return d(m);const f=t(w);if(!f.includes("Select")&&!f.includes("Radio"))return m;const C=((k=(v=t(g))==null?void 0:v.options)!=null?k:t(i)||[]).find(J=>`${J.value}`==`${m}`);return(_=C==null?void 0:C.label)!=null?_:m}),M=T(()=>t(S)||t(L)?{}:{width:"calc(100% - 48px)"}),z=T(()=>{const{align:d="center"}=e.column;return`edit-cell-align-${d}`}),L=T(()=>{const{editable:d}=e.record||{};return!!d});Be(()=>{r.value=e.value}),Be(()=>{const{editable:d}=e.column;(V(d)||V(t(L)))&&(o.value=!!d||t(L))});function Y(){var d;t(L)||t((d=e.column)==null?void 0:d.editRow)||(u.value="",o.value=!0,Ae(()=>{var f;const m=t(c);(f=m==null?void 0:m.focus)==null||f.call(m)}))}function oe(m){return Z(this,arguments,function*(d){var C,v;const f=t(w);d?f==="Checkbox"?r.value=d.target.checked:f==="Switch"?r.value=d:d!=null&&d.target&&Reflect.has(d.target,"value")?r.value=d.target.value:(Oe(d)||V(d)||Je(d)||ve(d))&&(r.value=d):r.value=d;const p=(C=t(g))==null?void 0:C.onChangeTemp;p&&G(p)&&p(...arguments),(v=n.emit)==null||v.call(n,"edit-change",{column:e.column,value:t(r),record:q(e.record)}),E()})}function E(){return Z(this,null,function*(){const{column:d,record:m}=e,{editRule:f}=d,p=t(r);if(f){if(V(f)&&!p&&!Je(p)){s.value=!0;const C=t(w);return u.value=yt(C),!1}if(G(f)){const C=yield f(p,m);return C?(u.value=C,s.value=!0,!1):(u.value="",!0)}}return u.value="",!0})}function B(d=!0,m=!0){return Z(this,null,function*(){var X;if(m&&!(yield E()))return!1;const{column:f,index:p,record:C}=e;if(!C)return!1;const{key:v,dataIndex:k}=f,_=t(r);if(!v&&!k)return;const J=k||v;if(!C.editable){const{getBindValues:le}=n,{beforeEditSubmit:ce,columns:me}=t(le);if(ce&&G(ce)){l.value=!0;const pe=me.map(ue=>ue.dataIndex).filter(ue=>!!ue);let ke=!0;try{ke=yield ce({record:zn(C,pe),index:p,key:J,value:_})}catch(ue){ke=!1}finally{l.value=!1}if(ke===!1)return}}gt(C,J,_),a.value=_,d&&((X=n.emit)==null||X.call(n,"edit-end",{record:C,index:p,key:J,value:_})),o.value=!1})}function h(){return Z(this,null,function*(){var d;(d=e.column)!=null&&d.editRow||B()})}function A(){B()}function F(){var v;o.value=!1,r.value=a.value;const{column:d,index:m,record:f}=e,{key:p,dataIndex:C}=d;(v=n.emit)==null||v.call(n,"edit-cancel",{record:f,index:m,key:C||p,value:t(r)})}function O(){var m;if((m=e.column)!=null&&m.editable||t(L))return;t(w).includes("Input")&&F()}function j(d){const{replaceFields:m}=t(g);if(t(w)==="ApiTreeSelect"){const{title:p="title",value:C="value",children:v="children"}=m||{};let k=mn(d,{children:v});k=k.map(_=>({label:_[p],value:_[C]})),i.value=k}else i.value=d}function D(d,m){var f;e.record&&(ve(e.record[d])?(f=e.record[d])==null||f.push(m):e.record[d]=[m])}return e.record&&(D("submitCbs",B),D("validCbs",E),D("cancelCbs",F),e.column.dataIndex&&(e.record.editValueRefs||(e.record.editValueRefs={}),e.record.editValueRefs[e.column.dataIndex]=r),e.record.onCancelEdit=()=>{var d,m;ve((d=e.record)==null?void 0:d.cancelCbs)&&((m=e.record)==null||m.cancelCbs.forEach(f=>f()))},e.record.onSubmitEdit=()=>Z(this,null,function*(){var d,m,f,p,C;if(ve((d=e.record)==null?void 0:d.submitCbs))return(f=(m=e.record)==null?void 0:m.onValid)!=null&&f.call(m)?((((p=e.record)==null?void 0:p.submitCbs)||[]).forEach(k=>k(!1,!1)),(C=n.emit)==null||C.call(n,"edit-row-end"),!0):void 0})),{isEdit:o,prefixCls:y,handleEdit:Y,currentValueRef:r,handleSubmit:B,handleChange:oe,handleCancel:F,elRef:c,getComponent:w,getRule:H,onClickOutside:O,ruleMessage:u,getRuleVisible:R,getComponentProps:g,handleOptionsChange:j,getWrapperStyle:M,getWrapperClass:z,getRowEditable:L,getValues:Q,handleEnter:h,handleSubmitClick:A,spinning:l}},render(){var e,n;return P("div",{class:this.prefixCls},[We(P("div",{class:{[`${this.prefixCls}__normal`]:!0,"ellipsis-cell":this.column.ellipsis},onClick:this.handleEdit},[P("div",{class:"cell-content",title:this.column.ellipsis&&(e=this.getValues)!=null?e:""},[this.column.editRender?this.column.editRender({text:this.value,record:this.record,column:this.column,index:this.index}):(n=this.getValues)!=null?n:" "]),!this.column.editRow&&P(Ve,{class:`${this.prefixCls}__normal-icon`},null)]),[[Ft,!this.isEdit]]),this.isEdit&&P(ft,{spinning:this.spinning},{default:()=>[We(P("div",{class:`${this.prefixCls}__wrapper`},[P(St,qe(this.getComponentProps,{component:this.getComponent,style:this.getWrapperStyle,popoverVisible:this.getRuleVisible,rule:this.getRule,ruleMessage:this.ruleMessage,class:this.getWrapperClass,ref:"elRef",onChange:this.handleChange,onOptionsChange:this.handleOptionsChange,onPressEnter:this.handleEnter}),null),!this.getRowEditable&&P("div",{class:`${this.prefixCls}__action`},[P(dt,{class:[`${this.prefixCls}__icon`,"mx-2"],onClick:this.handleSubmitClick},null),P(ut,{class:`${this.prefixCls}__icon `,onClick:this.handleCancel},null)])]),[[no("click-outside"),this.onClickOutside]])]})])}});function Ao(e){return({text:n,record:o,index:c})=>(q(o).onValid=()=>Z(this,null,function*(){if(ve(o==null?void 0:o.validCbs)){const s=((o==null?void 0:o.validCbs)||[]).map(i=>i());return(yield Promise.all(s)).every(i=>!!i)}else return!1}),q(o).onEdit=(s,u=!1)=>Z(this,null,function*(){var i,r;return u||(o.editable=s),!s&&u?(yield o.onValid())&&(yield(i=o.onSubmitEdit)==null?void 0:i.call(o))?(o.editable=!1,!0):!1:(!s&&!u&&((r=o.onCancelEdit)==null||r.call(o)),!0)}),Pe(bo,{value:n,record:o,column:e,index:c}))}function _t(e,n){const{key:o,dataIndex:c,children:s}=e;e.align=e.align||sn,n&&(o||(e.key=typeof c=="object"?c.join("-"):c),V(e.ellipsis)||Object.assign(e,{ellipsis:n})),s&&s.length&&Qt(s,!!n)}function Qt(e,n){e&&e.forEach(o=>{const{children:c}=o;_t(o,n),Qt(c,n)})}function So(e,n,o){const{t:c}=Te(),{showIndexColumn:s,indexColumnProps:u,isTreeTable:i}=t(e);let r=!1;if(t(i)||(o.forEach(()=>{const l=o.findIndex(y=>y.flag===De);s?r=l===-1:!s&&l!==-1&&o.splice(l,1)}),!r))return;const a=o.some(l=>l.fixed==="left");o.unshift(K(K({flag:De,width:50,title:c("component.table.index"),align:"center",customRender:({index:l})=>{const y=t(n);if(V(y))return`${l+1}`;const{current:w=1,pageSize:H=Me}=y;return((w<1?1:w)-1)*H+l+1}},a?{fixed:"left"}:{}),u))}function yo(e,n){const{actionColumn:o}=t(e);if(!o)return;const c=n.findIndex(s=>s.flag===ze);c===-1&&n.push(de(K(de(K({},n[c]),{fixed:"right"}),o),{flag:ze}))}function vo(e,n){const o=N(t(e).columns);let c=t(e).columns;const s=T(()=>{const S=be(t(o));if(So(e,n,S),yo(e,S),!S)return[];const{ellipsis:g}=t(e);return S.forEach(b=>{const{customRender:I,slots:Q}=b;_t(b,Reflect.has(b,"ellipsis")?!!b.ellipsis:!!g&&!I&&!Q)}),S});function u(S){const g=S.ifShow;let b=!0;return V(g)&&(b=g),G(g)&&(b=g(S)),b}const{hasPermission:i}=pn(),r=T(()=>{const S=vt(t(s)),g=I=>{const{slots:Q,customRender:M,format:z,edit:L,editRow:Y,flag:oe}=I;(!Q||!(Q!=null&&Q.title))&&(I.customTitle=I.title,Reflect.deleteProperty(I,"title"));const E=[De,ze].includes(oe);return!M&&z&&!L&&!E&&(I.customRender=({text:B,record:h,index:A})=>wo(B,z,h,A)),(L||Y)&&!E&&(I.customRender=Ao(I)),et(I)};return be(S).filter(I=>i(I.auth)&&u(I)).map(I=>{var Q;return(Q=I.children)!=null&&Q.length&&(I.children=I.children.map(g)),g(I)})});Ee(()=>t(e).columns,S=>{var g;o.value=S,c=(g=S==null?void 0:S.filter(b=>!b.flag))!=null?g:[]});function a(S,g){!S||!g||c.forEach(b=>{if(b.dataIndex===S){Object.assign(b,g);return}})}function l(S){const g=be(S);if(!ve(g))return;if(g.length<=0){o.value=[];return}const b=g[0],I=c.map(Q=>Q.dataIndex);if(!Oe(b)&&!ve(b))o.value=g;else{const Q=g.map(z=>z.toString()),M=[];c.forEach(z=>{var L;M.push(de(K({},z),{defaultHidden:!Q.includes(((L=z.dataIndex)==null?void 0:L.toString())||z.key)}))}),jn(I,g)||M.sort((z,L)=>{var Y,oe;return Q.indexOf((Y=z.dataIndex)==null?void 0:Y.toString())-Q.indexOf((oe=L.dataIndex)==null?void 0:oe.toString())}),o.value=M}}function y(S){const{ignoreIndex:g,ignoreAction:b,sort:I}=S||{};let Q=q(t(s));return g&&(Q=Q.filter(M=>M.flag!==De)),b&&(Q=Q.filter(M=>M.flag!==ze)),I&&(Q=vt(Q)),Q}function w(){return c}function H(S){ve(S)&&(c=S.filter(g=>!g.flag))}function R(S,g){g.width=S}return{getColumnsRef:s,getCacheColumns:w,getColumns:y,setColumns:l,setColumnWidth:R,getViewColumns:r,setCacheColumnsByField:a,setCacheColumns:H}}function vt(e){const n=[],o=[],c=[];for(const s of e){if(s.fixed==="left"){n.push(s);continue}if(s.fixed==="right"){o.push(s);continue}c.push(s)}return[...n,...c,...o].filter(s=>!s.defaultHidden)}function wo(e,n,o,c){if(!n)return e;if(G(n))return n(e,o,c);try{const s="date|";if(Oe(n)&&n.startsWith(s)&&e){const u=n.replace(s,"");return u?Cn(e,u):e}if(bn(n))return n.get(e)}catch(s){return e}}function Ro(e,{getPaginationInfo:n,setPagination:o,setLoading:c,getFieldsValue:s,clearSelectedRowKeys:u,tableData:i},r){const a=et({sortInfo:{},filterInfo:{}}),l=N([]),y=N({});Be(()=>{i.value=t(l)}),Ee(()=>t(e).dataSource,()=>{const{dataSource:h,api:A}=t(e);!A&&h&&(l.value=h)},{immediate:!0});function w(h,A,F){const{clearSelectOnPageChange:O,sortFn:j,filterFn:D}=t(e);O&&u(),o(h);const d={};if(F&&G(j)){const m=j(F);a.sortInfo=m,d.sortInfo=m}if(A&&G(D)){const m=D(A);a.filterInfo=m,d.filterInfo=m}L(d)}function H(h){!h||!Array.isArray(h)||h.forEach(A=>{A[fe]||(A[fe]=st()),A.children&&A.children.length&&H(A.children)})}const R=T(()=>t(e).autoCreateKey&&!t(e).rowKey),S=T(()=>{const{rowKey:h}=t(e);return t(R)?fe:h}),g=T(()=>{const h=t(l);if(!h||h.length===0)return t(l);if(t(R)){const A=h[0],F=h[h.length-1];if(A&&F&&(!A[fe]||!F[fe])){const O=be(t(l));O.forEach(j=>{j[fe]||(j[fe]=st()),j.children&&j.children.length&&H(j.children)}),l.value=O}}return t(l)});function b(h,A,F){return Z(this,null,function*(){return l.value[h]&&(l.value[h][A]=F),l.value[h]})}function I(h,A){const F=z(h);if(F){for(const O in F)Reflect.has(A,O)&&(F[O]=A[O]);return F}}function Q(h){var j;if(!l.value||l.value.length==0)return;const A=t(S);if(!A)return;const F=Array.isArray(h)?h:[h];function O(D,d){const m=f(D,d);if(m===null||m.index===-1)return;m.data.splice(m.index,1);function f(p,C){var v;if(p==null)return null;for(let k=0;k0){const X=f(_.children,C);if(X!=null)return X}}return null}}for(const D of F)O(l.value,D),O(t(e).dataSource,D);o({total:(j=t(e).dataSource)==null?void 0:j.length})}function M(h,A){var O;A=A!=null?A:(O=l.value)==null?void 0:O.length;const F=Sn(h)?[h]:h;return t(l).splice(A,0,...F),t(l)}function z(h){if(!l.value||l.value.length==0)return;const A=t(S);if(!A)return;const{childrenColumnName:F="children"}=t(e);return(j=>{let D;return j.some(function d(m){if(typeof A=="function"){if(A(m)===h)return D=m,!0}else if(Reflect.has(m,A)&&m[A]===h)return D=m,!0;return m[F]&&m[F].some(d)}),D})(l.value)}function L(h){return Z(this,null,function*(){var p,C,v;const{api:A,searchInfo:F,defSort:O,fetchSetting:j,beforeFetch:D,afterFetch:d,useSearchForm:m,pagination:f}=t(e);if(!(!A||!G(A)))try{c(!0);const{pageField:k,sizeField:_,listField:J,totalField:X}=Object.assign({},Et,j);let le={};const{current:ce=1,pageSize:me=Me}=t(n);V(f)&&!f||V(n)?le={}:(le[k]=h&&h.page||ce,le[_]=me);const{sortInfo:pe={},filterInfo:ke}=a;let ue=Jn(le,m?s():{},F,(p=h==null?void 0:h.searchInfo)!=null?p:{},O,pe,ke,(C=h==null?void 0:h.sortInfo)!=null?C:{},(v=h==null?void 0:h.filterInfo)!=null?v:{});D&&G(D)&&(ue=(yield D(ue))||ue);const Se=yield A(ue);y.value=Se;const Ke=Array.isArray(Se);let ye=Ke?Se:ht(Se,J);const Qe=Ke?Se.length:ht(Se,X);if(Number(Qe)){const He=Math.ceil(Qe/me);if(ce>He)return o({current:He}),yield L(h)}return d&&G(d)&&(ye=(yield d(ye))||ye),l.value=ye,o({total:Qe||0}),h&&h.page&&o({current:h.page||1}),r("fetch-success",{items:t(ye),total:Qe}),ye}catch(k){r("fetch-error",k),l.value=[],o({total:0})}finally{c(!1)}})}function Y(h){l.value=h}function oe(){return g.value}function E(){return y.value}function B(h){return Z(this,null,function*(){return yield L(h)})}return oo(()=>{An(()=>{t(e).immediate&&L()},16)}),{getDataSourceRef:g,getDataSource:oe,getRawDataSource:E,getRowKey:S,setTableData:Y,getAutoCreateKey:R,fetch:L,reload:B,updateTableData:b,updateTableDataRecord:I,deleteTableDataRecord:Q,insertTableDataRecord:M,findTableDataRecord:z,handleTableChange:w}}function Eo(e){const n=N(t(e).loading);Ee(()=>t(e).loading,s=>{n.value=s});const o=T(()=>t(n));function c(s){n.value=s}return{getLoading:o,setLoading:c}}function To(e,n,o){const c=N([]),s=N([]),u=T(()=>{const{rowSelection:g}=t(e);return g?K({selectedRowKeys:t(c),onChange:b=>{a(b)}},Xe(g,["onChange"])):null});Ee(()=>{var g;return(g=t(e).rowSelection)==null?void 0:g.selectedRowKeys},g=>{a(g)}),Ee(()=>t(c),()=>{Ae(()=>{const{rowSelection:g}=t(e);if(g){const{onChange:b}=g;b&&G(b)&&b(H(),R())}o("selection-change",{keys:H(),rows:R()})})},{deep:!0});const i=T(()=>t(e).autoCreateKey&&!t(e).rowKey),r=T(()=>{const{rowKey:g}=t(e);return t(i)?fe:g});function a(g){var Q;c.value=g||[];const b=yn(q(t(n)).concat(q(t(s))),M=>g==null?void 0:g.includes(M[t(r)]),{children:(Q=e.value.childrenColumnName)!=null?Q:"children"}),I=[];g==null||g.forEach(M=>{const z=b.find(L=>L[t(r)]===M);z&&I.push(z)}),s.value=I}function l(g){s.value=g}function y(){s.value=[],c.value=[]}function w(g){const I=t(c).findIndex(Q=>Q===g);I!==-1&&t(c).splice(I,1)}function H(){return t(c)}function R(){return t(s)}function S(){return t(u)}return{getRowSelection:S,getRowSelectionRef:u,getSelectRows:R,getSelectRowKeys:H,setSelectedRowKeys:a,clearSelectedRowKeys:y,deleteSelectRowByKey:w,setSelectedRows:l}}function ko(e,n,o,c,s,u,i){const r=N(167),a=io(),l=vn(w,100),y=T(()=>{const{canResize:E,scroll:B}=t(e);return E&&!(B||{}).y});Ee(()=>{var E;return[t(y),(E=t(s))==null?void 0:E.length]},()=>{l()},{flush:"post"});function w(){Ae(()=>{L()})}function H(E){var B;r.value=E,(B=a==null?void 0:a.redoModalHeight)==null||B.call(a)}let R,S,g;function b(E,B){const h=E.scrollHeight>E.clientHeight,A=E.scrollWidth>E.clientWidth;h?B.classList.contains("hide-scrollbar-y")&&B.classList.remove("hide-scrollbar-y"):!B.classList.contains("hide-scrollbar-y")&&B.classList.add("hide-scrollbar-y"),A?B.classList.contains("hide-scrollbar-x")&&B.classList.remove("hide-scrollbar-x"):!B.classList.contains("hide-scrollbar-x")&&B.classList.add("hide-scrollbar-x")}function I(E){const{pagination:B}=t(e);let h=2;if(V(B))h=-8;else if(R=E.querySelector(".ant-pagination"),R){const A=R.offsetHeight;h+=A||0}else h+=24;return h}function Q(E){const{pagination:B}=t(e);let h=0;if(!V(B))if(!S)S=E.querySelector(".ant-table-footer");else{const A=S.offsetHeight;h+=A||0}return h}function M(E){let B=0;return E&&(B=E.offsetHeight),B}function z(E,B){var D,d,m,f,p,C;const{pagination:h,isCanResizeParent:A,useSearchForm:F}=t(e);let O=30,j=0;if(t(u)&&A){let _=10;const J=(d=(D=t(u))==null?void 0:D.offsetHeight)!=null?d:0;let X=(f=(m=t(i))==null?void 0:m.$el.offsetHeight)!=null?f:0;X&&(X+=16),V(h)&&!h&&(_=0),V(F)&&!F&&(O=0);const le=(C=(p=E.querySelector(".ant-table-title"))==null?void 0:p.offsetHeight)!=null?C:0;j=J-X-le-12-_}else j=wn(B).bottomIncludeBody;return{paddingHeight:O,bottomIncludeBody:j}}function L(){return Z(this,null,function*(){var C;const{resizeHeightOffset:E,maxHeight:B}=t(e),h=t(s),A=t(n);if(!A)return;const F=A.$el;if(!F||!g&&(g=F.querySelector(".ant-table-body"),!g)||(b(g,F),g.style.height="unset",!t(y)||!t(h)||h.length===0))return;yield Ae();const O=F.querySelector(".ant-table-thead ");if(!O)return;const j=I(F),D=Q(F),d=M(O),{paddingHeight:m,bottomIncludeBody:f}=z(F,O);let p=f-(E||0)-m-j-D-d;p=(C=p>B?B:p)!=null?C:p,H(p),g.style.height=`${p}px`})}ro(L,{wait:280}),co(()=>{L(),Ae(()=>{l()})});const Y=T(()=>{var D,d;let E=0;t(c)&&(E+=60);const B=150,h=t(o).filter(m=>!m.defaultHidden);h.forEach(m=>{E+=Number.parseFloat(m.width)||0});const F=h.filter(m=>!Reflect.has(m,"width")).length;F!==0&&(E+=F*B);const O=t(n);return((d=(D=O==null?void 0:O.$el)==null?void 0:D.offsetWidth)!=null?d:0)>E?"100%":E});return{getScrollRef:T(()=>{const E=t(r),{canResize:B,scroll:h}=t(e);return K({x:t(Y),y:B?E:null,scrollToFirstRowOnChange:!1},h)}),redoHeight:w}}function Io(e,n){let o;function c(u){return Z(this,null,function*(){var a;const{id:i}=u,r=o==null?void 0:o.querySelector(`[data-row-key="${i}"]`);yield Ae(),o==null||o.scrollTo({top:(a=r==null?void 0:r.offsetTop)!=null?a:0,behavior:"smooth"})})}function s(u){const i=t(e);if(!i)return;const r=i.$el;if(!r||!o&&(o=r.querySelector(".ant-table-body"),!o))return;const a=t(n);if(a)if(u==="top")c(a[0]);else if(u==="bottom")c(a[a.length-1]);else{const l=a.find(y=>y.id===u);l&&c(l)}}return{scrollTo:s}}function Bo(e,n,o){return!n||o?e[fe]:Oe(n)?e[n]:G(n)?e[n(e)]:null}function Fo(e,{setSelectedRowKeys:n,getSelectRowKeys:o,getAutoCreateKey:c,clearSelectedRowKeys:s,emit:u}){return{customRow:(r,a)=>({onClick:l=>{l==null||l.stopPropagation();function y(){var Q;const{rowSelection:w,rowKey:H,clickToRowSelect:R}=t(e);if(!w||!R)return;const S=o()||[],g=Bo(r,H,t(c));if(g===null)return;if(w.type==="checkbox"){const M=(Q=l.composedPath)==null?void 0:Q.call(l).find(Y=>Y.tagName==="TR");if(!M)return;const z=M.querySelector("input[type=checkbox]");if(!z||z.hasAttribute("disabled"))return;if(!S.includes(g)){S.push(g),n(S);return}const L=S.findIndex(Y=>Y===g);S.splice(L,1),n(S);return}if(w.type==="radio"){if(!S.includes(g)){S.length&&s(),n([g]);return}s()}}y(),u("row-click",r,a,l)},onDblclick:l=>{u("row-dbClick",r,a,l)},onContextmenu:l=>{u("row-contextmenu",r,a,l)},onMouseenter:l=>{u("row-mouseenter",r,a,l)},onMouseleave:l=>{u("row-mouseleave",r,a,l)}})}}function _o(e,n){function o(c,s){const{striped:u,rowClassName:i}=t(e),r=[];return u&&r.push((s||0)%2===1?`${n}-row__striped`:""),i&&G(i)&&r.push(i(c,s)),r.filter(a=>!!a).join(" ")}return{getRowClassName:o}}const Qo=ie({name:"ColumnSetting",components:{SettingOutlined:Un,Popover:kt,Tooltip:je,Checkbox:Ye,CheckboxGroup:Ye.Group,DragOutlined:Gn,ScrollContainer:Rn,Divider:It,Icon:En},emits:["columns-change"],setup(e,{emit:n,attrs:o}){const{t:c}=Te(),s=Fe(),u=Xe(s.getRowSelection(),"selectedRowKeys");let i=!1,r=!1,a=!1;const l=N([]),y=N([]),w=N([]),H=N(null),R=et({checkAll:!0,checkedList:[],defaultCheckList:[]});let S={};const g=N(!1),b=N(!1),{prefixCls:I}=_e("basic-column-setting"),Q=T(()=>t(s==null?void 0:s.getBindValues)||{});Be(()=>{const f=s.getColumns();setTimeout(()=>{r?r=!1:f.length&&z()},0)}),Be(()=>{const f=t(Q);a?a=!1:S=be(f),g.value=!!f.showIndexColumn,b.value=!!f.rowSelection});function M(){const f=[];return s.getColumns({ignoreIndex:!0,ignoreAction:!0}).forEach(p=>{f.push(K({label:p.title||p.customTitle,value:p.dataIndex||p.title},p))}),f}function z(f=!1){return Z(this,null,function*(){var k;y.value=[];const p=t(H);if(p&&p.$el){const _=p.$el;Array.from(_.children).forEach(J=>_.removeChild(J))}yield Ae();const C=f?be(l.value):M(),v=s.getColumns({ignoreAction:!0,ignoreIndex:!0}).map(_=>_.defaultHidden?"":_.dataIndex||_.title).filter(Boolean);y.value=C,w.value=C,(k=s.setCacheColumns)==null||k.call(s,C),!f&&(l.value=be(C)),R.defaultCheckList=v,R.checkedList=v,R.checkAll=v.length===C.length,i=!1,A()})}function L(f){const p=w.value.map(C=>C.value);w.value.forEach(C=>C.defaultHidden=!f.target.checked),f.target.checked?(R.checkedList=p,D(p)):(R.checkedList=[],D([]))}const Y=T(()=>{const f=y.value.length;let p=R.checkedList.length;return p>0&&pv.value);f.sort((v,k)=>C.indexOf(v)-C.indexOf(k)),t(w).forEach(v=>{v.defaultHidden=!f.includes(v.value)}),D(f)}let E,B=[];function h(){D(l.value),z(!0),g.value=!!S.showIndexColumn,b.value=!!S.rowSelection,s.setProps({showIndexColumn:g.value,rowSelection:b.value?u:void 0}),E.sort(B)}function A(){i||Ae(()=>{const f=t(H);if(!f)return;const p=f.$el;p&&(E=uo.create(t(p),{animation:500,delay:400,delayOnTouchOnly:!0,handle:".table-column-drag-icon ",onEnd:C=>{const{oldIndex:v,newIndex:k}=C;if(rt(v)||rt(k)||v===k)return;const _=be(w.value);v>k?(_.splice(k,0,_[v]),_.splice(v+1,1)):(_.splice(k+1,0,_[v]),_.splice(v,1)),w.value=_,D(_.filter(J=>R.checkedList.includes(J.value)))}}),B=E.toArray(),i=!0)})}function F(f){a=!0,r=!0,s.setProps({showIndexColumn:f.target.checked})}function O(f){a=!0,r=!0,s.setProps({rowSelection:f.target.checked?u:void 0})}function j(f,p){var _;if(!R.checkedList.includes(f.dataIndex))return;const C=M().filter(J=>R.checkedList.includes(J.dataIndex)),v=f.fixed===p?!1:p,k=C.findIndex(J=>J.dataIndex===f.dataIndex);k!==-1&&(C[k].fixed=v),f.fixed=v,v&&!f.width&&(f.width=100),m(f),(_=s.setCacheColumnsByField)==null||_.call(s,f.dataIndex,{fixed:v}),D(C)}function D(f){a=!0,r=!0,s.setColumns(f);const p=t(w).map(C=>{const v=f.findIndex(k=>k===C.value||typeof k!="string"&&k.dataIndex===C.value)!==-1;return{dataIndex:C.value,fixed:C.fixed,visible:v}});n("columns-change",p)}function d(){return G(o.getPopupContainer)?o.getPopupContainer():Tt()}function m(f){w.value.forEach(p=>{p.value===f.dataIndex&&Object.assign(p,f)})}return de(K({t:c},lo(R)),{indeterminate:Y,onCheckAllChange:L,onChange:oe,plainOptions:y,reset:h,prefixCls:I,columnListRef:H,handleVisibleChange:A,checkIndex:g,checkSelect:b,handleIndexCheckChange:F,handleSelectCheckChange:O,defaultRowSelection:u,handleColumnFixed:j,getPopupContainer:d})}});function Po(e,n,o,c,s,u){const i=x("Checkbox"),r=x("a-button"),a=x("DragOutlined"),l=x("Icon"),y=x("Tooltip"),w=x("Divider"),H=x("CheckboxGroup"),R=x("ScrollContainer"),S=x("SettingOutlined"),g=x("Popover");return U(),te(y,{placement:"top"},{title:$(()=>[ge("span",null,ee(e.t("component.table.settingColumn")),1)]),default:$(()=>[P(g,{placement:"bottomLeft",trigger:"click",onOpenChange:e.handleVisibleChange,overlayClassName:`${e.prefixCls}__cloumn-list`,getPopupContainer:e.getPopupContainer},{title:$(()=>[ge("div",{class:Ie(`${e.prefixCls}__popover-title`)},[P(i,{indeterminate:e.indeterminate,checked:e.checkAll,"onUpdate:checked":n[0]||(n[0]=b=>e.checkAll=b),onChange:e.onCheckAllChange},{default:$(()=>[Ce(ee(e.t("component.table.settingColumnShow")),1)]),_:1},8,["indeterminate","checked","onChange"]),P(i,{checked:e.checkIndex,"onUpdate:checked":n[1]||(n[1]=b=>e.checkIndex=b),onChange:e.handleIndexCheckChange},{default:$(()=>[Ce(ee(e.t("component.table.settingIndexColumnShow")),1)]),_:1},8,["checked","onChange"]),P(i,{checked:e.checkSelect,"onUpdate:checked":n[2]||(n[2]=b=>e.checkSelect=b),onChange:e.handleSelectCheckChange,disabled:!e.defaultRowSelection},{default:$(()=>[Ce(ee(e.t("component.table.settingSelectColumnShow")),1)]),_:1},8,["checked","onChange","disabled"]),P(r,{size:"small",type:"link",onClick:e.reset},{default:$(()=>[Ce(ee(e.t("common.resetText")),1)]),_:1},8,["onClick"])],2)]),content:$(()=>[P(R,null,{default:$(()=>[P(H,{value:e.checkedList,"onUpdate:value":n[3]||(n[3]=b=>e.checkedList=b),onChange:e.onChange,ref:"columnListRef"},{default:$(()=>[(U(!0),Re(Ct,null,Ze(e.plainOptions,b=>(U(),Re(Ct,{key:b.value},["ifShow"in b&&!b.ifShow?se("",!0):(U(),Re("div",{key:0,class:Ie(`${e.prefixCls}__check-item`)},[P(a,{class:"table-column-drag-icon"}),P(i,{value:b.value},{default:$(()=>[Ce(ee(b.label),1)]),_:2},1032,["value"]),P(y,{placement:"bottomLeft",mouseLeaveDelay:.4,getPopupContainer:e.getPopupContainer},{title:$(()=>[Ce(ee(e.t("component.table.settingFixedLeft")),1)]),default:$(()=>[P(l,{icon:"line-md:arrow-align-left",class:Ie([`${e.prefixCls}__fixed-left`,{active:b.fixed==="left",disabled:!e.checkedList.includes(b.value)}]),onClick:I=>e.handleColumnFixed(b,"left")},null,8,["class","onClick"])]),_:2},1032,["getPopupContainer"]),P(w,{type:"vertical"}),P(y,{placement:"bottomLeft",mouseLeaveDelay:.4,getPopupContainer:e.getPopupContainer},{title:$(()=>[Ce(ee(e.t("component.table.settingFixedRight")),1)]),default:$(()=>[P(l,{icon:"line-md:arrow-align-left",class:Ie([`${e.prefixCls}__fixed-right`,{active:b.fixed==="right",disabled:!e.checkedList.includes(b.value)}]),onClick:I=>e.handleColumnFixed(b,"right")},null,8,["class","onClick"])]),_:2},1032,["getPopupContainer"])],2))],64))),128))]),_:1},8,["value","onChange"])]),_:1})]),default:$(()=>[P(S)]),_:1},8,["onOpenChange","overlayClassName","getPopupContainer"])]),_:1})}const Do=he(Qo,[["render",Po]]),Oo=ie({name:"SizeSetting",components:{ColumnHeightOutlined:Vn,Tooltip:je,Dropdown:Yn,Menu:mt,MenuItem:mt.Item},setup(){const e=Fe(),{t:n}=Te(),o=N([e.getSize()]);function c({key:s}){o.value=[s],e.setProps({size:s})}return{handleTitleClick:c,selectedKeysRef:o,getPopupContainer:Tt,t:n}}});function Ko(e,n,o,c,s,u){const i=x("ColumnHeightOutlined"),r=x("MenuItem"),a=x("Menu"),l=x("Dropdown"),y=x("Tooltip");return U(),te(y,{placement:"top"},{title:$(()=>[ge("span",null,ee(e.t("component.table.settingDens")),1)]),default:$(()=>[P(l,{placement:"bottom",trigger:["click"],getPopupContainer:e.getPopupContainer},{overlay:$(()=>[P(a,{onClick:e.handleTitleClick,selectable:"",selectedKeys:e.selectedKeysRef,"onUpdate:selectedKeys":n[0]||(n[0]=w=>e.selectedKeysRef=w)},{default:$(()=>[P(r,{key:"default"},{default:$(()=>[ge("span",null,ee(e.t("component.table.settingDensDefault")),1)]),_:1}),P(r,{key:"middle"},{default:$(()=>[ge("span",null,ee(e.t("component.table.settingDensMiddle")),1)]),_:1}),P(r,{key:"small"},{default:$(()=>[ge("span",null,ee(e.t("component.table.settingDensSmall")),1)]),_:1})]),_:1},8,["onClick","selectedKeys"])]),default:$(()=>[P(i)]),_:1},8,["getPopupContainer"])]),_:1})}const Ho=he(Oo,[["render",Ko]]),$o=ie({name:"RedoSetting",components:{RedoOutlined:Wn,Tooltip:je},setup(){const e=Fe(),{t:n}=Te();function o(){e.reload()}return{redo:o,t:n}}});function xo(e,n,o,c,s,u){const i=x("RedoOutlined"),r=x("Tooltip");return U(),te(r,{placement:"top"},{title:$(()=>[ge("span",null,ee(e.t("common.redo")),1)]),default:$(()=>[P(i,{onClick:e.redo},null,8,["onClick"])]),_:1})}const No=he($o,[["render",xo]]),Lo=ie({name:"FullScreenSetting",components:{FullscreenExitOutlined:qn,FullscreenOutlined:Zn,Tooltip:je},setup(){const e=Fe(),{t:n}=Te(),{toggle:o,isFullscreen:c}=Tn(e.wrapRef);return{toggle:o,isFullscreen:c,t:n}}});function Mo(e,n,o,c,s,u){const i=x("FullscreenOutlined"),r=x("FullscreenExitOutlined"),a=x("Tooltip");return U(),te(a,{placement:"top"},{title:$(()=>[ge("span",null,ee(e.t("component.table.settingFullScreen")),1)]),default:$(()=>[e.isFullscreen?(U(),te(r,{key:1,onClick:e.toggle},null,8,["onClick"])):(U(),te(i,{key:0,onClick:e.toggle},null,8,["onClick"]))]),_:1})}const zo=he(Lo,[["render",Mo]]),jo=ie({name:"TableSetting",components:{ColumnSetting:Do,SizeSetting:Ho,RedoSetting:No,FullScreenSetting:zo},props:{setting:{type:Object,default:()=>({})}},emits:["columns-change"],setup(e,{emit:n}){const{t:o}=Te(),c=Fe(),s=T(()=>K({redo:!0,size:!0,setting:!0,fullScreen:!1},e.setting));function u(r){n("columns-change",r)}function i(){return c?t(c.wrapRef):document.body}return{getSetting:s,t:o,handleColumnChange:u,getTableContainer:i}}});const Jo={class:"table-settings"};function Uo(e,n,o,c,s,u){const i=x("RedoSetting"),r=x("SizeSetting"),a=x("ColumnSetting"),l=x("FullScreenSetting");return U(),Re("div",Jo,[e.getSetting.redo?(U(),te(i,{key:0,getPopupContainer:e.getTableContainer},null,8,["getPopupContainer"])):se("",!0),e.getSetting.size?(U(),te(r,{key:1,getPopupContainer:e.getTableContainer},null,8,["getPopupContainer"])):se("",!0),e.getSetting.setting?(U(),te(a,{key:2,onColumnsChange:e.handleColumnChange,getPopupContainer:e.getTableContainer},null,8,["onColumnsChange","getPopupContainer"])):se("",!0),e.getSetting.fullScreen?(U(),te(l,{key:3,getPopupContainer:e.getTableContainer},null,8,["getPopupContainer"])):se("",!0)])}const Go=he(jo,[["render",Uo]]),Vo=ie({name:"BasicTableTitle",components:{BasicTitle:kn},props:{title:{type:[Function,String]},getSelectRows:{type:Function},helpMessage:{type:[String,Array]}},setup(e){const{prefixCls:n}=_e("basic-table-title");return{getTitle:T(()=>{const{title:c,getSelectRows:s=()=>{}}=e;let u=c;return G(c)&&(u=c({selectRows:s()})),u}),prefixCls:n}}});function Yo(e,n,o,c,s,u){const i=x("BasicTitle");return e.getTitle?(U(),te(i,{key:0,class:Ie(e.prefixCls),helpMessage:e.helpMessage},{default:$(()=>[Ce(ee(e.getTitle),1)]),_:1},8,["class","helpMessage"])):se("",!0)}const Wo=he(Vo,[["render",Yo]]),qo=ie({name:"BasicTableHeader",components:{Divider:It,TableTitle:Wo,TableSetting:Go},props:{title:{type:[Function,String]},tableSetting:{type:Object},showTableSetting:{type:Boolean},titleHelpMessage:{type:[String,Array],default:""}},emits:["columns-change"],setup(e,{emit:n}){const{prefixCls:o}=_e("basic-table-header");function c(s){n("columns-change",s)}return{prefixCls:o,handleColumnChange:c}}});const Zo={style:{width:"100%"}},Xo={key:0,style:{margin:"5px"}},el={class:"flex items-center"};function tl(e,n,o,c,s,u){const i=x("TableTitle"),r=x("Divider"),a=x("TableSetting");return U(),Re("div",Zo,[e.$slots.headerTop?(U(),Re("div",Xo,[we(e.$slots,"headerTop")])):se("",!0),ge("div",el,[e.$slots.tableTitle?we(e.$slots,"tableTitle",{key:0}):se("",!0),!e.$slots.tableTitle&&e.title?(U(),te(i,{key:1,helpMessage:e.titleHelpMessage,title:e.title},null,8,["helpMessage","title"])):se("",!0),ge("div",{class:Ie(`${e.prefixCls}__toolbar`)},[we(e.$slots,"toolbar"),e.$slots.toolbar&&e.showTableSetting?(U(),te(r,{key:0,type:"vertical"})):se("",!0),e.showTableSetting?(U(),te(a,{key:1,setting:e.tableSetting,onColumnsChange:e.handleColumnChange},null,8,["setting","onColumnsChange"])):se("",!0)],2)])])}const nl=he(qo,[["render",tl]]);function ol(e,n,o){return{getHeaderProps:T(()=>{const{title:s,showTableSetting:u,titleHelpMessage:i,tableSetting:r}=t(e),a=!n.tableTitle&&!s&&!n.toolbar&&!u;return a&&!Oe(s)?{}:{title:a?null:()=>Pe(nl,{title:s,titleHelpMessage:i,showTableSetting:u,tableSetting:r,onColumnsChange:o.onColumnsChange},K(K(K({},n.toolbar?{toolbar:()=>Ue(n,"toolbar")}:{}),n.tableTitle?{tableTitle:()=>Ue(n,"tableTitle")}:{}),n.headerTop?{headerTop:()=>Ue(n,"headerTop")}:{}))}})}}function ll(e,n,o){const c=N([]),s=T(()=>t(e).autoCreateKey&&!t(e).rowKey),u=T(()=>{const{rowKey:w}=t(e);return t(s)?fe:w}),i=T(()=>{const{isTreeTable:w}=t(e);return w?{expandedRowKeys:t(c),onExpandedRowsChange:H=>{c.value=H,o("expanded-rows-change",H)}}:{}});function r(){const w=l();c.value=w}function a(w){const{isTreeTable:H}=t(e);H&&(c.value=[...c.value,...w])}function l(w){const H=[],{childrenColumnName:R}=t(e);return q(w||t(n)).forEach(S=>{H.push(S[t(u)]);const g=S[R||"children"];g!=null&&g.length&&H.push(...l(g))}),H}function y(){c.value=[]}return{getExpandOption:i,expandAll:r,expandRows:a,collapseAll:y}}const wt="_row",Rt="_index",al=ie({name:"BasicTableFooter",components:{Table:Bt},props:{summaryFunc:{type:Function},summaryData:{type:Array},scroll:{type:Object},rowKey:W.string.def("key")},setup(e){const n=Fe(),o=T(()=>{const{summaryFunc:s,summaryData:u}=e;if(u!=null&&u.length)return u.forEach((r,a)=>r[e.rowKey]=`${a}`),u;if(!G(s))return[];let i=q(t(n.getDataSource()));return i=s(i),i.forEach((r,a)=>{r[e.rowKey]=`${a}`}),i});return{getColumns:T(()=>{const s=t(o),u=be(n.getColumns()),i=u.findIndex(l=>l.flag===De),r=s.some(l=>Reflect.has(l,wt)),a=s.some(l=>Reflect.has(l,Rt));if(i!==-1&&(a?(u[i].customRender=({record:l})=>l[Rt],u[i].ellipsis=!1):Reflect.deleteProperty(u[i],"customRender")),n.getRowSelection()&&r){const l=u.some(y=>y.fixed==="left");u.unshift(de(K({width:60,title:"selection",key:"selectionKey",align:"center"},l?{fixed:"left"}:{}),{customRender:({record:y})=>y[wt]}))}return u}),getDataSource:o}}});function sl(e,n,o,c,s,u){const i=x("Table");return e.summaryFunc||e.summaryData?(U(),te(i,{key:0,showHeader:!1,bordered:!1,pagination:!1,dataSource:e.getDataSource,rowKey:r=>r[e.rowKey],columns:e.getColumns,tableLayout:"fixed",scroll:e.scroll},null,8,["dataSource","rowKey","columns","scroll"])):se("",!0)}const il=he(al,[["render",sl]]);function rl(e,n,o,c){const s=T(()=>(t(c)||[]).length===0),u=T(()=>{const{summaryFunc:r,showSummary:a,summaryData:l}=t(e);return a&&!t(s)?()=>Pe(il,{summaryFunc:r,summaryData:l,scroll:t(n)}):void 0});Be(()=>{i()});function i(){const{showSummary:r}=t(e);!r||t(s)||Ae(()=>{const a=t(o);if(!a)return;const l=a.$el.querySelector(".ant-table-content");In({el:l,name:"scroll",listener:()=>{const y=a.$el.querySelector(".ant-table-footer .ant-table-content");!y||!l||(y.scrollLeft=l.scrollLeft)},wait:0,options:!0})})}return{getFooterProps:u}}function cl(e,n,o,c){const s=T(()=>{const{formConfig:a}=t(e),{submitButtonOptions:l}=a||{};return de(K({showAdvancedButton:!0},a),{submitButtonOptions:K({loading:t(c)},l),compact:!0})}),u=T(()=>Object.keys(n).map(l=>l.startsWith("form-")?l:null).filter(l=>!!l));function i(a){var l,y;return a&&(y=(l=a==null?void 0:a.replace)==null?void 0:l.call(a,/form-/,""))!=null?y:""}function r(a){const{handleSearchInfoFn:l}=t(e);l&&G(l)&&(a=l(a)||a),o({searchInfo:a,page:1})}return{getFormProps:s,replaceFormSlotKey:i,getFormSlotKeys:u,handleSearchInfoChange:r}}const ul={clickToRowSelect:{type:Boolean,default:!0},isTreeTable:Boolean,tableSetting:W.shape({}),inset:Boolean,sortFn:{type:Function,default:rn},filterFn:{type:Function,default:cn},showTableSetting:Boolean,autoCreateKey:{type:Boolean,default:!0},striped:{type:Boolean,default:!0},showSummary:Boolean,summaryFunc:{type:[Function,Array],default:null},summaryData:{type:Array,default:null},indentSize:W.number.def(24),canColDrag:{type:Boolean,default:!0},api:{type:Function,default:null},beforeFetch:{type:Function,default:null},afterFetch:{type:Function,default:null},handleSearchInfoFn:{type:Function,default:null},fetchSetting:{type:Object,default:()=>Et},immediate:{type:Boolean,default:!0},emptyDataIsShowTable:{type:Boolean,default:!0},searchInfo:{type:Object,default:null},defSort:{type:Object,default:null},useSearchForm:W.bool,formConfig:{type:Object,default:null},columns:{type:Array,default:()=>[]},showIndexColumn:{type:Boolean,default:!0},indexColumnProps:{type:Object,default:null},actionColumn:{type:Object,default:null},ellipsis:{type:Boolean,default:!0},isCanResizeParent:{type:Boolean,default:!1},canResize:{type:Boolean,default:!0},clearSelectOnPageChange:W.bool,resizeHeightOffset:W.number.def(0),rowSelection:{type:Object,default:null},title:{type:[String,Function],default:null},titleHelpMessage:{type:[String,Array]},maxHeight:W.number,dataSource:{type:Array,default:null},rowKey:{type:[String,Function],default:""},bordered:W.bool,pagination:{type:[Object,Boolean],default:null},loading:W.bool,rowClassName:{type:Function},scroll:{type:Object,default:null},beforeEditSubmit:{type:Function},size:{type:String,default:un}},dl=["fetch-success","fetch-error","selection-change","register","row-click","row-dbClick","row-contextmenu","row-mouseenter","row-mouseleave","edit-end","edit-cancel","edit-row-end","edit-change","expanded-rows-change","change","columns-change"],fl=ie({name:"BasicTable",methods:{ReloadOutlined:Xn,SearchOutlined:eo},components:{Table:Bt,BasicForm:dn,HeaderCell:mo},props:ul,emits:dl,setup(e,{attrs:n,emit:o,slots:c,expose:s}){const u=N(null),i=N([]),r=N(null),a=N(null),l=N(),{prefixCls:y}=_e("basic-table"),[w,H]=fn(),R=T(()=>K(K({},e),t(l))),S=ao(Bn,!1);Be(()=>{t(S)&&e.canResize&&Fn()});const{getLoading:g,setLoading:b}=Eo(R),{getPaginationInfo:I,getPagination:Q,setPagination:M,setShowPagination:z,getShowPagination:L}=Co(R),{getRowSelection:Y,getRowSelectionRef:oe,getSelectRows:E,setSelectedRows:B,clearSelectedRowKeys:h,getSelectRowKeys:A,deleteSelectRowByKey:F,setSelectedRowKeys:O}=To(R,i,o),{handleTableChange:j,getDataSourceRef:D,getDataSource:d,getRawDataSource:m,setTableData:f,updateTableDataRecord:p,deleteTableDataRecord:C,insertTableDataRecord:v,findTableDataRecord:k,fetch:_,getRowKey:J,reload:X,getAutoCreateKey:le,updateTableData:ce}=Ro(R,{tableData:i,getPaginationInfo:I,setLoading:b,setPagination:M,getFieldsValue:H.getFieldsValue,clearSelectedRowKeys:h},o);function me(...ne){j.call(void 0,...ne),o("change",...ne);const{onChange:re}=t(R);re&&G(re)&&re.call(void 0,...ne)}const{getViewColumns:pe,getColumns:ke,setCacheColumnsByField:ue,setCacheColumns:Se,setColumnWidth:Ke,setColumns:ye,getColumnsRef:Qe,getCacheColumns:He}=vo(R,I),{getScrollRef:tt,redoHeight:nt}=ko(R,u,Qe,oe,D,r,a),{scrollTo:Pt}=Io(u,D),{customRow:Dt}=Fo(R,{setSelectedRowKeys:O,getSelectRowKeys:A,clearSelectedRowKeys:h,getAutoCreateKey:le,emit:o}),{getRowClassName:Ot}=_o(R,y),{getExpandOption:Kt,expandAll:Ht,expandRows:$t,collapseAll:xt}=ll(R,i,o),Nt={onColumnsChange:ne=>{var re,ot;o("columns-change",ne),(ot=(re=t(R)).onColumnsChange)==null||ot.call(re,ne)}},{getHeaderProps:Lt}=ol(R,c,Nt),{getFooterProps:Mt}=rl(R,tt,u,D),{getFormProps:zt,replaceFormSlotKey:jt,getFormSlotKeys:Jt,handleSearchInfoChange:Ut}=cl(R,c,_,g),$e=T(()=>{const ne=t(D);let re=K(de(K(K(de(K({},n),{customRow:Dt}),t(R)),t(Lt)),{scroll:t(tt),loading:t(g),tableLayout:"fixed",rowSelection:t(oe),rowKey:t(J),columns:q(t(pe)),pagination:q(t(I)),dataSource:ne,footer:t(Mt)}),t(Kt));return re=Xe(re,["class","onChange"]),re}),Gt=T(()=>{const ne=t($e);return[y,n.class,{[`${y}-form-container`]:ne.useSearchForm,[`${y}--inset`]:ne.inset}]}),Vt=T(()=>{const{emptyDataIsShowTable:ne,useSearchForm:re}=t(R);return ne||!re?!0:!!t(D).length});function Yt(ne){l.value=K(K({},t(l)),ne)}const xe={reload:X,getSelectRows:E,setSelectedRows:B,clearSelectedRowKeys:h,getSelectRowKeys:A,deleteSelectRowByKey:F,setPagination:M,setTableData:f,updateTableDataRecord:p,deleteTableDataRecord:C,insertTableDataRecord:v,findTableDataRecord:k,redoHeight:nt,setSelectedRowKeys:O,setColumns:ye,setLoading:b,getDataSource:d,getRawDataSource:m,setProps:Yt,getRowSelection:Y,getPaginationRef:Q,getColumns:ke,getCacheColumns:He,emit:o,updateTableData:ce,setShowPagination:z,getShowPagination:L,setCacheColumnsByField:ue,expandAll:Ht,expandRows:$t,collapseAll:xt,scrollTo:Pt,getSize:()=>t($e).size,setCacheColumns:Se};return gn(de(K({},xe),{wrapRef:r,getBindValues:$e})),s(xe),o("register",xe,H),{formRef:a,tableElRef:u,getBindValues:$e,getLoading:g,registerForm:w,handleSearchInfoChange:Ut,getEmptyDataIsShowTable:Vt,handleTableChange:me,setColumnWidth:Ke,getRowClassName:Ot,wrapRef:r,tableAction:xe,redoHeight:nt,getFormProps:zt,replaceFormSlotKey:jt,getFormSlotKeys:Jt,getWrapperClass:Gt,columns:pe,h:Pe}}});function gl(e,n,o,c,s,u){const i=x("BasicForm"),r=x("HeaderCell"),a=x("Table");return U(),Re("div",{ref:"wrapRef",class:Ie(e.getWrapperClass)},[e.getBindValues.useSearchForm?(U(),te(i,qe({key:0,ref:"formRef",submitOnReset:""},e.getFormProps,{tableAction:e.tableAction,onRegister:e.registerForm,onSubmit:e.handleSearchInfoChange,resetButtonOptions:{icon:e.h(e.ReloadOutlined)},submitButtonOptions:{icon:e.h(e.SearchOutlined)},onAdvancedChange:e.redoHeight}),bt({_:2},[Ze(e.getFormSlotKeys,l=>({name:e.replaceFormSlotKey(l),fn:$(y=>[we(e.$slots,l,Ne(Le(y||{})))])}))]),1040,["tableAction","onRegister","onSubmit","resetButtonOptions","submitButtonOptions","onAdvancedChange"])):se("",!0),We(P(a,qe({ref:"tableElRef"},e.getBindValues,{rowClassName:e.getRowClassName,onChange:e.handleTableChange,onResizeColumn:e.setColumnWidth}),bt({headerCell:$(({column:l})=>[we(e.$slots,"headerCell",Ne(Le({column:l})),()=>[P(r,{column:l},null,8,["column"])])]),bodyCell:$(l=>[we(e.$slots,"bodyCell",Ne(Le(l||{})))]),_:2},[Ze(Object.keys(e.$slots),l=>({name:l,fn:$(y=>[we(e.$slots,l,Ne(Le(y||{})))])}))]),1040,["rowClassName","onChange","onResizeColumn"]),[[Ft,e.getEmptyDataIsShowTable]])],2)}const wl=he(fl,[["render",gl]]);ie({name:"TableImage",components:{AImage:pt,PreviewGroup:pt.PreviewGroup,Badge:to},props:{imgList:W.arrayOf(W.string),size:W.number.def(40),simpleShow:W.bool,showBadge:W.bool.def(!0),margin:W.number.def(4),srcPrefix:W.string.def(""),fallback:W.string.def("data:image/png;base64,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")},setup(e){const n=T(()=>{const{size:c}=e,s=`${c}px`;return{height:s,width:s}}),{prefixCls:o}=_e("basic-table-img");return{prefixCls:o,getWrapStyle:n}}});function Rl(e){const n=N(null),o=N(!1),c=N(null);let s;function u(a,l){so(()=>{n.value=null,o.value=null}),!(t(o)&&_n()&&a===t(n))&&(n.value=a,c.value=l,e&&a.setProps(ct(e)),o.value=!0,s==null||s(),s=Ee(()=>e,()=>{e&&a.setProps(ct(e))},{immediate:!0,deep:!0}))}function i(){const a=t(n);return a||Qn("The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!"),a}return[u,{reload:a=>Z(this,null,function*(){return yield i().reload(a)}),setProps:a=>{i().setProps(a)},redoHeight:()=>{i().redoHeight()},setSelectedRows:a=>q(i().setSelectedRows(a)),setLoading:a=>{i().setLoading(a)},getDataSource:()=>i().getDataSource(),getRawDataSource:()=>i().getRawDataSource(),getColumns:({ignoreIndex:a=!1}={})=>{const l=i().getColumns({ignoreIndex:a})||[];return q(l)},setColumns:a=>{i().setColumns(a)},setTableData:a=>i().setTableData(a),setPagination:a=>i().setPagination(a),deleteSelectRowByKey:a=>{i().deleteSelectRowByKey(a)},getSelectRowKeys:()=>q(i().getSelectRowKeys()),getSelectRows:()=>q(i().getSelectRows()),clearSelectedRowKeys:()=>{i().clearSelectedRowKeys()},setSelectedRowKeys:a=>{i().setSelectedRowKeys(a)},getPaginationRef:()=>i().getPaginationRef(),getSize:()=>q(i().getSize()),updateTableData:(a,l,y)=>i().updateTableData(a,l,y),deleteTableDataRecord:a=>i().deleteTableDataRecord(a),insertTableDataRecord:(a,l)=>i().insertTableDataRecord(a,l),updateTableDataRecord:(a,l)=>i().updateTableDataRecord(a,l),findTableDataRecord:a=>i().findTableDataRecord(a),getRowSelection:()=>q(i().getRowSelection()),getCacheColumns:()=>q(i().getCacheColumns()),getForm:()=>t(c),setShowPagination:a=>Z(this,null,function*(){i().setShowPagination(a)}),getShowPagination:()=>q(i().getShowPagination()),expandAll:()=>{i().expandAll()},expandRows:a=>{i().expandRows(a)},collapseAll:()=>{i().collapseAll()},scrollTo:a=>{i().scrollTo(a)}}]}export{wl as B,Rl as u}; diff --git a/detect.gui/Embedded/dist/assets/useTable-91c68fcd.css b/detect.gui/Embedded/dist/assets/useTable-91c68fcd.css new file mode 100644 index 0000000..3e38cf4 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/useTable-91c68fcd.css @@ -0,0 +1 @@ +.vben-basic-table-header-cell__help{margin-left:8px;color:#000000a6!important}.edit-cell-align-left{text-align:left}.edit-cell-align-left input:not(.ant-calendar-picker-input,.ant-time-picker-input){text-align:left}.edit-cell-align-center{text-align:center}.edit-cell-align-center input:not(.ant-calendar-picker-input,.ant-time-picker-input){text-align:center}.edit-cell-align-right{text-align:right}.edit-cell-align-right input:not(.ant-calendar-picker-input,.ant-time-picker-input){text-align:right}.edit-cell-rule-popover .ant-popover-inner-content{padding:4px 8px;border-radius:2px;color:#ed6f6f}.vben-editable-cell{position:relative;min-height:24px}.vben-editable-cell__wrapper{display:flex;align-items:center;justify-content:center}.vben-editable-cell__wrapper>.ant-select{min-width:calc(100% - 50px)}.vben-editable-cell__icon:hover{transform:scale(1.2)}.vben-editable-cell__icon:hover svg{color:#0960bd}.vben-editable-cell .ellipsis-cell .cell-content{overflow:hidden;text-overflow:ellipsis;word-break:break-word;white-space:nowrap;overflow-wrap:break-word}.vben-editable-cell__normal-icon{display:none;position:absolute;top:4px;right:0;width:20px;cursor:pointer}.vben-editable-cell:hover .vben-editable-cell__normal-icon{display:inline-block}.table-column-drag-icon{margin:0 5px;cursor:move}.vben-basic-column-setting__popover-title{display:flex;position:relative;align-items:center;justify-content:space-between}.vben-basic-column-setting__check-item{display:flex;align-items:center;min-width:100%;padding:4px 16px 8px 0}.vben-basic-column-setting__check-item .ant-checkbox-wrapper{width:100%}.vben-basic-column-setting__check-item .ant-checkbox-wrapper:hover{color:#0960bd}.vben-basic-column-setting__fixed-left,.vben-basic-column-setting__fixed-right{color:#00000073;cursor:pointer}.vben-basic-column-setting__fixed-left.active,.vben-basic-column-setting__fixed-right.active,.vben-basic-column-setting__fixed-left:hover,.vben-basic-column-setting__fixed-right:hover{color:#0960bd}.vben-basic-column-setting__fixed-left.disabled,.vben-basic-column-setting__fixed-right.disabled{color:#00000040;cursor:not-allowed}.vben-basic-column-setting__fixed-right{transform:rotate(180deg)}.vben-basic-column-setting__cloumn-list svg{width:1em!important;height:1em!important}.vben-basic-column-setting__cloumn-list .ant-popover-inner-content{padding-right:0;padding-left:0}.vben-basic-column-setting__cloumn-list .ant-checkbox-group{display:inline-block;width:100%;min-width:260px}.vben-basic-column-setting__cloumn-list .scrollbar{height:220px}.table-settings>*{margin-right:12px}.table-settings svg{width:1.3em;height:1.3em}.vben-basic-table-title{display:flex;align-items:center;justify-content:space-between}.vben-basic-table-header__toolbar{display:flex;flex:1;align-items:center;justify-content:flex-end}.vben-basic-table-header__toolbar>*{margin-right:8px}[data-theme=dark] .ant-table-tbody>tr:hover.ant-table-row-selected>td,[data-theme=dark] .ant-table-tbody>tr.ant-table-row-selected td{background-color:#262626}.vben-basic-table{max-width:100%;height:100%}.vben-basic-table-row__striped td{background-color:#fafafa}.vben-basic-table-form-container{padding:0}.vben-basic-table-form-container .ant-form{width:100%;margin-bottom:16px;padding:12px 10px 6px;border-radius:2px;background-color:#fff}.vben-basic-table .ant-table-cell .ant-tag{margin-right:0}.vben-basic-table .ant-table-wrapper{padding:6px;border-radius:2px;background-color:#fff}.vben-basic-table .ant-table-wrapper .ant-table-title{min-height:40px;padding:8px 0!important}.vben-basic-table .ant-table-wrapper .ant-table.ant-table-bordered .ant-table-title{border:none!important}.vben-basic-table .ant-table{width:100%;overflow-x:hidden}.vben-basic-table .ant-table-title{display:flex;align-items:center;justify-content:space-between;padding:8px 6px;border-bottom:none}.vben-basic-table .ant-pagination{margin:10px 0 0}.vben-basic-table .ant-table-footer,.vben-basic-table .ant-table-footer .ant-table-wrapper{padding:0}.vben-basic-table .ant-table-footer table{border:none!important}.vben-basic-table .ant-table-footer .ant-table-body{overflow-x:hidden!important}.vben-basic-table .ant-table-footer td{padding:12px 8px}.vben-basic-table--inset .ant-table-wrapper{padding:0}.vben-basic-table-img .ant-image{margin-right:4px;cursor:zoom-in}.vben-basic-table-img .ant-image img{border-radius:2px}.vben-basic-table-img .img-div{display:inline-grid} diff --git a/detect.gui/Embedded/dist/assets/userAuthorityApi-e5a30d38.js b/detect.gui/Embedded/dist/assets/userAuthorityApi-e5a30d38.js new file mode 100644 index 0000000..a052a41 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/userAuthorityApi-e5a30d38.js @@ -0,0 +1 @@ +var q=Object.defineProperty,v=Object.defineProperties;var P=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var p=(e,s,t)=>s in e?q(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,a=(e,s)=>{for(var t in s||(s={}))c.call(s,t)&&p(e,t,s[t]);if(l)for(var t of l(s))m.call(s,t)&&p(e,t,s[t]);return e},i=(e,s)=>v(e,P(s));var f=(e,s)=>{var t={};for(var r in e)c.call(e,r)&&s.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&l)for(var r of l(e))s.indexOf(r)<0&&m.call(e,r)&&(t[r]=e[r]);return t};import{o}from"./index.js";const u={xs:{span:24},sm:{span:24},lg:{span:8}},$={span:24},n={model:"UserAuthority",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:u,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"userId",label:"sys_user.id",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"sys_user.id"},colProps:u,component:"InputNumber",rules:[{required:!0,message:"请输入sys_user.id!"}]},table:{}},{field:"authorityId",label:"sys_authority.id",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"sys_authority.id"},colProps:u,component:"InputNumber",rules:[{required:!0,message:"请输入sys_authority.id!"}]},table:{}}]},g=["id","userId","authorityId"],b=["userId","authorityId"],w=["userId","authorityId"],F=["userId","authorityId"],I=new Map(g.map((e,s)=>[e,s])),B=n.properties.filter(e=>g.includes(e.field)).map(r=>{var{field:e,label:s,form:M}=r,t=f(M,[]);return i(a({field:e,label:s,defaultValue:void 0},t),{required:!1,rules:[{required:!1}]})}).sort((e,s)=>{const t=I.get(e.field),r=I.get(s.field);return t-r}),x=new Map(b.map((e,s)=>[e,s])),C=n.properties.filter(e=>b.includes(e.field)).map(({field:e,label:s,defaultValue:t,form:r})=>i(a({field:e,label:s,defaultValue:t},r),{colProps:$})).sort((e,s)=>{const t=x.get(e.field),r=x.get(s.field);return t-r}),y=new Map(w.map((e,s)=>[e,s])),D=n.properties.filter(e=>w.includes(e.field)).map(({field:e,label:s,table:t})=>a({dataIndex:e,title:s},t)).sort((e,s)=>{const t=y.get(e.dataIndex),r=y.get(s.dataIndex);return t-r}),h=new Map(F.map((e,s)=>[e,s])),V=n.properties.filter(e=>F.includes(e.field)).map(({field:e,label:s,table:t})=>a({dataIndex:e,title:s},t)).sort((e,s)=>{const t=h.get(e.dataIndex),r=h.get(s.dataIndex);return t-r}),d="/v1/system/user-authority",N=e=>o.post({url:`${d}/`,data:e}),S=(e,s=!1)=>o.put({url:`${d}/`,data:e,params:{updateAllFields:s}}),H=e=>o.delete({url:`${d}/${e}`}),U=e=>o.get({url:`${d}/search`,params:e}),j=e=>o.get({url:`${d}/${e}`});export{N as a,B as b,D as c,V as d,C as f,j as g,H as r,U as s,S as u}; diff --git a/detect.gui/Embedded/dist/assets/zh_CN-f6d6458e.js b/detect.gui/Embedded/dist/assets/zh_CN-f6d6458e.js new file mode 100644 index 0000000..fb1eed0 --- /dev/null +++ b/detect.gui/Embedded/dist/assets/zh_CN-f6d6458e.js @@ -0,0 +1 @@ +var u=Object.defineProperty,g=Object.defineProperties;var p=Object.getOwnPropertyDescriptors;var a=Object.getOwnPropertySymbols;var b=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var l=(r,t,o)=>t in r?u(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o,n=(r,t)=>{for(var o in t||(t={}))b.call(t,o)&&l(r,o,t[o]);if(a)for(var o of a(t))T.call(t,o)&&l(r,o,t[o]);return r},i=(r,t)=>g(r,p(t));import{g as f}from"./index.js";import{_ as c,F as h}from"./antd-eedb3ef5.js";import"./vue-72a104e4.js";const x={lang:{shortWeekDays:["一","二","三","四","五","六","日"],shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}},_=Object.freeze(Object.defineProperty({__proto__:null,default:x},Symbol.toStringTag,{value:"Module"})),y={okText:"确认",closeText:"关闭",cancelText:"取消",loadingText:"加载中...",saveText:"保存",delText:"删除",resetText:"重置",searchText:"菜单关键词",queryText:"查询",inputText:"请输入",chooseText:"请选择",redo:"刷新",back:"返回",light:"亮色主题",dark:"黑暗主题"},S=Object.freeze(Object.defineProperty({__proto__:null,default:y},Symbol.toStringTag,{value:"Module"})),M={app:{searchNotData:"暂无搜索结果",toSearch:"确认",toNavigate:"切换"},countdown:{normalText:"获取验证码",sendText:"{0}秒后重新获取"},cropper:{selectImage:"选择图片",uploadSuccess:"上传成功",imageTooBig:"图片超限",modalTitle:"头像上传",okText:"确认并上传",btn_reset:"重置",btn_rotate_left:"逆时针旋转",btn_rotate_right:"顺时针旋转",btn_scale_x:"水平翻转",btn_scale_y:"垂直翻转",btn_zoom_in:"放大",btn_zoom_out:"缩小",preview:"预览"},drawer:{loadingText:"加载中...",cancelText:"关闭",okText:"确认"},excel:{exportModalTitle:"导出数据",fileType:"文件类型",fileName:"文件名"},form:{putAway:"收起",unfold:"展开",maxTip:"字符数应小于{0}位",apiSelectNotFound:"请等待数据加载完成..."},icon:{placeholder:"点击选择图标",search:"搜索图标",copy:"复制图标成功!"},menu:{search:"菜单搜索"},modal:{cancelText:"关闭",okText:"确认",close:"关闭",maximize:"最大化",restore:"还原"},table:{settingDens:"密度",settingDensDefault:"默认",settingDensMiddle:"中等",settingDensSmall:"紧凑",settingColumn:"列设置",settingColumnShow:"列展示",settingIndexColumnShow:"序号列",settingSelectColumnShow:"勾选列",settingFixedLeft:"固定到左侧",settingFixedRight:"固定到右侧",settingFullScreen:"全屏",index:"序号",total:"共 {total} 条数据"},time:{before:"前",after:"后",just:"刚刚",seconds:"秒",minutes:"分钟",hours:"小时",days:"天"},tree:{selectAll:"选择全部",unSelectAll:"取消选择",expandAll:"展开全部",unExpandAll:"折叠全部",checkStrictly:"层级关联",checkUnStrictly:"层级独立"},upload:{save:"保存",upload:"上传",imgUpload:"图片上传",uploaded:"已上传",operating:"操作",del:"删除",download:"下载",saveWarn:"请等待文件上传后,保存!",saveError:"没有上传成功的文件,无法保存!",preview:"预览",choose:"选择文件",accept:"支持{0}格式",acceptUpload:"只能上传{0}格式文件",maxSize:"单个文件不超过{0}MB",maxSizeMultiple:"只能上传不超过{0}MB的文件!",maxNumber:"最多只能上传{0}个文件",legend:"略缩图",fileName:"文件名",fileSize:"文件大小",fileStatue:"状态",startUpload:"开始上传",uploadSuccess:"上传成功",uploadError:"上传失败",uploading:"上传中",uploadWait:"请等待文件上传结束后操作",reUploadFailed:"重新上传失败文件"},verify:{error:"验证失败!",time:"验证校验成功,耗时{time}秒!",redoTip:"点击图片可刷新",dragText:"请按住滑块拖动",successText:"验证通过"}},k=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"})),v={footer:{onlinePreview:"在线预览",onlineDocument:"在线文档"},header:{dropdownItemDoc:"文档",dropdownItemLoginOut:"退出系统",tooltipErrorLog:"错误日志",tooltipLock:"锁定屏幕",tooltipChangePassword:"修改密码",tooltipNotify:"消息通知",tooltipEntryFull:"全屏",tooltipExitFull:"退出全屏",lockScreenPassword:"锁屏密码",lockScreen:"锁定屏幕",lockScreenBtn:"锁定",home:"首页"},multipleTab:{reload:"重新加载",close:"关闭标签页",closeLeft:"关闭左侧标签页",closeRight:"关闭右侧标签页",closeOther:"关闭其它标签页",closeAll:"关闭全部标签页"},setting:{contentModeFull:"流式",contentModeFixed:"定宽",topMenuAlignLeft:"居左",topMenuAlignRight:"居中",topMenuAlignCenter:"居右",menuTriggerNone:"不显示",menuTriggerBottom:"底部",menuTriggerTop:"顶部",menuTypeSidebar:"左侧菜单模式",menuTypeMixSidebar:"左侧菜单混合模式",menuTypeMix:"顶部菜单混合模式",menuTypeTopMenu:"顶部菜单模式",on:"开",off:"关",minute:"分钟",operatingTitle:"操作成功",operatingContent:"复制成功,请到 src/settings/projectSetting.ts 中修改配置!",resetSuccess:"重置成功!",copyBtn:"拷贝",clearBtn:"清空缓存并返回登录页",drawerTitle:"项目配置",darkMode:"主题",navMode:"导航栏模式",interfaceFunction:"界面功能",interfaceDisplay:"界面显示",animation:"动画",splitMenu:"分割菜单",closeMixSidebarOnChange:"切换页面关闭菜单",sysTheme:"系统主题",headerTheme:"顶栏主题",sidebarTheme:"菜单主题",menuDrag:"侧边菜单拖拽",menuSearch:"菜单搜索",menuAccordion:"侧边菜单手风琴模式",menuCollapse:"折叠菜单",collapseMenuDisplayName:"折叠菜单显示名称",topMenuLayout:"顶部菜单布局",menuCollapseButton:"菜单折叠按钮",contentMode:"内容区域宽度",expandedMenuWidth:"菜单展开宽度",breadcrumb:"面包屑",breadcrumbIcon:"面包屑图标",tabs:"标签页",tabDetail:"标签详情页",tabsQuickBtn:"标签页快捷按钮",tabsRedoBtn:"标签页刷新按钮",tabsFoldBtn:"标签页折叠按钮",sidebar:"左侧菜单",header:"顶栏",footer:"页脚",fullContent:"全屏内容",grayMode:"灰色模式",colorWeak:"色弱模式",progress:"顶部进度条",switchLoading:"切换loading",switchAnimation:"切换动画",animationType:"动画类型",autoScreenLock:"自动锁屏",notAutoScreenLock:"不自动锁屏",fixedHeader:"固定header",fixedSideBar:"固定Sidebar",mixSidebarTrigger:"混合菜单触发方式",triggerHover:"悬停",triggerClick:"点击",mixSidebarFixed:"固定展开菜单"}},C=Object.freeze(Object.defineProperty({__proto__:null,default:v},Symbol.toStringTag,{value:"Module"})),w={login:"登录",changePassword:"修改密码",errorLogList:"错误日志列表"},F=Object.freeze(Object.defineProperty({__proto__:null,default:w},Symbol.toStringTag,{value:"Module"})),P={dashboard:"Dashboard",about:"关于",workbench:"工作台",analysis:"分析页"},$=Object.freeze(Object.defineProperty({__proto__:null,default:P},Symbol.toStringTag,{value:"Module"})),D={charts:{baiduMap:"百度地图",aMap:"高德地图",googleMap:"谷歌地图",charts:"图表",map:"地图",line:"折线图",pie:"饼图"},comp:{comp:"组件",basic:"基础组件",transition:"动画组件",countTo:"数字动画",scroll:"滚动组件",scrollBasic:"基础滚动",scrollAction:"滚动函数",virtualScroll:"虚拟滚动",tree:"Tree",treeBasic:"基础树",editTree:"可搜索/工具栏",actionTree:"函数操作示例",modal:"弹窗扩展",drawer:"抽屉扩展",desc:"详情组件",verify:"验证组件",verifyDrag:"拖拽校验",verifyRotate:"图片还原",qrcode:"二维码组件",strength:"密码强度组件",upload:"上传组件",loading:"Loading",time:"相对时间",cropperImage:"图片裁剪",cardList:"卡片列表"},editor:{editor:"编辑器",jsonEditor:"Json编辑器",markdown:"markdown编辑器",tinymce:"富文本",tinymceBasic:"基础使用",tinymceForm:"嵌入form"},excel:{excel:"Excel",customExport:"选择导出格式",jsonExport:"JSON数据导出",arrayExport:"Array数据导出",importExcel:"导入"},feat:{feat:"功能",icon:"图标",sessionTimeout:"登录过期",tabs:"标签页操作",tabDetail:"标签详情页",print:"打印",contextMenu:"右键菜单",download:"文件下载",clickOutSide:"ClickOutSide组件",imgPreview:"图片预览",copy:"剪切板",msg:"消息提示",watermark:"水印",ripple:"水波纹",fullScreen:"全屏",errorLog:"错误日志",tab:"Tab带参",tab1:"Tab带参1",tab2:"Tab带参2",menu:"Menu带参",menu1:"Menu带参1",menu2:"Menu带参2",ws:"websocket测试",breadcrumb:"面包屑导航",breadcrumbFlat:"平级模式",requestDemo:"测试请求重试",breadcrumbFlatDetail:"平级详情",breadcrumbChildren:"层级模式",breadcrumbChildrenDetail:"层级详情"},flow:{name:"图形编辑器",flowChart:"流程图"},form:{form:"Form",basic:"基础表单",useForm:"useForm",refForm:"RefForm",advancedForm:"可收缩表单",ruleForm:"表单验证",dynamicForm:"动态表单",customerForm:"自定义组件",appendForm:"表单增删示例",tabsForm:"标签页+多级field"},iframe:{frame:"外部页面",antv:"antVue文档(内嵌)",doc:"项目文档(内嵌)",docExternal:"项目文档(外链)"},level:{level:"多级菜单"},page:{page:"页面",form:"表单页",formBasic:"基础表单",formStep:"分步表单",formHigh:"高级表单",desc:"详情页",descBasic:"基础详情页",descHigh:"高级详情页",result:"结果页",resultSuccess:"成功页",resultFail:"失败页",account:"个人页",accountCenter:"个人中心",accountSetting:"个人设置",exception:"异常页",netWorkError:"网络错误",notData:"无数据",list:"列表页",listCard:"卡片列表",listBasic:"标准列表",listSearch:"搜索列表"},permission:{permission:"权限管理",front:"基于前端权限",frontPage:"页面权限",frontBtn:"按钮权限",frontTestA:"权限测试页A",frontTestB:"权限测试页B",back:"基于后台权限",backPage:"页面权限",backBtn:"按钮权限"},setup:{page:"引导页"},system:{moduleName:"系统管理",account:"账号管理",account_detail:"账号详情",password:"修改密码",dept:"部门管理",menu:"菜单管理",role:"角色管理"},table:{table:"Table",basic:"基础表格",treeTable:"树形表格",fetchTable:"远程加载示例",fixedColumn:"固定列",customerCell:"自定义列",formTable:"开启搜索区域",useTable:"UseTable",refTable:"RefTable",multipleHeader:"多级表头",mergeHeader:"合并单元格",expandTable:"可展开表格",fixedHeight:"定高/头部自定义",footerTable:"表尾行合计",editCellTable:"可编辑单元格",editRowTable:"可编辑行",authColumn:"权限列",resizeParentHeightTable:"继承父元素高度",vxeTable:"VxeTable"}},z=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),j={api:{operationSuccess:"操作成功",operationFailed:"操作失败",errorTip:"错误提示",successTip:"成功提示",errorMessage:"操作失败,系统异常!",timeoutMessage:"登录超时,请重新登录!",apiTimeoutMessage:"接口请求超时,请刷新页面重试!",apiRequestFailed:"请求出错,请稍候重试",networkException:"网络异常",networkExceptionMsg:"网络异常,请检查您的网络连接是否正常!",errMsg401:"用户没有权限(令牌、用户名、密码错误)!",errMsg403:"用户得到授权,但是访问是被禁止的。!",errMsg404:"网络请求错误,未找到该资源!",errMsg405:"网络请求错误,请求方法未允许!",errMsg408:"网络请求超时!",errMsg500:"服务器错误,请联系管理员!",errMsg501:"网络未实现!",errMsg502:"网络错误!",errMsg503:"服务不可用,服务器暂时过载或维护!",errMsg504:"网络超时!",errMsg505:"http版本不支持该请求!"},app:{logoutTip:"温馨提醒",logoutMessage:"是否确认退出系统?",menuLoading:"菜单加载中..."},errorLog:{tableTitle:"错误日志列表",tableColumnType:"类型",tableColumnDate:"时间",tableColumnFile:"文件",tableColumnMsg:"错误信息",tableColumnStackMsg:"stack信息",tableActionDesc:"详情",modalTitle:"错误详情",fireVueError:"点击触发vue错误",fireResourceError:"点击触发资源加载错误",fireAjaxError:"点击触发ajax错误",enableMessage:"只在`/src/settings/projectSetting.ts` 内的useErrorHandle=true时生效."},exception:{backLogin:"返回登录",backHome:"返回首页",subTitle403:"抱歉,您无权访问此页面。",subTitle404:"抱歉,您访问的页面不存在。",subTitle500:"抱歉,服务器报告错误。",noDataTitle:"当前页无数据",networkErrorTitle:"网络错误",networkErrorSubTitle:"抱歉,您的网络连接已断开,请检查您的网络!"},lock:{unlock:"点击解锁",alert:"锁屏密码错误",backToLogin:"返回登录",entry:"进入系统",placeholder:"请输入锁屏密码或者用户密码"},login:{backSignIn:"返回",signInFormTitle:"登录",mobileSignInFormTitle:"手机登录",qrSignInFormTitle:"二维码登录",signUpFormTitle:"注册",forgetFormTitle:"重置密码",signInTitle:"开箱即用的中后台管理系统",signInDesc:"输入您的个人详细信息开始使用!",policy:"我同意xxx隐私政策",scanSign:'扫码后点击"确认",即可完成登录',loginButton:"登录",registerButton:"注册",rememberMe:"记住我",forgetPassword:"忘记密码?",otherSignIn:"其他登录方式",loginSuccessTitle:"登录成功",loginSuccessDesc:"欢迎回来",accountPlaceholder:"请输入账号",passwordPlaceholder:"请输入密码",smsPlaceholder:"请输入验证码",mobilePlaceholder:"请输入手机号码",policyPlaceholder:"勾选后才能注册",diffPwd:"两次输入密码不一致",userName:"账号",password:"密码",confirmPassword:"确认密码",email:"邮箱",smsCode:"短信验证码",mobile:"手机号码"}},E=Object.freeze(Object.defineProperty({__proto__:null,default:j},Symbol.toStringTag,{value:"Module"})),N={locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",yearFormat:"YYYY年",dayFormat:"D日",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH时mm分ss秒",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"},B=N,O={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},d=O,m={lang:c({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},B),timePickerLocale:c({},d)};m.lang.ok="确定";const s=m,e="${label}不是一个有效的${type}",A={locale:"zh-cn",Pagination:h,DatePicker:s,TimePicker:d,Calendar:s,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckall:"全选",filterSearchPlaceholder:"在筛选项中搜索",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开"},PageHeader:{back:"返回"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:e,method:e,array:e,object:e,number:e,date:e,boolean:e,integer:e,float:e,regexp:e,email:e,url:e,hex:e},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码已过期",refresh:"点击刷新",scanned:"已扫描"}},L=A,I=Object.assign({"./zh-CN/antdLocale/DatePicker.ts":_,"./zh-CN/common.ts":S,"./zh-CN/component.ts":k,"./zh-CN/layout.ts":C,"./zh-CN/routes/basic.ts":F,"./zh-CN/routes/dashboard.ts":$,"./zh-CN/routes/demo.ts":z,"./zh-CN/sys.ts":E}),q={message:i(n({},f(I,"zh-CN")),{antdLocale:L})};export{q as default}; diff --git a/detect.gui/Embedded/dist/pdf.worker.mjs b/detect.gui/Embedded/dist/pdf.worker.mjs new file mode 100644 index 0000000..92eba68 --- /dev/null +++ b/detect.gui/Embedded/dist/pdf.worker.mjs @@ -0,0 +1,56979 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2024 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = globalThis.pdfjsWorker = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + WorkerMessageHandler: () => (/* reexport */ WorkerMessageHandler) +}); + +;// ./src/shared/util.js +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const MAX_IMAGE_SIZE_TO_CACHE = 10e6; +const LINE_FACTOR = 1.35; +const LINE_DESCENT_FACTOR = 0.35; +const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR; +const RenderingIntentFlag = { + ANY: 0x01, + DISPLAY: 0x02, + PRINT: 0x04, + SAVE: 0x08, + ANNOTATIONS_FORMS: 0x10, + ANNOTATIONS_STORAGE: 0x20, + ANNOTATIONS_DISABLE: 0x40, + IS_EDITING: 0x80, + OPLIST: 0x100 +}; +const AnnotationMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_FORMS: 2, + ENABLE_STORAGE: 3 +}; +const AnnotationEditorPrefix = "pdfjs_internal_editor_"; +const AnnotationEditorType = { + DISABLE: -1, + NONE: 0, + FREETEXT: 3, + HIGHLIGHT: 9, + STAMP: 13, + INK: 15 +}; +const AnnotationEditorParamsType = { + RESIZE: 1, + CREATE: 2, + FREETEXT_SIZE: 11, + FREETEXT_COLOR: 12, + FREETEXT_OPACITY: 13, + INK_COLOR: 21, + INK_THICKNESS: 22, + INK_OPACITY: 23, + HIGHLIGHT_COLOR: 31, + HIGHLIGHT_DEFAULT_COLOR: 32, + HIGHLIGHT_THICKNESS: 33, + HIGHLIGHT_FREE: 34, + HIGHLIGHT_SHOW_ALL: 35, + DRAW_STEP: 41 +}; +const PermissionFlag = { + PRINT: 0x04, + MODIFY_CONTENTS: 0x08, + COPY: 0x10, + MODIFY_ANNOTATIONS: 0x20, + FILL_INTERACTIVE_FORMS: 0x100, + COPY_FOR_ACCESSIBILITY: 0x200, + ASSEMBLE: 0x400, + PRINT_HIGH_QUALITY: 0x800 +}; +const TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +const ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +const AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +const AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +const AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +const AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +const AnnotationActionEventType = { + E: "Mouse Enter", + X: "Mouse Exit", + D: "Mouse Down", + U: "Mouse Up", + Fo: "Focus", + Bl: "Blur", + PO: "PageOpen", + PC: "PageClose", + PV: "PageVisible", + PI: "PageInvisible", + K: "Keystroke", + F: "Format", + V: "Validate", + C: "Calculate" +}; +const DocumentActionEventType = { + WC: "WillClose", + WS: "WillSave", + DS: "DidSave", + WP: "WillPrint", + DP: "DidPrint" +}; +const PageActionEventType = { + O: "PageOpen", + C: "PageClose" +}; +const VerbosityLevel = { + ERRORS: 0, + WARNINGS: 1, + INFOS: 5 +}; +const OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotation: 80, + endAnnotation: 81, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91, + setStrokeTransparent: 92, + setFillTransparent: 93 +}; +const PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +let verbosity = VerbosityLevel.WARNINGS; +function setVerbosityLevel(level) { + if (Number.isInteger(level)) { + verbosity = level; + } +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VerbosityLevel.INFOS) { + console.log(`Info: ${msg}`); + } +} +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log(`Warning: ${msg}`); + } +} +function unreachable(msg) { + throw new Error(msg); +} +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} +function _isValidProtocol(url) { + switch (url?.protocol) { + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url, baseUrl = null, options = null) { + if (!url) { + return null; + } + try { + if (options && typeof url === "string") { + if (options.addDefaultProtocol && url.startsWith("www.")) { + const dots = url.match(/\./g); + if (dots?.length >= 2) { + url = `http://${url}`; + } + } + if (options.tryConvertEncoding) { + try { + url = stringToUTF8String(url); + } catch {} + } + } + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + if (_isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch {} + return null; +} +function shadow(obj, prop, value, nonSerializable = false) { + Object.defineProperty(obj, prop, { + value, + enumerable: !nonSerializable, + configurable: true, + writable: false + }); + return value; +} +const BaseException = function BaseExceptionClosure() { + function BaseException(message, name) { + this.message = message; + this.name = name; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg, "PasswordException"); + this.code = code; + } +} +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg, "UnknownErrorException"); + this.details = details; + } +} +class InvalidPDFException extends BaseException { + constructor(msg) { + super(msg, "InvalidPDFException"); + } +} +class MissingPDFException extends BaseException { + constructor(msg) { + super(msg, "MissingPDFException"); + } +} +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg, "UnexpectedResponseException"); + this.status = status; + } +} +class FormatError extends BaseException { + constructor(msg) { + super(msg, "FormatError"); + } +} +class AbortException extends BaseException { + constructor(msg) { + super(msg, "AbortException"); + } +} +function bytesToString(bytes) { + if (typeof bytes !== "object" || bytes?.length === undefined) { + unreachable("Invalid argument for bytesToString"); + } + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + const strBuf = []; + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + return strBuf.join(""); +} +function stringToBytes(str) { + if (typeof str !== "string") { + unreachable("Invalid argument for stringToBytes"); + } + const length = str.length; + const bytes = new Uint8Array(length); + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; + } + return bytes; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +function objectSize(obj) { + return Object.keys(obj).length; +} +function objectFromMap(map) { + const obj = Object.create(null); + for (const [key, value] of map) { + obj[key] = value; + } + return obj; +} +function isLittleEndian() { + const buffer8 = new Uint8Array(4); + buffer8[0] = 1; + const view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} +function isEvalSupported() { + try { + new Function(""); + return true; + } catch { + return false; + } +} +class FeatureTest { + static get isLittleEndian() { + return shadow(this, "isLittleEndian", isLittleEndian()); + } + static get isEvalSupported() { + return shadow(this, "isEvalSupported", isEvalSupported()); + } + static get isOffscreenCanvasSupported() { + return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); + } + static get isImageDecoderSupported() { + return shadow(this, "isImageDecoderSupported", typeof ImageDecoder !== "undefined"); + } + static get platform() { + if (typeof navigator !== "undefined" && typeof navigator?.platform === "string") { + return shadow(this, "platform", { + isMac: navigator.platform.includes("Mac"), + isWindows: navigator.platform.includes("Win"), + isFirefox: typeof navigator?.userAgent === "string" && navigator.userAgent.includes("Firefox") + }); + } + return shadow(this, "platform", { + isMac: false, + isWindows: false, + isFirefox: false + }); + } + static get isCSSRoundSupported() { + return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)")); + } +} +const hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, "0")); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } + static scaleMinMax(transform, minMax) { + let temp; + if (transform[0]) { + if (transform[0] < 0) { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + } + minMax[0] *= transform[0]; + minMax[2] *= transform[0]; + if (transform[3] < 0) { + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + } + minMax[1] *= transform[3]; + minMax[3] *= transform[3]; + } else { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + if (transform[1] < 0) { + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + } + minMax[1] *= transform[1]; + minMax[3] *= transform[1]; + if (transform[2] < 0) { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + } + minMax[0] *= transform[2]; + minMax[2] *= transform[2]; + } + minMax[0] += transform[4]; + minMax[1] += transform[5]; + minMax[2] += transform[4]; + minMax[3] += transform[5]; + } + static transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + } + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + } + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + } + static getAxialAlignedBoundingBox(r, m) { + const p1 = this.applyTransform(r, m); + const p2 = this.applyTransform(r.slice(2, 4), m); + const p3 = this.applyTransform([r[0], r[3]], m); + const p4 = this.applyTransform([r[2], r[1]], m); + return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; + } + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + } + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + } + static normalizeRect(rect) { + const r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + } + static intersect(rect1, rect2) { + const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); + const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); + if (xLow > xHigh) { + return null; + } + const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); + const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); + if (yLow > yHigh) { + return null; + } + return [xLow, yLow, xHigh, yHigh]; + } + static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) { + if (t <= 0 || t >= 1) { + return; + } + const mt = 1 - t; + const tt = t * t; + const ttt = tt * t; + const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3; + const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3; + minMax[0] = Math.min(minMax[0], x); + minMax[1] = Math.min(minMax[1], y); + minMax[2] = Math.max(minMax[2], x); + minMax[3] = Math.max(minMax[3], y); + } + static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) { + if (Math.abs(a) < 1e-12) { + if (Math.abs(b) >= 1e-12) { + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax); + } + return; + } + const delta = b ** 2 - 4 * c * a; + if (delta < 0) { + return; + } + const sqrtDelta = Math.sqrt(delta); + const a2 = 2 * a; + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax); + this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax); + } + static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) { + if (minMax) { + minMax[0] = Math.min(minMax[0], x0, x3); + minMax[1] = Math.min(minMax[1], y0, y3); + minMax[2] = Math.max(minMax[2], x0, x3); + minMax[3] = Math.max(minMax[3], y0, y3); + } else { + minMax = [Math.min(x0, x3), Math.min(y0, y3), Math.max(x0, x3), Math.max(y0, y3)]; + } + this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax); + this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax); + return minMax; + } +} +const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; +function stringToPDFString(str) { + if (str[0] >= "\xEF") { + let encoding; + if (str[0] === "\xFE" && str[1] === "\xFF") { + encoding = "utf-16be"; + if (str.length % 2 === 1) { + str = str.slice(0, -1); + } + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + encoding = "utf-16le"; + if (str.length % 2 === 1) { + str = str.slice(0, -1); + } + } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { + encoding = "utf-8"; + } + if (encoding) { + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = stringToBytes(str); + const decoded = decoder.decode(buffer); + if (!decoded.includes("\x1b")) { + return decoded; + } + return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, ""); + } catch (ex) { + warn(`stringToPDFString: "${ex}".`); + } + } + } + const strBuf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const charCode = str.charCodeAt(i); + if (charCode === 0x1b) { + while (++i < ii && str.charCodeAt(i) !== 0x1b) {} + continue; + } + const code = PDFStringTranslateTable[charCode]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + return strBuf.join(""); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isArrayEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + return true; +} +function getModificationDate(date = new Date()) { + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); +} +let NormalizeRegex = null; +let NormalizationMap = null; +function normalizeUnicode(str) { + if (!NormalizeRegex) { + NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu; + NormalizationMap = new Map([["ſt", "ſt"]]); + } + return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2)); +} +function getUuid() { + if (typeof crypto.randomUUID === "function") { + return crypto.randomUUID(); + } + const buf = new Uint8Array(32); + crypto.getRandomValues(buf); + return bytesToString(buf); +} +const AnnotationPrefix = "pdfjs_internal_id_"; +function toHexUtil(arr) { + if (Uint8Array.prototype.toHex) { + return arr.toHex(); + } + return Array.from(arr, num => hexNumbers[num]).join(""); +} +function toBase64Util(arr) { + if (Uint8Array.prototype.toBase64) { + return arr.toBase64(); + } + return btoa(bytesToString(arr)); +} +function fromBase64Util(str) { + if (Uint8Array.fromBase64) { + return Uint8Array.fromBase64(str); + } + return stringToBytes(atob(str)); +} +if (typeof Promise.try !== "function") { + Promise.try = function (fn, ...args) { + return new Promise(resolve => { + resolve(fn(...args)); + }); + }; +} + +;// ./src/core/primitives.js + +const CIRCULAR_REF = Symbol("CIRCULAR_REF"); +const EOF = Symbol("EOF"); +let CmdCache = Object.create(null); +let NameCache = Object.create(null); +let RefCache = Object.create(null); +function clearPrimitiveCaches() { + CmdCache = Object.create(null); + NameCache = Object.create(null); + RefCache = Object.create(null); +} +class Name { + constructor(name) { + this.name = name; + } + static get(name) { + return NameCache[name] ||= new Name(name); + } +} +class Cmd { + constructor(cmd) { + this.cmd = cmd; + } + static get(cmd) { + return CmdCache[cmd] ||= new Cmd(cmd); + } +} +const nonSerializable = function nonSerializableClosure() { + return nonSerializable; +}; +class Dict { + constructor(xref = null) { + this._map = new Map(); + this.xref = xref; + this.objId = null; + this.suppressEncryption = false; + this.__nonSerializable__ = nonSerializable; + } + assignXref(newXref) { + this.xref = newXref; + } + get size() { + return this._map.size; + } + get(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + return this.xref.fetch(value, this.suppressEncryption); + } + return value; + } + async getAsync(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + return this.xref.fetchAsync(value, this.suppressEncryption); + } + return value; + } + getArray(key1, key2, key3) { + let value = this._map.get(key1); + if (value === undefined && key2 !== undefined) { + value = this._map.get(key2); + if (value === undefined && key3 !== undefined) { + value = this._map.get(key3); + } + } + if (value instanceof Ref && this.xref) { + value = this.xref.fetch(value, this.suppressEncryption); + } + if (Array.isArray(value)) { + value = value.slice(); + for (let i = 0, ii = value.length; i < ii; i++) { + if (value[i] instanceof Ref && this.xref) { + value[i] = this.xref.fetch(value[i], this.suppressEncryption); + } + } + } + return value; + } + getRaw(key) { + return this._map.get(key); + } + getKeys() { + return [...this._map.keys()]; + } + getRawValues() { + return [...this._map.values()]; + } + set(key, value) { + this._map.set(key, value); + } + has(key) { + return this._map.has(key); + } + *[Symbol.iterator]() { + for (const [key, value] of this._map) { + yield [key, value instanceof Ref && this.xref ? this.xref.fetch(value, this.suppressEncryption) : value]; + } + } + static get empty() { + const emptyDict = new Dict(null); + emptyDict.set = (key, value) => { + unreachable("Should not call `set` on the empty dictionary."); + }; + return shadow(this, "empty", emptyDict); + } + static merge({ + xref, + dictArray, + mergeSubDicts = false + }) { + const mergedDict = new Dict(xref), + properties = new Map(); + for (const dict of dictArray) { + if (!(dict instanceof Dict)) { + continue; + } + for (const [key, value] of dict._map) { + let property = properties.get(key); + if (property === undefined) { + property = []; + properties.set(key, property); + } else if (!mergeSubDicts || !(value instanceof Dict)) { + continue; + } + property.push(value); + } + } + for (const [name, values] of properties) { + if (values.length === 1 || !(values[0] instanceof Dict)) { + mergedDict._map.set(name, values[0]); + continue; + } + const subDict = new Dict(xref); + for (const dict of values) { + for (const [key, value] of dict._map) { + if (!subDict._map.has(key)) { + subDict._map.set(key, value); + } + } + } + if (subDict.size > 0) { + mergedDict._map.set(name, subDict); + } + } + properties.clear(); + return mergedDict.size > 0 ? mergedDict : Dict.empty; + } + clone() { + const dict = new Dict(this.xref); + for (const key of this.getKeys()) { + dict.set(key, this.getRaw(key)); + } + return dict; + } + delete(key) { + delete this._map[key]; + } +} +class Ref { + constructor(num, gen) { + this.num = num; + this.gen = gen; + } + toString() { + if (this.gen === 0) { + return `${this.num}R`; + } + return `${this.num}R${this.gen}`; + } + static fromString(str) { + const ref = RefCache[str]; + if (ref) { + return ref; + } + const m = /^(\d+)R(\d*)$/.exec(str); + if (!m || m[1] === "0") { + return null; + } + return RefCache[str] = new Ref(parseInt(m[1]), !m[2] ? 0 : parseInt(m[2])); + } + static get(num, gen) { + const key = gen === 0 ? `${num}R` : `${num}R${gen}`; + return RefCache[key] ||= new Ref(num, gen); + } +} +class RefSet { + constructor(parent = null) { + this._set = new Set(parent?._set); + } + has(ref) { + return this._set.has(ref.toString()); + } + put(ref) { + this._set.add(ref.toString()); + } + remove(ref) { + this._set.delete(ref.toString()); + } + [Symbol.iterator]() { + return this._set.values(); + } + clear() { + this._set.clear(); + } +} +class RefSetCache { + constructor() { + this._map = new Map(); + } + get size() { + return this._map.size; + } + get(ref) { + return this._map.get(ref.toString()); + } + has(ref) { + return this._map.has(ref.toString()); + } + put(ref, obj) { + this._map.set(ref.toString(), obj); + } + putAlias(ref, aliasRef) { + this._map.set(ref.toString(), this.get(aliasRef)); + } + [Symbol.iterator]() { + return this._map.values(); + } + clear() { + this._map.clear(); + } + *values() { + yield* this._map.values(); + } + *items() { + for (const [ref, value] of this._map) { + yield [Ref.fromString(ref), value]; + } + } +} +function isName(v, name) { + return v instanceof Name && (name === undefined || v.name === name); +} +function isCmd(v, cmd) { + return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); +} +function isDict(v, type) { + return v instanceof Dict && (type === undefined || isName(v.get("Type"), type)); +} +function isRefsEqual(v1, v2) { + return v1.num === v2.num && v1.gen === v2.gen; +} + +;// ./src/core/base_stream.js + +class BaseStream { + get length() { + unreachable("Abstract getter `length` accessed"); + } + get isEmpty() { + unreachable("Abstract getter `isEmpty` accessed"); + } + get isDataLoaded() { + return shadow(this, "isDataLoaded", true); + } + getByte() { + unreachable("Abstract method `getByte` called"); + } + getBytes(length) { + unreachable("Abstract method `getBytes` called"); + } + async getImageData(length, decoderOptions) { + return this.getBytes(length, decoderOptions); + } + async asyncGetBytes() { + unreachable("Abstract method `asyncGetBytes` called"); + } + get isAsync() { + return false; + } + get canAsyncDecodeImageFromBuffer() { + return false; + } + async getTransferableImage() { + return null; + } + peekByte() { + const peekedByte = this.getByte(); + if (peekedByte !== -1) { + this.pos--; + } + return peekedByte; + } + peekBytes(length) { + const bytes = this.getBytes(length); + this.pos -= bytes.length; + return bytes; + } + getUint16() { + const b0 = this.getByte(); + const b1 = this.getByte(); + if (b0 === -1 || b1 === -1) { + return -1; + } + return (b0 << 8) + b1; + } + getInt32() { + const b0 = this.getByte(); + const b1 = this.getByte(); + const b2 = this.getByte(); + const b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + getByteRange(begin, end) { + unreachable("Abstract method `getByteRange` called"); + } + getString(length) { + return bytesToString(this.getBytes(length)); + } + skip(n) { + this.pos += n || 1; + } + reset() { + unreachable("Abstract method `reset` called"); + } + moveStart() { + unreachable("Abstract method `moveStart` called"); + } + makeSubStream(start, length, dict = null) { + unreachable("Abstract method `makeSubStream` called"); + } + getBaseStreams() { + return null; + } +} + +;// ./src/core/core_utils.js + + + +const PDF_VERSION_REGEXP = /^[1-9]\.\d$/; +const MAX_INT_32 = 2 ** 31 - 1; +const MIN_INT_32 = -(2 ** 31); +function getLookupTableFactory(initializer) { + let lookup; + return function () { + if (initializer) { + lookup = Object.create(null); + initializer(lookup); + initializer = null; + } + return lookup; + }; +} +class MissingDataException extends BaseException { + constructor(begin, end) { + super(`Missing data [${begin}, ${end})`, "MissingDataException"); + this.begin = begin; + this.end = end; + } +} +class ParserEOFException extends BaseException { + constructor(msg) { + super(msg, "ParserEOFException"); + } +} +class XRefEntryException extends BaseException { + constructor(msg) { + super(msg, "XRefEntryException"); + } +} +class XRefParseException extends BaseException { + constructor(msg) { + super(msg, "XRefParseException"); + } +} +function arrayBuffersToBytes(arr) { + const length = arr.length; + if (length === 0) { + return new Uint8Array(0); + } + if (length === 1) { + return new Uint8Array(arr[0]); + } + let dataLength = 0; + for (let i = 0; i < length; i++) { + dataLength += arr[i].byteLength; + } + const data = new Uint8Array(dataLength); + let pos = 0; + for (let i = 0; i < length; i++) { + const item = new Uint8Array(arr[i]); + data.set(item, pos); + pos += item.byteLength; + } + return data; +} +function getInheritableProperty({ + dict, + key, + getArray = false, + stopWhenFound = true +}) { + let values; + const visited = new RefSet(); + while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) { + if (dict.objId) { + visited.put(dict.objId); + } + const value = getArray ? dict.getArray(key) : dict.get(key); + if (value !== undefined) { + if (stopWhenFound) { + return value; + } + (values ||= []).push(value); + } + dict = dict.get("Parent"); + } + return values; +} +function getParentToUpdate(dict, ref, xref) { + const visited = new RefSet(); + const firstDict = dict; + const result = { + dict: null, + ref: null + }; + while (dict instanceof Dict && !visited.has(ref)) { + visited.put(ref); + if (dict.has("T")) { + break; + } + ref = dict.getRaw("Parent"); + if (!(ref instanceof Ref)) { + return result; + } + dict = xref.fetch(ref); + } + if (dict instanceof Dict && dict !== firstDict) { + result.dict = dict; + result.ref = ref; + } + return result; +} +const ROMAN_NUMBER_MAP = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]; +function toRomanNumerals(number, lowerCase = false) { + assert(Number.isInteger(number) && number > 0, "The number should be a positive integer."); + const roman = "M".repeat(number / 1000 | 0) + ROMAN_NUMBER_MAP[number % 1000 / 100 | 0] + ROMAN_NUMBER_MAP[10 + (number % 100 / 10 | 0)] + ROMAN_NUMBER_MAP[20 + number % 10]; + return lowerCase ? roman.toLowerCase() : roman; +} +function log2(x) { + return x > 0 ? Math.ceil(Math.log2(x)) : 0; +} +function readInt8(data, offset) { + return data[offset] << 24 >> 24; +} +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} +function isWhiteSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a; +} +function isBooleanArray(arr, len) { + return Array.isArray(arr) && (len === null || arr.length === len) && arr.every(x => typeof x === "boolean"); +} +function isNumberArray(arr, len) { + if (Array.isArray(arr)) { + return (len === null || arr.length === len) && arr.every(x => typeof x === "number"); + } + return ArrayBuffer.isView(arr) && (arr.length === 0 || typeof arr[0] === "number") && (len === null || arr.length === len); +} +function lookupMatrix(arr, fallback) { + return isNumberArray(arr, 6) ? arr : fallback; +} +function lookupRect(arr, fallback) { + return isNumberArray(arr, 4) ? arr : fallback; +} +function lookupNormalRect(arr, fallback) { + return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback; +} +function parseXFAPath(path) { + const positionPattern = /(.+)\[(\d+)\]$/; + return path.split(".").map(component => { + const m = component.match(positionPattern); + if (m) { + return { + name: m[1], + pos: parseInt(m[2], 10) + }; + } + return { + name: component, + pos: 0 + }; + }); +} +function escapePDFName(str) { + const buffer = []; + let start = 0; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(`#${char.toString(16)}`); + start = i + 1; + } + } + if (buffer.length === 0) { + return str; + } + if (start < str.length) { + buffer.push(str.substring(start, str.length)); + } + return buffer.join(""); +} +function escapeString(str) { + return str.replaceAll(/([()\\\n\r])/g, match => { + if (match === "\n") { + return "\\n"; + } else if (match === "\r") { + return "\\r"; + } + return `\\${match}`; + }); +} +function _collectJS(entry, xref, list, parents) { + if (!entry) { + return; + } + let parent = null; + if (entry instanceof Ref) { + if (parents.has(entry)) { + return; + } + parent = entry; + parents.put(parent); + entry = xref.fetch(entry); + } + if (Array.isArray(entry)) { + for (const element of entry) { + _collectJS(element, xref, list, parents); + } + } else if (entry instanceof Dict) { + if (isName(entry.get("S"), "JavaScript")) { + const js = entry.get("JS"); + let code; + if (js instanceof BaseStream) { + code = js.getString(); + } else if (typeof js === "string") { + code = js; + } + code &&= stringToPDFString(code).replaceAll("\x00", ""); + if (code) { + list.push(code); + } + } + _collectJS(entry.getRaw("Next"), xref, list, parents); + } + if (parent) { + parents.remove(parent); + } +} +function collectActions(xref, dict, eventType) { + const actions = Object.create(null); + const additionalActionsDicts = getInheritableProperty({ + dict, + key: "AA", + stopWhenFound: false + }); + if (additionalActionsDicts) { + for (let i = additionalActionsDicts.length - 1; i >= 0; i--) { + const additionalActions = additionalActionsDicts[i]; + if (!(additionalActions instanceof Dict)) { + continue; + } + for (const key of additionalActions.getKeys()) { + const action = eventType[key]; + if (!action) { + continue; + } + const actionDict = additionalActions.getRaw(key); + const parents = new RefSet(); + const list = []; + _collectJS(actionDict, xref, list, parents); + if (list.length > 0) { + actions[action] = list; + } + } + } + } + if (dict.has("A")) { + const actionDict = dict.get("A"); + const parents = new RefSet(); + const list = []; + _collectJS(actionDict, xref, list, parents); + if (list.length > 0) { + actions.Action = list; + } + } + return objectSize(actions) > 0 ? actions : null; +} +const XMLEntities = { + 0x3c: "<", + 0x3e: ">", + 0x26: "&", + 0x22: """, + 0x27: "'" +}; +function* codePointIter(str) { + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.codePointAt(i); + if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) { + i++; + } + yield char; + } +} +function encodeToXmlString(str) { + const buffer = []; + let start = 0; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.codePointAt(i); + if (0x20 <= char && char <= 0x7e) { + const entity = XMLEntities[char]; + if (entity) { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(entity); + start = i + 1; + } + } else { + if (start < i) { + buffer.push(str.substring(start, i)); + } + buffer.push(`&#x${char.toString(16).toUpperCase()};`); + if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) { + i++; + } + start = i + 1; + } + } + if (buffer.length === 0) { + return str; + } + if (start < str.length) { + buffer.push(str.substring(start, str.length)); + } + return buffer.join(""); +} +function validateFontName(fontFamily, mustWarn = false) { + const m = /^("|').*("|')$/.exec(fontFamily); + if (m && m[1] === m[2]) { + const re = new RegExp(`[^\\\\]${m[1]}`); + if (re.test(fontFamily.slice(1, -1))) { + if (mustWarn) { + warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`); + } + return false; + } + } else { + for (const ident of fontFamily.split(/[ \t]+/)) { + if (/^(\d|(-(\d|-)))/.test(ident) || !/^[\w-\\]+$/.test(ident)) { + if (mustWarn) { + warn(`FontFamily contains invalid : ${fontFamily}.`); + } + return false; + } + } + } + return true; +} +function validateCSSFont(cssFontInfo) { + const DEFAULT_CSS_FONT_OBLIQUE = "14"; + const DEFAULT_CSS_FONT_WEIGHT = "400"; + const CSS_FONT_WEIGHT_VALUES = new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]); + const { + fontFamily, + fontWeight, + italicAngle + } = cssFontInfo; + if (!validateFontName(fontFamily, true)) { + return false; + } + const weight = fontWeight ? fontWeight.toString() : ""; + cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT; + const angle = parseFloat(italicAngle); + cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString(); + return true; +} +function recoverJsURL(str) { + const URL_OPEN_METHODS = ["app.launchURL", "window.open", "xfa.host.gotoURL"]; + const regex = new RegExp("^\\s*(" + URL_OPEN_METHODS.join("|").replaceAll(".", "\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i"); + const jsUrl = regex.exec(str); + if (jsUrl?.[2]) { + return { + url: jsUrl[2], + newWindow: jsUrl[1] === "app.launchURL" && jsUrl[3] === "true" + }; + } + return null; +} +function numberToString(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + const roundedValue = Math.round(value * 100); + if (roundedValue % 100 === 0) { + return (roundedValue / 100).toString(); + } + if (roundedValue % 10 === 0) { + return value.toFixed(1); + } + return value.toFixed(2); +} +function getNewAnnotationsMap(annotationStorage) { + if (!annotationStorage) { + return null; + } + const newAnnotationsByPage = new Map(); + for (const [key, value] of annotationStorage) { + if (!key.startsWith(AnnotationEditorPrefix)) { + continue; + } + let annotations = newAnnotationsByPage.get(value.pageIndex); + if (!annotations) { + annotations = []; + newAnnotationsByPage.set(value.pageIndex, annotations); + } + annotations.push(value); + } + return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null; +} +function stringToAsciiOrUTF16BE(str) { + return isAscii(str) ? str : stringToUTF16String(str, true); +} +function isAscii(str) { + return /^[\x00-\x7F]*$/.test(str); +} +function stringToUTF16HexString(str) { + const buf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(hexNumbers[char >> 8 & 0xff], hexNumbers[char & 0xff]); + } + return buf.join(""); +} +function stringToUTF16String(str, bigEndian = false) { + const buf = []; + if (bigEndian) { + buf.push("\xFE\xFF"); + } + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); + } + return buf.join(""); +} +function getRotationMatrix(rotation, width, height) { + switch (rotation) { + case 90: + return [0, 1, -1, 0, width, 0]; + case 180: + return [-1, 0, 0, -1, width, height]; + case 270: + return [0, -1, 1, 0, 0, height]; + default: + throw new Error("Invalid rotation"); + } +} +function getSizeInBytes(x) { + return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8); +} + +;// ./src/core/stream.js + + +class Stream extends BaseStream { + constructor(arrayBuffer, start, length, dict) { + super(); + this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer); + this.start = start || 0; + this.pos = this.start; + this.end = start + length || this.bytes.length; + this.dict = dict; + } + get length() { + return this.end - this.start; + } + get isEmpty() { + return this.length === 0; + } + getByte() { + if (this.pos >= this.end) { + return -1; + } + return this.bytes[this.pos++]; + } + getBytes(length) { + const bytes = this.bytes; + const pos = this.pos; + const strEnd = this.end; + if (!length) { + return bytes.subarray(pos, strEnd); + } + let end = pos + length; + if (end > strEnd) { + end = strEnd; + } + this.pos = end; + return bytes.subarray(pos, end); + } + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + if (end > this.end) { + end = this.end; + } + return this.bytes.subarray(begin, end); + } + reset() { + this.pos = this.start; + } + moveStart() { + this.start = this.pos; + } + makeSubStream(start, length, dict = null) { + return new Stream(this.bytes.buffer, start, length, dict); + } +} +class StringStream extends Stream { + constructor(str) { + super(stringToBytes(str)); + } +} +class NullStream extends Stream { + constructor() { + super(new Uint8Array(0)); + } +} + +;// ./src/core/chunked_stream.js + + + +class ChunkedStream extends Stream { + constructor(length, chunkSize, manager) { + super(new Uint8Array(length), 0, length, null); + this.chunkSize = chunkSize; + this._loadedChunks = new Set(); + this.numChunks = Math.ceil(length / chunkSize); + this.manager = manager; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + getMissingChunks() { + const chunks = []; + for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + chunks.push(chunk); + } + } + return chunks; + } + get numChunksLoaded() { + return this._loadedChunks.size; + } + get isDataLoaded() { + return this.numChunksLoaded === this.numChunks; + } + onReceiveData(begin, chunk) { + const chunkSize = this.chunkSize; + if (begin % chunkSize !== 0) { + throw new Error(`Bad begin offset: ${begin}`); + } + const end = begin + chunk.byteLength; + if (end % chunkSize !== 0 && end !== this.bytes.length) { + throw new Error(`Bad end offset: ${end}`); + } + this.bytes.set(new Uint8Array(chunk), begin); + const beginChunk = Math.floor(begin / chunkSize); + const endChunk = Math.floor((end - 1) / chunkSize) + 1; + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + onReceiveProgressiveData(data) { + let position = this.progressiveDataLength; + const beginChunk = Math.floor(position / this.chunkSize); + this.bytes.set(new Uint8Array(data), position); + position += data.byteLength; + this.progressiveDataLength = position; + const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize); + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + this._loadedChunks.add(curChunk); + } + } + ensureByte(pos) { + if (pos < this.progressiveDataLength) { + return; + } + const chunk = Math.floor(pos / this.chunkSize); + if (chunk > this.numChunks) { + return; + } + if (chunk === this.lastSuccessfulEnsureByteChunk) { + return; + } + if (!this._loadedChunks.has(chunk)) { + throw new MissingDataException(pos, pos + 1); + } + this.lastSuccessfulEnsureByteChunk = chunk; + } + ensureRange(begin, end) { + if (begin >= end) { + return; + } + if (end <= this.progressiveDataLength) { + return; + } + const beginChunk = Math.floor(begin / this.chunkSize); + if (beginChunk > this.numChunks) { + return; + } + const endChunk = Math.min(Math.floor((end - 1) / this.chunkSize) + 1, this.numChunks); + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + throw new MissingDataException(begin, end); + } + } + } + nextEmptyChunk(beginChunk) { + const numChunks = this.numChunks; + for (let i = 0; i < numChunks; ++i) { + const chunk = (beginChunk + i) % numChunks; + if (!this._loadedChunks.has(chunk)) { + return chunk; + } + } + return null; + } + hasChunk(chunk) { + return this._loadedChunks.has(chunk); + } + getByte() { + const pos = this.pos; + if (pos >= this.end) { + return -1; + } + if (pos >= this.progressiveDataLength) { + this.ensureByte(pos); + } + return this.bytes[this.pos++]; + } + getBytes(length) { + const bytes = this.bytes; + const pos = this.pos; + const strEnd = this.end; + if (!length) { + if (strEnd > this.progressiveDataLength) { + this.ensureRange(pos, strEnd); + } + return bytes.subarray(pos, strEnd); + } + let end = pos + length; + if (end > strEnd) { + end = strEnd; + } + if (end > this.progressiveDataLength) { + this.ensureRange(pos, end); + } + this.pos = end; + return bytes.subarray(pos, end); + } + getByteRange(begin, end) { + if (begin < 0) { + begin = 0; + } + if (end > this.end) { + end = this.end; + } + if (end > this.progressiveDataLength) { + this.ensureRange(begin, end); + } + return this.bytes.subarray(begin, end); + } + makeSubStream(start, length, dict = null) { + if (length) { + if (start + length > this.progressiveDataLength) { + this.ensureRange(start, start + length); + } + } else if (start >= this.progressiveDataLength) { + this.ensureByte(start); + } + function ChunkedStreamSubstream() {} + ChunkedStreamSubstream.prototype = Object.create(this); + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + const chunkSize = this.chunkSize; + const beginChunk = Math.floor(this.start / chunkSize); + const endChunk = Math.floor((this.end - 1) / chunkSize) + 1; + const missingChunks = []; + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this._loadedChunks.has(chunk)) { + missingChunks.push(chunk); + } + } + return missingChunks; + }; + Object.defineProperty(ChunkedStreamSubstream.prototype, "isDataLoaded", { + get() { + if (this.numChunksLoaded === this.numChunks) { + return true; + } + return this.getMissingChunks().length === 0; + }, + configurable: true + }); + const subStream = new ChunkedStreamSubstream(); + subStream.pos = subStream.start = start; + subStream.end = start + length || this.end; + subStream.dict = dict; + return subStream; + } + getBaseStreams() { + return [this]; + } +} +class ChunkedStreamManager { + constructor(pdfNetworkStream, args) { + this.length = args.length; + this.chunkSize = args.rangeChunkSize; + this.stream = new ChunkedStream(this.length, this.chunkSize, this); + this.pdfNetworkStream = pdfNetworkStream; + this.disableAutoFetch = args.disableAutoFetch; + this.msgHandler = args.msgHandler; + this.currRequestId = 0; + this._chunksNeededByRequest = new Map(); + this._requestsByChunk = new Map(); + this._promisesByRequest = new Map(); + this.progressiveDataLength = 0; + this.aborted = false; + this._loadedStreamCapability = Promise.withResolvers(); + } + sendRequest(begin, end) { + const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + if (!rangeReader.isStreamingSupported) { + rangeReader.onProgress = this.onProgress.bind(this); + } + let chunks = [], + loaded = 0; + return new Promise((resolve, reject) => { + const readChunk = ({ + value, + done + }) => { + try { + if (done) { + const chunkData = arrayBuffersToBytes(chunks); + chunks = null; + resolve(chunkData); + return; + } + loaded += value.byteLength; + if (rangeReader.isStreamingSupported) { + this.onProgress({ + loaded + }); + } + chunks.push(value); + rangeReader.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + rangeReader.read().then(readChunk, reject); + }).then(data => { + if (this.aborted) { + return; + } + this.onReceiveData({ + chunk: data, + begin + }); + }); + } + requestAllChunks(noFetch = false) { + if (!noFetch) { + const missingChunks = this.stream.getMissingChunks(); + this._requestChunks(missingChunks); + } + return this._loadedStreamCapability.promise; + } + _requestChunks(chunks) { + const requestId = this.currRequestId++; + const chunksNeeded = new Set(); + this._chunksNeededByRequest.set(requestId, chunksNeeded); + for (const chunk of chunks) { + if (!this.stream.hasChunk(chunk)) { + chunksNeeded.add(chunk); + } + } + if (chunksNeeded.size === 0) { + return Promise.resolve(); + } + const capability = Promise.withResolvers(); + this._promisesByRequest.set(requestId, capability); + const chunksToRequest = []; + for (const chunk of chunksNeeded) { + let requestIds = this._requestsByChunk.get(chunk); + if (!requestIds) { + requestIds = []; + this._requestsByChunk.set(chunk, requestIds); + chunksToRequest.push(chunk); + } + requestIds.push(requestId); + } + if (chunksToRequest.length > 0) { + const groupedChunksToRequest = this.groupChunks(chunksToRequest); + for (const groupedChunk of groupedChunksToRequest) { + const begin = groupedChunk.beginChunk * this.chunkSize; + const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); + this.sendRequest(begin, end).catch(capability.reject); + } + } + return capability.promise.catch(reason => { + if (this.aborted) { + return; + } + throw reason; + }); + } + getStream() { + return this.stream; + } + requestRange(begin, end) { + end = Math.min(end, this.length); + const beginChunk = this.getBeginChunk(begin); + const endChunk = this.getEndChunk(end); + const chunks = []; + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + chunks.push(chunk); + } + return this._requestChunks(chunks); + } + requestRanges(ranges = []) { + const chunksToRequest = []; + for (const range of ranges) { + const beginChunk = this.getBeginChunk(range.begin); + const endChunk = this.getEndChunk(range.end); + for (let chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!chunksToRequest.includes(chunk)) { + chunksToRequest.push(chunk); + } + } + } + chunksToRequest.sort(function (a, b) { + return a - b; + }); + return this._requestChunks(chunksToRequest); + } + groupChunks(chunks) { + const groupedChunks = []; + let beginChunk = -1; + let prevChunk = -1; + for (let i = 0, ii = chunks.length; i < ii; ++i) { + const chunk = chunks[i]; + if (beginChunk < 0) { + beginChunk = chunk; + } + if (prevChunk >= 0 && prevChunk + 1 !== chunk) { + groupedChunks.push({ + beginChunk, + endChunk: prevChunk + 1 + }); + beginChunk = chunk; + } + if (i + 1 === chunks.length) { + groupedChunks.push({ + beginChunk, + endChunk: chunk + 1 + }); + } + prevChunk = chunk; + } + return groupedChunks; + } + onProgress(args) { + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded, + total: this.length + }); + } + onReceiveData(args) { + const chunk = args.chunk; + const isProgressive = args.begin === undefined; + const begin = isProgressive ? this.progressiveDataLength : args.begin; + const end = begin + chunk.byteLength; + const beginChunk = Math.floor(begin / this.chunkSize); + const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize); + if (isProgressive) { + this.stream.onReceiveProgressiveData(chunk); + this.progressiveDataLength = end; + } else { + this.stream.onReceiveData(begin, chunk); + } + if (this.stream.isDataLoaded) { + this._loadedStreamCapability.resolve(this.stream); + } + const loadedRequests = []; + for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + const requestIds = this._requestsByChunk.get(curChunk); + if (!requestIds) { + continue; + } + this._requestsByChunk.delete(curChunk); + for (const requestId of requestIds) { + const chunksNeeded = this._chunksNeededByRequest.get(requestId); + if (chunksNeeded.has(curChunk)) { + chunksNeeded.delete(curChunk); + } + if (chunksNeeded.size > 0) { + continue; + } + loadedRequests.push(requestId); + } + } + if (!this.disableAutoFetch && this._requestsByChunk.size === 0) { + let nextEmptyChunk; + if (this.stream.numChunksLoaded === 1) { + const lastChunk = this.stream.numChunks - 1; + if (!this.stream.hasChunk(lastChunk)) { + nextEmptyChunk = lastChunk; + } + } else { + nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); + } + if (Number.isInteger(nextEmptyChunk)) { + this._requestChunks([nextEmptyChunk]); + } + } + for (const requestId of loadedRequests) { + const capability = this._promisesByRequest.get(requestId); + this._promisesByRequest.delete(requestId); + capability.resolve(); + } + this.msgHandler.send("DocProgress", { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length + }); + } + onError(err) { + this._loadedStreamCapability.reject(err); + } + getBeginChunk(begin) { + return Math.floor(begin / this.chunkSize); + } + getEndChunk(end) { + return Math.floor((end - 1) / this.chunkSize) + 1; + } + abort(reason) { + this.aborted = true; + this.pdfNetworkStream?.cancelAllRequests(reason); + for (const capability of this._promisesByRequest.values()) { + capability.reject(reason); + } + } +} + +;// ./src/core/colorspace.js + + + + +function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { + const COMPONENTS = 3; + alpha01 = alpha01 !== 1 ? 0 : alpha01; + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let newIndex = 0, + oldIndex; + const xScaled = new Uint16Array(w2); + const w1Scanline = w1 * COMPONENTS; + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + for (let i = 0; i < h2; i++) { + const py = Math.floor(i * yRatio) * w1Scanline; + for (let j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + newIndex += alpha01; + } + } +} +function resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) { + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let newIndex = 0; + const xScaled = new Uint16Array(w2); + if (alpha01 === 1) { + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + const src32 = new Uint32Array(src.buffer); + const dest32 = new Uint32Array(dest.buffer); + const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00; + for (let i = 0; i < h2; i++) { + const buf = src32.subarray(Math.floor(i * yRatio) * w1); + for (let j = 0; j < w2; j++) { + dest32[newIndex++] |= buf[xScaled[j]] & rgbMask; + } + } + } else { + const COMPONENTS = 4; + const w1Scanline = w1 * COMPONENTS; + for (let i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + for (let i = 0; i < h2; i++) { + const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline); + for (let j = 0; j < w2; j++) { + const oldIndex = xScaled[j]; + dest[newIndex++] = buf[oldIndex]; + dest[newIndex++] = buf[oldIndex + 1]; + dest[newIndex++] = buf[oldIndex + 2]; + } + } + } +} +function copyRgbaImage(src, dest, alpha01) { + if (alpha01 === 1) { + const src32 = new Uint32Array(src.buffer); + const dest32 = new Uint32Array(dest.buffer); + const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00; + for (let i = 0, ii = src32.length; i < ii; i++) { + dest32[i] |= src32[i] & rgbMask; + } + } else { + let j = 0; + for (let i = 0, ii = src.length; i < ii; i += 4) { + dest[j++] = src[i]; + dest[j++] = src[i + 1]; + dest[j++] = src[i + 2]; + } + } +} +class ColorSpace { + constructor(name, numComps) { + this.name = name; + this.numComps = numComps; + } + getRgb(src, srcOffset) { + const rgb = new Uint8ClampedArray(3); + this.getRgbItem(src, srcOffset, rgb, 0); + return rgb; + } + getRgbItem(src, srcOffset, dest, destOffset) { + unreachable("Should not call ColorSpace.getRgbItem"); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + unreachable("Should not call ColorSpace.getRgbBuffer"); + } + getOutputLength(inputLength, alpha01) { + unreachable("Should not call ColorSpace.getOutputLength"); + } + isPassthrough(bits) { + return false; + } + isDefaultDecode(decodeMap, bpc) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + } + fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + const count = originalWidth * originalHeight; + let rgbBuf = null; + const numComponentColors = 1 << bpc; + const needsResizing = originalHeight !== height || originalWidth !== width; + if (this.isPassthrough(bpc)) { + rgbBuf = comps; + } else if (this.numComps === 1 && count > numComponentColors && this.name !== "DeviceGray" && this.name !== "DeviceRGB") { + const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors); + for (let i = 0; i < numComponentColors; i++) { + allColors[i] = i; + } + const colorMap = new Uint8ClampedArray(numComponentColors * 3); + this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + if (!needsResizing) { + let destPos = 0; + for (let i = 0; i < count; ++i) { + const key = comps[i] * 3; + dest[destPos++] = colorMap[key]; + dest[destPos++] = colorMap[key + 1]; + dest[destPos++] = colorMap[key + 2]; + destPos += alpha01; + } + } else { + rgbBuf = new Uint8Array(count * 3); + let rgbPos = 0; + for (let i = 0; i < count; ++i) { + const key = comps[i] * 3; + rgbBuf[rgbPos++] = colorMap[key]; + rgbBuf[rgbPos++] = colorMap[key + 1]; + rgbBuf[rgbPos++] = colorMap[key + 2]; + } + } + } else if (!needsResizing) { + this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01); + } else { + rgbBuf = new Uint8ClampedArray(count * 3); + this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + } + if (rgbBuf) { + if (needsResizing) { + resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + let destPos = 0, + rgbPos = 0; + for (let i = 0, ii = width * actualHeight; i < ii; i++) { + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + dest[destPos++] = rgbBuf[rgbPos++]; + destPos += alpha01; + } + } + } + } + get usesZeroToOneRange() { + return shadow(this, "usesZeroToOneRange", true); + } + static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) { + if (!localColorSpaceCache) { + throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.'); + } + if (!parsedColorSpace) { + throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.'); + } + let csName, csRef; + if (cacheKey instanceof Ref) { + csRef = cacheKey; + cacheKey = xref.fetch(cacheKey); + } + if (cacheKey instanceof Name) { + csName = cacheKey.name; + } + if (csName || csRef) { + localColorSpaceCache.set(csName, csRef, parsedColorSpace); + } + } + static getCached(cacheKey, xref, localColorSpaceCache) { + if (!localColorSpaceCache) { + throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.'); + } + if (cacheKey instanceof Ref) { + const localColorSpace = localColorSpaceCache.getByRef(cacheKey); + if (localColorSpace) { + return localColorSpace; + } + try { + cacheKey = xref.fetch(cacheKey); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + } + } + if (cacheKey instanceof Name) { + const localColorSpace = localColorSpaceCache.getByName(cacheKey.name); + if (localColorSpace) { + return localColorSpace; + } + } + return null; + } + static async parseAsync({ + cs, + xref, + resources = null, + pdfFunctionFactory, + localColorSpaceCache + }) { + const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory); + this._cache(cs, xref, localColorSpaceCache, parsedColorSpace); + return parsedColorSpace; + } + static parse({ + cs, + xref, + resources = null, + pdfFunctionFactory, + localColorSpaceCache + }) { + const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache); + if (cachedColorSpace) { + return cachedColorSpace; + } + const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory); + this._cache(cs, xref, localColorSpaceCache, parsedColorSpace); + return parsedColorSpace; + } + static _parse(cs, xref, resources = null, pdfFunctionFactory) { + cs = xref.fetchIfRef(cs); + if (cs instanceof Name) { + switch (cs.name) { + case "G": + case "DeviceGray": + return this.singletons.gray; + case "RGB": + case "DeviceRGB": + return this.singletons.rgb; + case "DeviceRGBA": + return this.singletons.rgba; + case "CMYK": + case "DeviceCMYK": + return this.singletons.cmyk; + case "Pattern": + return new PatternCS(null); + default: + if (resources instanceof Dict) { + const colorSpaces = resources.get("ColorSpace"); + if (colorSpaces instanceof Dict) { + const resourcesCS = colorSpaces.get(cs.name); + if (resourcesCS) { + if (resourcesCS instanceof Name) { + return this._parse(resourcesCS, xref, resources, pdfFunctionFactory); + } + cs = resourcesCS; + break; + } + } + } + warn(`Unrecognized ColorSpace: ${cs.name}`); + return this.singletons.gray; + } + } + if (Array.isArray(cs)) { + const mode = xref.fetchIfRef(cs[0]).name; + let params, numComps, baseCS, whitePoint, blackPoint, gamma; + switch (mode) { + case "G": + case "DeviceGray": + return this.singletons.gray; + case "RGB": + case "DeviceRGB": + return this.singletons.rgb; + case "CMYK": + case "DeviceCMYK": + return this.singletons.cmyk; + case "CalGray": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.get("Gamma"); + return new CalGrayCS(whitePoint, blackPoint, gamma); + case "CalRGB": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + gamma = params.getArray("Gamma"); + const matrix = params.getArray("Matrix"); + return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + case "ICCBased": + const stream = xref.fetchIfRef(cs[1]); + const dict = stream.dict; + numComps = dict.get("N"); + const alt = dict.get("Alternate"); + if (alt) { + const altCS = this._parse(alt, xref, resources, pdfFunctionFactory); + if (altCS.numComps === numComps) { + return altCS; + } + warn("ICCBased color space: Ignoring incorrect /Alternate entry."); + } + if (numComps === 1) { + return this.singletons.gray; + } else if (numComps === 3) { + return this.singletons.rgb; + } else if (numComps === 4) { + return this.singletons.cmyk; + } + break; + case "Pattern": + baseCS = cs[1] || null; + if (baseCS) { + baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory); + } + return new PatternCS(baseCS); + case "I": + case "Indexed": + baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory); + const hiVal = Math.max(0, Math.min(xref.fetchIfRef(cs[2]), 255)); + const lookup = xref.fetchIfRef(cs[3]); + return new IndexedCS(baseCS, hiVal, lookup); + case "Separation": + case "DeviceN": + const name = xref.fetchIfRef(cs[1]); + numComps = Array.isArray(name) ? name.length : 1; + baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory); + const tintFn = pdfFunctionFactory.create(cs[3]); + return new AlternateCS(numComps, baseCS, tintFn); + case "Lab": + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray("WhitePoint"); + blackPoint = params.getArray("BlackPoint"); + const range = params.getArray("Range"); + return new LabCS(whitePoint, blackPoint, range); + default: + warn(`Unimplemented ColorSpace object: ${mode}`); + return this.singletons.gray; + } + } + warn(`Unrecognized ColorSpace object: ${cs}`); + return this.singletons.gray; + } + static isDefaultDecode(decode, numComps) { + if (!Array.isArray(decode)) { + return true; + } + if (numComps * 2 !== decode.length) { + warn("The decode map is not the correct length"); + return true; + } + for (let i = 0, ii = decode.length; i < ii; i += 2) { + if (decode[i] !== 0 || decode[i + 1] !== 1) { + return false; + } + } + return true; + } + static get singletons() { + return shadow(this, "singletons", { + get gray() { + return shadow(this, "gray", new DeviceGrayCS()); + }, + get rgb() { + return shadow(this, "rgb", new DeviceRgbCS()); + }, + get rgba() { + return shadow(this, "rgba", new DeviceRgbaCS()); + }, + get cmyk() { + return shadow(this, "cmyk", new DeviceCmykCS()); + } + }); + } +} +class AlternateCS extends ColorSpace { + constructor(numComps, base, tintFn) { + super("Alternate", numComps); + this.base = base; + this.tintFn = tintFn; + this.tmpBuf = new Float32Array(base.numComps); + } + getRgbItem(src, srcOffset, dest, destOffset) { + const tmpBuf = this.tmpBuf; + this.tintFn(src, srcOffset, tmpBuf, 0); + this.base.getRgbItem(tmpBuf, 0, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const tintFn = this.tintFn; + const base = this.base; + const scale = 1 / ((1 << bits) - 1); + const baseNumComps = base.numComps; + const usesZeroToOneRange = base.usesZeroToOneRange; + const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0; + let pos = isPassthrough ? destOffset : 0; + const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count); + const numComps = this.numComps; + const scaled = new Float32Array(numComps); + const tinted = new Float32Array(baseNumComps); + let i, j; + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + tintFn(scaled, 0, tinted, 0); + if (usesZeroToOneRange) { + for (j = 0; j < baseNumComps; j++) { + baseBuf[pos++] = tinted[j] * 255; + } + } else { + base.getRgbItem(tinted, 0, baseBuf, pos); + pos += baseNumComps; + } + } + if (!isPassthrough) { + base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); + } + } + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); + } +} +class PatternCS extends ColorSpace { + constructor(baseCS) { + super("Pattern", null); + this.base = baseCS; + } + isDefaultDecode(decodeMap, bpc) { + unreachable("Should not call PatternCS.isDefaultDecode"); + } +} +class IndexedCS extends ColorSpace { + constructor(base, highVal, lookup) { + super("Indexed", 1); + this.base = base; + const length = base.numComps * (highVal + 1); + this.lookup = new Uint8Array(length); + if (lookup instanceof BaseStream) { + const bytes = lookup.getBytes(length); + this.lookup.set(bytes); + } else if (typeof lookup === "string") { + for (let i = 0; i < length; ++i) { + this.lookup[i] = lookup.charCodeAt(i) & 0xff; + } + } else { + throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`); + } + } + getRgbItem(src, srcOffset, dest, destOffset) { + const numComps = this.base.numComps; + const start = src[srcOffset] * numComps; + this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const base = this.base; + const numComps = base.numComps; + const outputDelta = base.getOutputLength(numComps, alpha01); + const lookup = this.lookup; + for (let i = 0; i < count; ++i) { + const lookupPos = src[srcOffset++] * numComps; + base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); + destOffset += outputDelta; + } + } + getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); + } + isDefaultDecode(decodeMap, bpc) { + if (!Array.isArray(decodeMap)) { + return true; + } + if (decodeMap.length !== 2) { + warn("Decode map length is not correct"); + return true; + } + if (!Number.isInteger(bpc) || bpc < 1) { + warn("Bits per component is not correct"); + return true; + } + return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1; + } +} +class DeviceGrayCS extends ColorSpace { + constructor() { + super("DeviceGray", 1); + } + getRgbItem(src, srcOffset, dest, destOffset) { + const c = src[srcOffset] * 255; + dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + for (let i = 0; i < count; ++i) { + const c = scale * src[j++]; + dest[q++] = c; + dest[q++] = c; + dest[q++] = c; + q += alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } +} +class DeviceRgbCS extends ColorSpace { + constructor() { + super("DeviceRGB", 3); + } + getRgbItem(src, srcOffset, dest, destOffset) { + dest[destOffset] = src[srcOffset] * 255; + dest[destOffset + 1] = src[srcOffset + 1] * 255; + dest[destOffset + 2] = src[srcOffset + 2] * 255; + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + if (bits === 8 && alpha01 === 0) { + dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); + return; + } + const scale = 255 / ((1 << bits) - 1); + let j = srcOffset, + q = destOffset; + for (let i = 0; i < count; ++i) { + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + q += alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + isPassthrough(bits) { + return bits === 8; + } +} +class DeviceRgbaCS extends ColorSpace { + constructor() { + super("DeviceRGBA", 4); + } + getOutputLength(inputLength, _alpha01) { + return inputLength * 4; + } + isPassthrough(bits) { + return bits === 8; + } + fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + if (originalHeight !== height || originalWidth !== width) { + resizeRgbaImage(comps, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + copyRgbaImage(comps, dest, alpha01); + } + } +} +class DeviceCmykCS extends ColorSpace { + constructor() { + super("DeviceCMYK", 4); + } + #toRgb(src, srcOffset, srcScale, dest, destOffset) { + const c = src[srcOffset] * srcScale; + const m = src[srcOffset + 1] * srcScale; + const y = src[srcOffset + 2] * srcScale; + const k = src[srcOffset + 3] * srcScale; + dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747); + dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578); + dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367); + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, 1, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; i++) { + this.#toRgb(src, srcOffset, scale, dest, destOffset); + srcOffset += 4; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength / 4 * (3 + alpha01) | 0; + } +} +class CalGrayCS extends ColorSpace { + constructor(whitePoint, blackPoint, gamma) { + super("CalGray", 1); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space CalGray"); + } + [this.XW, this.YW, this.ZW] = whitePoint; + [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0]; + this.G = gamma || 1; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info(`Invalid BlackPoint for ${this.name}, falling back to default.`); + this.XB = this.YB = this.ZB = 0; + } + if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) { + warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`); + } + if (this.G < 1) { + info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`); + this.G = 1; + } + } + #toRgb(src, srcOffset, dest, destOffset, scale) { + const A = src[srcOffset] * scale; + const AG = A ** this.G; + const L = this.YW * AG; + const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0); + dest[destOffset] = val; + dest[destOffset + 1] = val; + dest[destOffset + 2] = val; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, dest, destOffset, 1); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; ++i) { + this.#toRgb(src, srcOffset, dest, destOffset, scale); + srcOffset += 1; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } +} +class CalRGBCS extends ColorSpace { + static #BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]); + static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]); + static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]); + static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]); + static #tempNormalizeMatrix = new Float32Array(3); + static #tempConvertMatrix1 = new Float32Array(3); + static #tempConvertMatrix2 = new Float32Array(3); + static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0; + constructor(whitePoint, blackPoint, gamma, matrix) { + super("CalRGB", 3); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space CalRGB"); + } + const [XW, YW, ZW] = this.whitePoint = whitePoint; + const [XB, YB, ZB] = this.blackPoint = blackPoint || new Float32Array(3); + [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]); + [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + if (XW < 0 || ZW < 0 || YW !== 1) { + throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`); + } + if (XB < 0 || YB < 0 || ZB < 0) { + info(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + "falling back to default."); + this.blackPoint = new Float32Array(3); + } + if (this.GR < 0 || this.GG < 0 || this.GB < 0) { + info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`); + this.GR = this.GG = this.GB = 1; + } + } + #matrixProduct(a, b, result) { + result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; + result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2]; + } + #toFlat(sourceWhitePoint, LMS, result) { + result[0] = LMS[0] * 1 / sourceWhitePoint[0]; + result[1] = LMS[1] * 1 / sourceWhitePoint[1]; + result[2] = LMS[2] * 1 / sourceWhitePoint[2]; + } + #toD65(sourceWhitePoint, LMS, result) { + const D65X = 0.95047; + const D65Y = 1; + const D65Z = 1.08883; + result[0] = LMS[0] * D65X / sourceWhitePoint[0]; + result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; + result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; + } + #sRGBTransferFunction(color) { + if (color <= 0.0031308) { + return this.#adjustToRange(0, 1, 12.92 * color); + } + if (color >= 0.99554525) { + return 1; + } + return this.#adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055); + } + #adjustToRange(min, max, value) { + return Math.max(min, Math.min(max, value)); + } + #decodeL(L) { + if (L < 0) { + return -this.#decodeL(-L); + } + if (L > 8.0) { + return ((L + 16) / 116) ** 3; + } + return L * CalRGBCS.#DECODE_L_CONSTANT; + } + #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) { + if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) { + result[0] = XYZ_Flat[0]; + result[1] = XYZ_Flat[1]; + result[2] = XYZ_Flat[2]; + return; + } + const zeroDecodeL = this.#decodeL(0); + const X_DST = zeroDecodeL; + const X_SRC = this.#decodeL(sourceBlackPoint[0]); + const Y_DST = zeroDecodeL; + const Y_SRC = this.#decodeL(sourceBlackPoint[1]); + const Z_DST = zeroDecodeL; + const Z_SRC = this.#decodeL(sourceBlackPoint[2]); + const X_Scale = (1 - X_DST) / (1 - X_SRC); + const X_Offset = 1 - X_Scale; + const Y_Scale = (1 - Y_DST) / (1 - Y_SRC); + const Y_Offset = 1 - Y_Scale; + const Z_Scale = (1 - Z_DST) / (1 - Z_SRC); + const Z_Offset = 1 - Z_Scale; + result[0] = XYZ_Flat[0] * X_Scale + X_Offset; + result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset; + result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset; + } + #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) { + if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) { + result[0] = XYZ_In[0]; + result[1] = XYZ_In[1]; + result[2] = XYZ_In[2]; + return; + } + const LMS = result; + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + const LMS_Flat = CalRGBCS.#tempNormalizeMatrix; + this.#toFlat(sourceWhitePoint, LMS, LMS_Flat); + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result); + } + #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) { + const LMS = result; + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + const LMS_D65 = CalRGBCS.#tempNormalizeMatrix; + this.#toD65(sourceWhitePoint, LMS, LMS_D65); + this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result); + } + #toRgb(src, srcOffset, dest, destOffset, scale) { + const A = this.#adjustToRange(0, 1, src[srcOffset] * scale); + const B = this.#adjustToRange(0, 1, src[srcOffset + 1] * scale); + const C = this.#adjustToRange(0, 1, src[srcOffset + 2] * scale); + const AGR = A === 1 ? 1 : A ** this.GR; + const BGG = B === 1 ? 1 : B ** this.GG; + const CGB = C === 1 ? 1 : C ** this.GB; + const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB; + const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB; + const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB; + const XYZ = CalRGBCS.#tempConvertMatrix1; + XYZ[0] = X; + XYZ[1] = Y; + XYZ[2] = Z; + const XYZ_Flat = CalRGBCS.#tempConvertMatrix2; + this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat); + const XYZ_Black = CalRGBCS.#tempConvertMatrix1; + this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black); + const XYZ_D65 = CalRGBCS.#tempConvertMatrix2; + this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); + const SRGB = CalRGBCS.#tempConvertMatrix1; + this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); + dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255; + dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255; + dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, dest, destOffset, 1); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const scale = 1 / ((1 << bits) - 1); + for (let i = 0; i < count; ++i) { + this.#toRgb(src, srcOffset, dest, destOffset, scale); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } +} +class LabCS extends ColorSpace { + constructor(whitePoint, blackPoint, range) { + super("Lab", 3); + if (!whitePoint) { + throw new FormatError("WhitePoint missing - required for color space Lab"); + } + [this.XW, this.YW, this.ZW] = whitePoint; + [this.amin, this.amax, this.bmin, this.bmax] = range || [-100, 100, -100, 100]; + [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0]; + if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) { + throw new FormatError("Invalid WhitePoint components, no fallback available"); + } + if (this.XB < 0 || this.YB < 0 || this.ZB < 0) { + info("Invalid BlackPoint, falling back to default"); + this.XB = this.YB = this.ZB = 0; + } + if (this.amin > this.amax || this.bmin > this.bmax) { + info("Invalid Range, falling back to defaults"); + this.amin = -100; + this.amax = 100; + this.bmin = -100; + this.bmax = 100; + } + } + #fn_g(x) { + return x >= 6 / 29 ? x ** 3 : 108 / 841 * (x - 4 / 29); + } + #decode(value, high1, low2, high2) { + return low2 + value * (high2 - low2) / high1; + } + #toRgb(src, srcOffset, maxVal, dest, destOffset) { + let Ls = src[srcOffset]; + let as = src[srcOffset + 1]; + let bs = src[srcOffset + 2]; + if (maxVal !== false) { + Ls = this.#decode(Ls, maxVal, 0, 100); + as = this.#decode(as, maxVal, this.amin, this.amax); + bs = this.#decode(bs, maxVal, this.bmin, this.bmax); + } + if (as > this.amax) { + as = this.amax; + } else if (as < this.amin) { + as = this.amin; + } + if (bs > this.bmax) { + bs = this.bmax; + } else if (bs < this.bmin) { + bs = this.bmin; + } + const M = (Ls + 16) / 116; + const L = M + as / 500; + const N = M - bs / 200; + const X = this.XW * this.#fn_g(L); + const Y = this.YW * this.#fn_g(M); + const Z = this.ZW * this.#fn_g(N); + let r, g, b; + if (this.ZW < 1) { + r = X * 3.1339 + Y * -1.617 + Z * -0.4906; + g = X * -0.9785 + Y * 1.916 + Z * 0.0333; + b = X * 0.072 + Y * -0.229 + Z * 1.4057; + } else { + r = X * 3.2406 + Y * -1.5372 + Z * -0.4986; + g = X * -0.9689 + Y * 1.8758 + Z * 0.0415; + b = X * 0.0557 + Y * -0.204 + Z * 1.057; + } + dest[destOffset] = Math.sqrt(r) * 255; + dest[destOffset + 1] = Math.sqrt(g) * 255; + dest[destOffset + 2] = Math.sqrt(b) * 255; + } + getRgbItem(src, srcOffset, dest, destOffset) { + this.#toRgb(src, srcOffset, false, dest, destOffset); + } + getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + const maxVal = (1 << bits) - 1; + for (let i = 0; i < count; i++) { + this.#toRgb(src, srcOffset, maxVal, dest, destOffset); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + isDefaultDecode(decodeMap, bpc) { + return true; + } + get usesZeroToOneRange() { + return shadow(this, "usesZeroToOneRange", false); + } +} + +;// ./src/core/binary_cmap.js + +function hexToInt(a, size) { + let n = 0; + for (let i = 0; i <= size; i++) { + n = n << 8 | a[i]; + } + return n >>> 0; +} +function hexToStr(a, size) { + if (size === 1) { + return String.fromCharCode(a[0], a[1]); + } + if (size === 3) { + return String.fromCharCode(a[0], a[1], a[2], a[3]); + } + return String.fromCharCode(...a.subarray(0, size + 1)); +} +function addHex(a, b, size) { + let c = 0; + for (let i = size; i >= 0; i--) { + c += a[i] + b[i]; + a[i] = c & 255; + c >>= 8; + } +} +function incHex(a, size) { + let c = 1; + for (let i = size; i >= 0 && c > 0; i--) { + c += a[i]; + a[i] = c & 255; + c >>= 8; + } +} +const MAX_NUM_SIZE = 16; +const MAX_ENCODED_NUM_SIZE = 19; +class BinaryCMapStream { + constructor(data) { + this.buffer = data; + this.pos = 0; + this.end = data.length; + this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE); + } + readByte() { + if (this.pos >= this.end) { + return -1; + } + return this.buffer[this.pos++]; + } + readNumber() { + let n = 0; + let last; + do { + const b = this.readByte(); + if (b < 0) { + throw new FormatError("unexpected EOF in bcmap"); + } + last = !(b & 0x80); + n = n << 7 | b & 0x7f; + } while (!last); + return n; + } + readSigned() { + const n = this.readNumber(); + return n & 1 ? ~(n >>> 1) : n >>> 1; + } + readHex(num, size) { + num.set(this.buffer.subarray(this.pos, this.pos + size + 1)); + this.pos += size + 1; + } + readHexNumber(num, size) { + let last; + const stack = this.tmpBuf; + let sp = 0; + do { + const b = this.readByte(); + if (b < 0) { + throw new FormatError("unexpected EOF in bcmap"); + } + last = !(b & 0x80); + stack[sp++] = b & 0x7f; + } while (!last); + let i = size, + buffer = 0, + bufferSize = 0; + while (i >= 0) { + while (bufferSize < 8 && stack.length > 0) { + buffer |= stack[--sp] << bufferSize; + bufferSize += 7; + } + num[i] = buffer & 255; + i--; + buffer >>= 8; + bufferSize -= 8; + } + } + readHexSigned(num, size) { + this.readHexNumber(num, size); + const sign = num[size] & 1 ? 255 : 0; + let c = 0; + for (let i = 0; i <= size; i++) { + c = (c & 1) << 8 | num[i]; + num[i] = c >> 1 ^ sign; + } + } + readString() { + const len = this.readNumber(), + buf = new Array(len); + for (let i = 0; i < len; i++) { + buf[i] = this.readNumber(); + } + return String.fromCharCode(...buf); + } +} +class BinaryCMapReader { + async process(data, cMap, extend) { + const stream = new BinaryCMapStream(data); + const header = stream.readByte(); + cMap.vertical = !!(header & 1); + let useCMap = null; + const start = new Uint8Array(MAX_NUM_SIZE); + const end = new Uint8Array(MAX_NUM_SIZE); + const char = new Uint8Array(MAX_NUM_SIZE); + const charCode = new Uint8Array(MAX_NUM_SIZE); + const tmp = new Uint8Array(MAX_NUM_SIZE); + let code; + let b; + while ((b = stream.readByte()) >= 0) { + const type = b >> 5; + if (type === 7) { + switch (b & 0x1f) { + case 0: + stream.readString(); + break; + case 1: + useCMap = stream.readString(); + break; + } + continue; + } + const sequence = !!(b & 0x10); + const dataSize = b & 15; + if (dataSize + 1 > MAX_NUM_SIZE) { + throw new Error("BinaryCMapReader.process: Invalid dataSize."); + } + const ucs2DataSize = 1; + const subitemsCount = stream.readNumber(); + switch (type) { + case 0: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + } + break; + case 1: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + } + break; + case 2: + stream.readHex(char, dataSize); + code = stream.readNumber(); + cMap.mapOne(hexToInt(char, dataSize), code); + for (let i = 1; i < subitemsCount; i++) { + incHex(char, dataSize); + if (!sequence) { + stream.readHexNumber(tmp, dataSize); + addHex(char, tmp, dataSize); + } + code = stream.readSigned() + (code + 1); + cMap.mapOne(hexToInt(char, dataSize), code); + } + break; + case 3: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + if (!sequence) { + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + } + break; + case 4: + stream.readHex(char, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(char, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(tmp, ucs2DataSize); + addHex(char, tmp, ucs2DataSize); + } + incHex(charCode, dataSize); + stream.readHexSigned(tmp, dataSize); + addHex(charCode, tmp, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + case 5: + stream.readHex(start, ucs2DataSize); + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + for (let i = 1; i < subitemsCount; i++) { + incHex(end, ucs2DataSize); + if (!sequence) { + stream.readHexNumber(start, ucs2DataSize); + addHex(start, end, ucs2DataSize); + } else { + start.set(end); + } + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + } + break; + default: + throw new Error(`BinaryCMapReader.process - unknown type: ${type}`); + } + } + if (useCMap) { + return extend(useCMap); + } + return cMap; + } +} + +;// ./src/core/decode_stream.js + + +const emptyBuffer = new Uint8Array(0); +class DecodeStream extends BaseStream { + constructor(maybeMinBufferLength) { + super(); + this._rawMinBufferLength = maybeMinBufferLength || 0; + this.pos = 0; + this.bufferLength = 0; + this.eof = false; + this.buffer = emptyBuffer; + this.minBufferLength = 512; + if (maybeMinBufferLength) { + while (this.minBufferLength < maybeMinBufferLength) { + this.minBufferLength *= 2; + } + } + } + get isEmpty() { + while (!this.eof && this.bufferLength === 0) { + this.readBlock(); + } + return this.bufferLength === 0; + } + ensureBuffer(requested) { + const buffer = this.buffer; + if (requested <= buffer.byteLength) { + return buffer; + } + let size = this.minBufferLength; + while (size < requested) { + size *= 2; + } + const buffer2 = new Uint8Array(size); + buffer2.set(buffer); + return this.buffer = buffer2; + } + getByte() { + const pos = this.pos; + while (this.bufferLength <= pos) { + if (this.eof) { + return -1; + } + this.readBlock(); + } + return this.buffer[this.pos++]; + } + getBytes(length, decoderOptions = null) { + const pos = this.pos; + let end; + if (length) { + this.ensureBuffer(pos + length); + end = pos + length; + while (!this.eof && this.bufferLength < end) { + this.readBlock(decoderOptions); + } + const bufEnd = this.bufferLength; + if (end > bufEnd) { + end = bufEnd; + } + } else { + while (!this.eof) { + this.readBlock(decoderOptions); + } + end = this.bufferLength; + } + this.pos = end; + return this.buffer.subarray(pos, end); + } + async getImageData(length, decoderOptions = null) { + if (!this.canAsyncDecodeImageFromBuffer) { + return this.getBytes(length, decoderOptions); + } + const data = await this.stream.asyncGetBytes(); + return this.decodeImage(data, decoderOptions); + } + reset() { + this.pos = 0; + } + makeSubStream(start, length, dict = null) { + if (length === undefined) { + while (!this.eof) { + this.readBlock(); + } + } else { + const end = start + length; + while (this.bufferLength <= end && !this.eof) { + this.readBlock(); + } + } + return new Stream(this.buffer, start, length, dict); + } + getBaseStreams() { + return this.str ? this.str.getBaseStreams() : null; + } +} +class StreamsSequenceStream extends DecodeStream { + constructor(streams, onError = null) { + streams = streams.filter(s => s instanceof BaseStream); + let maybeLength = 0; + for (const stream of streams) { + maybeLength += stream instanceof DecodeStream ? stream._rawMinBufferLength : stream.length; + } + super(maybeLength); + this.streams = streams; + this._onError = onError; + } + readBlock() { + const streams = this.streams; + if (streams.length === 0) { + this.eof = true; + return; + } + const stream = streams.shift(); + let chunk; + try { + chunk = stream.getBytes(); + } catch (reason) { + if (this._onError) { + this._onError(reason, stream.dict?.objId); + return; + } + throw reason; + } + const bufferLength = this.bufferLength; + const newLength = bufferLength + chunk.length; + const buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + } + getBaseStreams() { + const baseStreamsBuf = []; + for (const stream of this.streams) { + const baseStreams = stream.getBaseStreams(); + if (baseStreams) { + baseStreamsBuf.push(...baseStreams); + } + } + return baseStreamsBuf.length > 0 ? baseStreamsBuf : null; + } +} + +;// ./src/core/ascii_85_stream.js + + +class Ascii85Stream extends DecodeStream { + constructor(str, maybeLength) { + if (maybeLength) { + maybeLength *= 0.8; + } + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.input = new Uint8Array(5); + } + readBlock() { + const TILDA_CHAR = 0x7e; + const Z_LOWER_CHAR = 0x7a; + const EOF = -1; + const str = this.str; + let c = str.getByte(); + while (isWhiteSpace(c)) { + c = str.getByte(); + } + if (c === EOF || c === TILDA_CHAR) { + this.eof = true; + return; + } + const bufferLength = this.bufferLength; + let buffer, i; + if (c === Z_LOWER_CHAR) { + buffer = this.ensureBuffer(bufferLength + 4); + for (i = 0; i < 4; ++i) { + buffer[bufferLength + i] = 0; + } + this.bufferLength += 4; + } else { + const input = this.input; + input[0] = c; + for (i = 1; i < 5; ++i) { + c = str.getByte(); + while (isWhiteSpace(c)) { + c = str.getByte(); + } + input[i] = c; + if (c === EOF || c === TILDA_CHAR) { + break; + } + } + buffer = this.ensureBuffer(bufferLength + i - 1); + this.bufferLength += i - 1; + if (i < 5) { + for (; i < 5; ++i) { + input[i] = 0x21 + 84; + } + this.eof = true; + } + let t = 0; + for (i = 0; i < 5; ++i) { + t = t * 85 + (input[i] - 0x21); + } + for (i = 3; i >= 0; --i) { + buffer[bufferLength + i] = t & 0xff; + t >>= 8; + } + } + } +} + +;// ./src/core/ascii_hex_stream.js + +class AsciiHexStream extends DecodeStream { + constructor(str, maybeLength) { + if (maybeLength) { + maybeLength *= 0.5; + } + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.firstDigit = -1; + } + readBlock() { + const UPSTREAM_BLOCK_SIZE = 8000; + const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE); + if (!bytes.length) { + this.eof = true; + return; + } + const maxDecodeLength = bytes.length + 1 >> 1; + const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength); + let bufferLength = this.bufferLength; + let firstDigit = this.firstDigit; + for (const ch of bytes) { + let digit; + if (ch >= 0x30 && ch <= 0x39) { + digit = ch & 0x0f; + } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + digit = (ch & 0x0f) + 9; + } else if (ch === 0x3e) { + this.eof = true; + break; + } else { + continue; + } + if (firstDigit < 0) { + firstDigit = digit; + } else { + buffer[bufferLength++] = firstDigit << 4 | digit; + firstDigit = -1; + } + } + if (firstDigit >= 0 && this.eof) { + buffer[bufferLength++] = firstDigit << 4; + firstDigit = -1; + } + this.firstDigit = firstDigit; + this.bufferLength = bufferLength; + } +} + +;// ./src/core/ccitt.js + +const ccittEOL = -2; +const ccittEOF = -1; +const twoDimPass = 0; +const twoDimHoriz = 1; +const twoDimVert0 = 2; +const twoDimVertR1 = 3; +const twoDimVertL1 = 4; +const twoDimVertR2 = 5; +const twoDimVertL2 = 6; +const twoDimVertR3 = 7; +const twoDimVertL3 = 8; +const twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]]; +const whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]]; +const whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]]; +const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]]; +const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]]; +const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]]; +class CCITTFaxDecoder { + constructor(source, options = {}) { + if (typeof source?.next !== "function") { + throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); + } + this.source = source; + this.eof = false; + this.encoding = options.K || 0; + this.eoline = options.EndOfLine || false; + this.byteAlign = options.EncodedByteAlign || false; + this.columns = options.Columns || 1728; + this.rows = options.Rows || 0; + this.eoblock = options.EndOfBlock ?? true; + this.black = options.BlackIs1 || false; + this.codingLine = new Uint32Array(this.columns + 1); + this.refLine = new Uint32Array(this.columns + 2); + this.codingLine[0] = this.columns; + this.codingPos = 0; + this.row = 0; + this.nextLine2D = this.encoding < 0; + this.inputBits = 0; + this.inputBuf = 0; + this.outputBits = 0; + this.rowsDone = false; + let code1; + while ((code1 = this._lookBits(12)) === 0) { + this._eatBits(1); + } + if (code1 === 1) { + this._eatBits(12); + } + if (this.encoding > 0) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + } + readNextChar() { + if (this.eof) { + return -1; + } + const refLine = this.refLine; + const codingLine = this.codingLine; + const columns = this.columns; + let refPos, blackPixels, bits, i; + if (this.outputBits === 0) { + if (this.rowsDone) { + this.eof = true; + } + if (this.eof) { + return -1; + } + this.err = false; + let code1, code2, code3; + if (this.nextLine2D) { + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } + refLine[i++] = columns; + refLine[i] = columns; + codingLine[0] = 0; + this.codingPos = 0; + refPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = this._getTwoDimCode(); + switch (code1) { + case twoDimPass: + this._addPixels(refLine[refPos + 1], blackPixels); + if (refLine[refPos + 1] < columns) { + refPos += 2; + } + break; + case twoDimHoriz: + code1 = code2 = 0; + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + do { + code2 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + do { + code2 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + if (codingLine[this.codingPos] < columns) { + this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1); + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + break; + case twoDimVertR3: + this._addPixels(refLine[refPos] + 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR2: + this._addPixels(refLine[refPos] + 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertR1: + this._addPixels(refLine[refPos] + 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVert0: + this._addPixels(refLine[refPos], blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + ++refPos; + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL3: + this._addPixelsNeg(refLine[refPos] - 3, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL2: + this._addPixelsNeg(refLine[refPos] - 2, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case twoDimVertL1: + this._addPixelsNeg(refLine[refPos] - 1, blackPixels); + blackPixels ^= 1; + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + break; + case ccittEOF: + this._addPixels(columns, 0); + this.eof = true; + break; + default: + info("bad 2d code"); + this._addPixels(columns, 0); + this.err = true; + } + } + } else { + codingLine[0] = 0; + this.codingPos = 0; + blackPixels = 0; + while (codingLine[this.codingPos] < columns) { + code1 = 0; + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + blackPixels ^= 1; + } + } + let gotEOL = false; + if (this.byteAlign) { + this.inputBits &= ~7; + } + if (!this.eoblock && this.row === this.rows - 1) { + this.rowsDone = true; + } else { + code1 = this._lookBits(12); + if (this.eoline) { + while (code1 !== ccittEOF && code1 !== 1) { + this._eatBits(1); + code1 = this._lookBits(12); + } + } else { + while (code1 === 0) { + this._eatBits(1); + code1 = this._lookBits(12); + } + } + if (code1 === 1) { + this._eatBits(12); + gotEOL = true; + } else if (code1 === ccittEOF) { + this.eof = true; + } + } + if (!this.eof && this.encoding > 0 && !this.rowsDone) { + this.nextLine2D = !this._lookBits(1); + this._eatBits(1); + } + if (this.eoblock && gotEOL && this.byteAlign) { + code1 = this._lookBits(12); + if (code1 === 1) { + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + if (this.encoding >= 0) { + for (i = 0; i < 4; ++i) { + code1 = this._lookBits(12); + if (code1 !== 1) { + info("bad rtc code: " + code1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._lookBits(1); + this._eatBits(1); + } + } + } + this.eof = true; + } + } else if (this.err && this.eoline) { + while (true) { + code1 = this._lookBits(13); + if (code1 === ccittEOF) { + this.eof = true; + return -1; + } + if (code1 >> 1 === 1) { + break; + } + this._eatBits(1); + } + this._eatBits(12); + if (this.encoding > 0) { + this._eatBits(1); + this.nextLine2D = !(code1 & 1); + } + } + this.outputBits = codingLine[0] > 0 ? codingLine[this.codingPos = 0] : codingLine[this.codingPos = 1]; + this.row++; + } + let c; + if (this.outputBits >= 8) { + c = this.codingPos & 1 ? 0 : 0xff; + this.outputBits -= 8; + if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } + } else { + bits = 8; + c = 0; + do { + if (typeof this.outputBits !== "number") { + throw new FormatError('Invalid /CCITTFaxDecode data, "outputBits" must be a number.'); + } + if (this.outputBits > bits) { + c <<= bits; + if (!(this.codingPos & 1)) { + c |= 0xff >> 8 - bits; + } + this.outputBits -= bits; + bits = 0; + } else { + c <<= this.outputBits; + if (!(this.codingPos & 1)) { + c |= 0xff >> 8 - this.outputBits; + } + bits -= this.outputBits; + this.outputBits = 0; + if (codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } else if (bits > 0) { + c <<= bits; + bits = 0; + } + } + } while (bits); + } + if (this.black) { + c ^= 0xff; + } + return c; + } + _addPixels(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info("row is wrong length"); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + } + _addPixelsNeg(a1, blackPixels) { + const codingLine = this.codingLine; + let codingPos = this.codingPos; + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + info("row is wrong length"); + this.err = true; + a1 = this.columns; + } + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + codingLine[codingPos] = a1; + } else if (a1 < codingLine[codingPos]) { + if (a1 < 0) { + info("invalid code"); + this.err = true; + a1 = 0; + } + while (codingPos > 0 && a1 < codingLine[codingPos - 1]) { + --codingPos; + } + codingLine[codingPos] = a1; + } + this.codingPos = codingPos; + } + _findTableCode(start, end, table, limit) { + const limitValue = limit || 0; + for (let i = start; i <= end; ++i) { + let code = this._lookBits(i); + if (code === ccittEOF) { + return [true, 1, false]; + } + if (i < end) { + code <<= end - i; + } + if (!limitValue || code >= limitValue) { + const p = table[code - limitValue]; + if (p[0] === i) { + this._eatBits(i); + return [true, p[1], true]; + } + } + } + return [false, 0, false]; + } + _getTwoDimCode() { + let code = 0; + let p; + if (this.eoblock) { + code = this._lookBits(7); + p = twoDimTable[code]; + if (p?.[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + const result = this._findTableCode(1, 7, twoDimTable); + if (result[0] && result[2]) { + return result[1]; + } + } + info("Bad two dim code"); + return ccittEOF; + } + _getWhiteCode() { + let code = 0; + let p; + if (this.eoblock) { + code = this._lookBits(12); + if (code === ccittEOF) { + return 1; + } + p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3]; + if (p[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + let result = this._findTableCode(1, 9, whiteTable2); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(11, 12, whiteTable1); + if (result[0]) { + return result[1]; + } + } + info("bad white code"); + this._eatBits(1); + return 1; + } + _getBlackCode() { + let code, p; + if (this.eoblock) { + code = this._lookBits(13); + if (code === ccittEOF) { + return 1; + } + if (code >> 7 === 0) { + p = blackTable1[code]; + } else if (code >> 9 === 0 && code >> 7 !== 0) { + p = blackTable2[(code >> 1) - 64]; + } else { + p = blackTable3[code >> 7]; + } + if (p[0] > 0) { + this._eatBits(p[0]); + return p[1]; + } + } else { + let result = this._findTableCode(2, 6, blackTable3); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(7, 12, blackTable2, 64); + if (result[0]) { + return result[1]; + } + result = this._findTableCode(10, 13, blackTable1); + if (result[0]) { + return result[1]; + } + } + info("bad black code"); + this._eatBits(1); + return 1; + } + _lookBits(n) { + let c; + while (this.inputBits < n) { + if ((c = this.source.next()) === -1) { + if (this.inputBits === 0) { + return ccittEOF; + } + return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n; + } + this.inputBuf = this.inputBuf << 8 | c; + this.inputBits += 8; + } + return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n; + } + _eatBits(n) { + if ((this.inputBits -= n) < 0) { + this.inputBits = 0; + } + } +} + +;// ./src/core/ccitt_stream.js + + + +class CCITTFaxStream extends DecodeStream { + constructor(str, maybeLength, params) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + if (!(params instanceof Dict)) { + params = Dict.empty; + } + const source = { + next() { + return str.getByte(); + } + }; + this.ccittFaxDecoder = new CCITTFaxDecoder(source, { + K: params.get("K"), + EndOfLine: params.get("EndOfLine"), + EncodedByteAlign: params.get("EncodedByteAlign"), + Columns: params.get("Columns"), + Rows: params.get("Rows"), + EndOfBlock: params.get("EndOfBlock"), + BlackIs1: params.get("BlackIs1") + }); + } + readBlock() { + while (!this.eof) { + const c = this.ccittFaxDecoder.readNextChar(); + if (c === -1) { + this.eof = true; + return; + } + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = c; + } + } +} + +;// ./src/core/flate_stream.js + + + +const codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +const lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]); +const distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]); +const fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9]; +const fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5]; +class FlateStream extends DecodeStream { + constructor(str, maybeLength) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + const cmf = str.getByte(); + const flg = str.getByte(); + if (cmf === -1 || flg === -1) { + throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`); + } + if ((cmf & 0x0f) !== 0x08) { + throw new FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`); + } + if (((cmf << 8) + flg) % 31 !== 0) { + throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`); + } + if (flg & 0x20) { + throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`); + } + this.codeSize = 0; + this.codeBuf = 0; + } + async getImageData(length, _decoderOptions) { + const data = await this.asyncGetBytes(); + return data?.subarray(0, length) || this.getBytes(length); + } + async asyncGetBytes() { + this.str.reset(); + const bytes = this.str.getBytes(); + try { + const { + readable, + writable + } = new DecompressionStream("deflate"); + const writer = writable.getWriter(); + await writer.ready; + writer.write(bytes).then(async () => { + await writer.ready; + await writer.close(); + }).catch(() => {}); + const chunks = []; + let totalLength = 0; + for await (const chunk of readable) { + chunks.push(chunk); + totalLength += chunk.byteLength; + } + const data = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks) { + data.set(chunk, offset); + offset += chunk.byteLength; + } + return data; + } catch { + this.str = new Stream(bytes, 2, bytes.length, this.str.dict); + this.reset(); + return null; + } + } + get isAsync() { + return true; + } + getBits(bits) { + const str = this.str; + let codeSize = this.codeSize; + let codeBuf = this.codeBuf; + let b; + while (codeSize < bits) { + if ((b = str.getByte()) === -1) { + throw new FormatError("Bad encoding in flate stream"); + } + codeBuf |= b << codeSize; + codeSize += 8; + } + b = codeBuf & (1 << bits) - 1; + this.codeBuf = codeBuf >> bits; + this.codeSize = codeSize -= bits; + return b; + } + getCode(table) { + const str = this.str; + const codes = table[0]; + const maxLen = table[1]; + let codeSize = this.codeSize; + let codeBuf = this.codeBuf; + let b; + while (codeSize < maxLen) { + if ((b = str.getByte()) === -1) { + break; + } + codeBuf |= b << codeSize; + codeSize += 8; + } + const code = codes[codeBuf & (1 << maxLen) - 1]; + const codeLen = code >> 16; + const codeVal = code & 0xffff; + if (codeLen < 1 || codeSize < codeLen) { + throw new FormatError("Bad encoding in flate stream"); + } + this.codeBuf = codeBuf >> codeLen; + this.codeSize = codeSize - codeLen; + return codeVal; + } + generateHuffmanTable(lengths) { + const n = lengths.length; + let maxLen = 0; + let i; + for (i = 0; i < n; ++i) { + if (lengths[i] > maxLen) { + maxLen = lengths[i]; + } + } + const size = 1 << maxLen; + const codes = new Int32Array(size); + for (let len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) { + for (let val = 0; val < n; ++val) { + if (lengths[val] === len) { + let code2 = 0; + let t = code; + for (i = 0; i < len; ++i) { + code2 = code2 << 1 | t & 1; + t >>= 1; + } + for (i = code2; i < size; i += skip) { + codes[i] = len << 16 | val; + } + ++code; + } + } + } + return [codes, maxLen]; + } + #endsStreamOnError(err) { + info(err); + this.eof = true; + } + readBlock() { + let buffer, hdr, len; + const str = this.str; + try { + hdr = this.getBits(3); + } catch (ex) { + this.#endsStreamOnError(ex.message); + return; + } + if (hdr & 1) { + this.eof = true; + } + hdr >>= 1; + if (hdr === 0) { + let b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + let blockLen = b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + blockLen |= b << 8; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + let check = b; + if ((b = str.getByte()) === -1) { + this.#endsStreamOnError("Bad block header in flate stream"); + return; + } + check |= b << 8; + if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) { + throw new FormatError("Bad uncompressed block length in flate stream"); + } + this.codeBuf = 0; + this.codeSize = 0; + const bufferLength = this.bufferLength, + end = bufferLength + blockLen; + buffer = this.ensureBuffer(end); + this.bufferLength = end; + if (blockLen === 0) { + if (str.peekByte() === -1) { + this.eof = true; + } + } else { + const block = str.getBytes(blockLen); + buffer.set(block, bufferLength); + if (block.length < blockLen) { + this.eof = true; + } + } + return; + } + let litCodeTable; + let distCodeTable; + if (hdr === 1) { + litCodeTable = fixedLitCodeTab; + distCodeTable = fixedDistCodeTab; + } else if (hdr === 2) { + const numLitCodes = this.getBits(5) + 257; + const numDistCodes = this.getBits(5) + 1; + const numCodeLenCodes = this.getBits(4) + 4; + const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); + let i; + for (i = 0; i < numCodeLenCodes; ++i) { + codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); + } + const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); + len = 0; + i = 0; + const codes = numLitCodes + numDistCodes; + const codeLengths = new Uint8Array(codes); + let bitsLength, bitsOffset, what; + while (i < codes) { + const code = this.getCode(codeLenCodeTab); + if (code === 16) { + bitsLength = 2; + bitsOffset = 3; + what = len; + } else if (code === 17) { + bitsLength = 3; + bitsOffset = 3; + what = len = 0; + } else if (code === 18) { + bitsLength = 7; + bitsOffset = 11; + what = len = 0; + } else { + codeLengths[i++] = len = code; + continue; + } + let repeatLength = this.getBits(bitsLength) + bitsOffset; + while (repeatLength-- > 0) { + codeLengths[i++] = what; + } + } + litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); + distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); + } else { + throw new FormatError("Unknown block type in flate stream"); + } + buffer = this.buffer; + let limit = buffer ? buffer.length : 0; + let pos = this.bufferLength; + while (true) { + let code1 = this.getCode(litCodeTable); + if (code1 < 256) { + if (pos + 1 >= limit) { + buffer = this.ensureBuffer(pos + 1); + limit = buffer.length; + } + buffer[pos++] = code1; + continue; + } + if (code1 === 256) { + this.bufferLength = pos; + return; + } + code1 -= 257; + code1 = lengthDecode[code1]; + let code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + len = (code1 & 0xffff) + code2; + code1 = this.getCode(distCodeTable); + code1 = distDecode[code1]; + code2 = code1 >> 16; + if (code2 > 0) { + code2 = this.getBits(code2); + } + const dist = (code1 & 0xffff) + code2; + if (pos + len >= limit) { + buffer = this.ensureBuffer(pos + len); + limit = buffer.length; + } + for (let k = 0; k < len; ++k, ++pos) { + buffer[pos] = buffer[pos - dist]; + } + } + } +} + +;// ./src/core/arithmetic_decoder.js +const QeTable = [{ + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 +}, { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 +}, { + qe: 0x0ac1, + nmps: 4, + nlps: 12, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x1c01, + nmps: 13, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x1c01, + nmps: 25, + nlps: 22, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 +}, { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 +}, { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 +}, { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 +}, { + qe: 0x0ac1, + nmps: 31, + nlps: 28, + switchFlag: 0 +}, { + qe: 0x09c1, + nmps: 32, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x08a1, + nmps: 33, + nlps: 30, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 +}, { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 +}, { + qe: 0x02a1, + nmps: 36, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 +}, { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 +}, { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 +}, { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 +}, { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 +}, { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 +}, { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 +}, { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 +}, { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 +}, { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 +}]; +class ArithmeticDecoder { + constructor(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f; + this.clow = this.clow << 7 & 0xffff; + this.ct -= 7; + this.a = 0x8000; + } + byteIn() { + const data = this.data; + let bp = this.bp; + if (data[bp] === 0xff) { + if (data[bp + 1] > 0x8f) { + this.clow += 0xff00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 0xffff) { + this.chigh += this.clow >> 16; + this.clow &= 0xffff; + } + } + readBit(contexts, pos) { + let cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + const qeTableIcx = QeTable[cx_index]; + const qeIcx = qeTableIcx.qe; + let d; + let a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xffff; + this.ct--; + } while ((a & 0x8000) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } +} + +;// ./src/core/jbig2.js + + + + +class Jbig2Error extends BaseException { + constructor(msg) { + super(msg, "Jbig2Error"); + } +} +class ContextCache { + getContexts(id) { + if (id in this) { + return this[id]; + } + return this[id] = new Int8Array(1 << 16); + } +} +class DecodingContext { + constructor(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + get decoder() { + const decoder = new ArithmeticDecoder(this.data, this.start, this.end); + return shadow(this, "decoder", decoder); + } + get contextCache() { + const cache = new ContextCache(); + return shadow(this, "contextCache", cache); + } +} +function decodeInteger(contextCache, procedure, decoder) { + const contexts = contextCache.getContexts(procedure); + let prev = 1; + function readBits(length) { + let v = 0; + for (let i = 0; i < length; i++) { + const bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + return v >>> 0; + } + const sign = readBits(1); + const value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + let signedValue; + if (sign === 0) { + signedValue = value; + } else if (value > 0) { + signedValue = -value; + } + if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) { + return signedValue; + } + return null; +} +function decodeIAID(contextCache, decoder, codeLength) { + const contexts = contextCache.getContexts("IAID"); + let prev = 1; + for (let i = 0; i < codeLength; i++) { + const bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + return prev & 0x7fffffff; +} +const SegmentTypes = ["SymbolDictionary", null, null, null, "IntermediateTextRegion", null, "ImmediateTextRegion", "ImmediateLosslessTextRegion", null, null, null, null, null, null, null, null, "PatternDictionary", null, null, null, "IntermediateHalftoneRegion", null, "ImmediateHalftoneRegion", "ImmediateLosslessHalftoneRegion", null, null, null, null, null, null, null, null, null, null, null, null, "IntermediateGenericRegion", null, "ImmediateGenericRegion", "ImmediateLosslessGenericRegion", "IntermediateGenericRefinementRegion", null, "ImmediateGenericRefinementRegion", "ImmediateLosslessGenericRefinementRegion", null, null, null, null, "PageInformation", "EndOfPage", "EndOfStripe", "EndOfFile", "Profiles", "Tables", null, null, null, null, null, null, null, null, "Extension"]; +const CodingTemplates = [[{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: 2, + y: -1 +}, { + x: -4, + y: 0 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: 2, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: 2, + y: -1 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -1, + y: -2 +}, { + x: 0, + y: -2 +}, { + x: 1, + y: -2 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}], [{ + x: -3, + y: -1 +}, { + x: -2, + y: -1 +}, { + x: -1, + y: -1 +}, { + x: 0, + y: -1 +}, { + x: 1, + y: -1 +}, { + x: -4, + y: 0 +}, { + x: -3, + y: 0 +}, { + x: -2, + y: 0 +}, { + x: -1, + y: 0 +}]]; +const RefinementTemplates = [{ + coding: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: -1, + y: 1 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] +}, { + coding: [{ + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] +}]; +const ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195]; +const RefinementReusedContexts = [0x0020, 0x0008]; +function decodeBitmapTemplate0(width, height, decodingContext) { + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GB"); + const bitmap = []; + let contextLabel, i, j, pixel, row, row1, row2; + const OLD_PIXEL_MASK = 0x7bf7; + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + return bitmap; +} +function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + return decodeMMRBitmap(input, width, height, false); + } + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + const useskip = !!skip; + const template = CodingTemplates[templateIndex].concat(at); + template.sort(function (a, b) { + return a.y - b.y || a.x - b.x; + }); + const templateLength = template.length; + const templateX = new Int8Array(templateLength); + const templateY = new Int8Array(templateLength); + const changingTemplateEntries = []; + let reuseMask = 0, + minX = 0, + maxX = 0, + minY = 0; + let c, k; + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + const changingEntriesLength = changingTemplateEntries.length; + const changingTemplateX = new Int8Array(changingEntriesLength); + const changingTemplateY = new Int8Array(changingEntriesLength); + const changingTemplateBit = new Uint16Array(changingEntriesLength); + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + const sbb_left = -minX; + const sbb_top = -minY; + const sbb_right = width - maxX; + const pseudoPixelContext = ReusedContexts[templateIndex]; + let row = new Uint8Array(width); + const bitmap = []; + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GB"); + let ltp = 0, + j, + i0, + j0, + contextLabel = 0, + bit, + shift; + for (let i = 0; i < height; i++) { + if (prediction) { + const sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + bitmap.push(row); + continue; + } + } + row = new Uint8Array(row); + bitmap.push(row); + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + if (i0 >= 0) { + bit = bitmap[i0][j0]; + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + const pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; +} +function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + let codingTemplate = RefinementTemplates[templateIndex].coding; + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + const codingTemplateLength = codingTemplate.length; + const codingTemplateX = new Int32Array(codingTemplateLength); + const codingTemplateY = new Int32Array(codingTemplateLength); + let k; + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + let referenceTemplate = RefinementTemplates[templateIndex].reference; + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + const referenceTemplateLength = referenceTemplate.length; + const referenceTemplateX = new Int32Array(referenceTemplateLength); + const referenceTemplateY = new Int32Array(referenceTemplateLength); + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + const referenceWidth = referenceBitmap[0].length; + const referenceHeight = referenceBitmap.length; + const pseudoPixelContext = RefinementReusedContexts[templateIndex]; + const bitmap = []; + const decoder = decodingContext.decoder; + const contexts = decodingContext.contextCache.getContexts("GR"); + let ltp = 0; + for (let i = 0; i < height; i++) { + if (prediction) { + const sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + throw new Jbig2Error("prediction is not supported"); + } + } + const row = new Uint8Array(width); + bitmap.push(row); + for (let j = 0; j < width; j++) { + let i0, j0; + let contextLabel = 0; + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] - offsetY; + j0 = j + referenceTemplateX[k] - offsetX; + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + const pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; +} +function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error("symbol refinement with Huffman is not supported"); + } + const newSymbols = []; + let currentHeight = 0; + let symbolCodeLength = log2(symbols.length + numberOfNewSymbols); + const decoder = decodingContext.decoder; + const contextCache = decodingContext.contextCache; + let tableB1, symbolWidths; + if (huffman) { + tableB1 = getStandardTable(1); + symbolWidths = []; + symbolCodeLength = Math.max(symbolCodeLength, 1); + } + while (newSymbols.length < numberOfNewSymbols) { + const deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, "IADH", decoder); + currentHeight += deltaHeight; + let currentWidth = 0, + totalWidth = 0; + const firstSymbol = huffman ? symbolWidths.length : 0; + while (true) { + const deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, "IADW", decoder); + if (deltaWidth === null) { + break; + } + currentWidth += deltaWidth; + totalWidth += currentWidth; + let bitmap; + if (refinement) { + const numberOfInstances = decodeInteger(contextCache, "IAAI", decoder); + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput); + } else { + const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + const rdx = decodeInteger(contextCache, "IARDX", decoder); + const rdy = decodeInteger(contextCache, "IARDY", decoder); + const symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + newSymbols.push(bitmap); + } else if (huffman) { + symbolWidths.push(currentWidth); + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + newSymbols.push(bitmap); + } + } + if (huffman && !refinement) { + const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput); + huffmanInput.byteAlign(); + let collectiveBitmap; + if (bitmapSize === 0) { + collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight); + } else { + const originalEnd = huffmanInput.end; + const bitmapEnd = huffmanInput.position + bitmapSize; + huffmanInput.end = bitmapEnd; + collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false); + huffmanInput.end = originalEnd; + huffmanInput.position = bitmapEnd; + } + const numberOfSymbolsDecoded = symbolWidths.length; + if (firstSymbol === numberOfSymbolsDecoded - 1) { + newSymbols.push(collectiveBitmap); + } else { + let i, + y, + xMin = 0, + xMax, + bitmapWidth, + symbolBitmap; + for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) { + bitmapWidth = symbolWidths[i]; + xMax = xMin + bitmapWidth; + symbolBitmap = []; + for (y = 0; y < currentHeight; y++) { + symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + newSymbols.push(symbolBitmap); + xMin = xMax; + } + } + } + } + const exportedSymbols = [], + flags = []; + let currentFlag = false, + i, + ii; + const totalSymbolsLength = symbols.length + numberOfNewSymbols; + while (flags.length < totalSymbolsLength) { + let runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, "IAEX", decoder); + while (runLength--) { + flags.push(currentFlag); + } + currentFlag = !currentFlag; + } + for (i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + for (let j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + return exportedSymbols; +} +function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error("refinement with Huffman is not supported"); + } + const bitmap = []; + let i, row; + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + if (defaultPixelValue) { + for (let j = 0; j < width; j++) { + row[j] = defaultPixelValue; + } + } + bitmap.push(row); + } + const decoder = decodingContext.decoder; + const contextCache = decodingContext.contextCache; + let stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, "IADT", decoder); + let firstS = 0; + i = 0; + while (i < numberOfSymbolInstances) { + const deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, "IADT", decoder); + stripT += deltaT; + const deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, "IAFS", decoder); + firstS += deltaFirstS; + let currentS = firstS; + do { + let currentT = 0; + if (stripSize > 1) { + currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, "IAIT", decoder); + } + const t = stripSize * stripT + currentT; + const symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength); + const applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, "IARI", decoder)); + let symbolBitmap = inputSymbols[symbolId]; + let symbolWidth = symbolBitmap[0].length; + let symbolHeight = symbolBitmap.length; + if (applyRefinement) { + const rdw = decodeInteger(contextCache, "IARDW", decoder); + const rdh = decodeInteger(contextCache, "IARDH", decoder); + const rdx = decodeInteger(contextCache, "IARDX", decoder); + const rdy = decodeInteger(contextCache, "IARDY", decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + let increment = 0; + if (!transposed) { + if (referenceCorner > 1) { + currentS += symbolWidth - 1; + } else { + increment = symbolWidth - 1; + } + } else if (!(referenceCorner & 1)) { + currentS += symbolHeight - 1; + } else { + increment = symbolHeight - 1; + } + const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1); + const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0); + let s2, t2, symbolRow; + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[s2]; + const maxWidth = Math.min(width - offsetT, symbolWidth); + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + break; + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[t2]; + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + break; + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + } + i++; + const deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, "IADS", decoder); + if (deltaS === null) { + break; + } + currentS += increment + deltaS + dsOffset; + } while (true); + } + return bitmap; +} +function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) { + const at = []; + if (!mmr) { + at.push({ + x: -patternWidth, + y: 0 + }); + if (template === 0) { + at.push({ + x: -3, + y: -1 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -2 + }); + } + } + const collectiveWidth = (maxPatternIndex + 1) * patternWidth; + const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext); + const patterns = []; + for (let i = 0; i <= maxPatternIndex; i++) { + const patternBitmap = []; + const xMin = patternWidth * i; + const xMax = xMin + patternWidth; + for (let y = 0; y < patternHeight; y++) { + patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + patterns.push(patternBitmap); + } + return patterns; +} +function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) { + const skip = null; + if (enableSkip) { + throw new Jbig2Error("skip is not supported"); + } + if (combinationOperator !== 0) { + throw new Jbig2Error(`operator "${combinationOperator}" is not supported in halftone region`); + } + const regionBitmap = []; + let i, j, row; + for (i = 0; i < regionHeight; i++) { + row = new Uint8Array(regionWidth); + if (defaultPixelValue) { + for (j = 0; j < regionWidth; j++) { + row[j] = defaultPixelValue; + } + } + regionBitmap.push(row); + } + const numberOfPatterns = patterns.length; + const pattern0 = patterns[0]; + const patternWidth = pattern0[0].length, + patternHeight = pattern0.length; + const bitsPerValue = log2(numberOfPatterns); + const at = []; + if (!mmr) { + at.push({ + x: template <= 1 ? 3 : 2, + y: -1 + }); + if (template === 0) { + at.push({ + x: -3, + y: -1 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -2 + }); + } + } + const grayScaleBitPlanes = []; + let mmrInput, bitmap; + if (mmr) { + mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + } + for (i = bitsPerValue - 1; i >= 0; i--) { + if (mmr) { + bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true); + } else { + bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext); + } + grayScaleBitPlanes[i] = bitmap; + } + let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow; + for (mg = 0; mg < gridHeight; mg++) { + for (ng = 0; ng < gridWidth; ng++) { + bit = 0; + patternIndex = 0; + for (j = bitsPerValue - 1; j >= 0; j--) { + bit ^= grayScaleBitPlanes[j][mg][ng]; + patternIndex |= bit << j; + } + patternBitmap = patterns[patternIndex]; + x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8; + y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8; + if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) { + for (i = 0; i < patternHeight; i++) { + regionRow = regionBitmap[y + i]; + patternRow = patternBitmap[i]; + for (j = 0; j < patternWidth; j++) { + regionRow[x + j] |= patternRow[j]; + } + } + } else { + let regionX, regionY; + for (i = 0; i < patternHeight; i++) { + regionY = y + i; + if (regionY < 0 || regionY >= regionHeight) { + continue; + } + regionRow = regionBitmap[regionY]; + patternRow = patternBitmap[i]; + for (j = 0; j < patternWidth; j++) { + regionX = x + j; + if (regionX >= 0 && regionX < regionWidth) { + regionRow[regionX] |= patternRow[j]; + } + } + } + } + } + } + return regionBitmap; +} +function readSegmentHeader(data, start) { + const segmentHeader = {}; + segmentHeader.number = readUint32(data, start); + const flags = data[start + 4]; + const segmentType = flags & 0x3f; + if (!SegmentTypes[segmentType]) { + throw new Jbig2Error("invalid segment type: " + segmentType); + } + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + const pageAssociationFieldSize = !!(flags & 0x40); + const referredFlags = data[start + 5]; + let referredToCount = referredFlags >> 5 & 7; + const retainBits = [referredFlags & 31]; + let position = start + 6; + if (referredFlags === 7) { + referredToCount = readUint32(data, position - 1) & 0x1fffffff; + position += 3; + let bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + throw new Jbig2Error("invalid referred-to flags"); + } + segmentHeader.retainBits = retainBits; + let referredToSegmentNumberSize = 4; + if (segmentHeader.number <= 256) { + referredToSegmentNumberSize = 1; + } else if (segmentHeader.number <= 65536) { + referredToSegmentNumberSize = 2; + } + const referredTo = []; + let i, ii; + for (i = 0; i < referredToCount; i++) { + let number; + if (referredToSegmentNumberSize === 1) { + number = data[position]; + } else if (referredToSegmentNumberSize === 2) { + number = readUint16(data, position); + } else { + number = readUint32(data, position); + } + referredTo.push(number); + position += referredToSegmentNumberSize; + } + segmentHeader.referredTo = referredTo; + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = readUint32(data, position); + position += 4; + } + segmentHeader.length = readUint32(data, position); + position += 4; + if (segmentHeader.length === 0xffffffff) { + if (segmentType === 38) { + const genericRegionInfo = readRegionSegmentInformation(data, position); + const genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + const genericRegionMmr = !!(genericRegionSegmentFlags & 1); + const searchPatternLength = 6; + const searchPattern = new Uint8Array(searchPatternLength); + if (!genericRegionMmr) { + searchPattern[0] = 0xff; + searchPattern[1] = 0xac; + } + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xff; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xff; + searchPattern[5] = genericRegionInfo.height & 0xff; + for (i = position, ii = data.length; i < ii; i++) { + let j = 0; + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + if (segmentHeader.length === 0xffffffff) { + throw new Jbig2Error("segment end was not found"); + } + } else { + throw new Jbig2Error("invalid unknown segment length"); + } + } + segmentHeader.headerEnd = position; + return segmentHeader; +} +function readSegments(header, data, start, end) { + const segments = []; + let position = start; + while (position < end) { + const segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + const segment = { + header: segmentHeader, + data + }; + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + segments.push(segment); + if (segmentHeader.type === 51) { + break; + } + } + if (header.randomAccess) { + for (let i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + return segments; +} +function readRegionSegmentInformation(data, start) { + return { + width: readUint32(data, start), + height: readUint32(data, start + 4), + x: readUint32(data, start + 8), + y: readUint32(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; +} +const RegionSegmentInformationFieldLength = 17; +function processSegment(segment, visitor) { + const header = segment.header; + const data = segment.data, + end = segment.end; + let position = segment.start; + let args, at, i, atLength; + switch (header.type) { + case 0: + const dictionary = {}; + const dictionaryFlags = readUint16(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.at = at; + } + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.refinementAt = at; + } + dictionary.numberOfExportedSymbols = readUint32(data, position); + position += 4; + dictionary.numberOfNewSymbols = readUint32(data, position); + position += 4; + args = [dictionary, header.number, header.referredTo, data, position, end]; + break; + case 6: + case 7: + const textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const textRegionSegmentFlags = readUint16(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3; + textRegion.stripSize = 1 << textRegion.logStripSize; + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + if (textRegion.huffman) { + const textRegionHuffmanFlags = readUint16(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000); + } + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + textRegion.refinementAt = at; + } + textRegion.numberOfSymbolInstances = readUint32(data, position); + position += 4; + args = [textRegion, header.referredTo, data, position, end]; + break; + case 16: + const patternDictionary = {}; + const patternDictionaryFlags = data[position++]; + patternDictionary.mmr = !!(patternDictionaryFlags & 1); + patternDictionary.template = patternDictionaryFlags >> 1 & 3; + patternDictionary.patternWidth = data[position++]; + patternDictionary.patternHeight = data[position++]; + patternDictionary.maxPatternIndex = readUint32(data, position); + position += 4; + args = [patternDictionary, header.number, data, position, end]; + break; + case 22: + case 23: + const halftoneRegion = {}; + halftoneRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const halftoneRegionFlags = data[position++]; + halftoneRegion.mmr = !!(halftoneRegionFlags & 1); + halftoneRegion.template = halftoneRegionFlags >> 1 & 3; + halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8); + halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7; + halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1; + halftoneRegion.gridWidth = readUint32(data, position); + position += 4; + halftoneRegion.gridHeight = readUint32(data, position); + position += 4; + halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff; + position += 4; + halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff; + position += 4; + halftoneRegion.gridVectorX = readUint16(data, position); + position += 2; + halftoneRegion.gridVectorY = readUint16(data, position); + position += 2; + args = [halftoneRegion, header.referredTo, data, position, end]; + break; + case 38: + case 39: + const genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + const genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + genericRegion.at = at; + } + args = [genericRegion, data, position, end]; + break; + case 48: + const pageInfo = { + width: readUint32(data, position), + height: readUint32(data, position + 4), + resolutionX: readUint32(data, position + 8), + resolutionY: readUint32(data, position + 12) + }; + if (pageInfo.height === 0xffffffff) { + delete pageInfo.height; + } + const pageSegmentFlags = data[position + 16]; + readUint16(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + case 49: + break; + case 50: + break; + case 51: + break; + case 53: + args = [header.number, data, position, end]; + break; + case 62: + break; + default: + throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`); + } + const callbackName = "on" + header.typeName; + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } +} +function processSegments(segments, visitor) { + for (let i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } +} +function parseJbig2Chunks(chunks) { + const visitor = new SimpleSegmentVisitor(); + for (let i = 0, ii = chunks.length; i < ii; i++) { + const chunk = chunks[i]; + const segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + return visitor.buffer; +} +function parseJbig2(data) { + throw new Error("Not implemented: parseJbig2"); +} +class SimpleSegmentVisitor { + onPageInformation(info) { + this.currentPageInfo = info; + const rowSize = info.width + 7 >> 3; + const buffer = new Uint8ClampedArray(rowSize * info.height); + if (info.defaultPixelValue) { + buffer.fill(0xff); + } + this.buffer = buffer; + } + drawBitmap(regionInfo, bitmap) { + const pageInfo = this.currentPageInfo; + const width = regionInfo.width, + height = regionInfo.height; + const rowSize = pageInfo.width + 7 >> 3; + const combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + const buffer = this.buffer; + const mask0 = 128 >> (regionInfo.x & 7); + let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + let i, j, mask, offset; + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + default: + throw new Jbig2Error(`operator ${combinationOperator} is not supported`); + } + } + onImmediateGenericRegion(region, data, start, end) { + const regionInfo = region.info; + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion(...arguments); + } + onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + let huffmanTables, huffmanInput; + if (dictionary.huffman) { + huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables); + huffmanInput = new Reader(data, start, end); + } + let symbols = this.symbols; + if (!symbols) { + this.symbols = symbols = {}; + } + const inputSymbols = []; + for (const referredSegment of referredSegments) { + const referredSymbols = symbols[referredSegment]; + if (referredSymbols) { + inputSymbols.push(...referredSymbols); + } + } + const decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput); + } + onImmediateTextRegion(region, referredSegments, data, start, end) { + const regionInfo = region.info; + let huffmanTables, huffmanInput; + const symbols = this.symbols; + const inputSymbols = []; + for (const referredSegment of referredSegments) { + const referredSymbols = symbols[referredSegment]; + if (referredSymbols) { + inputSymbols.push(...referredSymbols); + } + } + const symbolCodeLength = log2(inputSymbols.length); + if (region.huffman) { + huffmanInput = new Reader(data, start, end); + huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput); + } + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessTextRegion() { + this.onImmediateTextRegion(...arguments); + } + onPatternDictionary(dictionary, currentSegment, data, start, end) { + let patterns = this.patterns; + if (!patterns) { + this.patterns = patterns = {}; + } + const decodingContext = new DecodingContext(data, start, end); + patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext); + } + onImmediateHalftoneRegion(region, referredSegments, data, start, end) { + const patterns = this.patterns[referredSegments[0]]; + const regionInfo = region.info; + const decodingContext = new DecodingContext(data, start, end); + const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext); + this.drawBitmap(regionInfo, bitmap); + } + onImmediateLosslessHalftoneRegion() { + this.onImmediateHalftoneRegion(...arguments); + } + onTables(currentSegment, data, start, end) { + let customTables = this.customTables; + if (!customTables) { + this.customTables = customTables = {}; + } + customTables[currentSegment] = decodeTablesSegment(data, start, end); + } +} +class HuffmanLine { + constructor(lineData) { + if (lineData.length === 2) { + this.isOOB = true; + this.rangeLow = 0; + this.prefixLength = lineData[0]; + this.rangeLength = 0; + this.prefixCode = lineData[1]; + this.isLowerRange = false; + } else { + this.isOOB = false; + this.rangeLow = lineData[0]; + this.prefixLength = lineData[1]; + this.rangeLength = lineData[2]; + this.prefixCode = lineData[3]; + this.isLowerRange = lineData[4] === "lower"; + } + } +} +class HuffmanTreeNode { + constructor(line) { + this.children = []; + if (line) { + this.isLeaf = true; + this.rangeLength = line.rangeLength; + this.rangeLow = line.rangeLow; + this.isLowerRange = line.isLowerRange; + this.isOOB = line.isOOB; + } else { + this.isLeaf = false; + } + } + buildTree(line, shift) { + const bit = line.prefixCode >> shift & 1; + if (shift <= 0) { + this.children[bit] = new HuffmanTreeNode(line); + } else { + let node = this.children[bit]; + if (!node) { + this.children[bit] = node = new HuffmanTreeNode(null); + } + node.buildTree(line, shift - 1); + } + } + decodeNode(reader) { + if (this.isLeaf) { + if (this.isOOB) { + return null; + } + const htOffset = reader.readBits(this.rangeLength); + return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset); + } + const node = this.children[reader.readBit()]; + if (!node) { + throw new Jbig2Error("invalid Huffman data"); + } + return node.decodeNode(reader); + } +} +class HuffmanTable { + constructor(lines, prefixCodesDone) { + if (!prefixCodesDone) { + this.assignPrefixCodes(lines); + } + this.rootNode = new HuffmanTreeNode(null); + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; + if (line.prefixLength > 0) { + this.rootNode.buildTree(line, line.prefixLength - 1); + } + } + } + decode(reader) { + return this.rootNode.decodeNode(reader); + } + assignPrefixCodes(lines) { + const linesLength = lines.length; + let prefixLengthMax = 0; + for (let i = 0; i < linesLength; i++) { + prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength); + } + const histogram = new Uint32Array(prefixLengthMax + 1); + for (let i = 0; i < linesLength; i++) { + histogram[lines[i].prefixLength]++; + } + let currentLength = 1, + firstCode = 0, + currentCode, + currentTemp, + line; + histogram[0] = 0; + while (currentLength <= prefixLengthMax) { + firstCode = firstCode + histogram[currentLength - 1] << 1; + currentCode = firstCode; + currentTemp = 0; + while (currentTemp < linesLength) { + line = lines[currentTemp]; + if (line.prefixLength === currentLength) { + line.prefixCode = currentCode; + currentCode++; + } + currentTemp++; + } + currentLength++; + } + } +} +function decodeTablesSegment(data, start, end) { + const flags = data[start]; + const lowestValue = readUint32(data, start + 1) & 0xffffffff; + const highestValue = readUint32(data, start + 5) & 0xffffffff; + const reader = new Reader(data, start + 9, end); + const prefixSizeBits = (flags >> 1 & 7) + 1; + const rangeSizeBits = (flags >> 4 & 7) + 1; + const lines = []; + let prefixLength, + rangeLength, + currentRangeLow = lowestValue; + do { + prefixLength = reader.readBits(prefixSizeBits); + rangeLength = reader.readBits(rangeSizeBits); + lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])); + currentRangeLow += 1 << rangeLength; + } while (currentRangeLow < highestValue); + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, "lower"])); + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0])); + if (flags & 1) { + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([prefixLength, 0])); + } + return new HuffmanTable(lines, false); +} +const standardTablesCache = {}; +function getStandardTable(number) { + let table = standardTablesCache[number]; + if (table) { + return table; + } + let lines; + switch (number) { + case 1: + lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]]; + break; + case 2: + lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]]; + break; + case 3: + lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, "lower"], [75, 7, 32, 0x7e], [6, 0x3e]]; + break; + case 4: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]]; + break; + case 5: + lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, "lower"], [76, 6, 32, 0x3e]]; + break; + case 6: + lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, "lower"], [2048, 6, 32, 0x3f]]; + break; + case 7: + lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, "lower"], [2048, 5, 32, 0x1f]]; + break; + case 8: + lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, "lower"], [1670, 9, 32, 0x1ff], [2, 0x1]]; + break; + case 9: + lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, "lower"], [3339, 9, 32, 0x1ff], [2, 0x0]]; + break; + case 10: + lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, "lower"], [4166, 8, 32, 0xff], [2, 0x2]]; + break; + case 11: + lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; + break; + case 12: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]]; + break; + case 13: + lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]]; + break; + case 14: + lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]]; + break; + case 15: + lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, "lower"], [25, 7, 32, 0x7f]]; + break; + default: + throw new Jbig2Error(`standard table B.${number} does not exist`); + } + for (let i = 0, ii = lines.length; i < ii; i++) { + lines[i] = new HuffmanLine(lines[i]); + } + table = new HuffmanTable(lines, true); + standardTablesCache[number] = table; + return table; +} +class Reader { + constructor(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + this.position = start; + this.shift = -1; + this.currentByte = 0; + } + readBit() { + if (this.shift < 0) { + if (this.position >= this.end) { + throw new Jbig2Error("end of data while reading bit"); + } + this.currentByte = this.data[this.position++]; + this.shift = 7; + } + const bit = this.currentByte >> this.shift & 1; + this.shift--; + return bit; + } + readBits(numBits) { + let result = 0, + i; + for (i = numBits - 1; i >= 0; i--) { + result |= this.readBit() << i; + } + return result; + } + byteAlign() { + this.shift = -1; + } + next() { + if (this.position >= this.end) { + return -1; + } + return this.data[this.position++]; + } +} +function getCustomHuffmanTable(index, referredTo, customTables) { + let currentIndex = 0; + for (let i = 0, ii = referredTo.length; i < ii; i++) { + const table = customTables[referredTo[i]]; + if (table) { + if (index === currentIndex) { + return table; + } + currentIndex++; + } + } + throw new Jbig2Error("can't find custom Huffman table"); +} +function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) { + const codes = []; + for (let i = 0; i <= 34; i++) { + const codeLength = reader.readBits(4); + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + } + const runCodesTable = new HuffmanTable(codes, false); + codes.length = 0; + for (let i = 0; i < numberOfSymbols;) { + const codeLength = runCodesTable.decode(reader); + if (codeLength >= 32) { + let repeatedLength, numberOfRepeats, j; + switch (codeLength) { + case 32: + if (i === 0) { + throw new Jbig2Error("no previous value in symbol ID table"); + } + numberOfRepeats = reader.readBits(2) + 3; + repeatedLength = codes[i - 1].prefixLength; + break; + case 33: + numberOfRepeats = reader.readBits(3) + 3; + repeatedLength = 0; + break; + case 34: + numberOfRepeats = reader.readBits(7) + 11; + repeatedLength = 0; + break; + default: + throw new Jbig2Error("invalid code length in symbol ID table"); + } + for (j = 0; j < numberOfRepeats; j++) { + codes.push(new HuffmanLine([i, repeatedLength, 0, 0])); + i++; + } + } else { + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + i++; + } + } + reader.byteAlign(); + const symbolIDTable = new HuffmanTable(codes, false); + let customIndex = 0, + tableFirstS, + tableDeltaS, + tableDeltaT; + switch (textRegion.huffmanFS) { + case 0: + case 1: + tableFirstS = getStandardTable(textRegion.huffmanFS + 6); + break; + case 3: + tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman FS selector"); + } + switch (textRegion.huffmanDS) { + case 0: + case 1: + case 2: + tableDeltaS = getStandardTable(textRegion.huffmanDS + 8); + break; + case 3: + tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DS selector"); + } + switch (textRegion.huffmanDT) { + case 0: + case 1: + case 2: + tableDeltaT = getStandardTable(textRegion.huffmanDT + 11); + break; + case 3: + tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DT selector"); + } + if (textRegion.refinement) { + throw new Jbig2Error("refinement with Huffman is not supported"); + } + return { + symbolIDTable, + tableFirstS, + tableDeltaS, + tableDeltaT + }; +} +function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) { + let customIndex = 0, + tableDeltaHeight, + tableDeltaWidth; + switch (dictionary.huffmanDHSelector) { + case 0: + case 1: + tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4); + break; + case 3: + tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DH selector"); + } + switch (dictionary.huffmanDWSelector) { + case 0: + case 1: + tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2); + break; + case 3: + tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + default: + throw new Jbig2Error("invalid Huffman DW selector"); + } + let tableBitmapSize, tableAggregateInstances; + if (dictionary.bitmapSizeSelector) { + tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + } else { + tableBitmapSize = getStandardTable(1); + } + if (dictionary.aggregationInstancesSelector) { + tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables); + } else { + tableAggregateInstances = getStandardTable(1); + } + return { + tableDeltaHeight, + tableDeltaWidth, + tableBitmapSize, + tableAggregateInstances + }; +} +function readUncompressedBitmap(reader, width, height) { + const bitmap = []; + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); + bitmap.push(row); + for (let x = 0; x < width; x++) { + row[x] = reader.readBit(); + } + reader.byteAlign(); + } + return bitmap; +} +function decodeMMRBitmap(input, width, height, endOfBlock) { + const params = { + K: -1, + Columns: width, + Rows: height, + BlackIs1: true, + EndOfBlock: endOfBlock + }; + const decoder = new CCITTFaxDecoder(input, params); + const bitmap = []; + let currentByte, + eof = false; + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); + bitmap.push(row); + let shift = -1; + for (let x = 0; x < width; x++) { + if (shift < 0) { + currentByte = decoder.readNextChar(); + if (currentByte === -1) { + currentByte = 0; + eof = true; + } + shift = 7; + } + row[x] = currentByte >> shift & 1; + shift--; + } + } + if (endOfBlock && !eof) { + const lookForEOFLimit = 5; + for (let i = 0; i < lookForEOFLimit; i++) { + if (decoder.readNextChar() === -1) { + break; + } + } + } + return bitmap; +} +class Jbig2Image { + parseChunks(chunks) { + return parseJbig2Chunks(chunks); + } + parse(data) { + throw new Error("Not implemented: Jbig2Image.parse"); + } +} + +;// ./src/core/jbig2_stream.js + + + + + +class Jbig2Stream extends DecodeStream { + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock() { + this.decodeImage(); + } + decodeImage(bytes) { + if (this.eof) { + return this.buffer; + } + bytes ||= this.bytes; + const jbig2Image = new Jbig2Image(); + const chunks = []; + if (this.params instanceof Dict) { + const globalsStream = this.params.get("JBIG2Globals"); + if (globalsStream instanceof BaseStream) { + const globals = globalsStream.getBytes(); + chunks.push({ + data: globals, + start: 0, + end: globals.length + }); + } + } + chunks.push({ + data: bytes, + start: 0, + end: bytes.length + }); + const data = jbig2Image.parseChunks(chunks); + const dataLength = data.length; + for (let i = 0; i < dataLength; i++) { + data[i] ^= 0xff; + } + this.buffer = data; + this.bufferLength = dataLength; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } +} + +;// ./src/shared/image_utils.js + +function convertToRGBA(params) { + switch (params.kind) { + case ImageKind.GRAYSCALE_1BPP: + return convertBlackAndWhiteToRGBA(params); + case ImageKind.RGB_24BPP: + return convertRGBToRGBA(params); + } + return null; +} +function convertBlackAndWhiteToRGBA({ + src, + srcPos = 0, + dest, + width, + height, + nonBlackColor = 0xffffffff, + inverseDecode = false +}) { + const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor]; + const widthInSource = width >> 3; + const widthRemainder = width & 7; + const srcLength = src.length; + dest = new Uint32Array(dest.buffer); + let destPos = 0; + for (let i = 0; i < height; i++) { + for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { + const elem = srcPos < srcLength ? src[srcPos] : 255; + dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; + } + if (widthRemainder === 0) { + continue; + } + const elem = srcPos < srcLength ? src[srcPos++] : 255; + for (let j = 0; j < widthRemainder; j++) { + dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; + } + } + return { + srcPos, + destPos + }; +} +function convertRGBToRGBA({ + src, + srcPos = 0, + dest, + destPos = 0, + width, + height +}) { + let i = 0; + const len = width * height * 3; + const len32 = len >> 2; + const src32 = new Uint32Array(src.buffer, srcPos, len32); + if (FeatureTest.isLittleEndian) { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff000000; + dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000; + dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000; + dest[destPos + 3] = s3 >>> 8 | 0xff000000; + } + for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) { + dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000; + } + } else { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff; + dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff; + dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff; + dest[destPos + 3] = s3 << 8 | 0xff; + } + for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) { + dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff; + } + } + return { + srcPos: srcPos + len, + destPos + }; +} +function grayToRGBA(src, dest) { + if (FeatureTest.isLittleEndian) { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x10101 | 0xff000000; + } + } else { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x1010100 | 0x000000ff; + } + } +} + +;// ./src/core/jpg.js + + + +class JpegError extends BaseException { + constructor(msg) { + super(msg, "JpegError"); + } +} +class DNLMarkerError extends BaseException { + constructor(message, scanLines) { + super(message, "DNLMarkerError"); + this.scanLines = scanLines; + } +} +class EOIMarkerError extends BaseException { + constructor(msg) { + super(msg, "EOIMarkerError"); + } +} +const dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]); +const dctCos1 = 4017; +const dctSin1 = 799; +const dctCos3 = 3406; +const dctSin3 = 2276; +const dctCos6 = 1567; +const dctSin6 = 3784; +const dctSqrt2 = 5793; +const dctSqrt1d2 = 2896; +function buildHuffmanTable(codeLengths, values) { + let k = 0, + i, + j, + length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + const code = [{ + children: [], + index: 0 + }]; + let p = code[0], + q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; +} +function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); +} +function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) { + const mcusPerLine = frame.mcusPerLine; + const progressive = frame.progressive; + const startOffset = offset; + let bitsData = 0, + bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xff) { + const nextByte = data[offset++]; + if (nextByte) { + if (nextByte === 0xdc && parseDNLMarker) { + offset += 2; + const scanLines = readUint16(data, offset); + offset += 2; + if (scanLines > 0 && scanLines !== frame.scanLines) { + throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", scanLines); + } + } else if (nextByte === 0xd9) { + if (parseDNLMarker) { + const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0); + if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 5) { + throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, " + "possibly caused by incorrect `scanLines` parameter", maybeScanLines); + } + } + throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data"); + } + throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`); + } + } + bitsCount = 7; + return bitsData >>> 7; + } + function decodeHuffman(tree) { + let node = tree; + while (true) { + node = node[readBit()]; + switch (typeof node) { + case "number": + return node; + case "object": + continue; + } + throw new JpegError("invalid huffman sequence"); + } + } + function receive(length) { + let n = 0; + while (length > 0) { + n = n << 1 | readBit(); + length--; + } + return n; + } + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + const n = receive(length); + if (n >= 1 << length - 1) { + return n; + } + return n + (-1 << length) + 1; + } + function decodeBaseline(component, blockOffset) { + const t = decodeHuffman(component.huffmanTableDC); + const diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[blockOffset] = component.pred += diff; + let k = 1; + while (k < 64) { + const rs = decodeHuffman(component.huffmanTableAC); + const s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + const z = dctZigZag[k]; + component.blockData[blockOffset + z] = receiveAndExtend(s); + k++; + } + } + function decodeDCFirst(component, blockOffset) { + const t = decodeHuffman(component.huffmanTableDC); + const diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component.blockData[blockOffset] = component.pred += diff; + } + function decodeDCSuccessive(component, blockOffset) { + component.blockData[blockOffset] |= readBit() << successive; + } + let eobrun = 0; + function decodeACFirst(component, blockOffset) { + if (eobrun > 0) { + eobrun--; + return; + } + let k = spectralStart; + const e = spectralEnd; + while (k <= e) { + const rs = decodeHuffman(component.huffmanTableAC); + const s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + const z = dctZigZag[k]; + component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive); + k++; + } + } + let successiveACState = 0, + successiveACNextValue; + function decodeACSuccessive(component, blockOffset) { + let k = spectralStart; + const e = spectralEnd; + let r = 0; + let s; + let rs; + while (k <= e) { + const offsetZ = blockOffset + dctZigZag[k]; + const sign = component.blockData[offsetZ] < 0 ? -1 : 1; + switch (successiveACState) { + case 0: + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + throw new JpegError("invalid ACn encoding"); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: + case 2: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + component.blockData[offsetZ] = successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + let blockRow = 0; + function decodeMcu(component, decode, mcu, row, col) { + const mcuRow = mcu / mcusPerLine | 0; + const mcuCol = mcu % mcusPerLine; + blockRow = mcuRow * component.v + row; + const blockCol = mcuCol * component.h + col; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + function decodeBlock(component, decode, mcu) { + blockRow = mcu / component.blocksPerLine | 0; + const blockCol = mcu % component.blocksPerLine; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + const componentsLength = components.length; + let component, i, j, k, n; + let decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + let mcu = 0, + fileMarker; + const mcuExpected = componentsLength === 1 ? components[0].blocksPerLine * components[0].blocksPerColumn : mcusPerLine * frame.mcusPerColumn; + let h, v; + while (mcu <= mcuExpected) { + const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; + if (mcuToRead > 0) { + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + if (componentsLength === 1) { + component = components[0]; + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + } + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + if (!fileMarker) { + break; + } + if (fileMarker.invalid) { + const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive"; + warn(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`); + offset = fileMarker.offset; + } + if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) { + offset += 2; + } else { + break; + } + } + return offset - startOffset; +} +function quantizeAndInverse(component, blockBufferOffset, p) { + const qt = component.quantizationTable, + blockData = component.blockData; + let v0, v1, v2, v3, v4, v5, v6, v7; + let p0, p1, p2, p3, p4, p5, p6, p7; + let t; + if (!qt) { + throw new JpegError("missing required Quantization Table."); + } + for (let row = 0; row < 64; row += 8) { + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + p0 *= qt[row]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 512 >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + v0 = dctSqrt2 * p0 + 128 >> 8; + v1 = dctSqrt2 * p4 + 128 >> 8; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8; + v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + v0 = v0 + v1 + 1 >> 1; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + for (let col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 8192 >> 14; + if (t < -2040) { + t = 0; + } else if (t >= 2024) { + t = 255; + } else { + t = t + 2056 >> 4; + } + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + v0 = dctSqrt2 * p0 + 2048 >> 12; + v1 = dctSqrt2 * p4 + 2048 >> 12; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12; + v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12; + v5 = p3; + v6 = p5; + v0 = (v0 + v1 + 1 >> 1) + 4112; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + if (p0 < 16) { + p0 = 0; + } else if (p0 >= 4080) { + p0 = 255; + } else { + p0 >>= 4; + } + if (p1 < 16) { + p1 = 0; + } else if (p1 >= 4080) { + p1 = 255; + } else { + p1 >>= 4; + } + if (p2 < 16) { + p2 = 0; + } else if (p2 >= 4080) { + p2 = 255; + } else { + p2 >>= 4; + } + if (p3 < 16) { + p3 = 0; + } else if (p3 >= 4080) { + p3 = 255; + } else { + p3 >>= 4; + } + if (p4 < 16) { + p4 = 0; + } else if (p4 >= 4080) { + p4 = 255; + } else { + p4 >>= 4; + } + if (p5 < 16) { + p5 = 0; + } else if (p5 >= 4080) { + p5 = 255; + } else { + p5 >>= 4; + } + if (p6 < 16) { + p6 = 0; + } else if (p6 >= 4080) { + p6 = 255; + } else { + p6 >>= 4; + } + if (p7 < 16) { + p7 = 0; + } else if (p7 >= 4080) { + p7 = 255; + } else { + p7 >>= 4; + } + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } +} +function buildComponentData(frame, component) { + const blocksPerLine = component.blocksPerLine; + const blocksPerColumn = component.blocksPerColumn; + const computationBuffer = new Int16Array(64); + for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) { + const offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; +} +function findNextFileMarker(data, currentPos, startPos = currentPos) { + const maxPos = data.length - 1; + let newPos = startPos < currentPos ? startPos : currentPos; + if (currentPos >= maxPos) { + return null; + } + const currentMarker = readUint16(data, currentPos); + if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos + }; + } + let newMarker = readUint16(data, newPos); + while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) { + if (++newPos >= maxPos) { + return null; + } + newMarker = readUint16(data, newPos); + } + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos + }; +} +function prepareComponents(frame) { + const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (const component of frame.components) { + const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH); + const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV); + const blocksPerLineForMcu = mcusPerLine * component.h; + const blocksPerColumnForMcu = mcusPerColumn * component.v; + const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; +} +function readDataBlock(data, offset) { + const length = readUint16(data, offset); + offset += 2; + let endOffset = offset + length - 2; + const fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker?.invalid) { + warn("readDataBlock - incorrect length, current marker is: " + fileMarker.invalid); + endOffset = fileMarker.offset; + } + const array = data.subarray(offset, endOffset); + offset += array.length; + return { + appData: array, + newOffset: offset + }; +} +function skipData(data, offset) { + const length = readUint16(data, offset); + offset += 2; + const endOffset = offset + length - 2; + const fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker?.invalid) { + return fileMarker.offset; + } + return endOffset; +} +class JpegImage { + constructor({ + decodeTransform = null, + colorTransform = -1 + } = {}) { + this._decodeTransform = decodeTransform; + this._colorTransform = colorTransform; + } + static canUseImageDecoder(data, colorTransform = -1) { + let offset = 0; + let numComponents = null; + let fileMarker = readUint16(data, offset); + offset += 2; + if (fileMarker !== 0xffd8) { + throw new JpegError("SOI not found"); + } + fileMarker = readUint16(data, offset); + offset += 2; + markerLoop: while (fileMarker !== 0xffd9) { + switch (fileMarker) { + case 0xffc0: + case 0xffc1: + case 0xffc2: + numComponents = data[offset + (2 + 1 + 2 + 2)]; + break markerLoop; + case 0xffff: + if (data[offset] !== 0xff) { + offset--; + } + break; + } + offset = skipData(data, offset); + fileMarker = readUint16(data, offset); + offset += 2; + } + if (numComponents === 4) { + return false; + } + if (numComponents === 3 && colorTransform === 0) { + return false; + } + return true; + } + parse(data, { + dnlScanLines = null + } = {}) { + let offset = 0; + let jfif = null; + let adobe = null; + let frame, resetInterval; + let numSOSMarkers = 0; + const quantizationTables = []; + const huffmanTablesAC = [], + huffmanTablesDC = []; + let fileMarker = readUint16(data, offset); + offset += 2; + if (fileMarker !== 0xffd8) { + throw new JpegError("SOI not found"); + } + fileMarker = readUint16(data, offset); + offset += 2; + markerLoop: while (fileMarker !== 0xffd9) { + let i, j, l; + switch (fileMarker) { + case 0xffe0: + case 0xffe1: + case 0xffe2: + case 0xffe3: + case 0xffe4: + case 0xffe5: + case 0xffe6: + case 0xffe7: + case 0xffe8: + case 0xffe9: + case 0xffea: + case 0xffeb: + case 0xffec: + case 0xffed: + case 0xffee: + case 0xffef: + case 0xfffe: + const { + appData, + newOffset + } = readDataBlock(data, offset); + offset = newOffset; + if (fileMarker === 0xffe0) { + if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) { + jfif = { + version: { + major: appData[5], + minor: appData[6] + }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + if (fileMarker === 0xffee) { + if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) { + adobe = { + version: appData[5] << 8 | appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } + break; + case 0xffdb: + const quantizationTablesLength = readUint16(data, offset); + offset += 2; + const quantizationTablesEnd = quantizationTablesLength + offset - 2; + let z; + while (offset < quantizationTablesEnd) { + const quantizationTableSpec = data[offset++]; + const tableData = new Uint16Array(64); + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(data, offset); + offset += 2; + } + } else { + throw new JpegError("DQT - invalid table spec"); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + case 0xffc0: + case 0xffc1: + case 0xffc2: + if (frame) { + throw new JpegError("Only single frame JPEGs supported"); + } + offset += 2; + frame = {}; + frame.extended = fileMarker === 0xffc1; + frame.progressive = fileMarker === 0xffc2; + frame.precision = data[offset++]; + const sofScanLines = readUint16(data, offset); + offset += 2; + frame.scanLines = dnlScanLines || sofScanLines; + frame.samplesPerLine = readUint16(data, offset); + offset += 2; + frame.components = []; + frame.componentIds = {}; + const componentsCount = data[offset++]; + let maxH = 0, + maxV = 0; + for (i = 0; i < componentsCount; i++) { + const componentId = data[offset]; + const h = data[offset + 1] >> 4; + const v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + const qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationId: qId, + quantizationTable: null + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + case 0xffc4: + const huffmanLength = readUint16(data, offset); + offset += 2; + for (i = 2; i < huffmanLength;) { + const huffmanTableSpec = data[offset++]; + const codeLengths = new Uint8Array(16); + let codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += codeLengths[j] = data[offset]; + } + const huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } + break; + case 0xffdd: + offset += 2; + resetInterval = readUint16(data, offset); + offset += 2; + break; + case 0xffda: + const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; + offset += 2; + const selectorsCount = data[offset++], + components = []; + for (i = 0; i < selectorsCount; i++) { + const index = data[offset++]; + const componentIndex = frame.componentIds[index]; + const component = frame.components[componentIndex]; + component.index = index; + const tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + const spectralStart = data[offset++], + spectralEnd = data[offset++], + successiveApproximation = data[offset++]; + try { + const processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker); + offset += processed; + } catch (ex) { + if (ex instanceof DNLMarkerError) { + warn(`${ex.message} -- attempting to re-parse the JPEG image.`); + return this.parse(data, { + dnlScanLines: ex.scanLines + }); + } else if (ex instanceof EOIMarkerError) { + warn(`${ex.message} -- ignoring the rest of the image data.`); + break markerLoop; + } + throw ex; + } + break; + case 0xffdc: + offset += 4; + break; + case 0xffff: + if (data[offset] !== 0xff) { + offset--; + } + break; + default: + const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3); + if (nextFileMarker?.invalid) { + warn("JpegImage.parse - unexpected data, current marker is: " + nextFileMarker.invalid); + offset = nextFileMarker.offset; + break; + } + if (!nextFileMarker || offset >= data.length - 1) { + warn("JpegImage.parse - reached the end of the image data " + "without finding an EOI marker (0xFFD9)."); + break markerLoop; + } + throw new JpegError("JpegImage.parse - unknown marker: " + fileMarker.toString(16)); + } + fileMarker = readUint16(data, offset); + offset += 2; + } + if (!frame) { + throw new JpegError("JpegImage.parse - no frame data found."); + } + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (const component of frame.components) { + const quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + this.components.push({ + index: component.index, + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn + }); + } + this.numComponents = this.components.length; + return undefined; + } + _getLinearizedBlockData(width, height, isSourcePDF = false) { + const scaleX = this.width / width, + scaleY = this.height / height; + let component, componentScaleX, componentScaleY, blocksPerScanline; + let x, y, i, j, k; + let index; + let offset = 0; + let output; + const numComponents = this.components.length; + const dataLength = width * height * numComponents; + const data = new Uint8ClampedArray(dataLength); + const xScaleBlockOffset = new Uint32Array(width); + const mask3LSB = 0xfffffff8; + let lastComponentScaleX; + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = component.blocksPerLine + 1 << 3; + if (componentScaleX !== lastComponentScaleX) { + for (x = 0; x < width; x++) { + j = 0 | x * componentScaleX; + xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7; + } + lastComponentScaleX = componentScaleX; + } + for (y = 0; y < height; y++) { + j = 0 | y * componentScaleY; + index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3; + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + let transform = this._decodeTransform; + if (!isSourcePDF && numComponents === 4 && !transform) { + transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]); + } + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = (data[i] * transform[k] >> 8) + transform[k + 1]; + } + } + } + return data; + } + get _isColorConversionNeeded() { + if (this.adobe) { + return !!this.adobe.transformCode; + } + if (this.numComponents === 3) { + if (this._colorTransform === 0) { + return false; + } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) { + return false; + } + return true; + } + if (this._colorTransform === 1) { + return true; + } + return false; + } + _convertYccToRgb(data) { + let Y, Cb, Cr; + for (let i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = Y - 179.456 + 1.402 * Cr; + data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + data[i + 2] = Y - 226.816 + 1.772 * Cb; + } + return data; + } + _convertYccToRgba(data, out) { + for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) { + const Y = data[i]; + const Cb = data[i + 1]; + const Cr = data[i + 2]; + out[j] = Y - 179.456 + 1.402 * Cr; + out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + out[j + 2] = Y - 226.816 + 1.772 * Cb; + out[j + 3] = 255; + } + return out; + } + _convertYcckToRgb(data) { + let Y, Cb, Cr, k; + let offset = 0; + for (let i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776); + data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665); + data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407); + } + return data.subarray(0, offset); + } + _convertYcckToRgba(data) { + for (let i = 0, length = data.length; i < length; i += 4) { + const Y = data[i]; + const Cb = data[i + 1]; + const Cr = data[i + 2]; + const k = data[i + 3]; + data[i] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776); + data[i + 1] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665); + data[i + 2] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407); + data[i + 3] = 255; + } + return data; + } + _convertYcckToCmyk(data) { + let Y, Cb, Cr; + for (let i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = 434.456 - Y - 1.402 * Cr; + data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr; + data[i + 2] = 481.816 - Y - 1.772 * Cb; + } + return data; + } + _convertCmykToRgb(data) { + let c, m, y, k; + let offset = 0; + for (let i = 0, length = data.length; i < length; i += 4) { + c = data[i]; + m = data[i + 1]; + y = data[i + 2]; + k = data[i + 3]; + data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254); + data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.0003189131175883281 * k + 0.7364883807733168); + data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144); + } + return data.subarray(0, offset); + } + _convertCmykToRgba(data) { + for (let i = 0, length = data.length; i < length; i += 4) { + const c = data[i]; + const m = data[i + 1]; + const y = data[i + 2]; + const k = data[i + 3]; + data[i] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254); + data[i + 1] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.0003189131175883281 * k + 0.7364883807733168); + data[i + 2] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144); + data[i + 3] = 255; + } + return data; + } + getData({ + width, + height, + forceRGBA = false, + forceRGB = false, + isSourcePDF = false + }) { + if (this.numComponents > 4) { + throw new JpegError("Unsupported color mode"); + } + const data = this._getLinearizedBlockData(width, height, isSourcePDF); + if (this.numComponents === 1 && (forceRGBA || forceRGB)) { + const len = data.length * (forceRGBA ? 4 : 3); + const rgbaData = new Uint8ClampedArray(len); + let offset = 0; + if (forceRGBA) { + grayToRGBA(data, new Uint32Array(rgbaData.buffer)); + } else { + for (const grayColor of data) { + rgbaData[offset++] = grayColor; + rgbaData[offset++] = grayColor; + rgbaData[offset++] = grayColor; + } + } + return rgbaData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded) { + if (forceRGBA) { + const rgbaData = new Uint8ClampedArray(data.length / 3 * 4); + return this._convertYccToRgba(data, rgbaData); + } + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded) { + if (forceRGBA) { + return this._convertYcckToRgba(data); + } + if (forceRGB) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGBA) { + return this._convertCmykToRgba(data); + } else if (forceRGB) { + return this._convertCmykToRgb(data); + } + } + return data; + } +} + +;// ./src/core/jpeg_stream.js + + + + +class JpegStream extends DecodeStream { + static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported; + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + static get canUseImageDecoder() { + return shadow(this, "canUseImageDecoder", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported("image/jpeg") : Promise.resolve(false)); + } + static setOptions({ + isImageDecoderSupported = false + }) { + this.#isImageDecoderSupported = isImageDecoderSupported; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock() { + this.decodeImage(); + } + get jpegOptions() { + const jpegOptions = { + decodeTransform: undefined, + colorTransform: undefined + }; + const decodeArr = this.dict.getArray("D", "Decode"); + if ((this.forceRGBA || this.forceRGB) && Array.isArray(decodeArr)) { + const bitsPerComponent = this.dict.get("BPC", "BitsPerComponent") || 8; + const decodeArrLength = decodeArr.length; + const transform = new Int32Array(decodeArrLength); + let transformNeeded = false; + const maxValue = (1 << bitsPerComponent) - 1; + for (let i = 0; i < decodeArrLength; i += 2) { + transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0; + transform[i + 1] = decodeArr[i] * maxValue | 0; + if (transform[i] !== 256 || transform[i + 1] !== 0) { + transformNeeded = true; + } + } + if (transformNeeded) { + jpegOptions.decodeTransform = transform; + } + } + if (this.params instanceof Dict) { + const colorTransform = this.params.get("ColorTransform"); + if (Number.isInteger(colorTransform)) { + jpegOptions.colorTransform = colorTransform; + } + } + return shadow(this, "jpegOptions", jpegOptions); + } + #skipUselessBytes(data) { + for (let i = 0, ii = data.length - 1; i < ii; i++) { + if (data[i] === 0xff && data[i + 1] === 0xd8) { + if (i > 0) { + data = data.subarray(i); + } + break; + } + } + return data; + } + decodeImage(bytes) { + if (this.eof) { + return this.buffer; + } + bytes = this.#skipUselessBytes(bytes || this.bytes); + const jpegImage = new JpegImage(this.jpegOptions); + jpegImage.parse(bytes); + const data = jpegImage.getData({ + width: this.drawWidth, + height: this.drawHeight, + forceRGBA: this.forceRGBA, + forceRGB: this.forceRGB, + isSourcePDF: true + }); + this.buffer = data; + this.bufferLength = data.length; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } + async getTransferableImage() { + if (!(await JpegStream.canUseImageDecoder)) { + return null; + } + const jpegOptions = this.jpegOptions; + if (jpegOptions.decodeTransform) { + return null; + } + let decoder; + try { + const bytes = this.canAsyncDecodeImageFromBuffer && (await this.stream.asyncGetBytes()) || this.bytes; + if (!bytes) { + return null; + } + const data = this.#skipUselessBytes(bytes); + if (!JpegImage.canUseImageDecoder(data, jpegOptions.colorTransform)) { + return null; + } + decoder = new ImageDecoder({ + data, + type: "image/jpeg", + preferAnimation: false + }); + return (await decoder.decode()).image; + } catch (reason) { + warn(`getTransferableImage - failed: "${reason}".`); + return null; + } finally { + decoder?.close(); + } + } +} + +;// ./external/openjpeg/openjpeg.js +var OpenJPEG = (() => { + var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; + return function (moduleArg = {}) { + var moduleRtn; + var Module = moduleArg; + var readyPromiseResolve, readyPromiseReject; + var readyPromise = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var ENVIRONMENT_IS_WEB = true; + var ENVIRONMENT_IS_WORKER = false; + Module.decode = function (bytes, { + numComponents = 4, + isIndexedColormap = false, + smaskInData = false + }) { + const size = bytes.length; + const ptr = Module._malloc(size); + Module.HEAPU8.set(bytes, ptr); + const ret = Module._jp2_decode(ptr, size, numComponents > 0 ? numComponents : 0, !!isIndexedColormap, !!smaskInData); + Module._free(ptr); + if (ret) { + const { + errorMessages + } = Module; + if (errorMessages) { + delete Module.errorMessages; + return errorMessages; + } + return "Unknown error"; + } + const { + imageData + } = Module; + Module.imageData = null; + return imageData; + }; + var moduleOverrides = Object.assign({}, Module); + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var scriptDirectory = ""; + var readAsync, readBinary; + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptName) { + scriptDirectory = _scriptName; + } + if (scriptDirectory.startsWith("blob:")) { + scriptDirectory = ""; + } else { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } + readAsync = url => fetch(url, { + credentials: "same-origin" + }).then(response => { + if (response.ok) { + return response.arrayBuffer(); + } + return Promise.reject(new Error(response.status + " : " + response.url)); + }); + } else {} + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.error.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + var wasmBinary = Module["wasmBinary"]; + function intArrayFromBase64(s) { + var decoded = atob(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0; i < decoded.length; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } + function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); + } + var wasmMemory; + var ABORT = false; + var EXITSTATUS; + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + } + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + function addRunDependency(id) { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); + } + function removeRunDependency(id) { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + var isDataURI = filename => filename.startsWith(dataURIPrefix); + function findWasmBinary() { + var f = "data:application/octet-stream;base64,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A3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCyADQXxxIQQCQCADQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0EEayIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAswAQF/AkAgAEUNACABRQ0AQQggACABbCIBECkiAARAIABBACABEBkaCyAAIQILIAILEQAgAEUEQEEADwtBCCAAECkL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASAC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CyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0HUzQFBGTYCAEF/DwsgACABOgAAQQELfgIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQcCEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAwALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC28BBX8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2AgAgAywAASAEIQIgBSEDQTBrIgFBCkkNAAsgAgtJAQF/AkBBAUEsEBciAQRAIAFBADYCEAJAIABBAEwEQCABQQFBCBAXIgA2AiQgAEUNAQwDCyABQQA2AgwLIAEQFAtBACEBCyABC64UAhJ/An4jAEFAaiIIJAAgCCABNgI8IAhBJ2ohFyAIQShqIRICQAJAAkACQANAQQAhBwNA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KAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGEBYaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEEBYaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC6YFAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQIgASkDCCEHIwBBIGsiCCQAIAdC////////P4MhBAJ+IAdCMIhC//8BgyIDpyIKQYH4AGtB/Q9NBEAgBEIEhiACQjyIhCEDIApBgPgAa60hBAJAIAJC//////////8PgyICQoGAgICAgICACFoEQCADQgF8IQMMAQsgAkKAgICAgICAgAhSDQAgA0IBgyADfCEDC0IAIAMgA0L/////////B1YiABshAiAArSAEfAwBCwJAIAIgBIRQDQAgA0L//wFSDQAgBEIEhiACQjyIhEKAgICAgICABIQhAkL/DwwBCyAKQf6HAUsEQEIAIQJC/w8MAQtBgPgAQYH4ACADUCIBGyIAIAprIglB8ABKBEBCACECQgAMAQsgAiEDIAQgBEKAgICAgIDAAIQgARsiBSEGAkBBgAEgCWsiAUHAAHEEQCACIAFBQGqthiEGQgAhAwwBCyABRQ0AIAYgAa0iBIYgA0HAACABa62IhCEGIAMgBIYhAwsgCCADNwMQIAggBjcDGAJAIAlBwABxBEAgBSAJQUBqrYghAkIAIQUMAQsgCUUNACAFQcAAIAlrrYYgAiAJrSIDiIQhAiAFIAOIIQULIAggAjcDACAIIAU3AwggCCkDCEIEhiAIKQMAIgNCPIiEIQICQCAAIApHIAgpAxAgCCkDGIRCAFJxrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAJCgICAgICAgAiFIAIgAkL/////////B1YiABshAiAArQshAyAIQSBqJAAgB0KAgICAgICAgIB/gyADQjSGhCAChL85AwAL9BcDEn8BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASEQQboIIRQgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEEG9CCEUDAELQcAIQbsIIARBAXEiEBshFCAQRSEXCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiAQQQNqIgYgBEH//3txECAgACAUIBAQHiAAQZIJQfYKIAVBIHEiAxtB+wlBnwsgAxsgASABYhtBAxAeIABBICACIAYgBEGAwABzECAgAiAGIAIgBkobIQ0MAQsgDEEQaiERAkACQAJAIAEgDEEsahBwIgEgAaAiAUQAAAAAAAAAAGIEQCAMIAwoAiwiBkEBazYCLCAFQSByIhVB4QBHDQEMAwsgBUEgciIVQeEARg0CIAwoAiwhCwwBCyAMIAZBHWsiCzYCLCABRAAAAAAAALBBoiEBC0EGIAMgA0EASBshCiAMQTBqQaACQQAgC0EAThtqIg4hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQAAAAAZc3NQaIiAUQAAAAAAAAAAGINAAsCQCALQQBMBEAgCyEJIAchBiAOIQgMAQsgDiEIIAshCQNAQR0gCSAJQR1PGyEDAkAgB0EEayIGIAhJDQAgA60hG0IAIRkDQCAGIBlC/////w+DIAY1AgAgG4Z8IhpCgJTr3AOAIhlCgOyUowx+IBp8PgIAIAZBBGsiBiAITw0ACyAaQoCU69wDVA0AIAhBBGsiCCAZPgIACwNAIAggByIGSQRAIAZBBGsiBygCAEUNAQsLIAwgDCgCLCADayIJNgIsIAYhByAJQQBKDQALCyAJQQBIBEAgCkEZakEJbkEBaiESIBVB5gBGIRMDQEEJQQAgCWsiAyADQQlPGyENAkAgBiAITQRAIAgoAgBFQQJ0IQcMAQtBgJTr3AMgDXYhFkF/IA10QX9zIQ9BACEJIAghBwNAIAcgBygCACIDIA12IAlqNgIAIAMgD3EgFmwhCSAHQQRqIgcgBkkNAAsgCCgCAEVBAnQhByAJRQ0AIAYgCTYCACAGQQRqIQYLIAwgDCgCLCANaiIJNgIsIA4gByAIaiIIIBMbIgMgEkECdGogBiAGIANrQQJ1IBJKGyEGIAlBAEgNAAsLQQAhCQJAIAYgCE0NACAOIAhrQQJ1QQlsIQlBCiEHIAgoAgAiA0EKSQ0AA0AgCUEBaiEJIAMgB0EKbCIHTw0ACwsgCiAJQQAgFUHmAEcbayAVQecARiAKQQBHcWsiAyAGIA5rQQJ1QQlsQQlrSARAIAxBMGpBhGBBpGIgC0EASBtqIANBgMgAaiILQQltIgNBAnRqIQ1BCiEHIANBd2wgC2oiA0EHTARAA0AgB0EKbCEHIANBAWoiA0EIRw0ACwsCQCANKAIAIgsgCyAHbiISIAdsIg9GIA1BBGoiAyAGRnENACALIA9rIQsCQCASQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cNASAIIA1PDQEgDUEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gAyAGRhtEAAAAAAAA+D8gCyAHQQF2IgNGGyADIAtLGyEYAkAgFw0AIBQtAABBLUcNACAYmiEYIAGaIQELIA0gDzYCACABIBigIAFhDQAgDSAHIA9qIgM2AgAgA0GAlOvcA08EQANAIA1BADYCACAIIA1BBGsiDUsEQCAIQQRrIghBADYCAAsgDSANKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA4gCGtBAnVBCWwhCUEKIQcgCCgCACIDQQpJDQADQCAJQQFqIQkgAyAHQQpsIgdPDQALCyANQQRqIgMgBiADIAZJGyEGCwNAIAYiCyAITSIHRQRAIAZBBGsiBigCAEUNAQsLAkAgFUHnAEcEQCAEQQhxIRMMAQsgCUF/c0F/IApBASAKGyIGIAlKIAlBe0pxIgMbIAZqIQpBf0F+IAMbIAVqIQUgBEEIcSITDQBBdyEGAkAgBw0AIAtBBGsoAgAiD0UNAEEKIQNBACEGIA9BCnANAANAIAYiB0EBaiEGIA8gA0EKbCIDcEUNAAsgB0F/cyEGCyALIA5rQQJ1QQlsIQMgBUFfcUHGAEYEQEEAIRMgCiADIAZqQQlrIgNBACADQQBKGyIDIAMgCkobIQoMAQtBACETIAogAyAJaiAGakEJayIDQQAgA0EAShsiAyADIApKGyEKC0F/IQ0gCkH9////B0H+////ByAKIBNyIg8bSg0BIAogD0EAR2pBAWohFgJAIAVBX3EiB0HGAEYEQCAJIBZB/////wdzSg0DIAlBACAJQQBKGyEGDAELIBEgCSAJQR91IgNzIANrrSAREC8iBmtBAUwEQANAIAZBAWsiBkEwOgAAIBEgBmtBAkgNAAsLIAZBAmsiEiAFOgAAIAZBAWtBLUErIAlBAEgbOgAAIBEgEmsiBiAWQf////8Hc0oNAgsgBiAWaiIDIBBB/////wdzSg0BIABBICACIAMgEGoiCSAEECAgACAUIBAQHiAAQTAgAiAJIARBgIAEcxAgAkACQAJAIAdBxgBGBEAgDEEQakEJciEFIA4gCCAIIA5LGyIDIQgDQCAINQIAIAUQLyEGAkAgAyAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBSAGRw0AIAZBAWsiBkEwOgAACyAAIAYgBSAGaxAeIAhBBGoiCCAOTQ0ACyAPBEAgAEHvDEEBEB4LIAggC08NASAKQQBMDQEDQCAINQIAIAUQLyIGIAxBEGpLBEADQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALCyAAIAZBCSAKIApBCU4bEB4gCkEJayEGIAhBBGoiCCALTw0DIApBCUogBiEKDQALDAILAkAgCkEASA0AIAsgCEEEaiAIIAtJGyEDIAxBEGpBCXIhCyAIIQcDQCALIAc1AgAgCxAvIgZGBEAgBkEBayIGQTA6AAALAkAgByAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgACAGQQEQHiAGQQFqIQYgCiATckUNACAAQe8MQQEQHgsgACAGIAsgBmsiBSAKIAUgCkgbEB4gCiAFayEKIAdBBGoiByADTw0BIApBAE4NAAsLIABBMCAKQRJqQRJBABAgIAAgEiARIBJrEB4MAgsgCiEGCyAAQTAgBkEJakEJQQAQIAsgAEEgIAIgCSAEQYDAAHMQICACIAkgAiAJShshDQwBCyAUIAVBGnRBH3VBCXFqIQkCQCADQQtLDQBBDCADayEGRAAAAAAAADBAIRgDQCAYRAAAAAAAADBAoiEYIAZBAWsiBg0ACyAJLQAAQS1GBEAgGCABmiAYoaCaIQEMAQsgASAYoCAYoSEBCyARIAwoAiwiByAHQR91IgZzIAZrrSAREC8iBkYEQCAGQQFrIgZBMDoAAAsgEEECciEKIAVBIHEhCyAGQQJrIg4gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxRSADQQBMcSEIIAxBEGohBwNAIAciBQJ/IAGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIGQZDJAWotAAAgC3I6AAAgASAGt6FEAAAAAAAAMECiIQECQCAFQQFqIgcgDEEQamtBAUcNACABRAAAAAAAAAAAYSAIcQ0AIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hDSADQf3///8HIAogESAOayIIaiIGa0oNACAAQSAgAiAGIANBAmogByAMQRBqIgVrIgcgB0ECayADSBsgByADGyIDaiIGIAQQICAAIAkgChAeIABBMCACIAYgBEGAgARzECAgACAFIAcQHiAAQTAgAyAHa0EAQQAQICAAIA4gCBAeIABBICACIAYgBEGAwABzECAgAiAGIAIgBkobIQ0LIAxBsARqJAAgDQsEAEIACwQAQQALHAAgACgCPBARIgAEf0HUzQEgADYCAEF/BUEACwvKAgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQVBAiEGIANBEGohAQJ/A0ACQAJAAkAgACgCPCABIAYgA0EMahABIgQEf0HUzQEgBDYCAEF/BUEAC0UEQCAFIAMoAgwiB0YNASAHQQBODQIMAwsgBUF/Rw0CCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAwsgASAHIAEoAgQiCEsiCUEDdGoiBCAHIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgB2shBSAGIAlrIQYgBCEBDAELCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAZBAkYNABogAiABKAIEawsgA0EgaiQAC1IBAX8gACgCPCMAQRBrIgAkACABpyABQiCIpyACQf8BcSAAQQhqEAkiAgR/QdTNASACNgIAQX8FQQALIQIgACkDCCEBIABBEGokAEJ/IAEgAhsLBgAgABAACwYAIAAQAwvvgQEFA3wyfwh7A34GfSMAQeDAAGsiGiQAIBpBADYCIEECIQ4CQAJAIAAoAgAiCEGNlJzUAEYNACAIQf+f/Y8FRwRAAkAgCEGAgIDgAEcNACAAKAIEQeqggYECRw0AIAAoAghBjZSc1ABGDQILQc0IEABBASEODAILQQAhDgsCf0EAQQFB4AAQFyIIRQ0AGiAIQQE2AkwCQAJAAkACQCAODgMAAwEDCyAIQcQANgJYIAhBxQA2AlQgCEHGADYCUCAIQccANgIQIAhByAA2AgQgCEHJADYCHCAIQcoANgIYIAhBywA2AhQgCEHMADYCACAIQc0ANgJcIAhBzgA2AiwgCEHPADYCKCAIQdAANgIkIAhB0QA2AiAgCEHSADYCDCAIQdMANgIIIAgQViINNgIwIA0NAQwCCyAIQdQANgJYIAhB1QA2AlQgCEHWADYCUCAIQdcANgIQIAhB2AA2AgQgCEHZADYCXCAIQdoANgIsIAhB2wA2AiggCEHcADYCJCAIQd0ANgIgIAhB3gA2AhwgCEHfADYCGCAIQeAANgIUIAhB4QA2AgwgCEHiADYCCCAIQeMANgIAIAgCf0EBQYgBEBciDQRAIA0QViIUNgIAAkAgFEUNACAN/QwAAAAAAAAAAAAAAAAAAAAA/QsCbCANQQA6AHwgDRA5IhQ2AgQgFEUNACANEDkiFDYCCCAURQ0AIA0MAgsgDRB9C0EACyINNgIwIA1FDQELIAhBATYCSCAIQQE2AkAgCEEANgI8IAhCADcCNCAIQQE2AkQgCAwBCyAIEBRBAAsiDQRAIA1BADYCPCANQeQANgJICyANBEAgDUEANgI4IA1B5QA2AkQLIA0EQCANQQA2AjQgDUHmADYCQAsgGkEkaiIIBEAgCEEAQbjAABAZIghBADYCuEAgCEJ/NwKIQAsgAwRAIBogGigC3EBBAXI2AtxACyAaIAE2AhwgGiAANgIYIBogADYCFEEBIQ5BACEBAkAgGkEUaiIIRQ0AQQFByAAQFyIABH8CfyAAQYCAwAA2AkAgAEGAgMAAEBgiFDYCICAURQRAIAAQFEEADAELIAAgFDYCJCAAQQI2AhwgAEEDNgIYIABBBDYCFCAAQQU2AhAgAEEGNgIsIABBCDYCKCAAIAAoAkRBAnI2AkQgAAsFQQALIgBFDQAgAARAIABBADYCBCAAIAg2AgALIAg1AgghQiAABEAgACBCNwMICwJAIABFDQAgAC0AREECcUUNACAAQcAANgIQCyAABEAgAEHCADYCGAsgAARAIABBwwA2AhwLIAAhAQsgASEAAn8gGkEkaiEBAkAgDUUNACABRQ0AIA0oAkxFBEAgDUE0akEBQYnNAEEAEBNBAAwCCyANKAIwIAEgDSgCGBEDAEEBIQkLIAkLRQRAQdwIEAAgABA9IA0QPgwBCwJ/IBpBIGohAUEAIQgCQCAARQ0AIA1FDQAgDSgCTEUEQCANQTRqQQFB2s0AQQAQE0EADAILIAAgDSgCMCABIA1BNGogDSgCABEBACEICyAIC0UEQEH4CBAAIAAQPSANED4gGigCIBAlDAELIBooAiAhAUEAIQgCQCANRQ0AIABFDQAgDSgCTEUNACANKAIwIAAgASANQTRqIA0oAgQRAQAhCAsCQCAIBEBBACEIAkAgDUUNACAARQ0AIA0oAkxFDQAgDSgCMCAAIA1BNGogDSgCEBEAACEICyAIDQELQf8JEAAgDRA+IAAQPSAaKAIgECUMAQsgABA9IA0QPiAaKAIgIhQoAhwiAARAIAAQFCAaKAIgIhRCADcCHAsgFCgCECEhAkACQCACRQRAAkAgBEUNACAhQQRHDQBBASEZQQQhIQwDCwJAAkAgFCgCFCIBQQNGDQAgIUEDRw0AIBQoAhgiACgCACAAKAIERw0BIAAoAjRBAUYNASAUQQM2AhQMAwsgIUECSw0AIBRBAjYCFAwDCwJAAkAgAUEDaw4DAwEABAsjAEEQayIJJAACQAJAAkAgFCgCEEEESQ0AIBQoAhgiACgCACIBIAAoAjRHDQAgASAAKAJoRw0AIAEgACgCnAFHDQAgACgCBCIBIAAoAjhHDQAgASAAKAJsRw0AIAEgACgCoAFGDQELIAlBnQg2AgQgCUG4CjYCAEGwywFBzj8gCRAaDAELAkAgACgCDCAAKAIIbCINRQRAIAAoAsgBIQEMAQtDAACAP0F/IAAoArQBdEF/c7OVIUVDAACAP0F/IAAoAoABdEF/c7OVIUdDAACAP0F/IAAoAkx0QX9zs5UhSEMAAIA/QX8gACgCGHRBf3OzlSFGIAAoAsgBIQEgACgClAEhAiAAKAJgIQogACgCLCEIQQAhAAJAIA1BCEkNACAIIAogDUECdCILaiIPSSAKIAggC2oiFklxDQAgAiAWSSAIIAIgC2oiDElxDQAgASAWSSAIIAEgC2oiC0lxDQAgCiAMSSACIA9JcQ0AIAEgD0kgCiALSXENACABIAxJIAIgC0lxDQAgDUF8cSEAIEX9EyE6IEf9EyE7IEj9EyFAIEb9EyE9QQAhCwNAIAIgC0ECdCIPaiIW/QACACE+IAogD2oiDP0AAgAhPyAIIA9qIhD9DAAAgD8AAIA/AACAPwAAgD8gPSAQ/QACAP36Af3mAf3lAf0MAAB/QwAAf0MAAH9DAAB/Q/3mAf0MAACAPwAAgD8AAIA/AACAPyA6IAEgD2r9AAIA/foB/eYB/eUBIjz95gH9+AH9CwIAIAz9DAAAgD8AAIA/AACAPwAAgD8gQCA//foB/eYB/eUB/QwAAH9DAAB/QwAAf0MAAH9D/eYBIDz95gH9+AH9CwIAIBb9DAAAgD8AAIA/AACAPwAAgD8gOyA+/foB/eYB/eUB/QwAAH9DAAB/QwAAf0MAAH9D/eYBIDz95gH9+AH9CwIAIAtBBGoiCyAARw0ACyAAIA1GDQELA0ACf0MAAIA/IEYgCCAAQQJ0IgtqIg8oAgCylJNDAAB/Q5RDAACAPyBFIAEgC2ooAgCylJMiSZQiSotDAAAAT10EQCBKqAwBC0GAgICAeAshFiACIAtqIgwoAgAhECAKIAtqIgsoAgAhDiAPIBY2AgAgCwJ/QwAAgD8gSCAOspSTQwAAf0OUIEmUIkqLQwAAAE9dBEAgSqgMAQtBgICAgHgLNgIAIAwCf0MAAIA/IEcgELKUk0MAAH9DlCBJlCJJi0MAAABPXQRAIEmoDAELQYCAgIB4CzYCACAAQQFqIgAgDUcNAAsLIAEQFCAUKAIYIgBBCDYCgAEgAEEINgJMIABBCDYCGCAAQQA2AsgBIBRBATYCFCAUIBQoAhBBAWsiADYCECAAQQRJDQBBAyEAA0AgFCgCGCAAQTRsaiIBIAEoAmQ2AjAgASAB/QACVP0LAiAgASAB/QACRP0LAhAgASAB/QACNP0LAgAgAEEBaiIAIBQoAhBJDQALCyAJQRBqJAAMAwsjAEEQayIJJAACQAJAAkAgFCgCEEEDSQ0AIBQoAhgiACgCACIBIAAoAjRHDQAgASAAKAJoRw0AIAAoAgQiASAAKAI4Rw0AIAEgACgCbEYNAQsgCUHbCDYCBCAJQbgKNgIAQbDLAUH4PyAJEBoMAQsCQCAAKAIMIAAoAghsIgJFDQBBfyAAKAIYIgp0QX9zIQFBAEEBIApBAWt0IgogACgCiAEbIQ9BACAKIAAoAlQbIRYgACgClAEhCiAAKAJgIQggACgCLCENQQAhAAJAIAJBBEkNACANIAggAkECdCILaiIMSSAIIAsgDWoiEElxDQAgCiAQSSANIAogC2oiC0lxDQAgCCALSSAKIAxJcQ0AIAJBfHEhACAB/REhPCAP/REhPSAW/REhPkEAIQsDQCANIAtBAnQiDGoiECA8IAogDGoiDv0AAgAgPf2xAf36ASI6/QxpdLM/aXSzP2l0sz9pdLM//eYBIAggDGoiDP0AAgAgPv2xAf36ASI7/QyzWRq4s1kauLNZGrizWRq4/eYBIBD9AAIA/foBIkD95AH95AH9DAAAAD8AAAA/AAAAPwAAAD/95AH9+AEiP/0MAAAAAAAAAAAAAAAAAAAAAP24ASA8ID/9Of1S/QsCACAMIDwgOv0MGdA2vxnQNr8Z0Da/GdA2v/3mASBA/QzVCYA/1QmAP9UJgD/VCYA//eYBIDv9DCcxsL4nMbC+JzGwvicxsL795gH95AH95AH9DAAAAD8AAAA/AAAAPwAAAD/95AH9+AEiP/0MAAAAAAAAAAAAAAAAAAAAAP24ASA8ID/9Of1S/QsCACAOIDwgOv0MvTcGt703Bre9Nwa3vTcGt/3mASBA/Qxm9H8/ZvR/P2b0fz9m9H8//eYBIDv9DDXS4j810uI/NdLiPzXS4j/95gH95AH95AH9DAAAAD8AAAA/AAAAPwAAAD/95AH9+AEiOv0MAAAAAAAAAAAAAAAAAAAAAP24ASA8IDr9Of1S/QsCACALQQRqIgsgAEcNAAsgACACRg0BCwNAAn8gCiAAQQJ0IgtqIgwoAgAgD2uyIkVDaXSzP5QgCCALaiIQKAIAIBZrsiJHQ7NZGriUIAsgDWoiDigCALIiSJKSQwAAAD+SIkaLQwAAAE9dBEAgRqgMAQtBgICAgHgLIQsgDiABIAtBACALQQBKGyABIAtIGzYCACAQIAECfyBFQxnQNr+UIEhD1QmAP5QgR0MnMbC+lJKSQwAAAD+SIkaLQwAAAE9dBEAgRqgMAQtBgICAgHgLIgtBACALQQBKGyABIAtIGzYCACAMIAECfyBFQ703BreUIEhDZvR/P5QgR0M10uI/lJKSQwAAAD+SIkWLQwAAAE9dBEAgRagMAQtBgICAgHgLIgtBACALQQBKGyABIAtIGzYCACAAQQFqIgAgAkcNAAsLIBRBATYCFAsgCUEQaiQADAILICEgAiACICFLGyEhQQEhGQwBCwJAAkACfwJAAkAgFCgCGCIBKAIAQQFHDQACQAJAIAEoAjRBAWsOAgEAAgsgASgCaEECRw0BAkAgASgCBEEBRw0AIAEoAjhBAkcNACABKAJsQQJHDQAgFCIWKAIYIgAoAhghASAAKAKUASEOIAAoAmAhCiAAKAIsIRAgACgCPCEfIAAoAggiCSAAKAIMIgJsQQJ0IgAQHCEIIAAQHCENIAAQHCEUAkACQAJAAkACQAJAIAhFDQAgDUUNACAURQ0AQX8gAXRBf3MhDEEBIAFBAWt0IREgAiAWKAIEQQFxIgBrISYgFigCAEEBcSEdIABFDQMgCUUNAwJ/QQAgEWuyuyIFRGq8dJMYBNY/oiAFRAwCK4cW2eY/oqAiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIRMCfyAFRCcxCKwcWvw/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAshFSAJQQhJAn8gBUQ730+Nl272P6IiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLIRsNASANIAhrQRBJDQEgFCAIa0EQSQ0BIAggEGtBEEkNASAUIA1rQRBJDQEgDSAQa0EQSQ0BIBQgEGtBEEkNASAUIAlBfHEiD0ECdCICaiEAIAIgCGohASAV/REhOyAT/REhQCAM/REhPCAb/REhPQNAIAggF0ECdCILav0MAAAAAAAAAAAAAAAAAAAAACALIBBq/QACACI6ID39rgEiPiA8/bYBID79DAAAAAAAAAAAAAAAAAAAAAD9Of1S/QsCACALIA1q/QwAAAAAAAAAAAAAAAAAAAAAIDogQP2xASI+IDz9tgEgPv0MAAAAAAAAAAAAAAAAAAAAAP05/VL9CwIAIAsgFGr9DAAAAAAAAAAAAAAAAAAAAAAgOiA7/a4BIjogPP22ASA6/QwAAAAAAAAAAAAAAAAAAAAA/Tn9Uv0LAgAgF0EEaiIXIA9HDQALIAIgEGohECACIA1qIQIgCSAPRg0EDAILIAgQFCANEBQgFBAUDAQLIAghASANIQIgFCEACwNAIAEgECgCACILIBtqIhcgDCAMIBdKG0EAIBdBAE4bNgIAIAIgCyATayIXIAwgDCAXShtBACAXQQBOGzYCACAAIAsgFWoiCyAMIAsgDEgbQQAgC0EAThs2AgAgAEEEaiEAIAJBBGohAiABQQRqIQEgEEEEaiEQIA9BAWoiDyAJRw0ACwwBCyAUIQAgDSECIAghAQsgCSAdayEiAkAgJkF+cSInBH8Cf0EAIBFrsrsiBURqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgaZRAAAAAAAAOBBYwRAIAaqDAELQYCAgIB4CyEeICJBfnEiKEEBawJ/IAVEJzEIrBxa/D+iIgaZRAAAAAAAAOBBYwRAIAaqDAELQYCAgIB4CyEgQX5xAn8gBUQ730+Nl272P6IiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLISMgJ0EBayEpQQJqIQsgCUECdCEbA0AgACAbaiEXIAIgG2ohFSABIBtqIQ8gECAbaiETIB0EQCABIBAoAgAiCSAjaiISIAwgDCASShtBACASQQBOGzYCACACIAkgHmsiEiAMIAwgEkobQQAgEkEAThs2AgAgACAJICBqIgkgDCAJIAxIG0EAIAlBAE4bNgIAIAooAgAhGCAPAn8gDigCACARa7K7IgVEO99PjZdu9j+iIgaZRAAAAAAAAOBBYwRAIAaqDAELQYCAgIB4CyATKAIAIglqIhIgDCAMIBJKG0EAIBJBAE4bNgIAIBUgCQJ/IBggEWuyuyIGRGq8dJMYBNY/oiAFRAwCK4cW2eY/oqAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLayISIAwgDCASShtBACASQQBOGzYCACAXAn8gBkQnMQisHFr8P6IiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLIAlqIgkgDCAJIAxIG0EAIAlBAE4bNgIAIBdBBGohFyAVQQRqIRUgD0EEaiEPIBNBBGohEyACQQRqIQIgEEEEaiEQIAFBBGohASAAQQRqIQALQQAhCSAoBEADQCAKKAIAIRwgAQJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgECgCACISaiIYIAwgDCAYShtBACAYQQBOGzYCACACIBICfyAcIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siGCAMIAwgGEobQQAgGEEAThs2AgAgAAJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyASaiISIAwgDCASShtBACASQQBOGzYCACAKKAIAIRwgAQJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgECgCBCISaiIYIAwgDCAYShtBACAYQQBOGzYCBCACIBICfyAcIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siGCAMIAwgGEobQQAgGEEAThs2AgQgAAJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyASaiISIAwgDCASShtBACASQQBOGzYCBCAKKAIAIRwgDwJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgEygCACISaiIYIAwgDCAYShtBACAYQQBOGzYCACAVIBICfyAcIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siGCAMIAwgGEobQQAgGEEAThs2AgAgFwJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyASaiISIAwgDCASShtBACASQQBOGzYCACAKKAIAIRwgDwJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgEygCBCISaiIYIAwgDCAYShtBACAYQQBOGzYCBCAVIBICfyAcIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siGCAMIAwgGEobQQAgGEEAThs2AgQgFwJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyASaiISIAwgDCASShtBACASQQBOGzYCBCAOQQRqIQ4gCkEEaiEKIBdBCGohFyAVQQhqIRUgD0EIaiEPIBNBCGohEyAAQQhqIQAgAkEIaiECIAFBCGohASAQQQhqIRAgCUECaiIJIChJDQALIAshCQsCQCAJICJPDQAgECgCACESIA8CfyAfIAlBAXYiGEYEQCABIBIgI2oiCSAMIAkgDEgbQQAgCUEAThs2AgAgAiASIB5rIgkgDCAJIAxIG0EAIAlBAE4bNgIAIAAgEiAgaiIJIAwgCSAMSBtBACAJQQBOGzYCACATKAIAIgkgHmsiDyAMIAwgD0obQQAgD0EAThshDyAJICBqIRMgCSAjaiIJIAwgCSAMSBtBACAJQQBOGwwBCyAKKAIAIQ8gAQJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgEmoiCSAMIAkgDEgbQQAgCUEAThs2AgAgAiASAn8gDyARa7K7IgZEarx0kxgE1j+iIAVEDAIrhxbZ5j+ioCIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAtrIgkgDCAJIAxIG0EAIAlBAE4bNgIAIAACfyAGRCcxCKwcWvw/oiIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAsgEmoiCSAMIAkgDEgbQQAgCUEAThs2AgAgEygCACIJAn8gCigCACARa7K7IgVEarx0kxgE1j+iIA4oAgAgEWuyuyIGRAwCK4cW2eY/oqAiB5lEAAAAAAAA4EFjBEAgB6oMAQtBgICAgHgLayIPIAxIIRMgDyAMIBMbIRMgD0EASCESAn8gBkQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIAlqIg8gDCAMIA9KGyEcIA9BAEghJEEAIBMgEhshDwJ/IAVEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyAJaiETQQAgHCAkGws2AgAgFSAPNgIAIBcgEyAMIAwgE0obQQAgE0EAThs2AgAgAEEEaiEAIAJBBGohAiABQQRqIQEgEEEEaiEQIBggH08NACAOQQRqIQ4gCkEEaiEKCyAAIBtqIQAgAiAbaiECIAEgG2ohASAQIBtqIRAgJUECaiIlICdJDQALIClBfnFBAmoFQQALICZPDQAgHQRAIAECf0EAIBFrsrsiBUQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIBAoAgAiCWoiCyAMIAsgDEgbQQAgC0EAThs2AgAgAiAJAn8gBURqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgaZRAAAAAAAAOBBYwRAIAaqDAELQYCAgIB4C2siCyAMIAsgDEgbQQAgC0EAThs2AgAgAAJ/IAVEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyAJaiIJIAwgCSAMSBtBACAJQQBOGzYCACACQQRqIQIgEEEEaiEQIAFBBGohASAAQQRqIQALICIgIkF+cSIbBH8gG0EBayIJQX5xAkACf0EAIBtBD0kNABpBACABIAIgCUEBdiIVQQN0QQhqIhNqIglJIAIgASATaiILSXENABpBACAAIAtJIAEgACATaiIPSXENABpBACABIBAgE2oiE0kgCyAQS3ENABpBACAKIAtJIAEgCiAVQQJ0QQRqIhJqIhdJcQ0AGkEAIAsgDksgASAOIBJqIgtJcQ0AGkEAIAIgD0kgACAJSXENABpBACACIBNJIAkgEEtxDQAaQQAgAiAXSSAJIApLcQ0AGkEAIAIgC0kgCSAOS3ENABpBACAAIBNJIA8gEEtxDQAaQQAgACAXSSAKIA9JcQ0AGkEAIAAgC0kgDiAPSXENABogCiAVQQFqIiVB/P///wdxIhdBAnQiJmohCSAAIBdBA3QiEmohCyABIBJqIQ8gDP0RITwgEf0RIUBBACEVA0AgECAVQQN0IhNBGHIiHWoiJyAQIBNBEHIiHmoiKCAQIBNBCHIiIGoiGCAQIBNqIin9XAIA/VYCAAH9VgIAAv1WAgADIToCfyAOIBVBAnQiHGr9AAIAIED9sQH9+gEiO/1fIj39DDvfT42XbvY/O99PjZdu9j/98gEiPv0hASIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAshJCAKIBxq/QACACE/IAEgE2oiHP0MAAAAAAAAAAAAAAAAAAAAACA6An8gPv0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9ESAk/RwBAn8gOyA7/Q0ICQoLDA0ODwABAgMAAQID/V8iPv0MO99PjZdu9j8730+Nl272P/3yASI7/SEAIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAgJ/IDv9IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/RwDIkH9rgEiOyA8/bYBIDv9DAAAAAAAAAAAAAAAAAAAAAD9Of1SIjv9WgIAACABICBqIiQgO/1aAgABIAEgHmoiLCA7/VoCAAIgASAdaiItIDv9WgIAAwJ/ID8gQP2xAf36ASI7/V8iP/0Marx0kxgE1j9qvHSTGATWP/3yASA9/QwMAiuHFtnmPwwCK4cW2eY//fIB/fABIj39IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLISogAiATaiIu/QwAAAAAAAAAAAAAAAAAAAAAIDoCfyA9/SEAIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0RICr9HAECfyA7/QwAAAAAAAAAAAAAAAAAAAAA/Q0ICQoLDA0ODwABAgMAAQID/V8iPf0Marx0kxgE1j9qvHSTGATWP/3yASA+/QwMAiuHFtnmPwwCK4cW2eY//fIB/fABIjv9IQAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/RwCAn8gO/0hASIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9HAMiPv2xASI7IDz9tgEgO/0MAAAAAAAAAAAAAAAAAAAAAP05/VIiO/1aAgAAIAIgIGoiKiA7/VoCAAEgAiAeaiIvIDv9WgIAAiACIB1qIjAgO/1aAgADAn8gP/0MJzEIrBxa/D8nMQisHFr8P/3yASI7/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyErIAAgE2oiE/0MAAAAAAAAAAAAAAAAAAAAACA6An8gO/0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9ESAr/RwBAn8gPf0MJzEIrBxa/D8nMQisHFr8P/3yASI6/SEAIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAgJ/IDr9IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/RwDIj39rgEiOiA8/bYBIDr9DAAAAAAAAAAAAAAAAAAAAAD9Of1SIjr9WgIAACAAICBqIiAgOv1aAgABIAAgHmoiHiA6/VoCAAIgACAdaiIdIDr9WgIAAyAc/QwAAAAAAAAAAAAAAAAAAAAAICdBBGogKEEEaiAYQQRqICn9XAIE/VYCAAH9VgIAAv1WAgADIjsgQf2uASI6IDz9tgEgOv0MAAAAAAAAAAAAAAAAAAAAAP05/VIiOv1aAgQAICQgOv1aAgQBICwgOv1aAgQCIC0gOv1aAgQDIC79DAAAAAAAAAAAAAAAAAAAAAAgOyA+/bEBIjogPP22ASA6/QwAAAAAAAAAAAAAAAAAAAAA/Tn9UiI6/VoCBAAgKiA6/VoCBAEgLyA6/VoCBAIgMCA6/VoCBAMgE/0MAAAAAAAAAAAAAAAAAAAAACA7ID39rgEiOiA8/bYBIDr9DAAAAAAAAAAAAAAAAAAAAAD9Of1SIjr9WgIEACAgIDr9WgIEASAeIDr9WgIEAiAdIDr9WgIEAyAVQQRqIhUgF0cNAAsgDiAmaiEOIBAgEmohECACIBJqIQIgFyAlRgRAIA8hASALIQAgCSEKDAILIA8hASALIQAgCSEKIBdBAXQLIQ8DQCAKKAIAIRMgAQJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgECgCACIJaiILIAwgCyAMSBtBACALQQBOGzYCACACIAkCfyATIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siCyAMIAsgDEgbQQAgC0EAThs2AgAgAAJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyAJaiIJIAwgCSAMSBtBACAJQQBOGzYCACAKKAIAIRMgAQJ/IA4oAgAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgECgCBCIJaiILIAwgCyAMSBtBACALQQBOGzYCBCACIAkCfyATIBFrsrsiBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siCyAMIAsgDEgbQQAgC0EAThs2AgQgAAJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyAJaiIJIAwgCSAMSBtBACAJQQBOGzYCBCAOQQRqIQ4gCkEEaiEKIABBCGohACACQQhqIQIgAUEIaiEBIBBBCGohECAPQQJqIg8gG0kNAAsLQQJqBUEACyILTQ0AIBAoAgAhCQJ8IB8gC0EBdkYEQAJ/QQAgEWuyuyIFRDvfT42XbvY/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAsgCWoiCiAMIAogDEgbQQAgCkEAThshDiAFDAELAn8gDigCACARa7K7IgVEO99PjZdu9j+iIgaZRAAAAAAAAOBBYwRAIAaqDAELQYCAgIB4CyAJaiILIAwgCyAMSBtBACALQQBOGyEOIAooAgAgEWuyuwshBiABIA42AgAgAiAJAn8gBkRqvHSTGATWP6IgBUQMAiuHFtnmP6KgIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C2siASAMIAEgDEgbQQAgAUEAThs2AgAgAAJ/IAZEJzEIrBxa/D+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyAJaiIAIAwgACAMSBtBACAAQQBOGzYCAAsgFigCGCgCLBAUIBYoAhgiACAINgIsIAAoAmAQFCAWKAIYIgAgDTYCYCAAKAKUARAUIBYoAhgiACAUNgKUASAAIAD9AAIAIjz9CwJoIAAgPP0LAjQgFkEBNgIUCwwHCyABKAIEQQFHDQEgASgCOEEBRw0BIAEoAmxBAUcNASABKAIYIQAgASgClAEhAiABKAJgIQsgASgCLCEOIAEoAjwhICABKAIIIgogASgCDCIjbEECdCIBEBwhDyABEBwhFiABEBwhDCAPRQ0FIBZFDQUgDEUNBSAjBEAgCiAUKAIAQQFxIixrISUCf0EAQQEgAEEBa3QiE2uyuyIFRGq8dJMYBNY/oiAFRAwCK4cW2eY/oqAiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLISZBfyAAdCAlQX5xIiJBAWsiCkEBdiIAQQFqIScCfyAFRCcxCKwcWvw/oiIGmUQAAAAAAADgQWMEQCAGqgwBC0GAgICAeAshKCAKQX5xIQogAEECdCEIIABBA3QhACAnQXxxIRdBf3MhEQJ/IAVEO99PjZdu9j+iIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyEYIApBAmohKSAIQQRqIRwgAEEIaiEbIBdBAnQhJCAXQQN0IRIgF0EBdCEQIBH9ESE8IBP9ESFAICJBB0khLSAPIQogFiEAIAwhCANAICwEQCAKIA4oAgAiASAYaiINIBEgDSARSBtBACANQQBOGzYCACAAIAEgJmsiDSARIA0gEUgbQQAgDUEAThs2AgAgCCABIChqIgEgESABIBFIG0EAIAFBAE4bNgIAIAhBBGohCCAKQQRqIQogDkEEaiEOIABBBGohAAsCfwJ/ICJFBEAgCyEJIAghASAKIQ1BAAwBC0EAIRkCQAJAIC0NACAKIAAgG2oiAUkgACAKIBtqIg1JcQ0AIAggDUkgCiAIIBtqIglJcQ0AIAogDiAbaiIVSSANIA5LcQ0AIAsgDUkgCiALIBxqIh9JcQ0AIAIgDUkgCiACIBxqIg1JcQ0AIAAgCUkgASAIS3ENACAAIBVJIAEgDktxDQAgACAfSSABIAtLcQ0AIAAgDUkgASACS3ENACAIIBVJIAkgDktxDQAgCCAfSSAJIAtLcQ0AIAIgCUkgCCANSXENACALICRqIQkgCCASaiEBIAogEmohDQNAIA4gGUEDdCIVQRhyIh9qIiogDiAVQRByIh1qIi4gDiAVQQhyIh5qIi8gDiAVaiIw/VwCAP1WAgAB/VYCAAL9VgIAAyE6An8gAiAZQQJ0Iitq/QACACBA/bEB/foBIjv9XyI9/Qw730+Nl272PzvfT42XbvY//fIBIj79IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLITEgCyArav0AAgAhPyAKIBVqIiv9DAAAAAAAAAAAAAAAAAAAAAAgOgJ/ID79IQAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/REgMf0cAQJ/IDsgO/0NCAkKCwwNDg8AAQIDAAECA/1fIj79DDvfT42XbvY/O99PjZdu9j/98gEiO/0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9HAICfyA7/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAyJB/a4BIjsgPP22ASA7/QwAAAAAAAAAAAAAAAAAAAAA/Tn9UiI7/VoCAAAgCiAeaiIxIDv9WgIAASAKIB1qIjMgO/1aAgACIAogH2oiNCA7/VoCAAMCfyA/IED9sQH9+gEiO/1fIj/9DGq8dJMYBNY/arx0kxgE1j/98gEgPf0MDAIrhxbZ5j8MAiuHFtnmP/3yAf3wASI9/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyEyIAAgFWoiNf0MAAAAAAAAAAAAAAAAAAAAACA6An8gPf0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9ESAy/RwBAn8gO/0MAAAAAAAAAAAAAAAAAAAAAP0NCAkKCwwNDg8AAQIDAAECA/1fIj39DGq8dJMYBNY/arx0kxgE1j/98gEgPv0MDAIrhxbZ5j8MAiuHFtnmP/3yAf3wASI7/SEAIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAgJ/IDv9IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/RwDIj79sQEiOyA8/bYBIDv9DAAAAAAAAAAAAAAAAAAAAAD9Of1SIjv9WgIAACAAIB5qIjIgO/1aAgABIAAgHWoiNiA7/VoCAAIgACAfaiI3IDv9WgIAAwJ/ID/9DCcxCKwcWvw/JzEIrBxa/D/98gEiO/0hASIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAshOCAIIBVqIhX9DAAAAAAAAAAAAAAAAAAAAAAgOgJ/IDv9IQAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/REgOP0cAQJ/ID39DCcxCKwcWvw/JzEIrBxa/D/98gEiOv0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9HAICfyA6/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAyI9/a4BIjogPP22ASA6/QwAAAAAAAAAAAAAAAAAAAAA/Tn9UiI6/VoCAAAgCCAeaiIeIDr9WgIAASAIIB1qIh0gOv1aAgACIAggH2oiHyA6/VoCAAMgK/0MAAAAAAAAAAAAAAAAAAAAACAqQQRqIC5BBGogL0EEaiAw/VwCBP1WAgAB/VYCAAL9VgIAAyI7IEH9rgEiOiA8/bYBIDr9DAAAAAAAAAAAAAAAAAAAAAD9Of1SIjr9WgIEACAxIDr9WgIEASAzIDr9WgIEAiA0IDr9WgIEAyA1/QwAAAAAAAAAAAAAAAAAAAAAIDsgPv2xASI6IDz9tgEgOv0MAAAAAAAAAAAAAAAAAAAAAP05/VIiOv1aAgQAIDIgOv1aAgQBIDYgOv1aAgQCIDcgOv1aAgQDIBX9DAAAAAAAAAAAAAAAAAAAAAAgOyA9/a4BIjogPP22ASA6/QwAAAAAAAAAAAAAAAAAAAAA/Tn9UiI6/VoCBAAgHiA6/VoCBAEgHSA6/VoCBAIgHyA6/VoCBAMgGUEEaiIZIBdHDQALIAIgJGohAiAOIBJqIQ4gACASaiEAIBAhGSApIBcgJ0YNAhoMAQsgCiENIAghASALIQkLA0AgCSgCACELIA0CfyACKAIAIBNrsrsiBUQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIA4oAgAiCmoiCCARIAggEUgbQQAgCEEAThs2AgAgACAKAn8gCyATa7K7IgZEarx0kxgE1j+iIAVEDAIrhxbZ5j+ioCIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAtrIgggESAIIBFIG0EAIAhBAE4bNgIAIAECfyAGRCcxCKwcWvw/oiIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAsgCmoiCiARIAogEUgbQQAgCkEAThs2AgAgCSgCACELIA0CfyACKAIAIBNrsrsiBUQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIA4oAgQiCmoiCCARIAggEUgbQQAgCEEAThs2AgQgACAKAn8gCyATa7K7IgZEarx0kxgE1j+iIAVEDAIrhxbZ5j+ioCIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAtrIgggESAIIBFIG0EAIAhBAE4bNgIEIAECfyAGRCcxCKwcWvw/oiIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAsgCmoiCiARIAogEUgbQQAgCkEAThs2AgQgAkEEaiECIAlBBGohCSABQQhqIQEgAEEIaiEAIA1BCGohDSAOQQhqIQ4gGUECaiIZICJJDQALICkLIgggJU8EQCABIQggDSEKIAkMAQsgDigCACEKAn8gICAIQQF2IhlGBEAgCiAmayIIIBEgCCARSBtBACAIQQBOGyELIAogGGoiCCARIAggEUgbQQAgCEEAThshCCAoDAELIAoCfyAJKAIAIBNrsrsiBURqvHSTGATWP6IgAigCACATa7K7IgZEDAIrhxbZ5j+ioCIHmUQAAAAAAADgQWMEQCAHqgwBC0GAgICAeAtrIgggEUghCyAIIBEgCxtBACAIQQBOGyELAn8gBkQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIApqIgggESAIIBFIG0EAIAhBAE4bIQgCfyAFRCcxCKwcWvw/oiIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAsLIRUgDSAINgIAIAAgCzYCACABIAogFWoiCiARIAogEUgbQQAgCkEAThs2AgAgAUEEaiEIIABBBGohACANQQRqIQogDkEEaiEOIAkgGSAgTw0AGiACQQRqIQIgCUEEagshCyA5QQFqIjkgI0cNAAsLIBQoAhgoAiwQFCAUKAIYIgAgDzYCLCAAKAJgEBQgFCgCGCIAIBY2AmAgACgClAEQFCAUKAIYIgAgDDYClAEgACAA/QACACI8/QsCaCAAIDz9CwI0IBRBATYCFEEAIRkMBgsgASgCaEEBRw0AIAEoAgRBAUcNACABKAI4QQFHDQAgASgCbEEBRw0AIAEoAhghAiABKAKUASEJIAEoAmAhDiABKAIsIQAgASgCDCABKAIIbCIMQQJ0IgEQHCEIIAEQHCEPIAEQHCELAkAgCEUNACAPRQ0AIAtFDQAgDEUNBEF/IAJ0QX9zIRlBASACQQFrdCETIAxBCEkNAiAPIAhrQRBJDQIgCyAIa0EQSQ0CIAggAGtBEEkNAiAIIA5rQRBJDQIgCCAJa0EQSQ0CIAsgD2tBEEkNAiAPIABrQRBJDQIgDyAOa0EQSQ0CIA8gCWtBEEkNAiALIABrQRBJDQIgCyAOa0EQSQ0CIAsgCWtBEEkNAiAJIAxBfHEiCkECdCIQaiENIAsgEGohASAIIBBqIQIgGf0RITwgE/0RIToDQAJ/IAkgFkECdCIRav0AAgAgOv2xAf36ASI7/V8iPf0MO99PjZdu9j8730+Nl272P/3yASI+/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyEVIA4gEWr9AAIAIT8gCCARav0MAAAAAAAAAAAAAAAAAAAAACAAIBFq/QACACJAAn8gPv0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9ESAV/RwBAn8gOyA7/Q0ICQoLDA0ODwABAgMAAQID/V8iO/0MO99PjZdu9j8730+Nl272P/3yASI+/SEAIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cAgJ/ID79IQEiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/RwD/a4BIj4gPP22ASA+/QwAAAAAAAAAAAAAAAAAAAAA/Tn9Uv0LAgACfyA/IDr9sQH9+gEiPv1fIj/9DGq8dJMYBNY/arx0kxgE1j/98gEgPf0MDAIrhxbZ5j8MAiuHFtnmP/3yAf3wASI9/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyEVIA8gEWr9DAAAAAAAAAAAAAAAAAAAAAAgQAJ/ID39IQAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/REgFf0cAQJ/ID79DAAAAAAAAAAAAAAAAAAAAAD9DQgJCgsMDQ4PAAECAwABAgP9XyI9/QxqvHSTGATWP2q8dJMYBNY//fIBIDv9DAwCK4cW2eY/DAIrhxbZ5j/98gH98AEiO/0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9HAICfyA7/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cA/2xASI7IDz9tgEgO/0MAAAAAAAAAAAAAAAAAAAAAP05/VL9CwIAAn8gP/0MJzEIrBxa/D8nMQisHFr8P/3yASI7/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4CyEVIAsgEWr9DAAAAAAAAAAAAAAAAAAAAAAgQAJ/IDv9IQAiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgL/REgFf0cAQJ/ID39DCcxCKwcWvw/JzEIrBxa/D/98gEiO/0hACIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAv9HAICfyA7/SEBIgWZRAAAAAAAAOBBYwRAIAWqDAELQYCAgIB4C/0cA/2uASI7IDz9tgEgO/0MAAAAAAAAAAAAAAAAAAAAAP05/VL9CwIAIBZBBGoiFiAKRw0ACyAKIAxGDQQgDiAQaiEOIAAgEGohACAPIBBqDAMLIAgQFCAPEBQgCxAUDAULIBpBzwM2AgQgGkG4CjYCAEGwywFBo8AAIBoQGgwECyAIIQIgCyEBIAkhDSAPCyEJA0AgDigCACERIAICfyANKAIAIBNrsrsiBUQ730+Nl272P6IiBplEAAAAAAAA4EFjBEAgBqoMAQtBgICAgHgLIAAoAgAiFmoiECAZIBAgGUgbQQAgEEEAThs2AgAgCSAWAn8gESATa7K7IgZEarx0kxgE1j+iIAVEDAIrhxbZ5j+ioCIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAtrIhAgGSAQIBlIG0EAIBBBAE4bNgIAIAECfyAGRCcxCKwcWvw/oiIFmUQAAAAAAADgQWMEQCAFqgwBC0GAgICAeAsgFmoiFiAZIBYgGUgbQQAgFkEAThs2AgAgAUEEaiEBIAlBBGohCSACQQRqIQIgDUEEaiENIA5BBGohDiAAQQRqIQAgCkEBaiIKIAxHDQALCyAUKAIYKAIsEBQgFCgCGCIAIAg2AiwgACgCYBAUIBQoAhgiACAPNgJgIAAoApQBEBQgFCgCGCALNgKUASAUQQE2AhRBACEZDAELIA8QFCAWEBQgDBAUCyAaKAIgIQACQCADDQAgIUUNACAAKAIYIRRBACEWA0AgFCAWQTRsaiIDKAIYIgJBCEcEQAJAIAJBB00EQCADKAIMIAMoAghsIQEgAygCLCEIIAMoAiAEQCABRQ0CQQEgAkEBa3StIUJBACEKIAFBBE8EQCABQXxxIQogQv0SITxBACEOA0AgCCAOQQJ0aiICIAL9AAIAIjr9xwFBB/3LASI7/R0AIDz9HQAiQ3/9EiA7/R0BIDz9HQEiRH/9HgEgOiA8/Q0ICQoLDA0ODwABAgMAAQID/ccBQQf9ywEiOv0dACBDf/0SIDr9HQEgRH/9HgH9DQABAgMICQoLEBESExgZGhv9CwIAIA5BBGoiDiAKRw0ACyABIApGDQMLA0AgCCAKQQJ0aiICIAI0AgBCB4YgQn8+AgAgCkEBaiIKIAFHDQALDAILIAFFDQFBfyACdEF/c60hQkEAIQogAUEETwRAIAFBfHEhCiBC/RIhPEEAIQ4DQCAIIA5BAnRqIgIgAv0AAgAiOv3JAf0M/wAAAAAAAAD/AAAAAAAAAP3VASI7/R0AIDz9HQAiQ4D9EiA7/R0BIDz9HQEiRID9HgEgOiA8/Q0ICQoLDA0ODwABAgMAAQID/ckB/Qz/AAAAAAAAAP8AAAAAAAAA/dUBIjr9HQAgQ4D9EiA6/R0BIESA/R4B/Q0AAQIDCAkKCxAREhMYGRob/QsCACAOQQRqIg4gCkcNAAsgASAKRg0CCwNAIAggCkECdGoiAiACNQIAQv8BfiBCgD4CACAKQQFqIgogAUcNAAsMAQsgAkEIayEIIAMoAgwgAygCCGwhASADKAIsIQ0gAygCIARAIAFFDQFBACEKIAFBBE8EQCABQXxxIQpBACECA0AgDSACQQJ0aiIJIAn9AAIAIAj9rAH9CwIAIAJBBGoiAiAKRw0ACyABIApGDQILA0AgDSAKQQJ0aiICIAIoAgAgCHU2AgAgCkEBaiIKIAFHDQALDAELIAFFDQBBACEKIAFBBE8EQCABQXxxIQpBACECA0AgDSACQQJ0aiIJIAn9AAIAIAj9rQH9CwIAIAJBBGoiAiAKRw0ACyABIApGDQELA0AgDSAKQQJ0aiICIAIoAgAgCHY2AgAgCkEBaiIKIAFHDQALCyADQQg2AhgLIBZBAWoiFiAhRw0ACwsgACgCDCAAKAIIbCEBAkAgGUUEQCAAKAIUQQJGBEAgACgCEEEBRgRAIAAoAhgoAiwgARASDAMLIARFDQIgACgCGCIAKAIsIAAoAmAgARAIDAILIAAoAhgiACgCLCAAKAJgIAAoApQBIAEQBwwBCwJAAkACQCAhQQFrDgQAAwECAwsgACgCGCgCLCABEAYMAgsgACgCGCIAKAIsIAAoAmAgACgClAEgARAFDAELIAAoAhgiACgCLCAAKAJgIAAoApQBIAAoAsgBIAEQBAsgGigCIBAlQQAhDgsgGkHgwABqJAAgDgsIAEEIIAAQKQurAgICfgJ/Qn8hAyAALQBEQQhxRQRAIAAgACgCICIGNgIkAkACQAJAIAAgACgCMCIFBH8DQCAGIAUgACgCACAAKAIUEQAAIgVBf0YNAiAAIAAoAiQgBWoiBjYCJCAAIAAoAjAgBWsiBTYCMCAFDQALIAAoAiAFIAYLNgIkIAFCAFUNAUIAIQMMAgsgACAAKAJEQQhyNgJEIAJBBEHP+QBBABATIABBADYCMCAAIAAoAkRBCHI2AkRCfw8LQgAhAwNAIAEgACgCACAAKAIYEQ0AIgRCf1EEQCACQQRBwPkAQQAQEyAAIAAoAkRBCHI2AkQgACAAKQM4IAN8NwM4Qn8gAyADUBsPCyADIAR8IQMgASAEfSIBQgBVDQALCyAAIAApAzggA3w3AzgLIAMLIwEBfyABIAEoAgAgASgCCCIBIACnIgIgASACSRtqNgIEQQELPAICfwF+IAEoAgAgASgCCGoiAyABKAIEIgJGBEBCfw8LIAEgAiAAp2o2AgQgACADIAJrrCIEIAAgBFMbC5sBAQV/QQEgAigCCCIHIAdBAU0bIQQgAigCBCIDIAIoAgBrIQYDQCAEIgVBAXQhBCAFIAZrIAFJDQALIAUgB0cEQCAFEBgiA0UEQEF/DwsgAigCACIEBEAgAyAEIAYQFhogAigCABAUCyACIAU2AgggAiADNgIAIAIgAyAGaiIDNgIECyADIAAgARAWGiACIAIoAgQgAWo2AgQgAQuOAwICfgJ/IAAoAjAiBSABpyIGTwRAIAAgBSAGazYCMCAAIAAoAiQgBmo2AiQgACAAKQM4IAF8NwM4IAEPCyAALQBEQQRxBEAgAEEANgIwIAAgACgCJCAFajYCJCAAIAWtIgEgACkDOHw3AzggAUJ/IAUbDwsCQCAFRQRADAELIABBADYCMCAAIAAoAiA2AiQgASAFrSIDfSEBCyABQgBVBEADQCAAKQMIIAApAzggASADfHxUBEAgAkEEQen5AEEAEBMgAEEANgIwIAAgACgCIDYCJCAAIAApAzggA3wiAzcDOCAAKQMIIgEgA30hBCABIAAoAgAgACgCHBELACAAKAJEIQUEQCAAIAE3AzgLIAAgBUEEcjYCREJ/IAQgASADURsPCyABIAAoAgAgACgCGBENACIEQn9RBEAgAkEEQen5AEEAEBMgACAAKAJEQQRyNgJEIAAgACkDOCADfDcDOEJ/IAMgA1AbDwsgAyAEfCEDIAEgBH0iAUIAVQ0ACwsgACAAKQM4IAN8NwM4IAMLRgECfyACKAIAIAIoAghqIgQgAigCBCIDRgRAQX8PCyAAIAMgBCADayIAIAEgACABSRsiABAWGiACIAIoAgQgAGo2AgQgAAuqAgEEfyMAQRBrIgQkAAJAIAAoAnQNACACQQFNBEAgA0EBQY3FAEEAEBMMAQsgASAEQQxqQQIQFSAEKAIMIgZB//8DcSIHRQRAIANBAUGuxQBBABATDAELIAdBBmxBAmogAksEQCADQQFBjcUAQQAQEwwBCyAGQQZsEBgiA0UNACAAQQgQGCICNgJ0IAJFBEAgAxAUDAELIAIgAzYCACACIAQvAQwiAjsBBCACRQRAQQEhBQwBC0EAIQIDQCABQQJqIARBDGoiBUECEBUgAyACQQZsaiIGIAQoAgw7AQAgAUEEaiAFQQIQFSAGIAQoAgw7AQIgAUEGaiIBIAVBAhAVIAYgBCgCDDsBBEEBIQUgAkEBaiICIAAoAnQvAQRJDQALCyAEQRBqJAAgBQvsAQEEfyMAQRBrIgUkAAJ/IAAoAngiBEUEQCADQQFB38QAQQAQE0EADAELIAQoAgwEQCADQQFBqdoAQQAQE0EADAELIAIgBC0AEiICQQJ0IgRJBEAgA0EBQb7EAEEAEBNBAAwBC0EAIAQQGCIERQ0AGiACBEBBACEDA0AgASAFQQxqIgZBAhAVIAQgA0ECdGoiByAFKAIMOwEAIAFBAmogBkEBEBUgByAFKAIMOgACIAFBA2ogBkEBEBUgByAFKAIMOgADIAFBBGohASADQQFqIgMgAkcNAAsLIAAoAnggBDYCDEEBCyAFQRBqJAAL8AMBCX8jAEEQayIFJAACQCACQQNJDQAgACgCeA0AIAEgBUEMakECEBUgBS8BDCIJQYEIa0H/d00EQCAFIAk2AgAgA0EBQaEbIAUQEwwBCyABQQJqIAVBDGpBARAVIAUvAQwiCEUEQCADQQFBwRhBABATDAELIAIgCEEDakkNACAIIAlsQQJ0EBgiB0UNACAIEBgiCkUEQCAHEBQMAQsgCBAYIgtFBEAgBxAUIAoQFAwBC0EUEBgiBkUEQCAHEBQgChAUIAsQFAwBCyABQQNqIQMgBiAKNgIIIAYgCzYCBCAGIAk7ARAgBiAHNgIAIAUoAgwhDCAGQQA2AgwgBiAMOgASIAAgBjYCeANAIAMgBUEMakEBEBUgBCAKaiAFLQAMQf8AcUEBajoAACAEIAtqIAUoAgxBgAFxQQd2OgAAIANBAWohAyAEQQFqIgQgCEcNAAsgCUUEQEEBIQQMAQtBACEGA0BBACEEQQAhAANAQQQgBCAKai0AAEEHakEDdiIEIARBBE8bIgQgAyABa2ogAkoEQEEAIQQMAwsgAyAFQQxqIAQQFSAHIAUoAgw2AgAgB0EEaiEHIAMgBGohAyAAQQFqIgBB//8DcSIEIAhJDQALQQEhBCAGQQFqIgZB//8DcSAJSQ0ACwsgBUEQaiQAIAQLmAEBAn8jAEEQayIFJAAgACgCGCIEQf8BRwRAIAUgBDYCACADQQJB0RQgBRATCwJAAkAgACgCFCACRgRAIAINAUEBIQQMAgtBACEEIANBAUGJ8QBBABATDAELQQAhAgNAQQEhBCABIAAoAkggAkEMbGpBCGpBARAVIAFBAWohASACQQFqIgIgACgCFEkNAAsLIAVBEGokACAEC44GAQZ/IwBB0ABrIgQkAAJAIAJBAk0EQCADQQFB6fAAQQAQEwwBCyAALQB8BEAgA0EEQZTXAEEAEBNBASEGDAELQQEhBiABIABBKGpBARAVIAFBAWogAEE0akEBEBUgAUECaiAAQSxqQQEQFSABQQNqIQUCQAJAAkACQAJAIAAoAigiB0EBaw4CAAECCyACQQZNBEAgBCACNgIQIANBAUGO9gAgBEEQahATQQAhBgwFCwJAIAJBB0YNACAAKAIwQQ5GDQAgBCACNgIwIANBAkGO9gAgBEEwahATCyAFIABBMGpBBBAVIAAoAjBBDkcNA0EkEBgiBUUEQEEAIQYgA0EBQZQ+QQAQEwwFCyAFQQ42AgAgBEEANgJAIARBADYCOCAEQQA2AkggBEEANgI8IARBADYCRCAEQQA2AkxBsOqQAiEGIARBsOqQAjYCNCAFQYCMlaIENgIEAn8gAkEHRwRAIAJBI0YEQCABQQdqIARBzABqQQQQFSABQQtqIARByABqQQQQFSABQQ9qIARBxABqQQQQFSABQRNqIARBQGtBBBAVIAFBF2ogBEE8akEEEBUgAUEbaiAEQThqQQQQFSABQR9qIARBNGpBBBAVIAVBADYCBCAEKAI0IQYgBCgCOCECIAQoAkAhAyAEKAI8IQcgBCgCRCEIIAQoAkwhCSAEKAJIDAILIAQgAjYCICADQQJBsvYAIARBIGoQEwtBACECQQAhA0EAIQdBAAshASAFIAc2AhggBSAINgIQIAUgCTYCCCAFIAY2AiAgBSACNgIcIAUgAzYCFCAFIAE2AgwgAEEANgJwIAAgBTYCbAwDCyAAIAJBA2siATYCcCAAQQEgARAXIgM2AmwgA0UNASACQQNMDQJBACECA0AgBSAEQcwAakEBEBUgACgCbCACaiAEKAJMOgAAIAVBAWohBSACQQFqIgIgAUcNAAsMAgsgB0EDSQ0CIAQgBzYCACADQQRBqfwAIAQQEwwCC0EAIQYgAEEANgJwDAELQQEhBiAAQQE6AHwLIARB0ABqJAAgBgu0AwEDfyMAQSBrIgQkAAJAIAAoAkgEQCADQQJBwjZBABATQQEhAgwBCyACQQ5HBEBBACECIANBAUHI8ABBABATDAELIAEgAEEQakEEEBUgAUEEaiAAQQxqQQQQFSABQQhqIABBFGpBAhAVIAAoAgwhBQJAIAQCfyAAKAIQIgZFBEAgACgCFAwBCyAAKAIUIgIgBUUNABogAg0BQQALNgIIIAQgBjYCBCAEIAU2AgAgA0EBQazvACAEEBNBACECDAELIAJBgYABa0H//35NBEBBACECIANBAUHW7gBBABATDAELIAAgAkEMEBciAjYCSCACRQRAQQAhAiADQQFB++4AQQAQEwwBC0EBIQIgAUEKaiAAQRhqQQEQFSABQQtqIABBHGpBARAVIAAoAhwiBUEHRwRAIAQgBTYCECADQQRB6/4AIARBEGoQEwsgAUEMaiAAQSBqQQEQFSABQQ1qIABBJGpBARAVIAAoAgAiASABLQDUAUH7AXEgACgCGEH/AUZBAnRyOgDUASAAKAIAIgEgACgCDDYC8AEgASAAKAIQNgL0ASAAQQE6AIUBCyAEQSBqJAAgAgu3BAEFfyMAQRBrIgYkAAJ/IAAtAGRBAnFFBEAgA0EBQbfYAEEAEBNBAAwBCyAAQQA2AmgCQAJAAkAgAgRAA0AgAkEHTQRAIANBAUGmGkEAEBMMBQsgASAGQQxqIgVBBBAVIAYoAgwhBCABQQRqIAVBBBAVQQghByAGKAIMIQUCQAJAAkACQCAEDgIBAAMLIAJBEEkEQEHOGiEEDAcLIAFBCGogBkEIakEEEBUgBigCCARAQdzBACEEDAcLIAFBDGogBkEMakEEEBUgBigCDCIEDQFBnxkhBAwGCyADQQFBnxlBABATDAYLQRAhBwsgBCAHSQRAIANBAUGXxwBBABATDAULIAIgBEkEQCADQQFBz8YAQQAQE0EADAYLAkACQCAAIAEgB2ogBCAHayADAn8CQAJAAkAgBUHx2L2bBkwEQCAFQePGwZMGRg0BIAVB5sqRmwZGDQMgBUHwwrWbBkcNBUGgxQEMBAsgBUHy2I2DB0YNAUGAxQEgBUHyyKHLBkYNAxogBUHy2L2bBkcNBEGIxQEMAwtBkMUBDAILQZjFAQwBC0GoxQELKAIEEQEADQFBAAwHCyAAIAAoAmhB/////wdyNgJoC0EBIAggBUHyyKHLBkYbIQggASAEaiEBIAIgBGsiAg0ACyAIDQELIANBAUHrxQBBABATQQAMAwsgAEEBOgCEASAAIAAoAmRBBHI2AmRBAQwCCyADQQEgBEEAEBMLIANBAUGLD0EAEBNBAAsgBkEQaiQAC+IBAQF/IAAoAmRBAUcEQCADQQFB5NgAQQAQE0EADwsCQCACQQdNBEAMAQsgASAAQThqQQQQFSABQQRqIABBPGpBBBAVIAJBA3EEQAwBCyAAIAJBCGsiAkECdiIENgJAAkAgAkUNACAAIARBBBAXIgI2AkQgAkUEQCADQQFBlhFBABATQQAPCyAAKAJARQ0AIAFBCGohA0EAIQIDQCADIAAoAkQgAkECdGpBBBAVIANBBGohAyACQQFqIgIgACgCQEkNAAsLIAAgACgCZEECcjYCZEEBDwsgA0EBQZ4uQQAQE0EAC34BAX8jAEEQayIEJAACfyAAKAJkBEAgA0EBQYHYAEEAEBNBAAwBCyACQQRHBEAgA0EBQcIuQQAQE0EADAELIAEgBEEMakEEEBUgBCgCDEGKjqroAEcEQCADQQFB6iZBABATQQAMAQsgACAAKAJkQQFyNgJkQQELIARBEGokAAvEAQECfyAAIAAoAiAiBDYCJAJAIAAoAjAiAwRAA0AgBCADIAAoAgAgACgCFBEAACIDQX9GDQIgACAAKAIkIANqIgQ2AiQgACAAKAIwIANrIgM2AjAgAw0ACyAAKAIgIQQLIABBADYCMCAAIAQ2AiQgASAAKAIAIAAoAhwRCwBFBEAgACAAKAJEQQhyNgJEQQAPCyAAIAE3AzhBAQ8LIAAgACgCREEIcjYCRCACQQRBz/kAQQAQEyAAIAAoAkRBCHI2AkRBAAsNACAAKAIAIAEgAhBOCwkAIAAoAgAQUwsJACAAKAIAEFILDQAgACgCACABIAIQVQtBAQF/IAIEfyADQQJBy88AQQAQEyAAKAIAIAEgAiADIAQQT0UEQCADQQFBnTBBABATQQAPCyAAIAIgAxB+BUEACwsVACAAKAIAIAEgAiADIAQgBSAGEFcLDwAgACgCACABIAIgAxBYCxMAIAAoAgAgASACIAMgBCAFEDELHQAgACgCACABIAIgAyAEIAUgBiAHIAggCSAKECwL5QQBBn8gASgCCEE2IAMQKEUEQEEADwsgASgCBCIIKAIAIQcgCCgCCCEGAkAgBwRAQQEhBSAHQQFxIQkgB0EBRgR/QQAFIAdBfnEhBwNAAn9BACAFRQ0AGkEAIAEgACADIAYoAgARAABFDQAaIAEgACADIAYoAgQRAABBAEcLIQUgBkEIaiEGIARBAmoiBCAHRw0ACyAFRQshBEEAIAUgCRshBQJAIAlFDQAgBA0AIAEgACADIAYoAgARAABBAEchBQsgCEEANgIAIAUNAUEADwsgCEEANgIACyABKAIIIgcoAgAhBCAHKAIIIQYCQCAEBEBBASEFIARBAXEhCCAEQQFGBH9BAAUgBEF+cSEJQQAhBANAAn9BACAFRQ0AGkEAIAEgACADIAYoAgARAABFDQAaIAEgACADIAYoAgQRAABBAEcLIQUgBkEIaiEGIARBAmoiBCAJRw0ACyAFRQshBEEAIAUgCBshBQJAIAhFDQAgBA0AIAEgACADIAYoAgARAABBAEchBQsgB0EANgIAIAUNAUEADwsgB0EANgIACyABLQCEAUUEQCADQQFBi9sAQQAQE0EADwsgAS0AhQFFBEAgA0EBQe7aAEEAEBNBAA8LIAAgASgCACACIAMQWQJAIAJFDQAgAigCACIARQ0AQQEhBAJAAkACQAJAAkACQCABKAIwQQxrDg0DBAQEBQABBAQEBAQCBAtBAiEEDAQLQQMhBAwDC0EEIQQMAgtBBSEEDAELQX8hBAsgACAENgIUIAEoAmwiBUUNACAAIAU2AhwgAigCACABKAJwNgIgIAFBADYCbAsL4gkCCX8BfiMAQfAAayIDJABBgAghCAJ/AkBBAUGACBAXIgYEQCADQdwAaiELIANB7ABqIQkDQAJAAkACQCABIANB6ABqIgRBCCACEB1BCEcNACAEIANB2ABqQQQQFSAJIAtBBBAVQQghBQJAAkACQAJAAkAgAygCWA4CAAEECyABKQMIIgxQBH5CAAUgDCABKQM4fQsiDEL4////D1MNASACQQFB3MEAQQAQEwwECyABIANB6ABqIgRBCCACEB1BCEcNAyAEIANB5ABqQQQQFSADKAJkRQ0BIAJBAUHcwQBBABATDAMLIAMgDKdBCGo2AlgMAQsgCSADQdgAakEEEBVBECEFCyADKAJcIgRB4+TA0wZGBEAgACgCZCIBQQRxBEAgACABQQhyNgJkDAILIAJBAUGhLEEAEBMgBhAUQQAMBwsgAygCWCIHRQRAIAJBAUGfGUEAEBMgBhAUQQAMBwsgBSAHSwRAIAMgBDYCBCADIAc2AgAgAkEBQcjsACADEBMMBgsCQAJ/An8CQAJ/AkACQAJAAkACQCAEQfHYvZsGTARAIARB48bBkwZGDQIgBEHmypGbBkYNBCAEQfDCtZsGRw0BQaDFAQwGCyAEQZ/AwNIGTARAIARB8ti9mwZGDQVBgMUBIARB8sihywZGDQYaIARB8PLRswZHDQFB6MQBDAgLIARB8tiNgwdGDQIgBEGgwMDSBkYNBkHwxAEgBEHo5MDTBkYNBxoLIAAoAmQiBEEBcQ0IIAJBAUHpD0EAEBMgBhAUQQAMDwtBkMUBDAMLQZjFAQwCC0GoxQEMAQtBiMUBCyEKIAMgBEH/AXE2AkwgAyAEQRh2NgJAIAMgBEEIdkH/AXE2AkggAyAEQRB2Qf8BcTYCRCACQQJBtg8gA0FAaxATIAcgBWsiBSAALQBkQQRxDQIaIAMgAygCXCIEQRh2NgIwIAMgBEH/AXE2AjwgAyAEQRB2Qf8BcTYCNCADIARBCHZB/wFxNgI4IAJBAkHONCADQTBqEBMgACAAKAJkQf////8HcjYCZCABIAWtIgwgAiABKAIoEQgAIAxRDQcgAkEBQf8cQQAQEyAGEBRBAAwKC0HgxAELIQogByAFawshBSABKQMIIgxQBH5CAAUgDCABKQM4fQsgBa1TBEAgAygCWCEEIAMoAlwhACADIAEpAwgiDFAEfkIABSAMIAEpAzh9Cz4CKCADIAU2AiQgAyAAQf8BcTYCICADIABBGHY2AhQgAyAENgIQIAMgAEEIdkH/AXE2AhwgAyAAQRB2Qf8BcTYCGCACQQFBm/oAIANBEGoQEwwHCyAFIAhNBEAgBiEEDAQLIAUhCCAGIAUQGyIEDQMgBhAUIAJBAUHsEEEAEBNBAAwHCyAEQQJxRQRAIAJBAUGvEEEAEBMgBhAUQQAMBwsgACAEQf////8HcjYCZCABIAcgBWutIgwgAiABKAIoEQgAIAxRDQMgAC0AZEEIcUUNASACQQJB/xxBABATCyAGEBRBAQwFCyACQQFB/xxBABATIAYQFEEADAQLIAEgBCAFIAIQHSAFRwRAIAJBAUGxHUEAEBMgBBAUQQAMBAsgACAEIgYgBSACIAooAgQRAQANAAsgBBAUQQAMAgsgAkEBQZYmQQAQE0EADAELIAYQFEEACyADQfAAaiQAC+ABAQZ/IAAoAghBNiACEChFBEBBAA8LIAAoAggiBigCACEDIAYoAgghBQJAIAMEQEEBIQQgA0EBcSEHIANBAUYEf0EABSADQX5xIQMDQAJ/QQAgBEUNABpBACAAIAEgAiAFKAIAEQAARQ0AGiAAIAEgAiAFKAIEEQAAQQBHCyEEIAVBCGohBSAIQQJqIgggA0cNAAsgBEULIQNBACAEIAcbIQQCQCAHRQ0AIAMNACAAIAEgAiAFKAIAEQAAQQBHIQQLIAZBADYCACAEDQFBAA8LIAZBADYCAAsgACgCABpBAQsKACAAKAIAGkEACykAAkAgACgCACIARQ0AIAAgATYC0AEgAUUNACAAIAAtAFxBCHI6AFwLCyEAIAAoAgAgARBcIABBADoAfCAAIAEoArhAQQFxNgKAAQsyACACRQRAQQAPCyAAKAIAIAEgAiADEFFFBEAgA0EBQZ0wQQAQE0EADwsgACACIAMQfgtpAgJ/AXwjAEEQayIDJAAgAgRAA0AgACADQQhqEE0gAQJ/IAMrAwgiBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLNgIAIAFBBGohASAAQQhqIQAgBEEBaiIEIAJHDQALCyADQRBqJAALhAECAn8BfSMAQRBrIgMkACACBEADQCADIAAtAAA6AA8gAyAALQABOgAOIAMgAC0AAjoADSADIAAtAAM6AAwgAQJ/IAMqAgwiBYtDAAAAT10EQCAFqAwBC0GAgICAeAs2AgAgAUEEaiEBIABBBGohACAEQQFqIgQgAkcNAAsLIANBEGokAAtLAQJ/IwBBEGsiAyQAIAIEQANAIAAgA0EMakEEEBUgASADKAIMNgIAIAFBBGohASAAQQRqIQAgBEEBaiIEIAJHDQALCyADQRBqJAALSwECfyMAQRBrIgMkACACBEADQCAAIANBDGpBAhAVIAEgAygCDDYCACABQQRqIQEgAEECaiEAIARBAWoiBCACRw0ACwsgA0EQaiQAC0oBAn8jAEEQayIDJAAgAgRAA0AgACADQQhqEE0gASADKwMItjgCACABQQRqIQEgAEEIaiEAIARBAWoiBCACRw0ACwsgA0EQaiQAC2gBAn8jAEEQayIDJAAgAgRAA0AgAyAALQAAOgAPIAMgAC0AAToADiADIAAtAAI6AA0gAyAALQADOgAMIAEgAyoCDDgCACABQQRqIQEgAEEEaiEAIARBAWoiBCACRw0ACwsgA0EQaiQAC0wBAn8jAEEQayIDJAAgAgRAA0AgACADQQxqQQQQFSABIAMoAgyzOAIAIAFBBGohASAAQQRqIQAgBEEBaiIEIAJHDQALCyADQRBqJAALTAECfyMAQRBrIgMkACACBEADQCAAIANBDGpBAhAVIAEgAygCDLM4AgAgAUEEaiEBIABBAmohACAEQQFqIgQgAkcNAAsLIANBEGokAAuqCAINfwF7IwBBEGsiCCQAAn8gACgCCEEQRgRAIAAoArQBIAAoAuQBQYwsbGoMAQsgACgCDAshCQJAIAJFBEAgA0EBQf4gQQAQEwwBCyAAKAJgIQZBASEEIAEgCEEIakEBEBUgCCgCCCIFQQJPBEAgA0ECQZvMAEEAEBMMAQsgBUEBaiACRwRAQQAhBCADQQJB/iBBABATDAELAkAgBigCECIDRQ0AIAkoAtArIQQgA0EITwRAIANBeHEhBkEAIQIDQCAEQQA2ArxDIARBADYChDsgBEEANgLMMiAEQQA2ApQqIARBADYC3CEgBEEANgKkGSAEQQA2AuwQIARBADYCtAggBEHAwwBqIQQgAkEIaiICIAZHDQALCyADQQdxIgNFDQBBACECA0AgBEEANgK0CCAEQbgIaiEEIAJBAWoiAiADRw0ACwsgCSgC6CsiAgR/IAIQFCAJQQA2AugrIAgoAggFIAULRQRAQQEhBAwBCwNAIAFBAWoiASAIQQxqQQEQFQJAIAkoAoAsRQ0AIAkoAvwrIgMoAgAgCCgCDEcNACADKAIEIgUgACgCYCIGKAIQRw0AIAMoAggiAgRAQQAhBCACKAIQIAUgBWwiBSACKAIAQQJ0QZDCAWooAgBsRw0DIAkgBUECdBAYIgc2AugrIAdFDQMgAigCDCAHIAUgAigCAEECdEHAxAFqKAIAEQUACyADKAIMIgJFDQBBACEEIAIoAhAgBigCECIDIAIoAgBBAnRBkMIBaigCAGxHDQIgA0ECdBAYIgVFDQIgAigCDCAFIAMgAigCAEECdEHQxAFqKAIAEQUAAkAgBigCECIHRQ0AIAkoAtArIQRBACELAkACQCAHQQRJDQAgBEG0CGoiDCAFIAdBAnRqSQRAIAUgBCAHQbgIbGpJDQELIARB3CFqIQ0gBEGkGWohDiAEQewQaiEPIAUgB0F8cSIGQQJ0aiECIAQgBkG4CGxqIQRBACEDA0AgDCADQbgIbCIKaiAFIANBAnRq/QACACIR/VoCAAAgCiAPaiAR/VoCAAEgCiAOaiAR/VoCAAIgCiANaiAR/VoCAAMgA0EEaiIDIAZHDQALIAYgB0YNAgwBCyAFIQJBACEGCyAHIAYiA2tBB3EiCgRAA0AgBCACKAIANgK0CCADQQFqIQMgBEG4CGohBCACQQRqIQIgC0EBaiILIApHDQALCyAGIAdrQXhLDQADQCAEIAIoAgA2ArQIIAQgAigCBDYC7BAgBCACKAIINgKkGSAEIAIoAgw2AtwhIAQgAigCEDYClCogBCACKAIUNgLMMiAEIAIoAhg2AoQ7IAQgAigCHDYCvEMgBEHAwwBqIQQgAkEgaiECIANBCGoiAyAHRw0ACwsgBRAUC0EBIQQgEEEBaiIQIAgoAghJDQALCyAIQRBqJAAgBAsEAEJ/C7sJAQp/IwBBEGsiBSQAAn8gACgCCEEQRgRAIAAoArQBIAAoAuQBQYwsbGoMAQsgACgCDAshBwJ/IAJBAU0EQCADQQFBzCRBABATQQAMAQsgASAFQQxqQQIQFSAFKAIMBEAgA0ECQeQtQQAQE0EBDAELIAJBBk0EQCADQQFBzCRBABATQQAMAQsgAUECaiAFQQhqQQEQFSAHKAL8KyIJIQACQAJAAkAgBygCgCwiBkUNACAFKAIIIQgDQCAAKAIAIAhGDQEgAEEUaiEAIARBAWoiBCAGRw0ACwwBCyAEIAZHDQELIAcoAoQsIAZGBH8gByAGQQpqIgA2AoQsIAkgAEEUbBAbIgBFBEAgBygC/CsQFCAHQQA2AoQsIAdCADcC/CsgA0EBQeYkQQAQE0EADAMLIAcgADYC/CsgACAHKAKALCIEQRRsakEAIAcoAoQsIARrQRRsEBkaIAcoAvwrIQkgBygCgCwFIAYLQRRsIAlqIQBBASELCyAAIAUoAgg2AgAgAUEDaiAFQQxqQQIQFSAFKAIMBEAgA0ECQeQtQQAQE0EBDAELIAFBBWogBUEEakECEBUgBSgCBCIEQQJPBEAgA0ECQZUYQQAQE0EBDAELIAJBB2shBiAEBEAgAUEHaiECQQAhCQNAIAZBAk0EQCADQQFBzCRBABATQQAMAwsgAiAFQQxqQQEQFSAFKAIMQQFHBEAgA0ECQaYrQQAQE0EBDAMLIAJBAWogBUECEBUgACAFKAIAIgRB//8BcSIBNgIEIAZBA2siCCAEQQ92QQFqIgYgAWxBAmoiCkkEQCADQQFBzCRBABATQQAMAwsgAkEDaiECQQAhBCABBEADQCACIAVBDGogBhAVIAQgBSgCDEcEQCADQQJBzjBBABATQQEMBQsgAiAGaiECIARBAWoiBCAAKAIESQ0ACwsgAiAFQQIQFSAFIAUoAgAiBEH//wFxIgE2AgAgACgCBCABRwRAIANBAkHFGUEAEBNBAQwDCyAIIAprIgogBEEPdkEBaiIGIAFsQQNqIgxJBEAgA0EBQcwkQQAQE0EADAMLIAJBAmohAkEAIQQgAQRAA0AgAiAFQQxqIAYQFSAEIAUoAgxHBEAgA0ECQc4wQQAQE0EBDAULIAIgBmohAiAEQQFqIgQgACgCBEkNAAsLIAIgBUEMakEDEBUgBSgCDCEGIABCADcCCCAAIAZBgIAEcUUgAC0AEEH+AXFyOgAQIAUgBkH/AXEiCDYCCAJAIAhFDQAgBygC9CsiDQRAIAcoAvArIQRBACEBA0AgCCAEKAIIRgRAIAAgBDYCCAwDCyAEQRRqIQQgAUEBaiIBIA1HDQALCyADQQFBzCRBABATQQAMAwsgBSAGQQh2Qf8BcSIGNgIIAkAgBkUNACAHKAL0KyIIBEAgBygC8CshBEEAIQEDQCAGIAQoAghGBEAgACAENgIMDAMLIARBFGohBCABQQFqIgEgCEcNAAsLIANBAUHMJEEAEBNBAAwDCyAKIAxrIQYgAkEDaiECIAlBAWoiCSAFKAIESQ0ACwsgBgRAIANBAUHMJEEAEBNBAAwBC0EBIAtFDQAaIAcgBygCgCxBAWo2AoAsQQELIAVBEGokAAv1AQEFfyMAQRBrIgQkAAJAIAAoAmAoAhAiBkECaiACRwRAIANBAUHkI0EAEBMMAQsgASAEQQxqQQIQFSAGIAQoAgxHBEAgA0EBQeQjQQAQEwwBCyAGRQRAQQEhBQwBCyABQQJqIQIgACgCYCgCGCEAQQAhAQNAIAIgBEEIakEBEBUgACAEKAIIIgVB/wBxIgdBAWoiCDYCGCAAIAVBB3ZBAXE2AiAgB0EfTwRAIAQgCDYCBCAEIAE2AgAgA0EBQYX4ACAEEBNBACEFDAILIABBNGohAEEBIQUgAkEBaiECIAFBAWoiASAGRw0ACwsgBEEQaiQAIAULlAUBCX8jAEEQayIHJAACfyAAKAIIQRBGBEAgACgCtAEgACgC5AFBjCxsagwBCyAAKAIMCyEFAn8gAkEBTQRAIANBAUH/H0EAEBNBAAwBCyABIAdBDGpBAhAVAkAgBygCDARAIANBAkHzG0EAEBMMAQsgAkEGTQRAIANBAUH/H0EAEBNBAAwCCyABQQJqIAdBDGpBAhAVIAUoAvArIQQgBy0ADCEKAkACQAJAIAUoAvQrIgZFBEAgBCEADAELIAQhAANAIAAoAgggCkYNASAAQRRqIQAgCEEBaiIIIAZHDQALDAELIAYgCEcNAQsgBSgC+CsgBkYEQCAFIAZBCmoiADYC+CsgBCAAQRRsEBshACAFKALwKyEEIABFBEAgBBAUIAVBADYC+CsgBUIANwLwKyADQQFBmSBBABATQQAMBAsCQCAAIARGDQAgBSgCgCwiC0UNACAFKAL8KyEMQQAhCANAIAwgCEEUbGoiBigCCCIJBEAgBiAAIAkgBGtqNgIICyAGKAIMIgkEQCAGIAAgCSAEa2o2AgwLIAhBAWoiCCALRw0ACwsgBSAANgLwKyAAIAUoAvQrIgRBFGxqQQAgBSgC+CsgBGtBFGwQGRogBSgC9CshBiAFKALwKyEECyAFIAZBAWo2AvQrIAQgBkEUbGohAAsgACgCDCIEBEAgBBAUIABCADcCDAsgACAKNgIIIAAgBygCDCIEQQp2QQNxNgIAIAAgBEEIdkEDcTYCBCABQQRqIAdBDGpBAhAVIAcoAgwEQCADQQJBqhdBABATDAELIAAgAkEGayICEBgiBDYCDCAERQRAIANBAUH/H0EAEBNBAAwCCyAEIAFBBmogAhAWGiAAIAI2AhALQQELIAdBEGokAAsnAEEBIQEgACgCYCgCEEECdCACRwR/IANBAUHLIkEAEBNBAAVBAQsLpwMBBH8jAEEQayIGJAACfyACQQFNBEAgA0EBQeoeQQAQE0EADAELIAAtANQBQQFxBEAgA0EBQdfiAEEAEBNBAAwBCyAAKAK0ASAAKALkAUGMLGxqIgAgAC0AiCxBAnI6AIgsIAEgBkEMakEBEBUCQCAAKAKsKCIERQRAIAAgBigCDEEBaiIFQQgQFyIENgKsKCAERQRAIANBAUGEH0EAEBNBAAwDCyAAIAU2AqgoDAELIAYoAgwiBSAAKAKoKEkNACAEIAVBAWoiBEEDdBAbIgVFBEAgA0EBQYQfQQAQE0EADAILIAAgBTYCrCggBSAAKAKoKCIHQQN0akEAIAQgB2tBA3QQGRogACAENgKoKCAAKAKsKCEECyAEIAYoAgwiBUEDdGooAgAEQCAGIAU2AgAgA0EBQfI2IAYQE0EADAELIAJBAWsiAhAYIQQgACgCrCgiACAGKAIMIgVBA3RqIAQ2AgAgBEUEQCADQQFBhB9BABATQQAMAQsgACAFQQN0aiACNgIEIAAgBigCDEEDdGooAgAgAUEBaiACEBYaQQELIAZBEGokAAv6AgEEfyMAQRBrIgYkAAJ/IAJBAU0EQCADQQFBsiFBABATQQAMAQsgACAALQDUAUEBcjoA1AEgASAGQQxqQQEQFQJAIAAoAowBIgRFBEAgACAGKAIMQQFqIgVBCBAXIgQ2AowBIARFBEAgA0EBQcwhQQAQE0EADAMLIAAgBTYCiAEMAQsgBigCDCIFIAAoAogBSQ0AIAQgBUEBaiIEQQN0EBsiBUUEQCADQQFBzCFBABATQQAMAgsgACAFNgKMASAFIAAoAogBIgdBA3RqQQAgBCAHa0EDdBAZGiAAIAQ2AogBIAAoAowBIQQLIAQgBigCDCIFQQN0aigCAARAIAYgBTYCACADQQFBiDcgBhATQQAMAQsgAkEBayICEBghBCAAKAKMASIAIAYoAgwiBUEDdGogBDYCACAERQRAIANBAUHMIUEAEBNBAAwBCyAAIAVBA3RqIAI2AgQgACAGKAIMQQN0aigCACABQQFqIAIQFhpBAQsgBkEQaiQAC5wBAQN/IwBBEGsiBCQAAn8gAkUEQCADQQFB5R9BABATQQAMAQsgASAEQQxqQQEQFUEBIAJBAWsiBUUNABpBACEAQQAhAgNAIAFBAWoiASAEQQhqQQEQFSAEKAIIIgZBGHRBH3UgBkH/AHEgAnJBB3RxIQIgAEEBaiIAIAVHDQALQQEgAkUNABogA0EBQeUfQQAQE0EACyAEQRBqJAALGwBBASEAIAIEf0EBBSADQQFB8iFBABATQQALC9oEAQd/IwBBIGsiBCQAQQEhBQJAIAJBAU0EQEEAIQUgA0EBQanOAEEAEBMMAQsgACgCTA0AIAEgBEEcakEBEBUgAUEBaiAEQRhqQQEQFSAEKAIYIgZBBHZBA3EiB0EDRgRAIABBATYCTCADQQJBgdoAQQAQEwwBCyACQQJrIgIgAiAGQQV2QQJxQQJqIgkgB2oiCG4iBiAIbEcEQCAAQQE2AkwgA0ECQd7WAEEAEBMMAQsgAiAISQ0AAkAgACgCRCICIAZBf3NNBEAgAiAGaiICQYCAgIACSQ0BCyAAQQE2AkwgA0ECQZPJAEEAEBMMAQsgACgCSCACQQN0EBsiCEUEQCAAQQE2AkwgA0ECQb7JAEEAEBMMAQsgAUECaiECIAAgCDYCSAJAIAcEQEEBIAYgBkEBTRshCkEAIQYDQCACIARBFGogBxAVIAQoAhQiASAAKAKEASAAKAKAAWxPDQIgAiAHaiIBIARBEGogCRAVIAggACgCRCICQQN0aiIFIAQoAhQ7AQAgBSAEKAIQNgIEQQEhBSAAIAJBAWo2AkQgASAJaiECIAZBAWoiBiAKRw0ACwwCC0EBIAYgBkEBTRshByAAKAJEIQFBACEGA0AgBCABNgIUIAEgACgChAEgACgCgAFsTw0BIAIgBEEQaiAJEBUgCCAAKAJEIgpBA3RqIgUgATsBACAFIAQoAhA2AgRBASEFIAAgCkEBaiIBNgJEIAIgCWohAiAGQQFqIgYgB0cNAAsMAQsgAEEBNgJMIAQgATYCACADQQJB0jwgBBATCyAEQSBqJAAgBQsEAEEACwvLwQEhAEGACAvgmQFjYW5ub3QgYWxsb2NhdGUgb3BqX3RjZF9zZWdfZGF0YV9jaHVua190KiBhcnJheQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AFVua25vd24gZm9ybWF0AEZhaWxlZCB0byBzZXR1cCB0aGUgZGVjb2RlcgBGYWlsZWQgdG8gcmVhZCB0aGUgaGVhZGVyAG5hbgAqbF90aWxlX2xlbiA+IFVJTlRfTUFYIC0gT1BKX0NPTU1PTl9DQkxLX0RBVEFfRVhUUkEgLSBwX2oyay0+bV9zcGVjaWZpY19wYXJhbS5tX2RlY29kZXIubV9zb3RfbGVuZ3RoAGluZgBGYWlsZWQgdG8gZGVjb2RlIHRoZSBpbWFnZQBJbnZhbGlkIGFjY2VzcyB0byBwaS0+aW5jbHVkZQAvdG1wL29wZW5qcGVnL3NyYy9iaW4vY29tbW9uL2NvbG9yLmMAQUxMX0NQVVMAT1BKX05VTV9USFJFQURTAE5BTgBPSlBfRE9fTk9UX0RJU1BMQVlfVElMRV9JTkRFWF9JRl9UTE0ASU5GAHBfajJrLT5tX3NwZWNpZmljX3BhcmFtLm1fZGVjb2Rlci5tX3NvdF9sZW5ndGggPiBVSU5UX01BWCAtIE9QSl9DT01NT05fQ0JMS19EQVRBX0VYVFJBAAkJCSBwcmVjY2ludHNpemUgKHcsaCk9AAkJCSBzdGVwc2l6ZXMgKG0sZSk9AFNPVCBtYXJrZXIgZm9yIHRpbGUgJXUgZGVjbGFyZXMgbW9yZSB0aWxlLXBhcnRzIHRoYW4gZm91bmQgaW4gVExNIG1hcmtlci4AKG51bGwpACglZCwlZCkgACVzfQoACQkgfQoAW0RFVl0gRHVtcCBhbiBpbWFnZV9jb21wX2hlYWRlciBzdHJ1Y3QgewoAW0RFVl0gRHVtcCBhbiBpbWFnZV9oZWFkZXIgc3RydWN0IHsKAEltYWdlIGluZm8gewoACSBkZWZhdWx0IHRpbGUgewoAJXMJIGNvbXBvbmVudCAlZCB7CgAJCSBjb21wICVkIHsKAAkgVGlsZSBpbmRleDogewoACSBNYXJrZXIgbGlzdDogewoAQ29kZXN0cmVhbSBpbmRleCBmcm9tIG1haW4gaGVhZGVyOiB7CgBDb2Rlc3RyZWFtIGluZm8gZnJvbSBtYWluIGhlYWRlcjogewoAU3RyZWFtIGVycm9yIHdoaWxlIHJlYWRpbmcgSlAyIEhlYWRlciBib3gKAEZvdW5kIGEgbWlzcGxhY2VkICclYyVjJWMlYycgYm94IG91dHNpZGUganAyaCBib3gKAE1hbGZvcm1lZCBKUDIgZmlsZSBmb3JtYXQ6IGZpcnN0IGJveCBtdXN0IGJlIEpQRUcgMjAwMCBzaWduYXR1cmUgYm94CgBNYWxmb3JtZWQgSlAyIGZpbGUgZm9ybWF0OiBzZWNvbmQgYm94IG11c3QgYmUgZmlsZSB0eXBlIGJveAoATm90IGVub3VnaCBtZW1vcnkgdG8gaGFuZGxlIGpwZWcyMDAwIGJveAoATm90IGVub3VnaCBtZW1vcnkgd2l0aCBGVFlQIEJveAoAQSBtYXJrZXIgSUQgd2FzIGV4cGVjdGVkICgweGZmLS0pIGluc3RlYWQgb2YgJS44eAoACQkgbWN0PSV4CgAJCQkgY2Jsa3N0eT0lI3gKAAkJCSBjc3R5PSUjeAoACQkgcHJnPSUjeAoASW50ZWdlciBvdmVyZmxvdwoACSB0ZHg9JXUsIHRkeT0ldQoACSB0dz0ldSwgdGg9JXUKAAkgdHgwPSV1LCB0eTA9JXUKAEludmFsaWQgY29tcG9uZW50IGluZGV4OiAldQoAU3RyZWFtIHRvbyBzaG9ydAoATWFya2VyIGhhbmRsZXIgZnVuY3Rpb24gZmFpbGVkIHRvIHJlYWQgdGhlIG1hcmtlciBzZWdtZW50CgBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgY3VycmVudCBwcmVjaW5jdCBjb2RlYmxvY2sgZWxlbWVudAoARXJyb3IgcmVhZGluZyBTUENvZCBTUENvYyBlbGVtZW50CgBFcnJvciByZWFkaW5nIFNRY2Qgb3IgU1FjYyBlbGVtZW50CgBBIEJQQ0MgaGVhZGVyIGJveCBpcyBhdmFpbGFibGUgYWx0aG91Z2ggQlBDIGdpdmVuIGJ5IHRoZSBJSERSIGJveCAoJWQpIGluZGljYXRlIGNvbXBvbmVudHMgYml0IGRlcHRoIGlzIGNvbnN0YW50CgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IGlsbGVnYWwgdGlsZSBvZmZzZXQKAEludmFsaWQgcHJlY2luY3QKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGhhbmRsZSBiYW5kIHByZWNpbnRzCgBGYWlsZWQgdG8gZGVjb2RlIGFsbCB1c2VkIGNvbXBvbmVudHMKAFNpemUgb2YgY29kZSBibG9jayBkYXRhIGV4Y2VlZHMgc3lzdGVtIGxpbWl0cwoAU2l6ZSBvZiB0aWxlIGRhdGEgZXhjZWVkcyBzeXN0ZW0gbGltaXRzCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgTUNUIG1hcmtlcnMKAENvcnJ1cHRlZCBQUE0gbWFya2VycwoATm90IGVub3VnaCBtZW1vcnkgZm9yIHRpbGUgcmVzb2x1dGlvbnMKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBtdWx0aXBsZSBjb2xsZWN0aW9ucwoASW52YWxpZCBQQ0xSIGJveC4gUmVwb3J0cyAwIHBhbGV0dGUgY29sdW1ucwoAV2UgZG8gbm90IHN1cHBvcnQgUk9JIGluIGRlY29kaW5nIEhUIGNvZGVibG9ja3MKAENhbm5vdCBoYW5kbGUgYm94IG9mIHVuZGVmaW5lZCBzaXplcwoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIGNvbGxlY3Rpb25zIHdpdGhvdXQgc2FtZSBudW1iZXIgb2YgaW5kaXhlcwoASW52YWxpZCB0aWxlYy0+d2luX3h4eCB2YWx1ZXMKAENhbm5vdCBoYW5kbGUgYm94IG9mIGxlc3MgdGhhbiA4IGJ5dGVzCgBDYW5ub3QgaGFuZGxlIFhMIGJveCBvZiBsZXNzIHRoYW4gMTYgYnl0ZXMKAENvbXBvbmVudCBpbmRleCAldSB1c2VkIHNldmVyYWwgdGltZXMKAEludmFsaWQgUENMUiBib3guIFJlcG9ydHMgJWQgZW50cmllcwoATm90IGVub3VnaCBtZW1vcnkgdG8gY3JlYXRlIFRhZy10cmVlIG5vZGVzCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbWN0IGRhdGEgd2l0aGluIG11bHRpcGxlIE1DVCByZWNvcmRzCgBDYW5ub3QgZGVjb2RlIHRpbGUsIG1lbW9yeSBlcnJvcgoAb3BqX2oya19hcHBseV9uYl90aWxlX3BhcnRzX2NvcnJlY3Rpb24gZXJyb3IKAFByb2JsZW0gd2l0aCBza2lwcGluZyBKUEVHMjAwMCBib3gsIHN0cmVhbSBlcnJvcgoAUHJvYmxlbSB3aXRoIHJlYWRpbmcgSlBFRzIwMDAgYm94LCBzdHJlYW0gZXJyb3IKAFVua25vd24gbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgdGwgbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgbWggbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byB0YWtlIGluIGNoYXJnZSBTSVogbWFya2VyCgBFcnJvciByZWFkaW5nIFBQVCBtYXJrZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgUFBUIG1hcmtlcgoARXJyb3IgcmVhZGluZyBTT1QgbWFya2VyCgBEaWQgbm90IGdldCBleHBlY3RlZCBTT1QgbWFya2VyCgBFcnJvciByZWFkaW5nIFBMVCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgTUNUIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVhZCBNQ1QgbWFya2VyCgBOb3QgZW5vdWdoIHNwYWNlIGZvciBleHBlY3RlZCBTT1AgbWFya2VyCgBFeHBlY3RlZCBTT1AgbWFya2VyCgBFcnJvciByZWFkaW5nIE1DTyBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUkdOIG1hcmtlcgoARXJyb3IgcmVhZGluZyBQUE0gbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIFBQTSBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUExNIG1hcmtlcgoARXhwZWN0ZWQgRVBIIG1hcmtlcgoATm90IGVub3VnaCBzcGFjZSBmb3IgcmVxdWlyZWQgRVBIIG1hcmtlcgoARXJyb3IgcmVhZGluZyBDUkcgbWFya2VyCgBVbmtub3duIHByb2dyZXNzaW9uIG9yZGVyIGluIENPRCBtYXJrZXIKAFVua25vd24gU2NvZCB2YWx1ZSBpbiBDT0QgbWFya2VyCgBFcnJvciByZWFkaW5nIENPRCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUUNEIG1hcmtlcgoAQ3Jyb3IgcmVhZGluZyBDQkQgbWFya2VyCgBFcnJvciByZWFkaW5nIFBPQyBtYXJrZXIKAEVycm9yIHJlYWRpbmcgQ09DIG1hcmtlcgoARXJyb3IgcmVhZGluZyBRQ0MgbWFya2VyCgBFcnJvciByZWFkaW5nIE1DQyBtYXJrZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgTUNDIG1hcmtlcgoAcmVxdWlyZWQgU0laIG1hcmtlciBub3QgZm91bmQgaW4gbWFpbiBoZWFkZXIKAHJlcXVpcmVkIENPRCBtYXJrZXIgbm90IGZvdW5kIGluIG1haW4gaGVhZGVyCgByZXF1aXJlZCBRQ0QgbWFya2VyIG5vdCBmb3VuZCBpbiBtYWluIGhlYWRlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gaGFuZGxlIGpwZWcyMDAwIGZpbGUgaGVhZGVyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIGhlYWRlcgoARXJyb3Igd2l0aCBKUCBTaWduYXR1cmUgOiBiYWQgbWFnaWMgbnVtYmVyCgBJbiBTT1QgbWFya2VyLCBUUFNvdCAoJWQpIGlzIG5vdCB2YWxpZCByZWdhcmRzIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiB0aWxlLXBhcnQgKCVkKSwgZ2l2aW5nIHVwCgBJbiBTT1QgbWFya2VyLCBUUFNvdCAoJWQpIGlzIG5vdCB2YWxpZCByZWdhcmRzIHRvIHRoZSBwcmV2aW91cyBudW1iZXIgb2YgdGlsZS1wYXJ0ICglZCksIGdpdmluZyB1cAoASW4gU09UIG1hcmtlciwgVFBTb3QgKCVkKSBpcyBub3QgdmFsaWQgcmVnYXJkcyB0byB0aGUgY3VycmVudCBudW1iZXIgb2YgdGlsZS1wYXJ0IChoZWFkZXIpICglZCksIGdpdmluZyB1cAoAdGlsZXMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgcmVzb2x1dGlvbgoATWFya2VyIGlzIG5vdCBjb21wbGlhbnQgd2l0aCBpdHMgcG9zaXRpb24KAFByb2JsZW0gd2l0aCBzZWVrIGZ1bmN0aW9uCgBFcnJvciByZWFkaW5nIFNQQ29kIFNQQ29jIGVsZW1lbnQsIEludmFsaWQgY2Jsa3cvY2Jsa2ggY29tYmluYXRpb24KAEludmFsaWQgbXVsdGlwbGUgY29tcG9uZW50IHRyYW5zZm9ybWF0aW9uCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgY29sbGVjdGlvbnMgb3RoZXIgdGhhbiBhcnJheSBkZWNvcnJlbGF0aW9uCgBUb28gbGFyZ2UgdmFsdWUgZm9yIE5wcG0KAE5vdCBlbm91Z2ggYnl0ZXMgdG8gcmVhZCBOcHBtCgBiYWQgcGxhY2VkIGpwZWcgY29kZXN0cmVhbQoACSBNYWluIGhlYWRlciBzdGFydCBwb3NpdGlvbj0lbGxpCgkgTWFpbiBoZWFkZXIgZW5kIHBvc2l0aW9uPSVsbGkKAE1hcmtlciBzaXplIGluY29uc2lzdGVudCB3aXRoIHN0cmVhbSBsZW5ndGgKAFRpbGUgcGFydCBsZW5ndGggc2l6ZSBpbmNvbnNpc3RlbnQgd2l0aCBzdHJlYW0gbGVuZ3RoCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgZGF0YSBzcGFubmluZwoAV3JvbmcgZmxhZwoARXJyb3Igd2l0aCBGVFlQIHNpZ25hdHVyZSBCb3ggc2l6ZQoARXJyb3Igd2l0aCBKUCBzaWduYXR1cmUgQm94IHNpemUKAEludmFsaWQgcHJlY2luY3Qgc2l6ZQoASW5jb25zaXN0ZW50IG1hcmtlciBzaXplCgBJbnZhbGlkIG1hcmtlciBzaXplCgBFcnJvciB3aXRoIFNJWiBtYXJrZXIgc2l6ZQoATm90IGVub3VnaCBtZW1vcnkgdG8gYWRkIGEgbmV3IHZhbGlkYXRpb24gcHJvY2VkdXJlCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBkZWNvZGUgdGlsZQoARmFpbGVkIHRvIGRlY29kZSB0aGUgY29kZXN0cmVhbSBpbiB0aGUgSlAyIGZpbGUKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBjb2xsZWN0aW9ucyB3aXRoIGluZGl4IHNodWZmbGUKAENhbm5vdCBhbGxvY2F0ZSBUaWVyIDEgaGFuZGxlCgBObyBkZWNvZGVkIGFyZWEgcGFyYW1ldGVycywgc2V0IHRoZSBkZWNvZGVkIGFyZWEgdG8gdGhlIHdob2xlIGltYWdlCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBjcmVhdGUgVGFnLXRyZWUKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlaW5pdGlhbGl6ZSB0aGUgdGFnIHRyZWUKAEVycm9yIHJlYWRpbmcgU1BDb2QgU1BDb2MgZWxlbWVudCwgSW52YWxpZCB0cmFuc2Zvcm1hdGlvbiBmb3VuZAoARXJyb3IgcmVhZGluZyBTUENvZCBTUENvYyBlbGVtZW50LiBVbnN1cHBvcnRlZCBNaXhlZCBIVCBjb2RlLWJsb2NrIHN0eWxlIGZvdW5kCgBUaWxlIFkgY29vcmRpbmF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQKAFRpbGUgWCBjb29yZGluYXRlcyBhcmUgbm90IHN1cHBvcnRlZAoASW1hZ2UgY29vcmRpbmF0ZXMgYWJvdmUgSU5UX01BWCBhcmUgbm90IHN1cHBvcnRlZAoASlBFRzIwMDAgSGVhZGVyIGJveCBub3QgcmVhZCB5ZXQsICclYyVjJWMlYycgYm94IHdpbGwgYmUgaWdub3JlZAoAb3BqX2oya19tZXJnZV9wcHQoKSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZAoAb3BqX2oya19idWlsZF90cF9pbmRleF9mcm9tX3RsbSgpOiB0aWxlIGluZGV4IGFsbG9jYXRpb24gZmFpbGVkCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIFNPVCBtYXJrZXIuIFRpbGUgaW5kZXggYWxsb2NhdGlvbiBmYWlsZWQKAElnbm9yaW5nIGloZHIgYm94LiBGaXJzdCBpaGRyIGJveCBhbHJlYWR5IHJlYWQKAFpwcHQgJXUgYWxyZWFkeSByZWFkCgBacHBtICV1IGFscmVhZHkgcmVhZAoAUFRFUk0gY2hlY2sgZmFpbHVyZTogJWQgc3ludGhlc2l6ZWQgMHhGRiBtYXJrZXJzIHJlYWQKAAkJCSBjYmxrdz0yXiVkCgAJCQkgY2Jsa2g9Ml4lZAoACQkJIHFudHN0eT0lZAoAJXMgZHg9JWQsIGR5PSVkCgAJCQkgcm9pc2hpZnQ9JWQKAAkJCSBudW1nYml0cz0lZAoACQkgbnVtbGF5ZXJzPSVkCgAlcyBudW1jb21wcz0lZAoAb3BqX2pwMl9hcHBseV9jZGVmOiBhY249JWQsIG51bWNvbXBzPSVkCgBvcGpfanAyX2FwcGx5X2NkZWY6IGNuPSVkLCBudW1jb21wcz0lZAoACQkJIG51bXJlc29sdXRpb25zPSVkCgAJCSB0eXBlPSUjeCwgcG9zPSVsbGksIGxlbj0lZAoAJXMgc2duZD0lZAoACQkJIHFtZmJpZD0lZAoAJXMgcHJlYz0lZAoACQkgbmIgb2YgdGlsZS1wYXJ0IGluIHRpbGUgWyVkXT0lZAoAJXMgeDE9JWQsIHkxPSVkCgAlcyB4MD0lZCwgeTA9JWQKAEZhaWxlZCB0byBkZWNvZGUgdGlsZSAlZC8lZAoAU2V0dGluZyBkZWNvZGluZyBhcmVhIHRvICVkLCVkLCVkLCVkCgBGYWlsZWQgdG8gZGVjb2RlIGNvbXBvbmVudCAlZAoASW52YWxpZCB2YWx1ZSBmb3IgbnVtcmVzb2x1dGlvbnMgOiAlZCwgbWF4IHZhbHVlIGlzIHNldCBpbiBvcGVuanBlZy5oIGF0ICVkCgBJbnZhbGlkIGNvbXBvbmVudCBudW1iZXI6ICVkLCByZWdhcmRpbmcgdGhlIG51bWJlciBvZiBjb21wb25lbnRzICVkCgBUb28gbWFueSBQT0NzICVkCgBvcGpfajJrX3JlYWRfdGxtKCk6IGludmFsaWQgdGlsZSBudW1iZXIgJWQKAEludmFsaWQgdGlsZSBudW1iZXIgJWQKAEludmFsaWQgdGlsZSBwYXJ0IGluZGV4IGZvciB0aWxlIG51bWJlciAlZC4gR290ICVkLCBleHBlY3RlZCAlZAoARXJyb3Igd2l0aCBTSVogbWFya2VyOiBudW1iZXIgb2YgY29tcG9uZW50IGlzIGlsbGVnYWwgLT4gJWQKAE5vdCBlbm91Z2ggbWVtb3J5IGZvciBjaWVsYWIKAENhbm5vdCBhbGxvY2F0ZSBjYmxrLT5kZWNvZGVkX2RhdGEKAEZhaWxlZCB0byBtZXJnZSBQUFQgZGF0YQoARmFpbGVkIHRvIG1lcmdlIFBQTSBkYXRhCgBJbnZhbGlkIG51bWJlciBvZiBsYXllcnMgaW4gQ09EIG1hcmtlciA6ICVkIG5vdCBpbiByYW5nZSBbMS02NTUzNV0KACVzOiVkOmNvbG9yX2NteWtfdG9fcmdiCglDQU4gTk9UIENPTlZFUlQKACVzOiVkOmNvbG9yX2VzeWNjX3RvX3JnYgoJQ0FOIE5PVCBDT05WRVJUCgAlczolZDpjb2xvcl9zeWNjX3RvX3JnYgoJQ0FOIE5PVCBDT05WRVJUCgBTdHJlYW0gdG9vIHNob3J0LCBleHBlY3RlZCBTT1QKAFVuYWJsZSB0byBzZXQgdDEgaGFuZGxlIGFzIFRMUwoAU290IGxlbmd0aCBpcyBsZXNzIHRoYW4gbWFya2VyIHNpemUgKyBtYXJrZXIgSUQKAFN0cmVhbSBkb2VzIG5vdCBlbmQgd2l0aCBFT0MKAENhbm5vdCBoYW5kbGUgYm94IHNpemVzIGhpZ2hlciB0aGFuIDJeMzIKAG9wal9waV9uZXh0X2xyY3AoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3JsY3AoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X2NwcmwoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3BjcmwoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3JwY2woKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal90MV9kZWNvZGVfY2JsaygpOiB1bnN1cHBvcnRlZCBicG5vX3BsdXNfb25lID0gJWQgPj0gMzEKAEZhaWxlZCB0byBkZWNvZGUgdGlsZSAxLzEKAEluc3VmZmljaWVudCBkYXRhIGZvciBDTUFQIGJveC4KAE5lZWQgdG8gcmVhZCBhIFBDTFIgYm94IGJlZm9yZSB0aGUgQ01BUCBib3guCgBJbnN1ZmZpY2llbnQgZGF0YSBmb3IgQ0RFRiBib3guCgBOdW1iZXIgb2YgY2hhbm5lbCBkZXNjcmlwdGlvbiBpcyBlcXVhbCB0byB6ZXJvIGluIENERUYgYm94LgoAU3RyZWFtIGVycm9yIHdoaWxlIHJlYWRpbmcgSlAyIEhlYWRlciBib3g6IG5vICdpaGRyJyBib3guCgBOb24gY29uZm9ybWFudCBjb2Rlc3RyZWFtIFRQc290PT1UTnNvdC4KAFN0cmVhbSBlcnJvciB3aGlsZSByZWFkaW5nIEpQMiBIZWFkZXIgYm94OiBib3ggbGVuZ3RoIGlzIGluY29uc2lzdGVudC4KAEJveCBsZW5ndGggaXMgaW5jb25zaXN0ZW50LgoAUmVzb2x1dGlvbiBmYWN0b3IgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHJlc29sdXRpb24gaW4gdGhlIGNvbXBvbmVudC4KAENvbXBvbmVudCBtYXBwaW5nIHNlZW1zIHdyb25nLiBUcnlpbmcgdG8gY29ycmVjdC4KAG9wal9qMmtfYnVpbGRfdHBfaW5kZXhfZnJvbV90bG0oKTogdGlsZSAlZCBoYXMgbm8gcmVnaXN0ZXJlZCB0aWxlLXBhcnQgaW4gVExNIG1hcmtlciBzZWdtZW50cy4KAG9wal9qMmtfcmVhZF90bG0oKTogdG9vIG1hbnkgVExNIG1hcmtlcnMuCgBvcGpfajJrX3JlYWRfdGxtKCk6IGNhbm5vdCBhbGxvY2F0ZSBtX3RpbGVfcGFydF9pbmZvcy4KAEluY29tcGxldGUgY2hhbm5lbCBkZWZpbml0aW9ucy4KAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIEludmFsaWQgY29kZWJsb2NrIGxlbmd0aCB2YWx1ZXMuCgBXZSBkbyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gMyBjb2RpbmcgcGFzc2VzIGluIGFuIEhUIGNvZGVibG9jazsgVGhpcyBjb2RlYmxvY2tzIGhhcyAlZCBwYXNzZXMuCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBEZWNvZGluZyB0aGlzIGNvZGVibG9jayBpcyBzdG9wcGVkLiBUaGVyZSBhcmUgJWQgemVybyBiaXRwbGFuZXMgaW4gJWQgYml0cGxhbmVzLgoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIG11bHRpcGxlIHRyYW5zZm9ybWF0aW9uIHN0YWdlcy4KAFVua25vd24gbWFya2VyIGhhcyBiZWVuIGRldGVjdGVkIGFuZCBnZW5lcmF0ZWQgZXJyb3IuCgBDb2RlYyBwcm92aWRlZCB0byB0aGUgb3BqX3NldHVwX2RlY29kZXIgZnVuY3Rpb24gaXMgbm90IGEgZGVjb21wcmVzc29yIGhhbmRsZXIuCgBDb2RlYyBwcm92aWRlZCB0byB0aGUgb3BqX3JlYWRfaGVhZGVyIGZ1bmN0aW9uIGlzIG5vdCBhIGRlY29tcHJlc3NvciBoYW5kbGVyLgoARXJyb3IgcmVhZGluZyBUTE0gbWFya2VyLgoAVGlsZXMgZG9uJ3QgYWxsIGhhdmUgdGhlIHNhbWUgZGltZW5zaW9uLiBTa2lwIHRoZSBNQ1Qgc3RlcC4KAE51bWJlciBvZiBjb21wb25lbnRzICglZCkgaXMgaW5jb25zaXN0ZW50IHdpdGggYSBNQ1QuIFNraXAgdGhlIE1DVCBzdGVwLgoASlAyIGJveCB3aGljaCBhcmUgYWZ0ZXIgdGhlIGNvZGVzdHJlYW0gd2lsbCBub3QgYmUgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gV2hlbiB0aGUgbnVtYmVyIG9mIHplcm8gcGxhbmVzIGJpdHBsYW5lcyBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGJpdHBsYW5lcywgb25seSB0aGUgY2xlYW51cCBwYXNzIG1ha2VzIHNlbnNlLCBidXQgd2UgaGF2ZSAlZCBwYXNzZXMgaW4gdGhpcyBjb2RlYmxvY2suIFRoZXJlZm9yZSwgb25seSB0aGUgY2xlYW51cCBwYXNzIHdpbGwgYmUgZGVjb2RlZC4gVGhpcyBtZXNzYWdlIHdpbGwgbm90IGJlIGRpc3BsYXllZCBhZ2Fpbi4KAEltYWdlIGhhcyBsZXNzIGNvbXBvbmVudHMgdGhhbiBjb2Rlc3RyZWFtLgoATmVlZCB0byBkZWNvZGUgdGhlIG1haW4gaGVhZGVyIGJlZm9yZSBiZWdpbiB0byBkZWNvZGUgdGhlIHJlbWFpbmluZyBjb2Rlc3RyZWFtLgoAUHNvdCB2YWx1ZSBvZiB0aGUgY3VycmVudCB0aWxlLXBhcnQgaXMgZXF1YWwgdG8gemVybywgd2UgYXNzdW1pbmcgaXQgaXMgdGhlIGxhc3QgdGlsZS1wYXJ0IG9mIHRoZSBjb2Rlc3RyZWFtLgoAQSBtYWxmb3JtZWQgY29kZWJsb2NrIHRoYXQgaGFzIG1vcmUgdGhhbiBvbmUgY29kaW5nIHBhc3MsIGJ1dCB6ZXJvIGxlbmd0aCBmb3IgMm5kIGFuZCBwb3RlbnRpYWxseSB0aGUgM3JkIHBhc3MgaW4gYW4gSFQgY29kZWJsb2NrLgoACQkJIHRpbGUtcGFydFslZF06IHN0YXJfcG9zPSVsbGksIGVuZF9oZWFkZXI9JWxsaSwgZW5kX3Bvcz0lbGxpLgoAVGlsZSAldSBoYXMgVFBzb3QgPT0gMCBhbmQgVE5zb3QgPT0gMCwgYnV0IG5vIG90aGVyIHRpbGUtcGFydHMgd2VyZSBmb3VuZC4gRU9DIGlzIGFsc28gbWlzc2luZy4KAENvbXBvbmVudCAlZCBkb2Vzbid0IGhhdmUgYSBtYXBwaW5nLgoAb3BqX2oya19yZWFkX3RsbSgpOiBUTE0gbWFya2VyIG5vdCBvZiBleHBlY3RlZCBzaXplLgoAQSBjb25mb3JtaW5nIEpQMiByZWFkZXIgc2hhbGwgaWdub3JlIGFsbCBDb2xvdXIgU3BlY2lmaWNhdGlvbiBib3hlcyBhZnRlciB0aGUgZmlyc3QsIHNvIHdlIGlnbm9yZSB0aGlzIG9uZS4KAFRoZSBzaWduYXR1cmUgYm94IG11c3QgYmUgdGhlIGZpcnN0IGJveCBpbiB0aGUgZmlsZS4KAFRoZSAgYm94IG11c3QgYmUgdGhlIGZpcnN0IGJveCBpbiB0aGUgZmlsZS4KAFRoZSBmdHlwIGJveCBtdXN0IGJlIHRoZSBzZWNvbmQgYm94IGluIHRoZSBmaWxlLgoARmFpbGVkIHRvIGRlY29kZS4KAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIEluY29ycmVjdCBNRUwgc2VnbWVudCBzZXF1ZW5jZS4KAENvbXBvbmVudCAlZCBpcyBtYXBwZWQgdHdpY2UuCgBvcGpfajJrX3JlYWRfdGxtKCk6IFNUID0gMyBpcyBpbnZhbGlkLgoAT25seSBvbmUgQ01BUCBib3ggaXMgYWxsb3dlZC4KAFdlIG5lZWQgYW4gaW1hZ2UgcHJldmlvdXNseSBjcmVhdGVkLgoASUhEUiBib3hfbWlzc2luZy4gUmVxdWlyZWQuCgBKUDJIIGJveCBtaXNzaW5nLiBSZXF1aXJlZC4KAE5vdCBzdXJlIGhvdyB0aGF0IGhhcHBlbmVkLgoATWFpbiBoZWFkZXIgaGFzIGJlZW4gY29ycmVjdGx5IGRlY29kZWQuCgBUaWxlICVkLyVkIGhhcyBiZWVuIGRlY29kZWQuCgBIZWFkZXIgb2YgdGlsZSAlZCAvICVkIGhhcyBiZWVuIHJlYWQuCgBFbXB0eSBTT1QgbWFya2VyIGRldGVjdGVkOiBQc290PSVkLgoARGlyZWN0IHVzZSBhdCAjJWQgaG93ZXZlciBwY29sPSVkLgoASW1wbGVtZW50YXRpb24gbGltaXRhdGlvbjogZm9yIHBhbGV0dGUgbWFwcGluZywgcGNvbFslZF0gc2hvdWxkIGJlIGVxdWFsIHRvICVkLCBidXQgaXMgZXF1YWwgdG8gJWQuCgBJbnZhbGlkIGNvbXBvbmVudC9wYWxldHRlIGluZGV4IGZvciBkaXJlY3QgbWFwcGluZyAlZC4KAEludmFsaWQgdmFsdWUgZm9yIGNtYXBbJWRdLm10eXAgPSAlZC4KAFBzb3QgdmFsdWUgaXMgbm90IGNvcnJlY3QgcmVnYXJkcyB0byB0aGUgSlBFRzIwMDAgbm9ybTogJWQuCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBWTEMgY29kZSBwcm9kdWNlcyBzaWduaWZpY2FudCBzYW1wbGVzIG91dHNpZGUgdGhlIGNvZGVibG9jayBhcmVhLgoAVW5leHBlY3RlZCBPT00uCgAzMiBiaXRzIGFyZSBub3QgZW5vdWdoIHRvIGRlY29kZSB0aGlzIGNvZGVibG9jaywgc2luY2UgdGhlIG51bWJlciBvZiBiaXRwbGFuZSwgJWQsIGlzIGxhcmdlciB0aGFuIDMwLgoAQm90dG9tIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MT0lZCkgc2hvdWxkIGJlID4gMC4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgc2hvdWxkIGJlID4gMC4KAFVwIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MD0lZCkgc2hvdWxkIGJlID49IDAuCgBMZWZ0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MD0lZCkgc2hvdWxkIGJlID49IDAuCgBFcnJvciByZWFkaW5nIFBQVCBtYXJrZXI6IHBhY2tldCBoZWFkZXIgaGF2ZSBiZWVuIHByZXZpb3VzbHkgZm91bmQgaW4gdGhlIG1haW4gaGVhZGVyIChQUE0gbWFya2VyKS4KAFN0YXJ0IHRvIHJlYWQgajJrIG1haW4gaGVhZGVyICglbGxkKS4KAEJvdHRvbSBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTE9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFlzaXo9JWQpLgoAVXAgcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kwPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZc2l6PSVkKS4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWHNpej0lZCkuCgBMZWZ0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MD0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWHNpej0lZCkuCgBCb3R0b20gcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kxPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZT3Npej0lZCkuCgBVcCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTA9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFlPc2l6PSVkKS4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWE9zaXo9JWQpLgoATGVmdCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDA9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFhPc2l6PSVkKS4KAFNpemUgeCBvZiB0aGUgZGVjb2RlZCBjb21wb25lbnQgaW1hZ2UgaXMgaW5jb3JyZWN0IChjb21wWyVkXS53PSVkKS4KAFNpemUgeSBvZiB0aGUgZGVjb2RlZCBjb21wb25lbnQgaW1hZ2UgaXMgaW5jb3JyZWN0IChjb21wWyVkXS5oPSVkKS4KAFRpbGUgcmVhZCwgZGVjb2RlZCBhbmQgdXBkYXRlZCBpcyBub3QgdGhlIGRlc2lyZWQgb25lICglZCB2cyAlZCkuCgBJbnZhbGlkIGNvbXBvbmVudCBpbmRleCAlZCAoPj0gJWQpLgoAb3BqX3JlYWRfaGVhZGVyKCkgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgb3BqX3NldF9kZWNvZGVkX2NvbXBvbmVudHMoKS4KAE1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUgaW4gb3BqX2pwMl9hcHBseV9wY2xyKCkuCgBpbWFnZS0+Y29tcHNbJWRdLmRhdGEgPT0gTlVMTCBpbiBvcGpfanAyX2FwcGx5X3BjbHIoKS4KAGludmFsaWQgYm94IHNpemUgJWQgKCV4KQoARmFpbCB0byByZWFkIHRoZSBjdXJyZW50IG1hcmtlciBzZWdtZW50ICglI3gpCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IElIRFIgdygldSkgaCgldSkgdnMuIFNJWiB3KCV1KSBoKCV1KQoARXJyb3IgcmVhZGluZyBDT0MgbWFya2VyIChiYWQgbnVtYmVyIG9mIGNvbXBvbmVudHMpCgBJbnZhbGlkIG51bWJlciBvZiB0aWxlcyA6ICV1IHggJXUgKG1heGltdW0gZml4ZWQgYnkganBlZzIwMDAgbm9ybSBpcyA2NTUzNSB0aWxlcykKAEludmFsaWQgbnVtYmVyIG9mIGNvbXBvbmVudHMgKGloZHIpCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBoYW5kbGUgaW1hZ2UgaGVhZGVyIChpaGRyKQoAV3JvbmcgdmFsdWVzIGZvcjogdyglZCkgaCglZCkgbnVtY29tcHMoJWQpIChpaGRyKQoASW52YWxpZCB2YWx1ZXMgZm9yIGNvbXAgPSAlZCA6IGR4PSV1IGR5PSV1IChzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCAyNTUgYWNjb3JkaW5nIHRvIHRoZSBKUEVHMjAwMCBub3JtKQoAQmFkIGltYWdlIGhlYWRlciBib3ggKGJhZCBzaXplKQoAQmFkIENPTFIgaGVhZGVyIGJveCAoYmFkIHNpemUpCgBCYWQgQlBDQyBoZWFkZXIgYm94IChiYWQgc2l6ZSkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogbmVnYXRpdmUgb3IgemVybyBpbWFnZSBzaXplICglbGxkIHggJWxsZCkKAHNraXA6IHNlZ21lbnQgdG9vIGxvbmcgKCVkKSB3aXRoIG1heCAoJWQpIGZvciBjb2RlYmxvY2sgJWQgKHA9JWQsIGI9JWQsIHI9JWQsIGM9JWQpCgByZWFkOiBzZWdtZW50IHRvbyBsb25nICglZCkgd2l0aCBtYXggKCVkKSBmb3IgY29kZWJsb2NrICVkIChwPSVkLCBiPSVkLCByPSVkLCBjPSVkKQoARGVzcGl0ZSBKUDIgQlBDIT0yNTUsIHByZWNpc2lvbiBhbmQvb3Igc2duZCB2YWx1ZXMgZm9yIGNvbXBbJWRdIGlzIGRpZmZlcmVudCB0aGFuIGNvbXBbMF06CiAgICAgICAgWzBdIHByZWMoJWQpIHNnbmQoJWQpIFslZF0gcHJlYyglZCkgc2duZCglZCkKAGJhZCBjb21wb25lbnQgbnVtYmVyIGluIFJHTiAoJWQgd2hlbiB0aGVyZSBhcmUgb25seSAlZCkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogbnVtYmVyIG9mIGNvbXBvbmVudCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSByZW1haW5pbmcgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCAlZCB2cyAlZCkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogaW52YWxpZCB0aWxlIHNpemUgKHRkeDogJWQsIHRkeTogJWQpCgBCYWQgQ09MUiBoZWFkZXIgYm94IChiYWQgc2l6ZTogJWQpCgBCYWQgQ09MUiBoZWFkZXIgYm94IChDSUVMYWIsIGJhZCBzaXplOiAlZCkKAFBURVJNIGNoZWNrIGZhaWx1cmU6ICVkIHJlbWFpbmluZyBieXRlcyBpbiBjb2RlIGJsb2NrICglZCB1c2VkIC8gJWQpCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBPbmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gaXMgbm90IG1ldDogMiA8PSBTY3VwIDw9IG1pbihMY3VwLCA0MDc5KQoASW52YWxpZCB2YWx1ZXMgZm9yIGNvbXAgPSAlZCA6IHByZWM9JXUgKHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDM4IGFjY29yZGluZyB0byB0aGUgSlBFRzIwMDAgbm9ybS4gT3BlbkpwZWcgb25seSBzdXBwb3J0cyB1cCB0byAzMSkKAEludmFsaWQgYml0IG51bWJlciAlZCBpbiBvcGpfdDJfcmVhZF9wYWNrZXRfaGVhZGVyKCkKAFN0cmVhbSBlcnJvciEKAEVycm9yIG9uIHdyaXRpbmcgc3RyZWFtIQoAU3RyZWFtIHJlYWNoZWQgaXRzIGVuZCAhCgBFeHBlY3RlZCBhIFNPQyBtYXJrZXIgCgBJbnZhbGlkIGJveCBzaXplICVkIGZvciBib3ggJyVjJWMlYyVjJy4gTmVlZCAlZCBieXRlcywgJWQgYnl0ZXMgcmVtYWluaW5nIAoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gRGVjb2RpbmcgdGhpcyBjb2RlYmxvY2sgaXMgc3RvcHBlZC4gVV9xIGlzIGxhcmdlciB0aGFuIHplcm8gYml0cGxhbmVzICsgMSAKAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIERlY29kaW5nIHRoaXMgY29kZWJsb2NrIGlzIHN0b3BwZWQuIFVfcSBpc2xhcmdlciB0aGFuIGJpdHBsYW5lcyArIDEgCgBDT0xSIEJPWCBtZXRoIHZhbHVlIGlzIG5vdCBhIHJlZ3VsYXIgdmFsdWUgKCVkKSwgc28gd2Ugd2lsbCBpZ25vcmUgdGhlIGVudGlyZSBDb2xvdXIgU3BlY2lmaWNhdGlvbiBib3guIAoAV2hpbGUgcmVhZGluZyBDQ1BfUU5UU1RZIGVsZW1lbnQgaW5zaWRlIFFDRCBvciBRQ0MgbWFy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AAAAAFQAAKBTAAABJAAAAAAAABBUAACwUwAAASQAAAEAAAAgVAAAwFMAAAEiAAAAAAAAMFQAANBTAAABIgAAAQAAAEBUAADgUwAAARwAAAAAAABQVAAA8FMAAAEcAAABAAAAYFQAAABUAAABGAAAAAAAAHBUAAAQVAAAARgAAAEAAACAVAAAIFQAAAEWAAAAAAAAkFQAADBUAAABFgAAAQAAAKBUAABAVAAAARQAAAAAAACwVAAAUFQAAAEUAAABAAAAwFQAAGBUAAABEgAAAAAAANBUAABwVAAAARIAAAEAAADgVAAAgFQAAAERAAAAAAAA8FQAAJBUAAABEQAAAQAAAABVAACgVAAAwQoAAAAAAAAQVQAAsFQAAMEKAAABAAAAIFUAAMBUAADBCQAAAAAAADBVAADQVAAAwQkAAAEAAABAVQAA4FQAAKEIAAAAAAAAUFUAAPBUAAChCAAAAQAAAGBVAAAAVQAAIQUAAAAAAABwVQAAEFUAACEFAAABAAAAgFUAACBVAABBBAAAAAAAAJBVAAAwVQAAQQQAAAEAAACgVQAAQFUAAKECAAAAAAAAsFUAAFBVAAChAgAAAQAAAMBVAABgVQAAIQIAAAAAAADQVQAAcFUAACECAAABAAAA4FUAAIBVAABBAQAAAAAAAPBVAACQVQAAQQEAAAEAAAAAVgAAoFUAABEBAAAAAAAAEFYAALBVAAARAQAAAQAAACBWAADAVQAAhQAAAAAAAAAwVgAA0FUAAIUAAAABAAAAQFYAAOBVAABJAAAAAAAAAFBWAADwVQAASQAAAAEAAABgVgAAAFYAACUAAAAAAAAAcFYAABBWAAAlAAAAAQAAAIBWAAAgVgAAFQAAAAAAAACQVgAAMFYAABUAAAABAAAAoFYAAEBWAAAJAAAAAAAAALBWAABQVgAACQAAAAEAAADAVgAAYFYAAAUAAAAAAAAA0FYAAHBWAAAFAAAAAQAAAOBWAACAVgAAAQAAAAAAAADQVgAAkFYAAAEAAAABAAAA4FYAAKBWAAABVgAAAAAAAPBWAADwVgAAAVYAAAEAAAAAVwAAAFcAAAABAwMBAgMDBQYHBwYGBwcAAQMDAQIDAwUGBwcGBgcHBQYHBwYGBwcICAgICAgICAUGBwcGBgcHCAgICAgICAgBAgMDAgIDAwYGBwcGBgcHAQIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgBAgMDAgIDAwYGBwcGBgcHAQIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAgIDAwICAwMGBgcHBgYHBwICAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAAEFBgECBgYDAwcHAwMHBwABBQYBAgYGAwMHBwMDBwcDAwcHAwMHBwQEBwcEBAcHAwMHBwMDBwcEBAcHBAQHBwECBgYCAgYGAwMHBwMDBwcBAgYGAgIGBgMDBwcDAwcHAwMHBwMDBwcEBAcHBAQHBwMDBwcDAwcHBAQHBwQEBwcFBggIBgYICAcHCAgHBwgIBQYICAYGCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBgYICAYGCAgHBwgIBwcICAYGCAgGBggIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAECBgYCAgYGAwMHBwMDBwcBAgYGAgIGBgMDBwcDAwcHAwMHBwMDBwcEBAcHBAQHBwMDBwcDAwcHBAQHBwQEBwcCAgYGAgIGBgMDBwcDAwcHAgIGBgICBgYDAwcHAwMHBwMDBwcDAwcHBAQHBwQEBwcDAwcHAwMHBwQEBwcEBAcHBgYICAYGCAgHBwgIBwcICAYGCAgGBggIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAYGCAgGBggIBwcICAcHCAgGBggIBgYICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgAAQMDAQIDAwUGBwcGBgcHAAEDAwECAwMFBgcHBgYHBwUGBwcGBgcHCAgICAgICAgFBgcHBgYHBwgICAgICAgIAQIDAwICAwMGBgcHBgYHBwECAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAQIDAwICAwMGBgcHBgYHBwECAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAICAwMCAgMDBgYHBwYGBwcCAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAADAQQDBgQHAQQCBQQHBQcAAwEEAwYEBwEEAgUEBwUHAQQCBQQHBQcCBQIFBQcFBwEEAgUEBwUHAgUCBQUHBQcDBgQHBggHCAQHBQcHCAcIAwYEBwYIBwgEBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgEBwUHBwgHCAUHBQcHCAcIAQQCBQQHBQcCBQIFBQcFBwEEAgUEBwUHAgUCBQUHBQcCBQIFBQcFBwIFAgUFBwUHAgUCBQUHBQcCBQIFBQcFBwQHBQcHCAcIBQcFBwcIBwgEBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgDBgQHBggHCAQHBQcHCAcIAwYEBwYIBwgEBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgEBwUHBwgHCAUHBQcHCAcIBggHCAgICAgHCAcICAgICAYIBwgICAgIBwgHCAgICAgH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"; + return f; + } + var wasmBinaryFile; + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + var binary = tryParseAsDataURI(file); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(file); + } + throw 'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'; + } + function instantiateSync(file, info) { + var module; + var binary = getBinarySync(file); + module = new WebAssembly.Module(binary); + var instance = new WebAssembly.Instance(module, info); + return [instance, module]; + } + function getWasmImports() { + return { + a: wasmImports + }; + } + function createWasm() { + function receiveInstance(instance, module) { + wasmExports = instance.exports; + wasmMemory = wasmExports["t"]; + updateMemoryViews(); + addOnInit(wasmExports["u"]); + removeRunDependency("wasm-instantiate"); + return wasmExports; + } + addRunDependency("wasm-instantiate"); + var info = getWasmImports(); + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info, receiveInstance); + } catch (e) { + err(`Module.instantiateWasm callback failed with error: ${e}`); + readyPromiseReject(e); + } + } + wasmBinaryFile ??= findWasmBinary(); + var result = instantiateSync(wasmBinaryFile, info); + return receiveInstance(result[0]); + } + class ExitStatus { + name = "ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + } + var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + }; + var noExitRuntime = Module["noExitRuntime"] || true; + var __abort_js = () => abort(""); + var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num); + var runtimeKeepaliveCounter = 0; + var __emscripten_runtime_keepalive_clear = () => { + noExitRuntime = false; + runtimeKeepaliveCounter = 0; + }; + var timers = {}; + var handleException = e => { + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + }; + var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + var _proc_exit = code => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + }; + var exitJS = (status, implicit) => { + EXITSTATUS = status; + _proc_exit(status); + }; + var _exit = exitJS; + var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } + }; + var callUserCallback = func => { + if (ABORT) { + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } + }; + var _emscripten_get_now = () => performance.now(); + var __setitimer_js = (which, timeout_ms) => { + if (timers[which]) { + clearTimeout(timers[which].id); + delete timers[which]; + } + if (!timeout_ms) return 0; + var id = setTimeout(() => { + delete timers[which]; + callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); + }, timeout_ms); + timers[which] = { + id, + timeout_ms + }; + return 0; + }; + function _copy_pixels_1(compG_ptr, nb_pixels) { + compG_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + imageData.set(compG); + } + function _copy_pixels_3(compR_ptr, compG_ptr, compB_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 3); + const compR = Module.HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = Module.HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[3 * i] = compR[i]; + imageData[3 * i + 1] = compG[i]; + imageData[3 * i + 2] = compB[i]; + } + } + function _copy_pixels_4(compR_ptr, compG_ptr, compB_ptr, compA_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + compA_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compR = Module.HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = Module.HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + const compA = Module.HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = compR[i]; + imageData[4 * i + 1] = compG[i]; + imageData[4 * i + 2] = compB[i]; + imageData[4 * i + 3] = compA[i]; + } + } + var getHeapMax = () => 2147483648; + var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; + var growMemory = size => { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) / 65536 | 0; + try { + wasmMemory.grow(pages); + updateMemoryViews(); + return 1; + } catch (e) {} + }; + var _emscripten_resize_heap = requestedSize => { + var oldSize = HEAPU8.length; + requestedSize >>>= 0; + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; + }; + var ENV = {}; + var getExecutableName = () => thisProgram || "./this.program"; + var getEnvStrings = () => { + if (!getEnvStrings.strings) { + var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; + var env = { + USER: "web_user", + LOGNAME: "web_user", + PATH: "/", + PWD: "/", + HOME: "/home/web_user", + LANG: lang, + _: getExecutableName() + }; + for (var x in ENV) { + if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + }; + var stringToAscii = (str, buffer) => { + for (var i = 0; i < str.length; ++i) { + HEAP8[buffer++] = str.charCodeAt(i); + } + HEAP8[buffer] = 0; + }; + var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + getEnvStrings().forEach((string, i) => { + var ptr = environ_buf + bufSize; + HEAPU32[__environ + i * 4 >> 2] = ptr; + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; + }; + var _environ_sizes_get = (penviron_count, penviron_buf_size) => { + var strings = getEnvStrings(); + HEAPU32[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(string => bufSize += string.length + 1); + HEAPU32[penviron_buf_size >> 2] = bufSize; + return 0; + }; + var _fd_close = fd => 52; + var convertI32PairToI53Checked = (lo, hi) => hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + return 70; + } + var printCharBuffers = [null, [], []]; + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : undefined; + var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + }; + var printChar = (stream, curr) => { + var buffer = printCharBuffers[stream]; + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }; + var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; + var _fd_write = (fd, iov, iovcnt, pnum) => { + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[iov + 4 >> 2]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr + j]); + } + num += len; + } + HEAPU32[pnum >> 2] = num; + return 0; + }; + function _gray_to_rgba(compG_ptr, nb_pixels) { + compG_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i]; + imageData[4 * i + 3] = 255; + } + } + function _graya_to_rgba(compG_ptr, compA_ptr, nb_pixels) { + compG_ptr >>= 2; + compA_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compA = Module.HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i]; + imageData[4 * i + 3] = compA[i]; + } + } + function _jsPrintWarning(message_ptr) { + const message = UTF8ToString(message_ptr); + (Module.warn || console.warn)(`OpenJPEG: ${message}`); + } + function _rgb_to_rgba(compR_ptr, compG_ptr, compB_ptr, nb_pixels) { + compR_ptr >>= 2; + compG_ptr >>= 2; + compB_ptr >>= 2; + const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4); + const compR = Module.HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels); + const compG = Module.HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels); + const compB = Module.HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels); + for (let i = 0; i < nb_pixels; i++) { + imageData[4 * i] = compR[i]; + imageData[4 * i + 1] = compG[i]; + imageData[4 * i + 2] = compB[i]; + imageData[4 * i + 3] = 255; + } + } + function _storeErrorMessage(message_ptr) { + const message = UTF8ToString(message_ptr); + if (!Module.errorMessages) { + Module.errorMessages = message; + } else { + Module.errorMessages += "\n" + message; + } + } + var wasmImports = { + m: __abort_js, + c: __emscripten_memcpy_js, + l: __emscripten_runtime_keepalive_clear, + n: __setitimer_js, + g: _copy_pixels_1, + f: _copy_pixels_3, + e: _copy_pixels_4, + o: _emscripten_resize_heap, + p: _environ_get, + q: _environ_sizes_get, + r: _fd_close, + j: _fd_seek, + b: _fd_write, + s: _gray_to_rgba, + i: _graya_to_rgba, + d: _jsPrintWarning, + k: _proc_exit, + h: _rgb_to_rgba, + a: _storeErrorMessage + }; + var wasmExports = createWasm(); + var ___wasm_call_ctors = wasmExports["u"]; + var _malloc = Module["_malloc"] = wasmExports["v"]; + var _free = Module["_free"] = wasmExports["w"]; + var _jp2_decode = Module["_jp2_decode"] = wasmExports["y"]; + var __emscripten_timeout = wasmExports["z"]; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }; + function run() { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + Module["onRuntimeInitialized"]?.(); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + moduleRtn = Module; + return moduleRtn; + }; +})(); +/* harmony default export */ const openjpeg = (OpenJPEG); +;// ./src/core/jpx.js + + + +class JpxError extends BaseException { + constructor(msg) { + super(msg, "JpxError"); + } +} +class JpxImage { + static #module = null; + static decode(data, decoderOptions) { + decoderOptions ||= {}; + this.#module ||= openjpeg({ + warn: warn + }); + const imageData = this.#module.decode(data, decoderOptions); + if (typeof imageData === "string") { + throw new JpxError(imageData); + } + return imageData; + } + static cleanup() { + this.#module = null; + } + static parseImageProperties(stream) { + let newByte = stream.getByte(); + while (newByte >= 0) { + const oldByte = newByte; + newByte = stream.getByte(); + const code = oldByte << 8 | newByte; + if (code === 0xff51) { + stream.skip(4); + const Xsiz = stream.getInt32() >>> 0; + const Ysiz = stream.getInt32() >>> 0; + const XOsiz = stream.getInt32() >>> 0; + const YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + const Csiz = stream.getUint16(); + return { + width: Xsiz - XOsiz, + height: Ysiz - YOsiz, + bitsPerComponent: 8, + componentsCount: Csiz + }; + } + } + throw new JpxError("No size marker found in JPX stream"); + } +} + +;// ./src/core/jpx_stream.js + + + +class JpxStream extends DecodeStream { + constructor(stream, maybeLength, params) { + super(maybeLength); + this.stream = stream; + this.dict = stream.dict; + this.maybeLength = maybeLength; + this.params = params; + } + get bytes() { + return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); + } + ensureBuffer(requested) {} + readBlock(decoderOptions) { + this.decodeImage(null, decoderOptions); + } + decodeImage(bytes, decoderOptions) { + if (this.eof) { + return this.buffer; + } + bytes ||= this.bytes; + this.buffer = JpxImage.decode(bytes, decoderOptions); + this.bufferLength = this.buffer.length; + this.eof = true; + return this.buffer; + } + get canAsyncDecodeImageFromBuffer() { + return this.stream.isAsync; + } +} + +;// ./src/core/lzw_stream.js + +class LZWStream extends DecodeStream { + constructor(str, maybeLength, earlyChange) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.cachedData = 0; + this.bitsCached = 0; + const maxLzwDictionarySize = 4096; + const lzwState = { + earlyChange, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(maxLzwDictionarySize), + dictionaryLengths: new Uint16Array(maxLzwDictionarySize), + dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize), + currentSequence: new Uint8Array(maxLzwDictionarySize), + currentSequenceLength: 0 + }; + for (let i = 0; i < 256; ++i) { + lzwState.dictionaryValues[i] = i; + lzwState.dictionaryLengths[i] = 1; + } + this.lzwState = lzwState; + } + readBits(n) { + let bitsCached = this.bitsCached; + let cachedData = this.cachedData; + while (bitsCached < n) { + const c = this.str.getByte(); + if (c === -1) { + this.eof = true; + return null; + } + cachedData = cachedData << 8 | c; + bitsCached += 8; + } + this.bitsCached = bitsCached -= n; + this.cachedData = cachedData; + this.lastCode = null; + return cachedData >>> bitsCached & (1 << n) - 1; + } + readBlock() { + const blockSize = 512, + decodedSizeDelta = blockSize; + let estimatedDecodedSize = blockSize * 2; + let i, j, q; + const lzwState = this.lzwState; + if (!lzwState) { + return; + } + const earlyChange = lzwState.earlyChange; + let nextCode = lzwState.nextCode; + const dictionaryValues = lzwState.dictionaryValues; + const dictionaryLengths = lzwState.dictionaryLengths; + const dictionaryPrevCodes = lzwState.dictionaryPrevCodes; + let codeLength = lzwState.codeLength; + let prevCode = lzwState.prevCode; + const currentSequence = lzwState.currentSequence; + let currentSequenceLength = lzwState.currentSequenceLength; + let decodedLength = 0; + let currentBufferLength = this.bufferLength; + let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + for (i = 0; i < blockSize; i++) { + const code = this.readBits(codeLength); + const hasPrev = currentSequenceLength > 0; + if (code < 256) { + currentSequence[0] = code; + currentSequenceLength = 1; + } else if (code >= 258) { + if (code < nextCode) { + currentSequenceLength = dictionaryLengths[code]; + for (j = currentSequenceLength - 1, q = code; j >= 0; j--) { + currentSequence[j] = dictionaryValues[q]; + q = dictionaryPrevCodes[q]; + } + } else { + currentSequence[currentSequenceLength++] = currentSequence[0]; + } + } else if (code === 256) { + codeLength = 9; + nextCode = 258; + currentSequenceLength = 0; + continue; + } else { + this.eof = true; + delete this.lzwState; + break; + } + if (hasPrev) { + dictionaryPrevCodes[nextCode] = prevCode; + dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1; + dictionaryValues[nextCode] = currentSequence[0]; + nextCode++; + codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0; + } + prevCode = code; + decodedLength += currentSequenceLength; + if (estimatedDecodedSize < decodedLength) { + do { + estimatedDecodedSize += decodedSizeDelta; + } while (estimatedDecodedSize < decodedLength); + buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + } + for (j = 0; j < currentSequenceLength; j++) { + buffer[currentBufferLength++] = currentSequence[j]; + } + } + lzwState.nextCode = nextCode; + lzwState.codeLength = codeLength; + lzwState.prevCode = prevCode; + lzwState.currentSequenceLength = currentSequenceLength; + this.bufferLength = currentBufferLength; + } +} + +;// ./src/core/predictor_stream.js + + + +class PredictorStream extends DecodeStream { + constructor(str, maybeLength, params) { + super(maybeLength); + if (!(params instanceof Dict)) { + return str; + } + const predictor = this.predictor = params.get("Predictor") || 1; + if (predictor <= 1) { + return str; + } + if (predictor !== 2 && (predictor < 10 || predictor > 15)) { + throw new FormatError(`Unsupported predictor: ${predictor}`); + } + this.readBlock = predictor === 2 ? this.readBlockTiff : this.readBlockPng; + this.str = str; + this.dict = str.dict; + const colors = this.colors = params.get("Colors") || 1; + const bits = this.bits = params.get("BPC", "BitsPerComponent") || 8; + const columns = this.columns = params.get("Columns") || 1; + this.pixBytes = colors * bits + 7 >> 3; + this.rowBytes = columns * colors * bits + 7 >> 3; + return this; + } + readBlockTiff() { + const rowBytes = this.rowBytes; + const bufferLength = this.bufferLength; + const buffer = this.ensureBuffer(bufferLength + rowBytes); + const bits = this.bits; + const colors = this.colors; + const rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + let inbuf = 0, + outbuf = 0; + let inbits = 0, + outbits = 0; + let pos = bufferLength; + let i; + if (bits === 1 && colors === 1) { + for (i = 0; i < rowBytes; ++i) { + let c = rawBytes[i] ^ inbuf; + c ^= c >> 1; + c ^= c >> 2; + c ^= c >> 4; + inbuf = (c & 1) << 7; + buffer[pos++] = c; + } + } else if (bits === 8) { + for (i = 0; i < colors; ++i) { + buffer[pos++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[pos] = buffer[pos - colors] + rawBytes[i]; + pos++; + } + } else if (bits === 16) { + const bytesPerPixel = colors * 2; + for (i = 0; i < bytesPerPixel; ++i) { + buffer[pos++] = rawBytes[i]; + } + for (; i < rowBytes; i += 2) { + const sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff); + buffer[pos++] = sum >> 8 & 0xff; + buffer[pos++] = sum & 0xff; + } + } else { + const compArray = new Uint8Array(colors + 1); + const bitMask = (1 << bits) - 1; + let j = 0, + k = bufferLength; + const columns = this.columns; + for (i = 0; i < columns; ++i) { + for (let kk = 0; kk < colors; ++kk) { + if (inbits < bits) { + inbuf = inbuf << 8 | rawBytes[j++] & 0xff; + inbits += 8; + } + compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask; + inbits -= bits; + outbuf = outbuf << bits | compArray[kk]; + outbits += bits; + if (outbits >= 8) { + buffer[k++] = outbuf >> outbits - 8 & 0xff; + outbits -= 8; + } + } + } + if (outbits > 0) { + buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1); + } + } + this.bufferLength += rowBytes; + } + readBlockPng() { + const rowBytes = this.rowBytes; + const pixBytes = this.pixBytes; + const predictor = this.str.getByte(); + const rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + if (this.eof) { + return; + } + const bufferLength = this.bufferLength; + const buffer = this.ensureBuffer(bufferLength + rowBytes); + let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength); + if (prevRow.length === 0) { + prevRow = new Uint8Array(rowBytes); + } + let i, + j = bufferLength, + up, + c; + switch (predictor) { + case 0: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + break; + case 1: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff; + j++; + } + break; + case 2: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = prevRow[i] + rawBytes[i] & 0xff; + } + break; + case 3: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = (prevRow[i] >> 1) + rawBytes[i]; + } + for (; i < rowBytes; ++i) { + buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff; + j++; + } + break; + case 4: + for (i = 0; i < pixBytes; ++i) { + up = prevRow[i]; + c = rawBytes[i]; + buffer[j++] = up + c; + } + for (; i < rowBytes; ++i) { + up = prevRow[i]; + const upLeft = prevRow[i - pixBytes]; + const left = buffer[j - pixBytes]; + const p = left + up - upLeft; + let pa = p - left; + if (pa < 0) { + pa = -pa; + } + let pb = p - up; + if (pb < 0) { + pb = -pb; + } + let pc = p - upLeft; + if (pc < 0) { + pc = -pc; + } + c = rawBytes[i]; + if (pa <= pb && pa <= pc) { + buffer[j++] = left + c; + } else if (pb <= pc) { + buffer[j++] = up + c; + } else { + buffer[j++] = upLeft + c; + } + } + break; + default: + throw new FormatError(`Unsupported predictor: ${predictor}`); + } + this.bufferLength += rowBytes; + } +} + +;// ./src/core/run_length_stream.js + +class RunLengthStream extends DecodeStream { + constructor(str, maybeLength) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + } + readBlock() { + const repeatHeader = this.str.getBytes(2); + if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) { + this.eof = true; + return; + } + let buffer; + let bufferLength = this.bufferLength; + let n = repeatHeader[0]; + if (n < 128) { + buffer = this.ensureBuffer(bufferLength + n + 1); + buffer[bufferLength++] = repeatHeader[1]; + if (n > 0) { + const source = this.str.getBytes(n); + buffer.set(source, bufferLength); + bufferLength += n; + } + } else { + n = 257 - n; + const b = repeatHeader[1]; + buffer = this.ensureBuffer(bufferLength + n + 1); + for (let i = 0; i < n; i++) { + buffer[bufferLength++] = b; + } + } + this.bufferLength = bufferLength; + } +} + +;// ./src/core/parser.js + + + + + + + + + + + + + + +const MAX_LENGTH_TO_CACHE = 1000; +function getInlineImageCacheKey(bytes) { + const strBuf = [], + ii = bytes.length; + let i = 0; + while (i < ii - 1) { + strBuf.push(bytes[i++] << 8 | bytes[i++]); + } + if (i < ii) { + strBuf.push(bytes[i]); + } + return ii + "_" + String.fromCharCode.apply(null, strBuf); +} +class Parser { + constructor({ + lexer, + xref, + allowStreams = false, + recoveryMode = false + }) { + this.lexer = lexer; + this.xref = xref; + this.allowStreams = allowStreams; + this.recoveryMode = recoveryMode; + this.imageCache = Object.create(null); + this._imageId = 0; + this.refill(); + } + refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + } + shift() { + if (this.buf2 instanceof Cmd && this.buf2.cmd === "ID") { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + } + tryShift() { + try { + this.shift(); + return true; + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + return false; + } + } + getObj(cipherTransform = null) { + const buf1 = this.buf1; + this.shift(); + if (buf1 instanceof Cmd) { + switch (buf1.cmd) { + case "BI": + return this.makeInlineImage(cipherTransform); + case "[": + const array = []; + while (!isCmd(this.buf1, "]") && this.buf1 !== EOF) { + array.push(this.getObj(cipherTransform)); + } + if (this.buf1 === EOF) { + if (this.recoveryMode) { + return array; + } + throw new ParserEOFException("End of file inside array."); + } + this.shift(); + return array; + case "<<": + const dict = new Dict(this.xref); + while (!isCmd(this.buf1, ">>") && this.buf1 !== EOF) { + if (!(this.buf1 instanceof Name)) { + info("Malformed dictionary: key must be a name object"); + this.shift(); + continue; + } + const key = this.buf1.name; + this.shift(); + if (this.buf1 === EOF) { + break; + } + dict.set(key, this.getObj(cipherTransform)); + } + if (this.buf1 === EOF) { + if (this.recoveryMode) { + return dict; + } + throw new ParserEOFException("End of file inside dictionary."); + } + if (isCmd(this.buf2, "stream")) { + return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + } + this.shift(); + return dict; + default: + return buf1; + } + } + if (Number.isInteger(buf1)) { + if (Number.isInteger(this.buf1) && isCmd(this.buf2, "R")) { + const ref = Ref.get(buf1, this.buf1); + this.shift(); + this.shift(); + return ref; + } + return buf1; + } + if (typeof buf1 === "string") { + if (cipherTransform) { + return cipherTransform.decryptString(buf1); + } + return buf1; + } + return buf1; + } + findDefaultInlineStreamEnd(stream) { + const E = 0x45, + I = 0x49, + SPACE = 0x20, + LF = 0xa, + CR = 0xd, + NUL = 0x0; + const { + knownCommands + } = this.lexer, + startPos = stream.pos, + n = 15; + let state = 0, + ch, + maybeEIPos; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else { + if (ch === SPACE || ch === LF || ch === CR) { + maybeEIPos = stream.pos; + const followingBytes = stream.peekBytes(n); + const ii = followingBytes.length; + if (ii === 0) { + break; + } + for (let i = 0; i < ii; i++) { + ch = followingBytes[i]; + if (ch === NUL && followingBytes[i + 1] !== NUL) { + continue; + } + if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) { + state = 0; + break; + } + } + if (state !== 2) { + continue; + } + if (!knownCommands) { + warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined."); + continue; + } + const tmpLexer = new Lexer(new Stream(followingBytes.slice()), knownCommands); + tmpLexer._hexStringWarn = () => {}; + let numArgs = 0; + while (true) { + const nextObj = tmpLexer.getObj(); + if (nextObj === EOF) { + state = 0; + break; + } + if (nextObj instanceof Cmd) { + const knownCommand = knownCommands[nextObj.cmd]; + if (!knownCommand) { + state = 0; + break; + } else if (knownCommand.variableArgs ? numArgs <= knownCommand.numArgs : numArgs === knownCommand.numArgs) { + break; + } + numArgs = 0; + continue; + } + numArgs++; + } + if (state === 2) { + break; + } + } else { + state = 0; + } + } + } + if (ch === -1) { + warn("findDefaultInlineStreamEnd: " + "Reached the end of the stream without finding a valid EI marker"); + if (maybeEIPos) { + warn('... trying to recover by using the last "EI" occurrence.'); + stream.skip(-(stream.pos - maybeEIPos)); + } + } + let endOffset = 4; + stream.skip(-endOffset); + ch = stream.peekByte(); + stream.skip(endOffset); + if (!isWhiteSpace(ch)) { + endOffset--; + } + return stream.pos - endOffset - startPos; + } + findDCTDecodeInlineStreamEnd(stream) { + const startPos = stream.pos; + let foundEOI = false, + b, + markerLength; + while ((b = stream.getByte()) !== -1) { + if (b !== 0xff) { + continue; + } + switch (stream.getByte()) { + case 0x00: + break; + case 0xff: + stream.skip(-1); + break; + case 0xd9: + foundEOI = true; + break; + case 0xc0: + case 0xc1: + case 0xc2: + case 0xc3: + case 0xc5: + case 0xc6: + case 0xc7: + case 0xc9: + case 0xca: + case 0xcb: + case 0xcd: + case 0xce: + case 0xcf: + case 0xc4: + case 0xcc: + case 0xda: + case 0xdb: + case 0xdc: + case 0xdd: + case 0xde: + case 0xdf: + case 0xe0: + case 0xe1: + case 0xe2: + case 0xe3: + case 0xe4: + case 0xe5: + case 0xe6: + case 0xe7: + case 0xe8: + case 0xe9: + case 0xea: + case 0xeb: + case 0xec: + case 0xed: + case 0xee: + case 0xef: + case 0xfe: + markerLength = stream.getUint16(); + if (markerLength > 2) { + stream.skip(markerLength - 2); + } else { + stream.skip(-2); + } + break; + } + if (foundEOI) { + break; + } + } + const length = stream.pos - startPos; + if (b === -1) { + warn("Inline DCTDecode image stream: " + "EOI marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + findASCII85DecodeInlineStreamEnd(stream) { + const TILDE = 0x7e, + GT = 0x3e; + const startPos = stream.pos; + let ch; + while ((ch = stream.getByte()) !== -1) { + if (ch === TILDE) { + const tildePos = stream.pos; + ch = stream.peekByte(); + while (isWhiteSpace(ch)) { + stream.skip(); + ch = stream.peekByte(); + } + if (ch === GT) { + stream.skip(); + break; + } + if (stream.pos > tildePos) { + const maybeEI = stream.peekBytes(2); + if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) { + break; + } + } + } + } + const length = stream.pos - startPos; + if (ch === -1) { + warn("Inline ASCII85Decode image stream: " + "EOD marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + findASCIIHexDecodeInlineStreamEnd(stream) { + const GT = 0x3e; + const startPos = stream.pos; + let ch; + while ((ch = stream.getByte()) !== -1) { + if (ch === GT) { + break; + } + } + const length = stream.pos - startPos; + if (ch === -1) { + warn("Inline ASCIIHexDecode image stream: " + "EOD marker not found, searching for /EI/ instead."); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + this.inlineStreamSkipEI(stream); + return length; + } + inlineStreamSkipEI(stream) { + const E = 0x45, + I = 0x49; + let state = 0, + ch; + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else if (state === 2) { + break; + } + } + } + makeInlineImage(cipherTransform) { + const lexer = this.lexer; + const stream = lexer.stream; + const dictMap = Object.create(null); + let dictLength; + while (!isCmd(this.buf1, "ID") && this.buf1 !== EOF) { + if (!(this.buf1 instanceof Name)) { + throw new FormatError("Dictionary key must be a name object"); + } + const key = this.buf1.name; + this.shift(); + if (this.buf1 === EOF) { + break; + } + dictMap[key] = this.getObj(cipherTransform); + } + if (lexer.beginInlineImagePos !== -1) { + dictLength = stream.pos - lexer.beginInlineImagePos; + } + const filter = this.xref.fetchIfRef(dictMap.F || dictMap.Filter); + let filterName; + if (filter instanceof Name) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + const filterZero = this.xref.fetchIfRef(filter[0]); + if (filterZero instanceof Name) { + filterName = filterZero.name; + } + } + const startPos = stream.pos; + let length; + switch (filterName) { + case "DCT": + case "DCTDecode": + length = this.findDCTDecodeInlineStreamEnd(stream); + break; + case "A85": + case "ASCII85Decode": + length = this.findASCII85DecodeInlineStreamEnd(stream); + break; + case "AHx": + case "ASCIIHexDecode": + length = this.findASCIIHexDecodeInlineStreamEnd(stream); + break; + default: + length = this.findDefaultInlineStreamEnd(stream); + } + let cacheKey; + if (length < MAX_LENGTH_TO_CACHE && dictLength > 0) { + const initialStreamPos = stream.pos; + stream.pos = lexer.beginInlineImagePos; + cacheKey = getInlineImageCacheKey(stream.getBytes(dictLength + length)); + stream.pos = initialStreamPos; + const cacheEntry = this.imageCache[cacheKey]; + if (cacheEntry !== undefined) { + this.buf2 = Cmd.get("EI"); + this.shift(); + cacheEntry.reset(); + return cacheEntry; + } + } + const dict = new Dict(this.xref); + for (const key in dictMap) { + dict.set(key, dictMap[key]); + } + let imageStream = stream.makeSubStream(startPos, length, dict); + if (cipherTransform) { + imageStream = cipherTransform.createStream(imageStream, length); + } + imageStream = this.filter(imageStream, dict, length); + imageStream.dict = dict; + if (cacheKey !== undefined) { + imageStream.cacheKey = `inline_img_${++this._imageId}`; + this.imageCache[cacheKey] = imageStream; + } + this.buf2 = Cmd.get("EI"); + this.shift(); + return imageStream; + } + #findStreamLength(startPos) { + const { + stream + } = this.lexer; + stream.pos = startPos; + const SCAN_BLOCK_LENGTH = 2048; + const signatureLength = "endstream".length; + const END_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64]); + const endLength = END_SIGNATURE.length; + const PARTIAL_SIGNATURE = [new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x65, 0x61, 0x6d]), new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61])]; + const normalLength = signatureLength - endLength; + while (stream.pos < stream.end) { + const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + const scanLength = scanBytes.length - signatureLength; + if (scanLength <= 0) { + break; + } + let pos = 0; + while (pos < scanLength) { + let j = 0; + while (j < endLength && scanBytes[pos + j] === END_SIGNATURE[j]) { + j++; + } + if (j >= endLength) { + let found = false; + for (const part of PARTIAL_SIGNATURE) { + const partLen = part.length; + let k = 0; + while (k < partLen && scanBytes[pos + j + k] === part[k]) { + k++; + } + if (k >= normalLength) { + found = true; + break; + } + if (k >= partLen) { + const lastByte = scanBytes[pos + j + k]; + if (isWhiteSpace(lastByte)) { + info(`Found "${bytesToString([...END_SIGNATURE, ...part])}" when ` + "searching for endstream command."); + found = true; + } + break; + } + } + if (found) { + stream.pos += pos; + return stream.pos - startPos; + } + } + pos++; + } + stream.pos += scanLength; + } + return -1; + } + makeStream(dict, cipherTransform) { + const lexer = this.lexer; + let stream = lexer.stream; + lexer.skipToNextLine(); + const startPos = stream.pos - 1; + let length = dict.get("Length"); + if (!Number.isInteger(length)) { + info(`Bad length "${length && length.toString()}" in stream.`); + length = 0; + } + stream.pos = startPos + length; + lexer.nextChar(); + if (this.tryShift() && isCmd(this.buf2, "endstream")) { + this.shift(); + } else { + length = this.#findStreamLength(startPos); + if (length < 0) { + throw new FormatError("Missing endstream command."); + } + lexer.nextChar(); + this.shift(); + this.shift(); + } + this.shift(); + stream = stream.makeSubStream(startPos, length, dict); + if (cipherTransform) { + stream = cipherTransform.createStream(stream, length); + } + stream = this.filter(stream, dict, length); + stream.dict = dict; + return stream; + } + filter(stream, dict, length) { + let filter = dict.get("F", "Filter"); + let params = dict.get("DP", "DecodeParms"); + if (filter instanceof Name) { + if (Array.isArray(params)) { + warn("/DecodeParms should not be an Array, when /Filter is a Name."); + } + return this.makeFilter(stream, filter.name, length, params); + } + let maybeLength = length; + if (Array.isArray(filter)) { + const filterArray = filter; + const paramsArray = params; + for (let i = 0, ii = filterArray.length; i < ii; ++i) { + filter = this.xref.fetchIfRef(filterArray[i]); + if (!(filter instanceof Name)) { + throw new FormatError(`Bad filter name "${filter}"`); + } + params = null; + if (Array.isArray(paramsArray) && i in paramsArray) { + params = this.xref.fetchIfRef(paramsArray[i]); + } + stream = this.makeFilter(stream, filter.name, maybeLength, params); + maybeLength = null; + } + } + return stream; + } + makeFilter(stream, name, maybeLength, params) { + if (maybeLength === 0) { + warn(`Empty "${name}" stream.`); + return new NullStream(); + } + try { + switch (name) { + case "Fl": + case "FlateDecode": + if (params) { + return new PredictorStream(new FlateStream(stream, maybeLength), maybeLength, params); + } + return new FlateStream(stream, maybeLength); + case "LZW": + case "LZWDecode": + let earlyChange = 1; + if (params) { + if (params.has("EarlyChange")) { + earlyChange = params.get("EarlyChange"); + } + return new PredictorStream(new LZWStream(stream, maybeLength, earlyChange), maybeLength, params); + } + return new LZWStream(stream, maybeLength, earlyChange); + case "DCT": + case "DCTDecode": + return new JpegStream(stream, maybeLength, params); + case "JPX": + case "JPXDecode": + return new JpxStream(stream, maybeLength, params); + case "A85": + case "ASCII85Decode": + return new Ascii85Stream(stream, maybeLength); + case "AHx": + case "ASCIIHexDecode": + return new AsciiHexStream(stream, maybeLength); + case "CCF": + case "CCITTFaxDecode": + return new CCITTFaxStream(stream, maybeLength, params); + case "RL": + case "RunLengthDecode": + return new RunLengthStream(stream, maybeLength); + case "JBIG2Decode": + return new Jbig2Stream(stream, maybeLength, params); + } + warn(`Filter "${name}" is not supported.`); + return stream; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Invalid stream: "${ex}"`); + return new NullStream(); + } + } +} +const specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +function toHexDigit(ch) { + if (ch >= 0x30 && ch <= 0x39) { + return ch & 0x0f; + } + if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + return (ch & 0x0f) + 9; + } + return -1; +} +class Lexer { + constructor(stream, knownCommands = null) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + this.knownCommands = knownCommands; + this._hexStringNumWarn = 0; + this.beginInlineImagePos = -1; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + peekChar() { + return this.stream.peekByte(); + } + getNumber() { + let ch = this.currentChar; + let eNotation = false; + let divideBy = 0; + let sign = 1; + if (ch === 0x2d) { + sign = -1; + ch = this.nextChar(); + if (ch === 0x2d) { + ch = this.nextChar(); + } + } else if (ch === 0x2b) { + ch = this.nextChar(); + } + if (ch === 0x0a || ch === 0x0d) { + do { + ch = this.nextChar(); + } while (ch === 0x0a || ch === 0x0d); + } + if (ch === 0x2e) { + divideBy = 10; + ch = this.nextChar(); + } + if (ch < 0x30 || ch > 0x39) { + const msg = `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`; + if (isWhiteSpace(ch) || ch === -1) { + info(`Lexer.getNumber - "${msg}".`); + return 0; + } + throw new FormatError(msg); + } + let baseValue = ch - 0x30; + let powerValue = 0; + let powerValueSign = 1; + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39) { + const currentDigit = ch - 0x30; + if (eNotation) { + powerValue = powerValue * 10 + currentDigit; + } else { + if (divideBy !== 0) { + divideBy *= 10; + } + baseValue = baseValue * 10 + currentDigit; + } + } else if (ch === 0x2e) { + if (divideBy === 0) { + divideBy = 1; + } else { + break; + } + } else if (ch === 0x2d) { + warn("Badly formatted number: minus sign in the middle"); + } else if (ch === 0x45 || ch === 0x65) { + ch = this.peekChar(); + if (ch === 0x2b || ch === 0x2d) { + powerValueSign = ch === 0x2d ? -1 : 1; + this.nextChar(); + } else if (ch < 0x30 || ch > 0x39) { + break; + } + eNotation = true; + } else { + break; + } + } + if (divideBy !== 0) { + baseValue /= divideBy; + } + if (eNotation) { + baseValue *= 10 ** (powerValueSign * powerValue); + } + return sign * baseValue; + } + getString() { + let numParen = 1; + let done = false; + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.nextChar(); + while (true) { + let charBuffered = false; + switch (ch | 0) { + case -1: + warn("Unterminated string"); + done = true; + break; + case 0x28: + ++numParen; + strBuf.push("("); + break; + case 0x29: + if (--numParen === 0) { + this.nextChar(); + done = true; + } else { + strBuf.push(")"); + } + break; + case 0x5c: + ch = this.nextChar(); + switch (ch) { + case -1: + warn("Unterminated string"); + done = true; + break; + case 0x6e: + strBuf.push("\n"); + break; + case 0x72: + strBuf.push("\r"); + break; + case 0x74: + strBuf.push("\t"); + break; + case 0x62: + strBuf.push("\b"); + break; + case 0x66: + strBuf.push("\f"); + break; + case 0x5c: + case 0x28: + case 0x29: + strBuf.push(String.fromCharCode(ch)); + break; + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + let x = ch & 0x0f; + ch = this.nextChar(); + charBuffered = true; + if (ch >= 0x30 && ch <= 0x37) { + x = (x << 3) + (ch & 0x0f); + ch = this.nextChar(); + if (ch >= 0x30 && ch <= 0x37) { + charBuffered = false; + x = (x << 3) + (ch & 0x0f); + } + } + strBuf.push(String.fromCharCode(x)); + break; + case 0x0d: + if (this.peekChar() === 0x0a) { + this.nextChar(); + } + break; + case 0x0a: + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + break; + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + if (done) { + break; + } + if (!charBuffered) { + ch = this.nextChar(); + } + } + return strBuf.join(""); + } + getName() { + let ch, previousCh; + const strBuf = this.strBuf; + strBuf.length = 0; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + if (ch === 0x23) { + ch = this.nextChar(); + if (specialChars[ch]) { + warn("Lexer_getName: " + "NUMBER SIGN (#) should be followed by a hexadecimal number."); + strBuf.push("#"); + break; + } + const x = toHexDigit(ch); + if (x !== -1) { + previousCh = ch; + ch = this.nextChar(); + const x2 = toHexDigit(ch); + if (x2 === -1) { + warn(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + "in hexadecimal number."); + strBuf.push("#", String.fromCharCode(previousCh)); + if (specialChars[ch]) { + break; + } + strBuf.push(String.fromCharCode(ch)); + continue; + } + strBuf.push(String.fromCharCode(x << 4 | x2)); + } else { + strBuf.push("#", String.fromCharCode(ch)); + } + } else { + strBuf.push(String.fromCharCode(ch)); + } + } + if (strBuf.length > 127) { + warn(`Name token is longer than allowed by the spec: ${strBuf.length}`); + } + return Name.get(strBuf.join("")); + } + _hexStringWarn(ch) { + const MAX_HEX_STRING_NUM_WARN = 5; + if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) { + warn("getHexString - ignoring additional invalid characters."); + return; + } + if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) { + return; + } + warn(`getHexString - ignoring invalid character: ${ch}`); + } + getHexString() { + const strBuf = this.strBuf; + strBuf.length = 0; + let ch = this.currentChar; + let firstDigit = -1, + digit = -1; + this._hexStringNumWarn = 0; + while (true) { + if (ch < 0) { + warn("Unterminated hex string"); + break; + } else if (ch === 0x3e) { + this.nextChar(); + break; + } else if (specialChars[ch] === 1) { + ch = this.nextChar(); + continue; + } else { + digit = toHexDigit(ch); + if (digit === -1) { + this._hexStringWarn(ch); + } else if (firstDigit === -1) { + firstDigit = digit; + } else { + strBuf.push(String.fromCharCode(firstDigit << 4 | digit)); + firstDigit = -1; + } + ch = this.nextChar(); + } + } + if (firstDigit !== -1) { + strBuf.push(String.fromCharCode(firstDigit << 4)); + } + return strBuf.join(""); + } + getObj() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (specialChars[ch] !== 1) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2b: + case 0x2d: + case 0x2e: + return this.getNumber(); + case 0x28: + return this.getString(); + case 0x2f: + return this.getName(); + case 0x5b: + this.nextChar(); + return Cmd.get("["); + case 0x5d: + this.nextChar(); + return Cmd.get("]"); + case 0x3c: + ch = this.nextChar(); + if (ch === 0x3c) { + this.nextChar(); + return Cmd.get("<<"); + } + return this.getHexString(); + case 0x3e: + ch = this.nextChar(); + if (ch === 0x3e) { + this.nextChar(); + return Cmd.get(">>"); + } + return Cmd.get(">"); + case 0x7b: + this.nextChar(); + return Cmd.get("{"); + case 0x7d: + this.nextChar(); + return Cmd.get("}"); + case 0x29: + this.nextChar(); + throw new FormatError(`Illegal character: ${ch}`); + } + let str = String.fromCharCode(ch); + if (ch < 0x20 || ch > 0x7f) { + const nextCh = this.peekChar(); + if (nextCh >= 0x20 && nextCh <= 0x7f) { + this.nextChar(); + return Cmd.get(str); + } + } + const knownCommands = this.knownCommands; + let knownCommandFound = knownCommands?.[str] !== undefined; + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + const possibleCommand = str + String.fromCharCode(ch); + if (knownCommandFound && knownCommands[possibleCommand] === undefined) { + break; + } + if (str.length === 128) { + throw new FormatError(`Command token too long: ${str.length}`); + } + str = possibleCommand; + knownCommandFound = knownCommands?.[str] !== undefined; + } + if (str === "true") { + return true; + } + if (str === "false") { + return false; + } + if (str === "null") { + return null; + } + if (str === "BI") { + this.beginInlineImagePos = this.stream.pos; + } + return Cmd.get(str); + } + skipToNextLine() { + let ch = this.currentChar; + while (ch >= 0) { + if (ch === 0x0d) { + ch = this.nextChar(); + if (ch === 0x0a) { + this.nextChar(); + } + break; + } else if (ch === 0x0a) { + this.nextChar(); + break; + } + ch = this.nextChar(); + } + } +} +class Linearization { + static create(stream) { + function getInt(linDict, name, allowZeroValue = false) { + const obj = linDict.get(name); + if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { + return obj; + } + throw new Error(`The "${name}" parameter in the linearization ` + "dictionary is invalid."); + } + function getHints(linDict) { + const hints = linDict.get("H"); + let hintsLength; + if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { + for (let index = 0; index < hintsLength; index++) { + const hint = hints[index]; + if (!(Number.isInteger(hint) && hint > 0)) { + throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`); + } + } + return hints; + } + throw new Error("Hint array in the linearization dictionary is invalid."); + } + const parser = new Parser({ + lexer: new Lexer(stream), + xref: null + }); + const obj1 = parser.getObj(); + const obj2 = parser.getObj(); + const obj3 = parser.getObj(); + const linDict = parser.getObj(); + let obj, length; + if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && isCmd(obj3, "obj") && linDict instanceof Dict && typeof (obj = linDict.get("Linearized")) === "number" && obj > 0)) { + return null; + } else if ((length = getInt(linDict, "L")) !== stream.length) { + throw new Error('The "L" parameter in the linearization dictionary ' + "does not equal the stream length."); + } + return { + length, + hints: getHints(linDict), + objectNumberFirst: getInt(linDict, "O"), + endFirst: getInt(linDict, "E"), + numPages: getInt(linDict, "N"), + mainXRefEntriesOffset: getInt(linDict, "T"), + pageFirst: linDict.has("P") ? getInt(linDict, "P", true) : 0 + }; + } +} + +;// ./src/core/cmap.js + + + + + + + +const BUILT_IN_CMAPS = ["Adobe-GB1-UCS2", "Adobe-CNS1-UCS2", "Adobe-Japan1-UCS2", "Adobe-Korea1-UCS2", "78-EUC-H", "78-EUC-V", "78-H", "78-RKSJ-H", "78-RKSJ-V", "78-V", "78ms-RKSJ-H", "78ms-RKSJ-V", "83pv-RKSJ-H", "90ms-RKSJ-H", "90ms-RKSJ-V", "90msp-RKSJ-H", "90msp-RKSJ-V", "90pv-RKSJ-H", "90pv-RKSJ-V", "Add-H", "Add-RKSJ-H", "Add-RKSJ-V", "Add-V", "Adobe-CNS1-0", "Adobe-CNS1-1", "Adobe-CNS1-2", "Adobe-CNS1-3", "Adobe-CNS1-4", "Adobe-CNS1-5", "Adobe-CNS1-6", "Adobe-GB1-0", "Adobe-GB1-1", "Adobe-GB1-2", "Adobe-GB1-3", "Adobe-GB1-4", "Adobe-GB1-5", "Adobe-Japan1-0", "Adobe-Japan1-1", "Adobe-Japan1-2", "Adobe-Japan1-3", "Adobe-Japan1-4", "Adobe-Japan1-5", "Adobe-Japan1-6", "Adobe-Korea1-0", "Adobe-Korea1-1", "Adobe-Korea1-2", "B5-H", "B5-V", "B5pc-H", "B5pc-V", "CNS-EUC-H", "CNS-EUC-V", "CNS1-H", "CNS1-V", "CNS2-H", "CNS2-V", "ETHK-B5-H", "ETHK-B5-V", "ETen-B5-H", "ETen-B5-V", "ETenms-B5-H", "ETenms-B5-V", "EUC-H", "EUC-V", "Ext-H", "Ext-RKSJ-H", "Ext-RKSJ-V", "Ext-V", "GB-EUC-H", "GB-EUC-V", "GB-H", "GB-V", "GBK-EUC-H", "GBK-EUC-V", "GBK2K-H", "GBK2K-V", "GBKp-EUC-H", "GBKp-EUC-V", "GBT-EUC-H", "GBT-EUC-V", "GBT-H", "GBT-V", "GBTpc-EUC-H", "GBTpc-EUC-V", "GBpc-EUC-H", "GBpc-EUC-V", "H", "HKdla-B5-H", "HKdla-B5-V", "HKdlb-B5-H", "HKdlb-B5-V", "HKgccs-B5-H", "HKgccs-B5-V", "HKm314-B5-H", "HKm314-B5-V", "HKm471-B5-H", "HKm471-B5-V", "HKscs-B5-H", "HKscs-B5-V", "Hankaku", "Hiragana", "KSC-EUC-H", "KSC-EUC-V", "KSC-H", "KSC-Johab-H", "KSC-Johab-V", "KSC-V", "KSCms-UHC-H", "KSCms-UHC-HW-H", "KSCms-UHC-HW-V", "KSCms-UHC-V", "KSCpc-EUC-H", "KSCpc-EUC-V", "Katakana", "NWP-H", "NWP-V", "RKSJ-H", "RKSJ-V", "Roman", "UniCNS-UCS2-H", "UniCNS-UCS2-V", "UniCNS-UTF16-H", "UniCNS-UTF16-V", "UniCNS-UTF32-H", "UniCNS-UTF32-V", "UniCNS-UTF8-H", "UniCNS-UTF8-V", "UniGB-UCS2-H", "UniGB-UCS2-V", "UniGB-UTF16-H", "UniGB-UTF16-V", "UniGB-UTF32-H", "UniGB-UTF32-V", "UniGB-UTF8-H", "UniGB-UTF8-V", "UniJIS-UCS2-H", "UniJIS-UCS2-HW-H", "UniJIS-UCS2-HW-V", "UniJIS-UCS2-V", "UniJIS-UTF16-H", "UniJIS-UTF16-V", "UniJIS-UTF32-H", "UniJIS-UTF32-V", "UniJIS-UTF8-H", "UniJIS-UTF8-V", "UniJIS2004-UTF16-H", "UniJIS2004-UTF16-V", "UniJIS2004-UTF32-H", "UniJIS2004-UTF32-V", "UniJIS2004-UTF8-H", "UniJIS2004-UTF8-V", "UniJISPro-UCS2-HW-V", "UniJISPro-UCS2-V", "UniJISPro-UTF8-V", "UniJISX0213-UTF32-H", "UniJISX0213-UTF32-V", "UniJISX02132004-UTF32-H", "UniJISX02132004-UTF32-V", "UniKS-UCS2-H", "UniKS-UCS2-V", "UniKS-UTF16-H", "UniKS-UTF16-V", "UniKS-UTF32-H", "UniKS-UTF32-V", "UniKS-UTF8-H", "UniKS-UTF8-V", "V", "WP-Symbol"]; +const MAX_MAP_RANGE = 2 ** 24 - 1; +class CMap { + constructor(builtInCMap = false) { + this.codespaceRanges = [[], [], [], []]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ""; + this.vertical = false; + this.useCMap = null; + this.builtInCMap = builtInCMap; + } + addCodespaceRange(n, low, high) { + this.codespaceRanges[n - 1].push(low, high); + this.numCodespaceRanges++; + } + mapCidRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE."); + } + while (low <= high) { + this._map[low++] = dstLow++; + } + } + mapBfRange(low, high, dstLow) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE."); + } + const lastByte = dstLow.length - 1; + while (low <= high) { + this._map[low++] = dstLow; + const nextCharCode = dstLow.charCodeAt(lastByte) + 1; + if (nextCharCode > 0xff) { + dstLow = dstLow.substring(0, lastByte - 1) + String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) + "\x00"; + continue; + } + dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode); + } + } + mapBfRangeToArray(low, high, array) { + if (high - low > MAX_MAP_RANGE) { + throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE."); + } + const ii = array.length; + let i = 0; + while (low <= high && i < ii) { + this._map[low] = array[i++]; + ++low; + } + } + mapOne(src, dst) { + this._map[src] = dst; + } + lookup(code) { + return this._map[code]; + } + contains(code) { + return this._map[code] !== undefined; + } + forEach(callback) { + const map = this._map; + const length = map.length; + if (length <= 0x10000) { + for (let i = 0; i < length; i++) { + if (map[i] !== undefined) { + callback(i, map[i]); + } + } + } else { + for (const i in map) { + callback(i, map[i]); + } + } + } + charCodeOf(value) { + const map = this._map; + if (map.length <= 0x10000) { + return map.indexOf(value); + } + for (const charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + return -1; + } + getMap() { + return this._map; + } + readCharCode(str, offset, out) { + let c = 0; + const codespaceRanges = this.codespaceRanges; + for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { + c = (c << 8 | str.charCodeAt(offset + n)) >>> 0; + const codespaceRange = codespaceRanges[n]; + for (let k = 0, kk = codespaceRange.length; k < kk;) { + const low = codespaceRange[k++]; + const high = codespaceRange[k++]; + if (c >= low && c <= high) { + out.charcode = c; + out.length = n + 1; + return; + } + } + } + out.charcode = 0; + out.length = 1; + } + getCharCodeLength(charCode) { + const codespaceRanges = this.codespaceRanges; + for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { + const codespaceRange = codespaceRanges[n]; + for (let k = 0, kk = codespaceRange.length; k < kk;) { + const low = codespaceRange[k++]; + const high = codespaceRange[k++]; + if (charCode >= low && charCode <= high) { + return n + 1; + } + } + } + return 1; + } + get length() { + return this._map.length; + } + get isIdentityCMap() { + if (!(this.name === "Identity-H" || this.name === "Identity-V")) { + return false; + } + if (this._map.length !== 0x10000) { + return false; + } + for (let i = 0; i < 0x10000; i++) { + if (this._map[i] !== i) { + return false; + } + } + return true; + } +} +class IdentityCMap extends CMap { + constructor(vertical, n) { + super(); + this.vertical = vertical; + this.addCodespaceRange(n, 0, 0xffff); + } + mapCidRange(low, high, dstLow) { + unreachable("should not call mapCidRange"); + } + mapBfRange(low, high, dstLow) { + unreachable("should not call mapBfRange"); + } + mapBfRangeToArray(low, high, array) { + unreachable("should not call mapBfRangeToArray"); + } + mapOne(src, dst) { + unreachable("should not call mapCidOne"); + } + lookup(code) { + return Number.isInteger(code) && code <= 0xffff ? code : undefined; + } + contains(code) { + return Number.isInteger(code) && code <= 0xffff; + } + forEach(callback) { + for (let i = 0; i <= 0xffff; i++) { + callback(i, i); + } + } + charCodeOf(value) { + return Number.isInteger(value) && value <= 0xffff ? value : -1; + } + getMap() { + const map = new Array(0x10000); + for (let i = 0; i <= 0xffff; i++) { + map[i] = i; + } + return map; + } + get length() { + return 0x10000; + } + get isIdentityCMap() { + unreachable("should not access .isIdentityCMap"); + } +} +function strToInt(str) { + let a = 0; + for (let i = 0; i < str.length; i++) { + a = a << 8 | str.charCodeAt(i); + } + return a >>> 0; +} +function expectString(obj) { + if (typeof obj !== "string") { + throw new FormatError("Malformed CMap: expected string."); + } +} +function expectInt(obj) { + if (!Number.isInteger(obj)) { + throw new FormatError("Malformed CMap: expected int."); + } +} +function parseBfChar(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endbfchar")) { + return; + } + expectString(obj); + const src = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const dst = obj; + cMap.mapOne(src, dst); + } +} +function parseBfRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endbfrange")) { + return; + } + expectString(obj); + const low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const high = strToInt(obj); + obj = lexer.getObj(); + if (Number.isInteger(obj) || typeof obj === "string") { + const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj; + cMap.mapBfRange(low, high, dstLow); + } else if (isCmd(obj, "[")) { + obj = lexer.getObj(); + const array = []; + while (!isCmd(obj, "]") && obj !== EOF) { + array.push(obj); + obj = lexer.getObj(); + } + cMap.mapBfRangeToArray(low, high, array); + } else { + break; + } + } + throw new FormatError("Invalid bf range."); +} +function parseCidChar(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcidchar")) { + return; + } + expectString(obj); + const src = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + const dst = obj; + cMap.mapOne(src, dst); + } +} +function parseCidRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcidrange")) { + return; + } + expectString(obj); + const low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + const high = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + const dstLow = obj; + cMap.mapCidRange(low, high, dstLow); + } +} +function parseCodespaceRange(cMap, lexer) { + while (true) { + let obj = lexer.getObj(); + if (obj === EOF) { + break; + } + if (isCmd(obj, "endcodespacerange")) { + return; + } + if (typeof obj !== "string") { + break; + } + const low = strToInt(obj); + obj = lexer.getObj(); + if (typeof obj !== "string") { + break; + } + const high = strToInt(obj); + cMap.addCodespaceRange(obj.length, low, high); + } + throw new FormatError("Invalid codespace range."); +} +function parseWMode(cMap, lexer) { + const obj = lexer.getObj(); + if (Number.isInteger(obj)) { + cMap.vertical = !!obj; + } +} +function parseCMapName(cMap, lexer) { + const obj = lexer.getObj(); + if (obj instanceof Name) { + cMap.name = obj.name; + } +} +async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) { + let previous, embeddedUseCMap; + objLoop: while (true) { + try { + const obj = lexer.getObj(); + if (obj === EOF) { + break; + } else if (obj instanceof Name) { + if (obj.name === "WMode") { + parseWMode(cMap, lexer); + } else if (obj.name === "CMapName") { + parseCMapName(cMap, lexer); + } + previous = obj; + } else if (obj instanceof Cmd) { + switch (obj.cmd) { + case "endcmap": + break objLoop; + case "usecmap": + if (previous instanceof Name) { + embeddedUseCMap = previous.name; + } + break; + case "begincodespacerange": + parseCodespaceRange(cMap, lexer); + break; + case "beginbfchar": + parseBfChar(cMap, lexer); + break; + case "begincidchar": + parseCidChar(cMap, lexer); + break; + case "beginbfrange": + parseBfRange(cMap, lexer); + break; + case "begincidrange": + parseCidRange(cMap, lexer); + break; + } + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Invalid cMap data: " + ex); + continue; + } + } + if (!useCMap && embeddedUseCMap) { + useCMap = embeddedUseCMap; + } + if (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + } + return cMap; +} +async function extendCMap(cMap, fetchBuiltInCMap, useCMap) { + cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap); + if (cMap.numCodespaceRanges === 0) { + const useCodespaceRanges = cMap.useCMap.codespaceRanges; + for (let i = 0; i < useCodespaceRanges.length; i++) { + cMap.codespaceRanges[i] = useCodespaceRanges[i].slice(); + } + cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges; + } + cMap.useCMap.forEach(function (key, value) { + if (!cMap.contains(key)) { + cMap.mapOne(key, value); + } + }); + return cMap; +} +async function createBuiltInCMap(name, fetchBuiltInCMap) { + if (name === "Identity-H") { + return new IdentityCMap(false, 2); + } else if (name === "Identity-V") { + return new IdentityCMap(true, 2); + } + if (!BUILT_IN_CMAPS.includes(name)) { + throw new Error("Unknown CMap name: " + name); + } + if (!fetchBuiltInCMap) { + throw new Error("Built-in CMap parameters are not provided."); + } + const { + cMapData, + isCompressed + } = await fetchBuiltInCMap(name); + const cMap = new CMap(true); + if (isCompressed) { + return new BinaryCMapReader().process(cMapData, cMap, useCMap => extendCMap(cMap, fetchBuiltInCMap, useCMap)); + } + const lexer = new Lexer(new Stream(cMapData)); + return parseCMap(cMap, lexer, fetchBuiltInCMap, null); +} +class CMapFactory { + static async create({ + encoding, + fetchBuiltInCMap, + useCMap + }) { + if (encoding instanceof Name) { + return createBuiltInCMap(encoding.name, fetchBuiltInCMap); + } else if (encoding instanceof BaseStream) { + const parsedCMap = await parseCMap(new CMap(), new Lexer(encoding), fetchBuiltInCMap, useCMap); + if (parsedCMap.isIdentityCMap) { + return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap); + } + return parsedCMap; + } + throw new Error("Encoding required."); + } +} + +;// ./src/core/charsets.js +const ISOAdobeCharset = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron"]; +const ExpertCharset = [".notdef", "space", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"]; +const ExpertSubsetCharset = [".notdef", "space", "dollaroldstyle", "dollarsuperior", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "hyphensuperior", "colonmonetary", "onefitted", "rupiah", "centoldstyle", "figuredash", "hypheninferior", "onequarter", "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior"]; + +;// ./src/core/encodings.js +const ExpertEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "", "", "", "isuperior", "", "", "lsuperior", "msuperior", "nsuperior", "osuperior", "", "", "rsuperior", "ssuperior", "tsuperior", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdownsmall", "centoldstyle", "Lslashsmall", "", "", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "", "Dotaccentsmall", "", "", "Macronsmall", "", "", "figuredash", "hypheninferior", "", "", "Ogoneksmall", "Ringsmall", "Cedillasmall", "", "", "", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"]; +const MacExpertEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclamsmall", "Hungarumlautsmall", "centoldstyle", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "", "threequartersemdash", "", "questionsmall", "", "", "", "", "Ethsmall", "", "", "onequarter", "onehalf", "threequarters", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "", "", "", "", "", "", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "", "parenrightinferior", "Circumflexsmall", "hypheninferior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "", "", "asuperior", "centsuperior", "", "", "", "", "Aacutesmall", "Agravesmall", "Acircumflexsmall", "Adieresissmall", "Atildesmall", "Aringsmall", "Ccedillasmall", "Eacutesmall", "Egravesmall", "Ecircumflexsmall", "Edieresissmall", "Iacutesmall", "Igravesmall", "Icircumflexsmall", "Idieresissmall", "Ntildesmall", "Oacutesmall", "Ogravesmall", "Ocircumflexsmall", "Odieresissmall", "Otildesmall", "Uacutesmall", "Ugravesmall", "Ucircumflexsmall", "Udieresissmall", "", "eightsuperior", "fourinferior", "threeinferior", "sixinferior", "eightinferior", "seveninferior", "Scaronsmall", "", "centinferior", "twoinferior", "", "Dieresissmall", "", "Caronsmall", "osuperior", "fiveinferior", "", "commainferior", "periodinferior", "Yacutesmall", "", "dollarinferior", "", "", "Thornsmall", "", "nineinferior", "zeroinferior", "Zcaronsmall", "AEsmall", "Oslashsmall", "questiondownsmall", "oneinferior", "Lslashsmall", "", "", "", "", "", "", "Cedillasmall", "", "", "", "", "", "OEsmall", "figuredash", "hyphensuperior", "", "", "", "", "exclamdownsmall", "", "Ydieresissmall", "", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "ninesuperior", "zerosuperior", "", "esuperior", "rsuperior", "tsuperior", "", "", "isuperior", "ssuperior", "dsuperior", "", "", "", "", "", "lsuperior", "Ogoneksmall", "Brevesmall", "Macronsmall", "bsuperior", "nsuperior", "msuperior", "commasuperior", "periodsuperior", "Dotaccentsmall", "Ringsmall", "", "", "", ""]; +const MacRomanEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "", "Adieresis", "Aring", "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute", "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla", "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave", "icircumflex", "idieresis", "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling", "section", "bullet", "paragraph", "germandbls", "registered", "copyright", "trademark", "acute", "dieresis", "notequal", "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", "yen", "mu", "partialdiff", "summation", "product", "pi", "integral", "ordfeminine", "ordmasculine", "Omega", "ae", "oslash", "questiondown", "exclamdown", "logicalnot", "radical", "florin", "approxequal", "Delta", "guillemotleft", "guillemotright", "ellipsis", "space", "Agrave", "Atilde", "Otilde", "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", "caron"]; +const StandardEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "", "endash", "dagger", "daggerdbl", "periodcentered", "", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "", "questiondown", "", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "", "ring", "cedilla", "", "hungarumlaut", "ogonek", "caron", "emdash", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "AE", "", "ordfeminine", "", "", "", "", "Lslash", "Oslash", "OE", "ordmasculine", "", "", "", "", "", "ae", "", "", "", "dotlessi", "", "", "lslash", "oslash", "oe", "germandbls", "", "", "", ""]; +const WinAnsiEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "bullet", "Euro", "bullet", "quotesinglbase", "florin", "quotedblbase", "ellipsis", "dagger", "daggerdbl", "circumflex", "perthousand", "Scaron", "guilsinglleft", "OE", "bullet", "Zcaron", "bullet", "bullet", "quoteleft", "quoteright", "quotedblleft", "quotedblright", "bullet", "endash", "emdash", "tilde", "trademark", "scaron", "guilsinglright", "oe", "bullet", "zcaron", "Ydieresis", "space", "exclamdown", "cent", "sterling", "currency", "yen", "brokenbar", "section", "dieresis", "copyright", "ordfeminine", "guillemotleft", "logicalnot", "hyphen", "registered", "macron", "degree", "plusminus", "twosuperior", "threesuperior", "acute", "mu", "paragraph", "periodcentered", "cedilla", "onesuperior", "ordmasculine", "guillemotright", "onequarter", "onehalf", "threequarters", "questiondown", "Agrave", "Aacute", "Acircumflex", "Atilde", "Adieresis", "Aring", "AE", "Ccedilla", "Egrave", "Eacute", "Ecircumflex", "Edieresis", "Igrave", "Iacute", "Icircumflex", "Idieresis", "Eth", "Ntilde", "Ograve", "Oacute", "Ocircumflex", "Otilde", "Odieresis", "multiply", "Oslash", "Ugrave", "Uacute", "Ucircumflex", "Udieresis", "Yacute", "Thorn", "germandbls", "agrave", "aacute", "acircumflex", "atilde", "adieresis", "aring", "ae", "ccedilla", "egrave", "eacute", "ecircumflex", "edieresis", "igrave", "iacute", "icircumflex", "idieresis", "eth", "ntilde", "ograve", "oacute", "ocircumflex", "otilde", "odieresis", "divide", "oslash", "ugrave", "uacute", "ucircumflex", "udieresis", "yacute", "thorn", "ydieresis"]; +const SymbolSetEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "exclam", "universal", "numbersign", "existential", "percent", "ampersand", "suchthat", "parenleft", "parenright", "asteriskmath", "plus", "comma", "minus", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "congruent", "Alpha", "Beta", "Chi", "Delta", "Epsilon", "Phi", "Gamma", "Eta", "Iota", "theta1", "Kappa", "Lambda", "Mu", "Nu", "Omicron", "Pi", "Theta", "Rho", "Sigma", "Tau", "Upsilon", "sigma1", "Omega", "Xi", "Psi", "Zeta", "bracketleft", "therefore", "bracketright", "perpendicular", "underscore", "radicalex", "alpha", "beta", "chi", "delta", "epsilon", "phi", "gamma", "eta", "iota", "phi1", "kappa", "lambda", "mu", "nu", "omicron", "pi", "theta", "rho", "sigma", "tau", "upsilon", "omega1", "omega", "xi", "psi", "zeta", "braceleft", "bar", "braceright", "similar", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Euro", "Upsilon1", "minute", "lessequal", "fraction", "infinity", "florin", "club", "diamond", "heart", "spade", "arrowboth", "arrowleft", "arrowup", "arrowright", "arrowdown", "degree", "plusminus", "second", "greaterequal", "multiply", "proportional", "partialdiff", "bullet", "divide", "notequal", "equivalence", "approxequal", "ellipsis", "arrowvertex", "arrowhorizex", "carriagereturn", "aleph", "Ifraktur", "Rfraktur", "weierstrass", "circlemultiply", "circleplus", "emptyset", "intersection", "union", "propersuperset", "reflexsuperset", "notsubset", "propersubset", "reflexsubset", "element", "notelement", "angle", "gradient", "registerserif", "copyrightserif", "trademarkserif", "product", "radical", "dotmath", "logicalnot", "logicaland", "logicalor", "arrowdblboth", "arrowdblleft", "arrowdblup", "arrowdblright", "arrowdbldown", "lozenge", "angleleft", "registersans", "copyrightsans", "trademarksans", "summation", "parenlefttp", "parenleftex", "parenleftbt", "bracketlefttp", "bracketleftex", "bracketleftbt", "bracelefttp", "braceleftmid", "braceleftbt", "braceex", "", "angleright", "integral", "integraltp", "integralex", "integralbt", "parenrighttp", "parenrightex", "parenrightbt", "bracketrighttp", "bracketrightex", "bracketrightbt", "bracerighttp", "bracerightmid", "bracerightbt", ""]; +const ZapfDingbatsEncoding = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "space", "a1", "a2", "a202", "a3", "a4", "a5", "a119", "a118", "a117", "a11", "a12", "a13", "a14", "a15", "a16", "a105", "a17", "a18", "a19", "a20", "a21", "a22", "a23", "a24", "a25", "a26", "a27", "a28", "a6", "a7", "a8", "a9", "a10", "a29", "a30", "a31", "a32", "a33", "a34", "a35", "a36", "a37", "a38", "a39", "a40", "a41", "a42", "a43", "a44", "a45", "a46", "a47", "a48", "a49", "a50", "a51", "a52", "a53", "a54", "a55", "a56", "a57", "a58", "a59", "a60", "a61", "a62", "a63", "a64", "a65", "a66", "a67", "a68", "a69", "a70", "a71", "a72", "a73", "a74", "a203", "a75", "a204", "a76", "a77", "a78", "a79", "a81", "a82", "a83", "a84", "a97", "a98", "a99", "a100", "", "a89", "a90", "a93", "a94", "a91", "a92", "a205", "a85", "a206", "a86", "a87", "a88", "a95", "a96", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "a101", "a102", "a103", "a104", "a106", "a107", "a108", "a112", "a111", "a110", "a109", "a120", "a121", "a122", "a123", "a124", "a125", "a126", "a127", "a128", "a129", "a130", "a131", "a132", "a133", "a134", "a135", "a136", "a137", "a138", "a139", "a140", "a141", "a142", "a143", "a144", "a145", "a146", "a147", "a148", "a149", "a150", "a151", "a152", "a153", "a154", "a155", "a156", "a157", "a158", "a159", "a160", "a161", "a163", "a164", "a196", "a165", "a192", "a166", "a167", "a168", "a169", "a170", "a171", "a172", "a173", "a162", "a174", "a175", "a176", "a177", "a178", "a179", "a193", "a180", "a199", "a181", "a200", "a182", "", "a201", "a183", "a184", "a197", "a185", "a194", "a198", "a186", "a195", "a187", "a188", "a189", "a190", "a191", ""]; +function getEncoding(encodingName) { + switch (encodingName) { + case "WinAnsiEncoding": + return WinAnsiEncoding; + case "StandardEncoding": + return StandardEncoding; + case "MacRomanEncoding": + return MacRomanEncoding; + case "SymbolSetEncoding": + return SymbolSetEncoding; + case "ZapfDingbatsEncoding": + return ZapfDingbatsEncoding; + case "ExpertEncoding": + return ExpertEncoding; + case "MacExpertEncoding": + return MacExpertEncoding; + default: + return null; + } +} + +;// ./src/core/cff_parser.js + + + +const MAX_SUBR_NESTING = 10; +const CFFStandardStrings = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000", "001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold"]; +const NUM_STANDARD_CFF_STRINGS = 391; +const CharstringValidationData = [null, { + id: "hstem", + min: 2, + stackClearing: true, + stem: true +}, null, { + id: "vstem", + min: 2, + stackClearing: true, + stem: true +}, { + id: "vmoveto", + min: 1, + stackClearing: true +}, { + id: "rlineto", + min: 2, + resetStack: true +}, { + id: "hlineto", + min: 1, + resetStack: true +}, { + id: "vlineto", + min: 1, + resetStack: true +}, { + id: "rrcurveto", + min: 6, + resetStack: true +}, null, { + id: "callsubr", + min: 1, + undefStack: true +}, { + id: "return", + min: 0, + undefStack: true +}, null, null, { + id: "endchar", + min: 0, + stackClearing: true +}, null, null, null, { + id: "hstemhm", + min: 2, + stackClearing: true, + stem: true +}, { + id: "hintmask", + min: 0, + stackClearing: true +}, { + id: "cntrmask", + min: 0, + stackClearing: true +}, { + id: "rmoveto", + min: 2, + stackClearing: true +}, { + id: "hmoveto", + min: 1, + stackClearing: true +}, { + id: "vstemhm", + min: 2, + stackClearing: true, + stem: true +}, { + id: "rcurveline", + min: 8, + resetStack: true +}, { + id: "rlinecurve", + min: 8, + resetStack: true +}, { + id: "vvcurveto", + min: 4, + resetStack: true +}, { + id: "hhcurveto", + min: 4, + resetStack: true +}, null, { + id: "callgsubr", + min: 1, + undefStack: true +}, { + id: "vhcurveto", + min: 4, + resetStack: true +}, { + id: "hvcurveto", + min: 4, + resetStack: true +}]; +const CharstringValidationData12 = [null, null, null, { + id: "and", + min: 2, + stackDelta: -1 +}, { + id: "or", + min: 2, + stackDelta: -1 +}, { + id: "not", + min: 1, + stackDelta: 0 +}, null, null, null, { + id: "abs", + min: 1, + stackDelta: 0 +}, { + id: "add", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] + stack[index - 1]; + } +}, { + id: "sub", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] - stack[index - 1]; + } +}, { + id: "div", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] / stack[index - 1]; + } +}, null, { + id: "neg", + min: 1, + stackDelta: 0, + stackFn(stack, index) { + stack[index - 1] = -stack[index - 1]; + } +}, { + id: "eq", + min: 2, + stackDelta: -1 +}, null, null, { + id: "drop", + min: 1, + stackDelta: -1 +}, null, { + id: "put", + min: 2, + stackDelta: -2 +}, { + id: "get", + min: 1, + stackDelta: 0 +}, { + id: "ifelse", + min: 4, + stackDelta: -3 +}, { + id: "random", + min: 0, + stackDelta: 1 +}, { + id: "mul", + min: 2, + stackDelta: -1, + stackFn(stack, index) { + stack[index - 2] = stack[index - 2] * stack[index - 1]; + } +}, null, { + id: "sqrt", + min: 1, + stackDelta: 0 +}, { + id: "dup", + min: 1, + stackDelta: 1 +}, { + id: "exch", + min: 2, + stackDelta: 0 +}, { + id: "index", + min: 2, + stackDelta: 0 +}, { + id: "roll", + min: 3, + stackDelta: -2 +}, null, null, null, { + id: "hflex", + min: 7, + resetStack: true +}, { + id: "flex", + min: 13, + resetStack: true +}, { + id: "hflex1", + min: 9, + resetStack: true +}, { + id: "flex1", + min: 11, + resetStack: true +}]; +class CFFParser { + constructor(file, properties, seacAnalysisEnabled) { + this.bytes = file.getBytes(); + this.properties = properties; + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + } + parse() { + const properties = this.properties; + const cff = new CFF(); + this.cff = cff; + const header = this.parseHeader(); + const nameIndex = this.parseIndex(header.endPos); + const topDictIndex = this.parseIndex(nameIndex.endPos); + const stringIndex = this.parseIndex(topDictIndex.endPos); + const globalSubrIndex = this.parseIndex(stringIndex.endPos); + const topDictParsed = this.parseDict(topDictIndex.obj.get(0)); + const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings); + cff.header = header.obj; + cff.names = this.parseNameIndex(nameIndex.obj); + cff.strings = this.parseStringIndex(stringIndex.obj); + cff.topDict = topDict; + cff.globalSubrIndex = globalSubrIndex.obj; + this.parsePrivateDict(cff.topDict); + cff.isCIDFont = topDict.hasName("ROS"); + const charStringOffset = topDict.getByName("CharStrings"); + const charStringIndex = this.parseIndex(charStringOffset).obj; + const fontMatrix = topDict.getByName("FontMatrix"); + if (fontMatrix) { + properties.fontMatrix = fontMatrix; + } + const fontBBox = topDict.getByName("FontBBox"); + if (fontBBox) { + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + } + let charset, encoding; + if (cff.isCIDFont) { + const fdArrayIndex = this.parseIndex(topDict.getByName("FDArray")).obj; + for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) { + const dictRaw = fdArrayIndex.get(i); + const fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings); + this.parsePrivateDict(fontDict); + cff.fdArray.push(fontDict); + } + encoding = null; + charset = this.parseCharsets(topDict.getByName("charset"), charStringIndex.count, cff.strings, true); + cff.fdSelect = this.parseFDSelect(topDict.getByName("FDSelect"), charStringIndex.count); + } else { + charset = this.parseCharsets(topDict.getByName("charset"), charStringIndex.count, cff.strings, false); + encoding = this.parseEncoding(topDict.getByName("Encoding"), properties, cff.strings, charset.charset); + } + cff.charset = charset; + cff.encoding = encoding; + const charStringsAndSeacs = this.parseCharStrings({ + charStrings: charStringIndex, + localSubrIndex: topDict.privateDict.subrsIndex, + globalSubrIndex: globalSubrIndex.obj, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray, + privateDict: topDict.privateDict + }); + cff.charStrings = charStringsAndSeacs.charStrings; + cff.seacs = charStringsAndSeacs.seacs; + cff.widths = charStringsAndSeacs.widths; + return cff; + } + parseHeader() { + let bytes = this.bytes; + const bytesLength = bytes.length; + let offset = 0; + while (offset < bytesLength && bytes[offset] !== 1) { + ++offset; + } + if (offset >= bytesLength) { + throw new FormatError("Invalid CFF header"); + } + if (offset !== 0) { + info("cff data is shifted"); + bytes = bytes.subarray(offset); + this.bytes = bytes; + } + const major = bytes[0]; + const minor = bytes[1]; + const hdrSize = bytes[2]; + const offSize = bytes[3]; + const header = new CFFHeader(major, minor, hdrSize, offSize); + return { + obj: header, + endPos: hdrSize + }; + } + parseDict(dict) { + let pos = 0; + function parseOperand() { + let value = dict[pos++]; + if (value === 30) { + return parseFloatOperand(); + } else if (value === 28) { + value = dict[pos++]; + value = (value << 24 | dict[pos++] << 16) >> 16; + return value; + } else if (value === 29) { + value = dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + return value; + } else if (value >= 32 && value <= 246) { + return value - 139; + } else if (value >= 247 && value <= 250) { + return (value - 247) * 256 + dict[pos++] + 108; + } else if (value >= 251 && value <= 254) { + return -((value - 251) * 256) - dict[pos++] - 108; + } + warn('CFFParser_parseDict: "' + value + '" is a reserved command.'); + return NaN; + } + function parseFloatOperand() { + let str = ""; + const eof = 15; + const lookup = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"]; + const length = dict.length; + while (pos < length) { + const b = dict[pos++]; + const b1 = b >> 4; + const b2 = b & 15; + if (b1 === eof) { + break; + } + str += lookup[b1]; + if (b2 === eof) { + break; + } + str += lookup[b2]; + } + return parseFloat(str); + } + let operands = []; + const entries = []; + pos = 0; + const end = dict.length; + while (pos < end) { + let b = dict[pos]; + if (b <= 21) { + if (b === 12) { + b = b << 8 | dict[++pos]; + } + entries.push([b, operands]); + operands = []; + ++pos; + } else { + operands.push(parseOperand()); + } + } + return entries; + } + parseIndex(pos) { + const cffIndex = new CFFIndex(); + const bytes = this.bytes; + const count = bytes[pos++] << 8 | bytes[pos++]; + const offsets = []; + let end = pos; + let i, ii; + if (count !== 0) { + const offsetSize = bytes[pos++]; + const startPos = pos + (count + 1) * offsetSize - 1; + for (i = 0, ii = count + 1; i < ii; ++i) { + let offset = 0; + for (let j = 0; j < offsetSize; ++j) { + offset <<= 8; + offset += bytes[pos++]; + } + offsets.push(startPos + offset); + } + end = offsets[count]; + } + for (i = 0, ii = offsets.length - 1; i < ii; ++i) { + const offsetStart = offsets[i]; + const offsetEnd = offsets[i + 1]; + cffIndex.add(bytes.subarray(offsetStart, offsetEnd)); + } + return { + obj: cffIndex, + endPos: end + }; + } + parseNameIndex(index) { + const names = []; + for (let i = 0, ii = index.count; i < ii; ++i) { + const name = index.get(i); + names.push(bytesToString(name)); + } + return names; + } + parseStringIndex(index) { + const strings = new CFFStrings(); + for (let i = 0, ii = index.count; i < ii; ++i) { + const data = index.get(i); + strings.add(bytesToString(data)); + } + return strings; + } + createDict(Type, dict, strings) { + const cffDict = new Type(strings); + for (const [key, value] of dict) { + cffDict.setByKey(key, value); + } + return cffDict; + } + parseCharString(state, data, localSubrIndex, globalSubrIndex) { + if (!data || state.callDepth > MAX_SUBR_NESTING) { + return false; + } + let stackSize = state.stackSize; + const stack = state.stack; + let length = data.length; + for (let j = 0; j < length;) { + const value = data[j++]; + let validationCommand = null; + if (value === 12) { + const q = data[j++]; + if (q === 0) { + data[j - 2] = 139; + data[j - 1] = 22; + stackSize = 0; + } else { + validationCommand = CharstringValidationData12[q]; + } + } else if (value === 28) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16; + j += 2; + stackSize++; + } else if (value === 14) { + if (stackSize >= 4) { + stackSize -= 4; + if (this.seacAnalysisEnabled) { + state.seac = stack.slice(stackSize, stackSize + 4); + return false; + } + } + validationCommand = CharstringValidationData[value]; + } else if (value >= 32 && value <= 246) { + stack[stackSize] = value - 139; + stackSize++; + } else if (value >= 247 && value <= 254) { + stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108; + j++; + stackSize++; + } else if (value === 255) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536; + j += 4; + stackSize++; + } else if (value === 19 || value === 20) { + state.hints += stackSize >> 1; + if (state.hints === 0) { + data.copyWithin(j - 1, j, -1); + j -= 1; + length -= 1; + continue; + } + j += state.hints + 7 >> 3; + stackSize %= 2; + validationCommand = CharstringValidationData[value]; + } else if (value === 10 || value === 29) { + const subrsIndex = value === 10 ? localSubrIndex : globalSubrIndex; + if (!subrsIndex) { + validationCommand = CharstringValidationData[value]; + warn("Missing subrsIndex for " + validationCommand.id); + return false; + } + let bias = 32768; + if (subrsIndex.count < 1240) { + bias = 107; + } else if (subrsIndex.count < 33900) { + bias = 1131; + } + const subrNumber = stack[--stackSize] + bias; + if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) { + validationCommand = CharstringValidationData[value]; + warn("Out of bounds subrIndex for " + validationCommand.id); + return false; + } + state.stackSize = stackSize; + state.callDepth++; + const valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex); + if (!valid) { + return false; + } + state.callDepth--; + stackSize = state.stackSize; + continue; + } else if (value === 11) { + state.stackSize = stackSize; + return true; + } else if (value === 0 && j === data.length) { + data[j - 1] = 14; + validationCommand = CharstringValidationData[14]; + } else if (value === 9) { + data.copyWithin(j - 1, j, -1); + j -= 1; + length -= 1; + continue; + } else { + validationCommand = CharstringValidationData[value]; + } + if (validationCommand) { + if (validationCommand.stem) { + state.hints += stackSize >> 1; + if (value === 3 || value === 23) { + state.hasVStems = true; + } else if (state.hasVStems && (value === 1 || value === 18)) { + warn("CFF stem hints are in wrong order"); + data[j - 1] = value === 1 ? 3 : 23; + } + } + if ("min" in validationCommand) { + if (!state.undefStack && stackSize < validationCommand.min) { + warn("Not enough parameters for " + validationCommand.id + "; actual: " + stackSize + ", expected: " + validationCommand.min); + if (stackSize === 0) { + data[j - 1] = 14; + return true; + } + return false; + } + } + if (state.firstStackClearing && validationCommand.stackClearing) { + state.firstStackClearing = false; + stackSize -= validationCommand.min; + if (stackSize >= 2 && validationCommand.stem) { + stackSize %= 2; + } else if (stackSize > 1) { + warn("Found too many parameters for stack-clearing command"); + } + if (stackSize > 0) { + state.width = stack[stackSize - 1]; + } + } + if ("stackDelta" in validationCommand) { + if ("stackFn" in validationCommand) { + validationCommand.stackFn(stack, stackSize); + } + stackSize += validationCommand.stackDelta; + } else if (validationCommand.stackClearing) { + stackSize = 0; + } else if (validationCommand.resetStack) { + stackSize = 0; + state.undefStack = false; + } else if (validationCommand.undefStack) { + stackSize = 0; + state.undefStack = true; + state.firstStackClearing = false; + } + } + } + if (length < data.length) { + data.fill(14, length); + } + state.stackSize = stackSize; + return true; + } + parseCharStrings({ + charStrings, + localSubrIndex, + globalSubrIndex, + fdSelect, + fdArray, + privateDict + }) { + const seacs = []; + const widths = []; + const count = charStrings.count; + for (let i = 0; i < count; i++) { + const charstring = charStrings.get(i); + const state = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: true, + hints: 0, + firstStackClearing: true, + seac: null, + width: null, + hasVStems: false + }; + let valid = true; + let localSubrToUse = null; + let privateDictToUse = privateDict; + if (fdSelect && fdArray.length) { + const fdIndex = fdSelect.getFDIndex(i); + if (fdIndex === -1) { + warn("Glyph index is not in fd select."); + valid = false; + } + if (fdIndex >= fdArray.length) { + warn("Invalid fd index for glyph index."); + valid = false; + } + if (valid) { + privateDictToUse = fdArray[fdIndex].privateDict; + localSubrToUse = privateDictToUse.subrsIndex; + } + } else if (localSubrIndex) { + localSubrToUse = localSubrIndex; + } + if (valid) { + valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex); + } + if (state.width !== null) { + const nominalWidth = privateDictToUse.getByName("nominalWidthX"); + widths[i] = nominalWidth + state.width; + } else { + const defaultWidth = privateDictToUse.getByName("defaultWidthX"); + widths[i] = defaultWidth; + } + if (state.seac !== null) { + seacs[i] = state.seac; + } + if (!valid) { + charStrings.set(i, new Uint8Array([14])); + } + } + return { + charStrings, + seacs, + widths + }; + } + emptyPrivateDictionary(parentDict) { + const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings); + parentDict.setByKey(18, [0, 0]); + parentDict.privateDict = privateDict; + } + parsePrivateDict(parentDict) { + if (!parentDict.hasName("Private")) { + this.emptyPrivateDictionary(parentDict); + return; + } + const privateOffset = parentDict.getByName("Private"); + if (!Array.isArray(privateOffset) || privateOffset.length !== 2) { + parentDict.removeByName("Private"); + return; + } + const size = privateOffset[0]; + const offset = privateOffset[1]; + if (size === 0 || offset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + const privateDictEnd = offset + size; + const dictData = this.bytes.subarray(offset, privateDictEnd); + const dict = this.parseDict(dictData); + const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings); + parentDict.privateDict = privateDict; + if (privateDict.getByName("ExpansionFactor") === 0) { + privateDict.setByName("ExpansionFactor", 0.06); + } + if (!privateDict.getByName("Subrs")) { + return; + } + const subrsOffset = privateDict.getByName("Subrs"); + const relativeOffset = offset + subrsOffset; + if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + const subrsIndex = this.parseIndex(relativeOffset); + privateDict.subrsIndex = subrsIndex.obj; + } + parseCharsets(pos, length, strings, cid) { + if (pos === 0) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, ISOAdobeCharset); + } else if (pos === 1) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, ExpertCharset); + } else if (pos === 2) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, ExpertSubsetCharset); + } + const bytes = this.bytes; + const start = pos; + const format = bytes[pos++]; + const charset = [cid ? 0 : ".notdef"]; + let id, count, i; + length -= 1; + switch (format) { + case 0: + for (i = 0; i < length; i++) { + id = bytes[pos++] << 8 | bytes[pos++]; + charset.push(cid ? id : strings.get(id)); + } + break; + case 1: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + case 2: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + break; + default: + throw new FormatError("Unknown charset format"); + } + const end = pos; + const raw = bytes.subarray(start, end); + return new CFFCharset(false, format, charset, raw); + } + parseEncoding(pos, properties, strings, charset) { + const encoding = Object.create(null); + const bytes = this.bytes; + let predefined = false; + let format, i, ii; + let raw = null; + function readSupplement() { + const supplementsCount = bytes[pos++]; + for (i = 0; i < supplementsCount; i++) { + const code = bytes[pos++]; + const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff); + encoding[code] = charset.indexOf(strings.get(sid)); + } + } + if (pos === 0 || pos === 1) { + predefined = true; + format = pos; + const baseEncoding = pos ? ExpertEncoding : StandardEncoding; + for (i = 0, ii = charset.length; i < ii; i++) { + const index = baseEncoding.indexOf(charset[i]); + if (index !== -1) { + encoding[index] = i; + } + } + } else { + const dataStart = pos; + format = bytes[pos++]; + switch (format & 0x7f) { + case 0: + const glyphsCount = bytes[pos++]; + for (i = 1; i <= glyphsCount; i++) { + encoding[bytes[pos++]] = i; + } + break; + case 1: + const rangesCount = bytes[pos++]; + let gid = 1; + for (i = 0; i < rangesCount; i++) { + const start = bytes[pos++]; + const left = bytes[pos++]; + for (let j = start; j <= start + left; j++) { + encoding[j] = gid++; + } + } + break; + default: + throw new FormatError(`Unknown encoding format: ${format} in CFF`); + } + const dataEnd = pos; + if (format & 0x80) { + bytes[dataStart] &= 0x7f; + readSupplement(); + } + raw = bytes.subarray(dataStart, dataEnd); + } + format &= 0x7f; + return new CFFEncoding(predefined, format, encoding, raw); + } + parseFDSelect(pos, length) { + const bytes = this.bytes; + const format = bytes[pos++]; + const fdSelect = []; + let i; + switch (format) { + case 0: + for (i = 0; i < length; ++i) { + const id = bytes[pos++]; + fdSelect.push(id); + } + break; + case 3: + const rangesCount = bytes[pos++] << 8 | bytes[pos++]; + for (i = 0; i < rangesCount; ++i) { + let first = bytes[pos++] << 8 | bytes[pos++]; + if (i === 0 && first !== 0) { + warn("parseFDSelect: The first range must have a first GID of 0" + " -- trying to recover."); + first = 0; + } + const fdIndex = bytes[pos++]; + const next = bytes[pos] << 8 | bytes[pos + 1]; + for (let j = first; j < next; ++j) { + fdSelect.push(fdIndex); + } + } + pos += 2; + break; + default: + throw new FormatError(`parseFDSelect: Unknown format "${format}".`); + } + if (fdSelect.length !== length) { + throw new FormatError("parseFDSelect: Invalid font data."); + } + return new CFFFDSelect(format, fdSelect); + } +} +class CFF { + constructor() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = false; + } + duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + warn("Not enough space in charstrings to duplicate first glyph."); + return; + } + const glyphZero = this.charStrings.get(0); + this.charStrings.add(glyphZero); + if (this.isCIDFont) { + this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); + } + } + hasGlyphId(id) { + if (id < 0 || id >= this.charStrings.count) { + return false; + } + const glyph = this.charStrings.get(id); + return glyph.length > 0; + } +} +class CFFHeader { + constructor(major, minor, hdrSize, offSize) { + this.major = major; + this.minor = minor; + this.hdrSize = hdrSize; + this.offSize = offSize; + } +} +class CFFStrings { + constructor() { + this.strings = []; + } + get(index) { + if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) { + return CFFStandardStrings[index]; + } + if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) { + return this.strings[index - NUM_STANDARD_CFF_STRINGS]; + } + return CFFStandardStrings[0]; + } + getSID(str) { + let index = CFFStandardStrings.indexOf(str); + if (index !== -1) { + return index; + } + index = this.strings.indexOf(str); + if (index !== -1) { + return index + NUM_STANDARD_CFF_STRINGS; + } + return -1; + } + add(value) { + this.strings.push(value); + } + get count() { + return this.strings.length; + } +} +class CFFIndex { + constructor() { + this.objects = []; + this.length = 0; + } + add(data) { + this.length += data.length; + this.objects.push(data); + } + set(index, data) { + this.length += data.length - this.objects[index].length; + this.objects[index] = data; + } + get(index) { + return this.objects[index]; + } + get count() { + return this.objects.length; + } +} +class CFFDict { + constructor(tables, strings) { + this.keyToNameMap = tables.keyToNameMap; + this.nameToKeyMap = tables.nameToKeyMap; + this.defaults = tables.defaults; + this.types = tables.types; + this.opcodes = tables.opcodes; + this.order = tables.order; + this.strings = strings; + this.values = Object.create(null); + } + setByKey(key, value) { + if (!(key in this.keyToNameMap)) { + return false; + } + if (value.length === 0) { + return true; + } + for (const val of value) { + if (isNaN(val)) { + warn(`Invalid CFFDict value: "${value}" for key "${key}".`); + return true; + } + } + const type = this.types[key]; + if (type === "num" || type === "sid" || type === "offset") { + value = value[0]; + } + this.values[key] = value; + return true; + } + setByName(name, value) { + if (!(name in this.nameToKeyMap)) { + throw new FormatError(`Invalid dictionary name "${name}"`); + } + this.values[this.nameToKeyMap[name]] = value; + } + hasName(name) { + return this.nameToKeyMap[name] in this.values; + } + getByName(name) { + if (!(name in this.nameToKeyMap)) { + throw new FormatError(`Invalid dictionary name ${name}"`); + } + const key = this.nameToKeyMap[name]; + if (!(key in this.values)) { + return this.defaults[key]; + } + return this.values[key]; + } + removeByName(name) { + delete this.values[this.nameToKeyMap[name]]; + } + static createTables(layout) { + const tables = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [] + }; + for (const entry of layout) { + const key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0]; + tables.keyToNameMap[key] = entry[1]; + tables.nameToKeyMap[entry[1]] = key; + tables.types[key] = entry[2]; + tables.defaults[key] = entry[3]; + tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]]; + tables.order.push(key); + } + return tables; + } +} +const CFFTopDictLayout = [[[12, 30], "ROS", ["sid", "sid", "num"], null], [[12, 20], "SyntheticBase", "num", null], [0, "version", "sid", null], [1, "Notice", "sid", null], [[12, 0], "Copyright", "sid", null], [2, "FullName", "sid", null], [3, "FamilyName", "sid", null], [4, "Weight", "sid", null], [[12, 1], "isFixedPitch", "num", 0], [[12, 2], "ItalicAngle", "num", 0], [[12, 3], "UnderlinePosition", "num", -100], [[12, 4], "UnderlineThickness", "num", 50], [[12, 5], "PaintType", "num", 0], [[12, 6], "CharstringType", "num", 2], [[12, 7], "FontMatrix", ["num", "num", "num", "num", "num", "num"], [0.001, 0, 0, 0.001, 0, 0]], [13, "UniqueID", "num", null], [5, "FontBBox", ["num", "num", "num", "num"], [0, 0, 0, 0]], [[12, 8], "StrokeWidth", "num", 0], [14, "XUID", "array", null], [15, "charset", "offset", 0], [16, "Encoding", "offset", 0], [17, "CharStrings", "offset", 0], [18, "Private", ["offset", "offset"], null], [[12, 21], "PostScript", "sid", null], [[12, 22], "BaseFontName", "sid", null], [[12, 23], "BaseFontBlend", "delta", null], [[12, 31], "CIDFontVersion", "num", 0], [[12, 32], "CIDFontRevision", "num", 0], [[12, 33], "CIDFontType", "num", 0], [[12, 34], "CIDCount", "num", 8720], [[12, 35], "UIDBase", "num", null], [[12, 37], "FDSelect", "offset", null], [[12, 36], "FDArray", "offset", null], [[12, 38], "FontName", "sid", null]]; +class CFFTopDict extends CFFDict { + static get tables() { + return shadow(this, "tables", this.createTables(CFFTopDictLayout)); + } + constructor(strings) { + super(CFFTopDict.tables, strings); + this.privateDict = null; + } +} +const CFFPrivateDictLayout = [[6, "BlueValues", "delta", null], [7, "OtherBlues", "delta", null], [8, "FamilyBlues", "delta", null], [9, "FamilyOtherBlues", "delta", null], [[12, 9], "BlueScale", "num", 0.039625], [[12, 10], "BlueShift", "num", 7], [[12, 11], "BlueFuzz", "num", 1], [10, "StdHW", "num", null], [11, "StdVW", "num", null], [[12, 12], "StemSnapH", "delta", null], [[12, 13], "StemSnapV", "delta", null], [[12, 14], "ForceBold", "num", 0], [[12, 17], "LanguageGroup", "num", 0], [[12, 18], "ExpansionFactor", "num", 0.06], [[12, 19], "initialRandomSeed", "num", 0], [20, "defaultWidthX", "num", 0], [21, "nominalWidthX", "num", 0], [19, "Subrs", "offset", null]]; +class CFFPrivateDict extends CFFDict { + static get tables() { + return shadow(this, "tables", this.createTables(CFFPrivateDictLayout)); + } + constructor(strings) { + super(CFFPrivateDict.tables, strings); + this.subrsIndex = null; + } +} +const CFFCharsetPredefinedTypes = { + ISO_ADOBE: 0, + EXPERT: 1, + EXPERT_SUBSET: 2 +}; +class CFFCharset { + constructor(predefined, format, charset, raw) { + this.predefined = predefined; + this.format = format; + this.charset = charset; + this.raw = raw; + } +} +class CFFEncoding { + constructor(predefined, format, encoding, raw) { + this.predefined = predefined; + this.format = format; + this.encoding = encoding; + this.raw = raw; + } +} +class CFFFDSelect { + constructor(format, fdSelect) { + this.format = format; + this.fdSelect = fdSelect; + } + getFDIndex(glyphIndex) { + if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { + return -1; + } + return this.fdSelect[glyphIndex]; + } +} +class CFFOffsetTracker { + constructor() { + this.offsets = Object.create(null); + } + isTracking(key) { + return key in this.offsets; + } + track(key, location) { + if (key in this.offsets) { + throw new FormatError(`Already tracking location of ${key}`); + } + this.offsets[key] = location; + } + offset(value) { + for (const key in this.offsets) { + this.offsets[key] += value; + } + } + setEntryLocation(key, values, output) { + if (!(key in this.offsets)) { + throw new FormatError(`Not tracking location of ${key}`); + } + const data = output.data; + const dataOffset = this.offsets[key]; + const size = 5; + for (let i = 0, ii = values.length; i < ii; ++i) { + const offset0 = i * size + dataOffset; + const offset1 = offset0 + 1; + const offset2 = offset0 + 2; + const offset3 = offset0 + 3; + const offset4 = offset0 + 4; + if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) { + throw new FormatError("writing to an offset that is not empty"); + } + const value = values[i]; + data[offset0] = 0x1d; + data[offset1] = value >> 24 & 0xff; + data[offset2] = value >> 16 & 0xff; + data[offset3] = value >> 8 & 0xff; + data[offset4] = value & 0xff; + } + } +} +class CFFCompiler { + constructor(cff) { + this.cff = cff; + } + compile() { + const cff = this.cff; + const output = { + data: [], + length: 0, + add(data) { + try { + this.data.push(...data); + } catch { + this.data = this.data.concat(data); + } + this.length = this.data.length; + } + }; + const header = this.compileHeader(cff.header); + output.add(header); + const nameIndex = this.compileNameIndex(cff.names); + output.add(nameIndex); + if (cff.isCIDFont) { + if (cff.topDict.hasName("FontMatrix")) { + const base = cff.topDict.getByName("FontMatrix"); + cff.topDict.removeByName("FontMatrix"); + for (const subDict of cff.fdArray) { + let matrix = base.slice(0); + if (subDict.hasName("FontMatrix")) { + matrix = Util.transform(matrix, subDict.getByName("FontMatrix")); + } + subDict.setByName("FontMatrix", matrix); + } + } + } + const xuid = cff.topDict.getByName("XUID"); + if (xuid?.length > 16) { + cff.topDict.removeByName("XUID"); + } + cff.topDict.setByName("charset", 0); + let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont); + output.add(compiled.output); + const topDictTracker = compiled.trackers[0]; + const stringIndex = this.compileStringIndex(cff.strings.strings); + output.add(stringIndex); + const globalSubrIndex = this.compileIndex(cff.globalSubrIndex); + output.add(globalSubrIndex); + if (cff.encoding && cff.topDict.hasName("Encoding")) { + if (cff.encoding.predefined) { + topDictTracker.setEntryLocation("Encoding", [cff.encoding.format], output); + } else { + const encoding = this.compileEncoding(cff.encoding); + topDictTracker.setEntryLocation("Encoding", [output.length], output); + output.add(encoding); + } + } + const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont); + topDictTracker.setEntryLocation("charset", [output.length], output); + output.add(charset); + const charStrings = this.compileCharStrings(cff.charStrings); + topDictTracker.setEntryLocation("CharStrings", [output.length], output); + output.add(charStrings); + if (cff.isCIDFont) { + topDictTracker.setEntryLocation("FDSelect", [output.length], output); + const fdSelect = this.compileFDSelect(cff.fdSelect); + output.add(fdSelect); + compiled = this.compileTopDicts(cff.fdArray, output.length, true); + topDictTracker.setEntryLocation("FDArray", [output.length], output); + output.add(compiled.output); + const fontDictTrackers = compiled.trackers; + this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output); + } + this.compilePrivateDicts([cff.topDict], [topDictTracker], output); + output.add([0]); + return output.data; + } + encodeNumber(value) { + if (Number.isInteger(value)) { + return this.encodeInteger(value); + } + return this.encodeFloat(value); + } + static get EncodeFloatRegExp() { + return shadow(this, "EncodeFloatRegExp", /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/); + } + encodeFloat(num) { + let value = num.toString(); + const m = CFFCompiler.EncodeFloatRegExp.exec(value); + if (m) { + const epsilon = parseFloat("1e" + ((m[2] ? +m[2] : 0) + m[1].length)); + value = (Math.round(num * epsilon) / epsilon).toString(); + } + let nibbles = ""; + let i, ii; + for (i = 0, ii = value.length; i < ii; ++i) { + const a = value[i]; + if (a === "e") { + nibbles += value[++i] === "-" ? "c" : "b"; + } else if (a === ".") { + nibbles += "a"; + } else if (a === "-") { + nibbles += "e"; + } else { + nibbles += a; + } + } + nibbles += nibbles.length & 1 ? "f" : "ff"; + const out = [30]; + for (i = 0, ii = nibbles.length; i < ii; i += 2) { + out.push(parseInt(nibbles.substring(i, i + 2), 16)); + } + return out; + } + encodeInteger(value) { + let code; + if (value >= -107 && value <= 107) { + code = [value + 139]; + } else if (value >= 108 && value <= 1131) { + value -= 108; + code = [(value >> 8) + 247, value & 0xff]; + } else if (value >= -1131 && value <= -108) { + value = -value - 108; + code = [(value >> 8) + 251, value & 0xff]; + } else if (value >= -32768 && value <= 32767) { + code = [0x1c, value >> 8 & 0xff, value & 0xff]; + } else { + code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff]; + } + return code; + } + compileHeader(header) { + return [header.major, header.minor, 4, header.offSize]; + } + compileNameIndex(names) { + const nameIndex = new CFFIndex(); + for (const name of names) { + const length = Math.min(name.length, 127); + let sanitizedName = new Array(length); + for (let j = 0; j < length; j++) { + let char = name[j]; + if (char < "!" || char > "~" || char === "[" || char === "]" || char === "(" || char === ")" || char === "{" || char === "}" || char === "<" || char === ">" || char === "/" || char === "%") { + char = "_"; + } + sanitizedName[j] = char; + } + sanitizedName = sanitizedName.join(""); + if (sanitizedName === "") { + sanitizedName = "Bad_Font_Name"; + } + nameIndex.add(stringToBytes(sanitizedName)); + } + return this.compileIndex(nameIndex); + } + compileTopDicts(dicts, length, removeCidKeys) { + const fontDictTrackers = []; + let fdArrayIndex = new CFFIndex(); + for (const fontDict of dicts) { + if (removeCidKeys) { + fontDict.removeByName("CIDFontVersion"); + fontDict.removeByName("CIDFontRevision"); + fontDict.removeByName("CIDFontType"); + fontDict.removeByName("CIDCount"); + fontDict.removeByName("UIDBase"); + } + const fontDictTracker = new CFFOffsetTracker(); + const fontDictData = this.compileDict(fontDict, fontDictTracker); + fontDictTrackers.push(fontDictTracker); + fdArrayIndex.add(fontDictData); + fontDictTracker.offset(length); + } + fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers); + return { + trackers: fontDictTrackers, + output: fdArrayIndex + }; + } + compilePrivateDicts(dicts, trackers, output) { + for (let i = 0, ii = dicts.length; i < ii; ++i) { + const fontDict = dicts[i]; + const privateDict = fontDict.privateDict; + if (!privateDict || !fontDict.hasName("Private")) { + throw new FormatError("There must be a private dictionary."); + } + const privateDictTracker = new CFFOffsetTracker(); + const privateDictData = this.compileDict(privateDict, privateDictTracker); + let outputLength = output.length; + privateDictTracker.offset(outputLength); + if (!privateDictData.length) { + outputLength = 0; + } + trackers[i].setEntryLocation("Private", [privateDictData.length, outputLength], output); + output.add(privateDictData); + if (privateDict.subrsIndex && privateDict.hasName("Subrs")) { + const subrs = this.compileIndex(privateDict.subrsIndex); + privateDictTracker.setEntryLocation("Subrs", [privateDictData.length], output); + output.add(subrs); + } + } + } + compileDict(dict, offsetTracker) { + const out = []; + for (const key of dict.order) { + if (!(key in dict.values)) { + continue; + } + let values = dict.values[key]; + let types = dict.types[key]; + if (!Array.isArray(types)) { + types = [types]; + } + if (!Array.isArray(values)) { + values = [values]; + } + if (values.length === 0) { + continue; + } + for (let j = 0, jj = types.length; j < jj; ++j) { + const type = types[j]; + const value = values[j]; + switch (type) { + case "num": + case "sid": + out.push(...this.encodeNumber(value)); + break; + case "offset": + const name = dict.keyToNameMap[key]; + if (!offsetTracker.isTracking(name)) { + offsetTracker.track(name, out.length); + } + out.push(0x1d, 0, 0, 0, 0); + break; + case "array": + case "delta": + out.push(...this.encodeNumber(value)); + for (let k = 1, kk = values.length; k < kk; ++k) { + out.push(...this.encodeNumber(values[k])); + } + break; + default: + throw new FormatError(`Unknown data type of ${type}`); + } + } + out.push(...dict.opcodes[key]); + } + return out; + } + compileStringIndex(strings) { + const stringIndex = new CFFIndex(); + for (const string of strings) { + stringIndex.add(stringToBytes(string)); + } + return this.compileIndex(stringIndex); + } + compileCharStrings(charStrings) { + const charStringsIndex = new CFFIndex(); + for (let i = 0; i < charStrings.count; i++) { + const glyph = charStrings.get(i); + if (glyph.length === 0) { + charStringsIndex.add(new Uint8Array([0x8b, 0x0e])); + continue; + } + charStringsIndex.add(glyph); + } + return this.compileIndex(charStringsIndex); + } + compileCharset(charset, numGlyphs, strings, isCIDFont) { + let out; + const numGlyphsLessNotDef = numGlyphs - 1; + if (isCIDFont) { + out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]); + } else { + const length = 1 + numGlyphsLessNotDef * 2; + out = new Uint8Array(length); + out[0] = 0; + let charsetIndex = 0; + const numCharsets = charset.charset.length; + let warned = false; + for (let i = 1; i < out.length; i += 2) { + let sid = 0; + if (charsetIndex < numCharsets) { + const name = charset.charset[charsetIndex++]; + sid = strings.getSID(name); + if (sid === -1) { + sid = 0; + if (!warned) { + warned = true; + warn(`Couldn't find ${name} in CFF strings`); + } + } + } + out[i] = sid >> 8 & 0xff; + out[i + 1] = sid & 0xff; + } + } + return this.compileTypedArray(out); + } + compileEncoding(encoding) { + return this.compileTypedArray(encoding.raw); + } + compileFDSelect(fdSelect) { + const format = fdSelect.format; + let out, i; + switch (format) { + case 0: + out = new Uint8Array(1 + fdSelect.fdSelect.length); + out[0] = format; + for (i = 0; i < fdSelect.fdSelect.length; i++) { + out[i + 1] = fdSelect.fdSelect[i]; + } + break; + case 3: + const start = 0; + let lastFD = fdSelect.fdSelect[0]; + const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD]; + for (i = 1; i < fdSelect.fdSelect.length; i++) { + const currentFD = fdSelect.fdSelect[i]; + if (currentFD !== lastFD) { + ranges.push(i >> 8 & 0xff, i & 0xff, currentFD); + lastFD = currentFD; + } + } + const numRanges = (ranges.length - 3) / 3; + ranges[1] = numRanges >> 8 & 0xff; + ranges[2] = numRanges & 0xff; + ranges.push(i >> 8 & 0xff, i & 0xff); + out = new Uint8Array(ranges); + break; + } + return this.compileTypedArray(out); + } + compileTypedArray(data) { + return Array.from(data); + } + compileIndex(index, trackers = []) { + const objects = index.objects; + const count = objects.length; + if (count === 0) { + return [0, 0]; + } + const data = [count >> 8 & 0xff, count & 0xff]; + let lastOffset = 1, + i; + for (i = 0; i < count; ++i) { + lastOffset += objects[i].length; + } + let offsetSize; + if (lastOffset < 0x100) { + offsetSize = 1; + } else if (lastOffset < 0x10000) { + offsetSize = 2; + } else if (lastOffset < 0x1000000) { + offsetSize = 3; + } else { + offsetSize = 4; + } + data.push(offsetSize); + let relativeOffset = 1; + for (i = 0; i < count + 1; i++) { + if (offsetSize === 1) { + data.push(relativeOffset & 0xff); + } else if (offsetSize === 2) { + data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } else if (offsetSize === 3) { + data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } else { + data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff); + } + if (objects[i]) { + relativeOffset += objects[i].length; + } + } + for (i = 0; i < count; i++) { + if (trackers[i]) { + trackers[i].offset(data.length); + } + data.push(...objects[i]); + } + return data; + } +} + +;// ./src/core/glyphlist.js + +const getGlyphsUnicode = getLookupTableFactory(function (t) { + t.A = 0x0041; + t.AE = 0x00c6; + t.AEacute = 0x01fc; + t.AEmacron = 0x01e2; + t.AEsmall = 0xf7e6; + t.Aacute = 0x00c1; + t.Aacutesmall = 0xf7e1; + t.Abreve = 0x0102; + t.Abreveacute = 0x1eae; + t.Abrevecyrillic = 0x04d0; + t.Abrevedotbelow = 0x1eb6; + t.Abrevegrave = 0x1eb0; + t.Abrevehookabove = 0x1eb2; + t.Abrevetilde = 0x1eb4; + t.Acaron = 0x01cd; + t.Acircle = 0x24b6; + t.Acircumflex = 0x00c2; + t.Acircumflexacute = 0x1ea4; + t.Acircumflexdotbelow = 0x1eac; + t.Acircumflexgrave = 0x1ea6; + t.Acircumflexhookabove = 0x1ea8; + t.Acircumflexsmall = 0xf7e2; + t.Acircumflextilde = 0x1eaa; + t.Acute = 0xf6c9; + t.Acutesmall = 0xf7b4; + t.Acyrillic = 0x0410; + t.Adblgrave = 0x0200; + t.Adieresis = 0x00c4; + t.Adieresiscyrillic = 0x04d2; + t.Adieresismacron = 0x01de; + t.Adieresissmall = 0xf7e4; + t.Adotbelow = 0x1ea0; + t.Adotmacron = 0x01e0; + t.Agrave = 0x00c0; + t.Agravesmall = 0xf7e0; + t.Ahookabove = 0x1ea2; + t.Aiecyrillic = 0x04d4; + t.Ainvertedbreve = 0x0202; + t.Alpha = 0x0391; + t.Alphatonos = 0x0386; + t.Amacron = 0x0100; + t.Amonospace = 0xff21; + t.Aogonek = 0x0104; + t.Aring = 0x00c5; + t.Aringacute = 0x01fa; + t.Aringbelow = 0x1e00; + t.Aringsmall = 0xf7e5; + t.Asmall = 0xf761; + t.Atilde = 0x00c3; + t.Atildesmall = 0xf7e3; + t.Aybarmenian = 0x0531; + t.B = 0x0042; + t.Bcircle = 0x24b7; + t.Bdotaccent = 0x1e02; + t.Bdotbelow = 0x1e04; + t.Becyrillic = 0x0411; + t.Benarmenian = 0x0532; + t.Beta = 0x0392; + t.Bhook = 0x0181; + t.Blinebelow = 0x1e06; + t.Bmonospace = 0xff22; + t.Brevesmall = 0xf6f4; + t.Bsmall = 0xf762; + t.Btopbar = 0x0182; + t.C = 0x0043; + t.Caarmenian = 0x053e; + t.Cacute = 0x0106; + t.Caron = 0xf6ca; + t.Caronsmall = 0xf6f5; + t.Ccaron = 0x010c; + t.Ccedilla = 0x00c7; + t.Ccedillaacute = 0x1e08; + t.Ccedillasmall = 0xf7e7; + t.Ccircle = 0x24b8; + t.Ccircumflex = 0x0108; + t.Cdot = 0x010a; + t.Cdotaccent = 0x010a; + t.Cedillasmall = 0xf7b8; + t.Chaarmenian = 0x0549; + t.Cheabkhasiancyrillic = 0x04bc; + t.Checyrillic = 0x0427; + t.Chedescenderabkhasiancyrillic = 0x04be; + t.Chedescendercyrillic = 0x04b6; + t.Chedieresiscyrillic = 0x04f4; + t.Cheharmenian = 0x0543; + t.Chekhakassiancyrillic = 0x04cb; + t.Cheverticalstrokecyrillic = 0x04b8; + t.Chi = 0x03a7; + t.Chook = 0x0187; + t.Circumflexsmall = 0xf6f6; + t.Cmonospace = 0xff23; + t.Coarmenian = 0x0551; + t.Csmall = 0xf763; + t.D = 0x0044; + t.DZ = 0x01f1; + t.DZcaron = 0x01c4; + t.Daarmenian = 0x0534; + t.Dafrican = 0x0189; + t.Dcaron = 0x010e; + t.Dcedilla = 0x1e10; + t.Dcircle = 0x24b9; + t.Dcircumflexbelow = 0x1e12; + t.Dcroat = 0x0110; + t.Ddotaccent = 0x1e0a; + t.Ddotbelow = 0x1e0c; + t.Decyrillic = 0x0414; + t.Deicoptic = 0x03ee; + t.Delta = 0x2206; + t.Deltagreek = 0x0394; + t.Dhook = 0x018a; + t.Dieresis = 0xf6cb; + t.DieresisAcute = 0xf6cc; + t.DieresisGrave = 0xf6cd; + t.Dieresissmall = 0xf7a8; + t.Digammagreek = 0x03dc; + t.Djecyrillic = 0x0402; + t.Dlinebelow = 0x1e0e; + t.Dmonospace = 0xff24; + t.Dotaccentsmall = 0xf6f7; + t.Dslash = 0x0110; + t.Dsmall = 0xf764; + t.Dtopbar = 0x018b; + t.Dz = 0x01f2; + t.Dzcaron = 0x01c5; + t.Dzeabkhasiancyrillic = 0x04e0; + t.Dzecyrillic = 0x0405; + t.Dzhecyrillic = 0x040f; + t.E = 0x0045; + t.Eacute = 0x00c9; + t.Eacutesmall = 0xf7e9; + t.Ebreve = 0x0114; + t.Ecaron = 0x011a; + t.Ecedillabreve = 0x1e1c; + t.Echarmenian = 0x0535; + t.Ecircle = 0x24ba; + t.Ecircumflex = 0x00ca; + t.Ecircumflexacute = 0x1ebe; + t.Ecircumflexbelow = 0x1e18; + t.Ecircumflexdotbelow = 0x1ec6; + t.Ecircumflexgrave = 0x1ec0; + t.Ecircumflexhookabove = 0x1ec2; + t.Ecircumflexsmall = 0xf7ea; + t.Ecircumflextilde = 0x1ec4; + t.Ecyrillic = 0x0404; + t.Edblgrave = 0x0204; + t.Edieresis = 0x00cb; + t.Edieresissmall = 0xf7eb; + t.Edot = 0x0116; + t.Edotaccent = 0x0116; + t.Edotbelow = 0x1eb8; + t.Efcyrillic = 0x0424; + t.Egrave = 0x00c8; + t.Egravesmall = 0xf7e8; + t.Eharmenian = 0x0537; + t.Ehookabove = 0x1eba; + t.Eightroman = 0x2167; + t.Einvertedbreve = 0x0206; + t.Eiotifiedcyrillic = 0x0464; + t.Elcyrillic = 0x041b; + t.Elevenroman = 0x216a; + t.Emacron = 0x0112; + t.Emacronacute = 0x1e16; + t.Emacrongrave = 0x1e14; + t.Emcyrillic = 0x041c; + t.Emonospace = 0xff25; + t.Encyrillic = 0x041d; + t.Endescendercyrillic = 0x04a2; + t.Eng = 0x014a; + t.Enghecyrillic = 0x04a4; + t.Enhookcyrillic = 0x04c7; + t.Eogonek = 0x0118; + t.Eopen = 0x0190; + t.Epsilon = 0x0395; + t.Epsilontonos = 0x0388; + t.Ercyrillic = 0x0420; + t.Ereversed = 0x018e; + t.Ereversedcyrillic = 0x042d; + t.Escyrillic = 0x0421; + t.Esdescendercyrillic = 0x04aa; + t.Esh = 0x01a9; + t.Esmall = 0xf765; + t.Eta = 0x0397; + t.Etarmenian = 0x0538; + t.Etatonos = 0x0389; + t.Eth = 0x00d0; + t.Ethsmall = 0xf7f0; + t.Etilde = 0x1ebc; + t.Etildebelow = 0x1e1a; + t.Euro = 0x20ac; + t.Ezh = 0x01b7; + t.Ezhcaron = 0x01ee; + t.Ezhreversed = 0x01b8; + t.F = 0x0046; + t.Fcircle = 0x24bb; + t.Fdotaccent = 0x1e1e; + t.Feharmenian = 0x0556; + t.Feicoptic = 0x03e4; + t.Fhook = 0x0191; + t.Fitacyrillic = 0x0472; + t.Fiveroman = 0x2164; + t.Fmonospace = 0xff26; + t.Fourroman = 0x2163; + t.Fsmall = 0xf766; + t.G = 0x0047; + t.GBsquare = 0x3387; + t.Gacute = 0x01f4; + t.Gamma = 0x0393; + t.Gammaafrican = 0x0194; + t.Gangiacoptic = 0x03ea; + t.Gbreve = 0x011e; + t.Gcaron = 0x01e6; + t.Gcedilla = 0x0122; + t.Gcircle = 0x24bc; + t.Gcircumflex = 0x011c; + t.Gcommaaccent = 0x0122; + t.Gdot = 0x0120; + t.Gdotaccent = 0x0120; + t.Gecyrillic = 0x0413; + t.Ghadarmenian = 0x0542; + t.Ghemiddlehookcyrillic = 0x0494; + t.Ghestrokecyrillic = 0x0492; + t.Gheupturncyrillic = 0x0490; + t.Ghook = 0x0193; + t.Gimarmenian = 0x0533; + t.Gjecyrillic = 0x0403; + t.Gmacron = 0x1e20; + t.Gmonospace = 0xff27; + t.Grave = 0xf6ce; + t.Gravesmall = 0xf760; + t.Gsmall = 0xf767; + t.Gsmallhook = 0x029b; + t.Gstroke = 0x01e4; + t.H = 0x0048; + t.H18533 = 0x25cf; + t.H18543 = 0x25aa; + t.H18551 = 0x25ab; + t.H22073 = 0x25a1; + t.HPsquare = 0x33cb; + t.Haabkhasiancyrillic = 0x04a8; + t.Hadescendercyrillic = 0x04b2; + t.Hardsigncyrillic = 0x042a; + t.Hbar = 0x0126; + t.Hbrevebelow = 0x1e2a; + t.Hcedilla = 0x1e28; + t.Hcircle = 0x24bd; + t.Hcircumflex = 0x0124; + t.Hdieresis = 0x1e26; + t.Hdotaccent = 0x1e22; + t.Hdotbelow = 0x1e24; + t.Hmonospace = 0xff28; + t.Hoarmenian = 0x0540; + t.Horicoptic = 0x03e8; + t.Hsmall = 0xf768; + t.Hungarumlaut = 0xf6cf; + t.Hungarumlautsmall = 0xf6f8; + t.Hzsquare = 0x3390; + t.I = 0x0049; + t.IAcyrillic = 0x042f; + t.IJ = 0x0132; + t.IUcyrillic = 0x042e; + t.Iacute = 0x00cd; + t.Iacutesmall = 0xf7ed; + t.Ibreve = 0x012c; + t.Icaron = 0x01cf; + t.Icircle = 0x24be; + t.Icircumflex = 0x00ce; + t.Icircumflexsmall = 0xf7ee; + t.Icyrillic = 0x0406; + t.Idblgrave = 0x0208; + t.Idieresis = 0x00cf; + t.Idieresisacute = 0x1e2e; + t.Idieresiscyrillic = 0x04e4; + t.Idieresissmall = 0xf7ef; + t.Idot = 0x0130; + t.Idotaccent = 0x0130; + t.Idotbelow = 0x1eca; + t.Iebrevecyrillic = 0x04d6; + t.Iecyrillic = 0x0415; + t.Ifraktur = 0x2111; + t.Igrave = 0x00cc; + t.Igravesmall = 0xf7ec; + t.Ihookabove = 0x1ec8; + t.Iicyrillic = 0x0418; + t.Iinvertedbreve = 0x020a; + t.Iishortcyrillic = 0x0419; + t.Imacron = 0x012a; + t.Imacroncyrillic = 0x04e2; + t.Imonospace = 0xff29; + t.Iniarmenian = 0x053b; + t.Iocyrillic = 0x0401; + t.Iogonek = 0x012e; + t.Iota = 0x0399; + t.Iotaafrican = 0x0196; + t.Iotadieresis = 0x03aa; + t.Iotatonos = 0x038a; + t.Ismall = 0xf769; + t.Istroke = 0x0197; + t.Itilde = 0x0128; + t.Itildebelow = 0x1e2c; + t.Izhitsacyrillic = 0x0474; + t.Izhitsadblgravecyrillic = 0x0476; + t.J = 0x004a; + t.Jaarmenian = 0x0541; + t.Jcircle = 0x24bf; + t.Jcircumflex = 0x0134; + t.Jecyrillic = 0x0408; + t.Jheharmenian = 0x054b; + t.Jmonospace = 0xff2a; + t.Jsmall = 0xf76a; + t.K = 0x004b; + t.KBsquare = 0x3385; + t.KKsquare = 0x33cd; + t.Kabashkircyrillic = 0x04a0; + t.Kacute = 0x1e30; + t.Kacyrillic = 0x041a; + t.Kadescendercyrillic = 0x049a; + t.Kahookcyrillic = 0x04c3; + t.Kappa = 0x039a; + t.Kastrokecyrillic = 0x049e; + t.Kaverticalstrokecyrillic = 0x049c; + t.Kcaron = 0x01e8; + t.Kcedilla = 0x0136; + t.Kcircle = 0x24c0; + t.Kcommaaccent = 0x0136; + t.Kdotbelow = 0x1e32; + t.Keharmenian = 0x0554; + t.Kenarmenian = 0x053f; + t.Khacyrillic = 0x0425; + t.Kheicoptic = 0x03e6; + t.Khook = 0x0198; + t.Kjecyrillic = 0x040c; + t.Klinebelow = 0x1e34; + t.Kmonospace = 0xff2b; + t.Koppacyrillic = 0x0480; + t.Koppagreek = 0x03de; + t.Ksicyrillic = 0x046e; + t.Ksmall = 0xf76b; + t.L = 0x004c; + t.LJ = 0x01c7; + t.LL = 0xf6bf; + t.Lacute = 0x0139; + t.Lambda = 0x039b; + t.Lcaron = 0x013d; + t.Lcedilla = 0x013b; + t.Lcircle = 0x24c1; + t.Lcircumflexbelow = 0x1e3c; + t.Lcommaaccent = 0x013b; + t.Ldot = 0x013f; + t.Ldotaccent = 0x013f; + t.Ldotbelow = 0x1e36; + t.Ldotbelowmacron = 0x1e38; + t.Liwnarmenian = 0x053c; + t.Lj = 0x01c8; + t.Ljecyrillic = 0x0409; + t.Llinebelow = 0x1e3a; + t.Lmonospace = 0xff2c; + t.Lslash = 0x0141; + t.Lslashsmall = 0xf6f9; + t.Lsmall = 0xf76c; + t.M = 0x004d; + t.MBsquare = 0x3386; + t.Macron = 0xf6d0; + t.Macronsmall = 0xf7af; + t.Macute = 0x1e3e; + t.Mcircle = 0x24c2; + t.Mdotaccent = 0x1e40; + t.Mdotbelow = 0x1e42; + t.Menarmenian = 0x0544; + t.Mmonospace = 0xff2d; + t.Msmall = 0xf76d; + t.Mturned = 0x019c; + t.Mu = 0x039c; + t.N = 0x004e; + t.NJ = 0x01ca; + t.Nacute = 0x0143; + t.Ncaron = 0x0147; + t.Ncedilla = 0x0145; + t.Ncircle = 0x24c3; + t.Ncircumflexbelow = 0x1e4a; + t.Ncommaaccent = 0x0145; + t.Ndotaccent = 0x1e44; + t.Ndotbelow = 0x1e46; + t.Nhookleft = 0x019d; + t.Nineroman = 0x2168; + t.Nj = 0x01cb; + t.Njecyrillic = 0x040a; + t.Nlinebelow = 0x1e48; + t.Nmonospace = 0xff2e; + t.Nowarmenian = 0x0546; + t.Nsmall = 0xf76e; + t.Ntilde = 0x00d1; + t.Ntildesmall = 0xf7f1; + t.Nu = 0x039d; + t.O = 0x004f; + t.OE = 0x0152; + t.OEsmall = 0xf6fa; + t.Oacute = 0x00d3; + t.Oacutesmall = 0xf7f3; + t.Obarredcyrillic = 0x04e8; + t.Obarreddieresiscyrillic = 0x04ea; + t.Obreve = 0x014e; + t.Ocaron = 0x01d1; + t.Ocenteredtilde = 0x019f; + t.Ocircle = 0x24c4; + t.Ocircumflex = 0x00d4; + t.Ocircumflexacute = 0x1ed0; + t.Ocircumflexdotbelow = 0x1ed8; + t.Ocircumflexgrave = 0x1ed2; + t.Ocircumflexhookabove = 0x1ed4; + t.Ocircumflexsmall = 0xf7f4; + t.Ocircumflextilde = 0x1ed6; + t.Ocyrillic = 0x041e; + t.Odblacute = 0x0150; + t.Odblgrave = 0x020c; + t.Odieresis = 0x00d6; + t.Odieresiscyrillic = 0x04e6; + t.Odieresissmall = 0xf7f6; + t.Odotbelow = 0x1ecc; + t.Ogoneksmall = 0xf6fb; + t.Ograve = 0x00d2; + t.Ogravesmall = 0xf7f2; + t.Oharmenian = 0x0555; + t.Ohm = 0x2126; + t.Ohookabove = 0x1ece; + t.Ohorn = 0x01a0; + t.Ohornacute = 0x1eda; + t.Ohorndotbelow = 0x1ee2; + t.Ohorngrave = 0x1edc; + t.Ohornhookabove = 0x1ede; + t.Ohorntilde = 0x1ee0; + t.Ohungarumlaut = 0x0150; + t.Oi = 0x01a2; + t.Oinvertedbreve = 0x020e; + t.Omacron = 0x014c; + t.Omacronacute = 0x1e52; + t.Omacrongrave = 0x1e50; + t.Omega = 0x2126; + t.Omegacyrillic = 0x0460; + t.Omegagreek = 0x03a9; + t.Omegaroundcyrillic = 0x047a; + t.Omegatitlocyrillic = 0x047c; + t.Omegatonos = 0x038f; + t.Omicron = 0x039f; + t.Omicrontonos = 0x038c; + t.Omonospace = 0xff2f; + t.Oneroman = 0x2160; + t.Oogonek = 0x01ea; + t.Oogonekmacron = 0x01ec; + t.Oopen = 0x0186; + t.Oslash = 0x00d8; + t.Oslashacute = 0x01fe; + t.Oslashsmall = 0xf7f8; + t.Osmall = 0xf76f; + t.Ostrokeacute = 0x01fe; + t.Otcyrillic = 0x047e; + t.Otilde = 0x00d5; + t.Otildeacute = 0x1e4c; + t.Otildedieresis = 0x1e4e; + t.Otildesmall = 0xf7f5; + t.P = 0x0050; + t.Pacute = 0x1e54; + t.Pcircle = 0x24c5; + t.Pdotaccent = 0x1e56; + t.Pecyrillic = 0x041f; + t.Peharmenian = 0x054a; + t.Pemiddlehookcyrillic = 0x04a6; + t.Phi = 0x03a6; + t.Phook = 0x01a4; + t.Pi = 0x03a0; + t.Piwrarmenian = 0x0553; + t.Pmonospace = 0xff30; + t.Psi = 0x03a8; + t.Psicyrillic = 0x0470; + t.Psmall = 0xf770; + t.Q = 0x0051; + t.Qcircle = 0x24c6; + t.Qmonospace = 0xff31; + t.Qsmall = 0xf771; + t.R = 0x0052; + t.Raarmenian = 0x054c; + t.Racute = 0x0154; + t.Rcaron = 0x0158; + t.Rcedilla = 0x0156; + t.Rcircle = 0x24c7; + t.Rcommaaccent = 0x0156; + t.Rdblgrave = 0x0210; + t.Rdotaccent = 0x1e58; + t.Rdotbelow = 0x1e5a; + t.Rdotbelowmacron = 0x1e5c; + t.Reharmenian = 0x0550; + t.Rfraktur = 0x211c; + t.Rho = 0x03a1; + t.Ringsmall = 0xf6fc; + t.Rinvertedbreve = 0x0212; + t.Rlinebelow = 0x1e5e; + t.Rmonospace = 0xff32; + t.Rsmall = 0xf772; + t.Rsmallinverted = 0x0281; + t.Rsmallinvertedsuperior = 0x02b6; + t.S = 0x0053; + t.SF010000 = 0x250c; + t.SF020000 = 0x2514; + t.SF030000 = 0x2510; + t.SF040000 = 0x2518; + t.SF050000 = 0x253c; + t.SF060000 = 0x252c; + t.SF070000 = 0x2534; + t.SF080000 = 0x251c; + t.SF090000 = 0x2524; + t.SF100000 = 0x2500; + t.SF110000 = 0x2502; + t.SF190000 = 0x2561; + t.SF200000 = 0x2562; + t.SF210000 = 0x2556; + t.SF220000 = 0x2555; + t.SF230000 = 0x2563; + t.SF240000 = 0x2551; + t.SF250000 = 0x2557; + t.SF260000 = 0x255d; + t.SF270000 = 0x255c; + t.SF280000 = 0x255b; + t.SF360000 = 0x255e; + t.SF370000 = 0x255f; + t.SF380000 = 0x255a; + t.SF390000 = 0x2554; + t.SF400000 = 0x2569; + t.SF410000 = 0x2566; + t.SF420000 = 0x2560; + t.SF430000 = 0x2550; + t.SF440000 = 0x256c; + t.SF450000 = 0x2567; + t.SF460000 = 0x2568; + t.SF470000 = 0x2564; + t.SF480000 = 0x2565; + t.SF490000 = 0x2559; + t.SF500000 = 0x2558; + t.SF510000 = 0x2552; + t.SF520000 = 0x2553; + t.SF530000 = 0x256b; + t.SF540000 = 0x256a; + t.Sacute = 0x015a; + t.Sacutedotaccent = 0x1e64; + t.Sampigreek = 0x03e0; + t.Scaron = 0x0160; + t.Scarondotaccent = 0x1e66; + t.Scaronsmall = 0xf6fd; + t.Scedilla = 0x015e; + t.Schwa = 0x018f; + t.Schwacyrillic = 0x04d8; + t.Schwadieresiscyrillic = 0x04da; + t.Scircle = 0x24c8; + t.Scircumflex = 0x015c; + t.Scommaaccent = 0x0218; + t.Sdotaccent = 0x1e60; + t.Sdotbelow = 0x1e62; + t.Sdotbelowdotaccent = 0x1e68; + t.Seharmenian = 0x054d; + t.Sevenroman = 0x2166; + t.Shaarmenian = 0x0547; + t.Shacyrillic = 0x0428; + t.Shchacyrillic = 0x0429; + t.Sheicoptic = 0x03e2; + t.Shhacyrillic = 0x04ba; + t.Shimacoptic = 0x03ec; + t.Sigma = 0x03a3; + t.Sixroman = 0x2165; + t.Smonospace = 0xff33; + t.Softsigncyrillic = 0x042c; + t.Ssmall = 0xf773; + t.Stigmagreek = 0x03da; + t.T = 0x0054; + t.Tau = 0x03a4; + t.Tbar = 0x0166; + t.Tcaron = 0x0164; + t.Tcedilla = 0x0162; + t.Tcircle = 0x24c9; + t.Tcircumflexbelow = 0x1e70; + t.Tcommaaccent = 0x0162; + t.Tdotaccent = 0x1e6a; + t.Tdotbelow = 0x1e6c; + t.Tecyrillic = 0x0422; + t.Tedescendercyrillic = 0x04ac; + t.Tenroman = 0x2169; + t.Tetsecyrillic = 0x04b4; + t.Theta = 0x0398; + t.Thook = 0x01ac; + t.Thorn = 0x00de; + t.Thornsmall = 0xf7fe; + t.Threeroman = 0x2162; + t.Tildesmall = 0xf6fe; + t.Tiwnarmenian = 0x054f; + t.Tlinebelow = 0x1e6e; + t.Tmonospace = 0xff34; + t.Toarmenian = 0x0539; + t.Tonefive = 0x01bc; + t.Tonesix = 0x0184; + t.Tonetwo = 0x01a7; + t.Tretroflexhook = 0x01ae; + t.Tsecyrillic = 0x0426; + t.Tshecyrillic = 0x040b; + t.Tsmall = 0xf774; + t.Twelveroman = 0x216b; + t.Tworoman = 0x2161; + t.U = 0x0055; + t.Uacute = 0x00da; + t.Uacutesmall = 0xf7fa; + t.Ubreve = 0x016c; + t.Ucaron = 0x01d3; + t.Ucircle = 0x24ca; + t.Ucircumflex = 0x00db; + t.Ucircumflexbelow = 0x1e76; + t.Ucircumflexsmall = 0xf7fb; + t.Ucyrillic = 0x0423; + t.Udblacute = 0x0170; + t.Udblgrave = 0x0214; + t.Udieresis = 0x00dc; + t.Udieresisacute = 0x01d7; + t.Udieresisbelow = 0x1e72; + t.Udieresiscaron = 0x01d9; + t.Udieresiscyrillic = 0x04f0; + t.Udieresisgrave = 0x01db; + t.Udieresismacron = 0x01d5; + t.Udieresissmall = 0xf7fc; + t.Udotbelow = 0x1ee4; + t.Ugrave = 0x00d9; + t.Ugravesmall = 0xf7f9; + t.Uhookabove = 0x1ee6; + t.Uhorn = 0x01af; + t.Uhornacute = 0x1ee8; + t.Uhorndotbelow = 0x1ef0; + t.Uhorngrave = 0x1eea; + t.Uhornhookabove = 0x1eec; + t.Uhorntilde = 0x1eee; + t.Uhungarumlaut = 0x0170; + t.Uhungarumlautcyrillic = 0x04f2; + t.Uinvertedbreve = 0x0216; + t.Ukcyrillic = 0x0478; + t.Umacron = 0x016a; + t.Umacroncyrillic = 0x04ee; + t.Umacrondieresis = 0x1e7a; + t.Umonospace = 0xff35; + t.Uogonek = 0x0172; + t.Upsilon = 0x03a5; + t.Upsilon1 = 0x03d2; + t.Upsilonacutehooksymbolgreek = 0x03d3; + t.Upsilonafrican = 0x01b1; + t.Upsilondieresis = 0x03ab; + t.Upsilondieresishooksymbolgreek = 0x03d4; + t.Upsilonhooksymbol = 0x03d2; + t.Upsilontonos = 0x038e; + t.Uring = 0x016e; + t.Ushortcyrillic = 0x040e; + t.Usmall = 0xf775; + t.Ustraightcyrillic = 0x04ae; + t.Ustraightstrokecyrillic = 0x04b0; + t.Utilde = 0x0168; + t.Utildeacute = 0x1e78; + t.Utildebelow = 0x1e74; + t.V = 0x0056; + t.Vcircle = 0x24cb; + t.Vdotbelow = 0x1e7e; + t.Vecyrillic = 0x0412; + t.Vewarmenian = 0x054e; + t.Vhook = 0x01b2; + t.Vmonospace = 0xff36; + t.Voarmenian = 0x0548; + t.Vsmall = 0xf776; + t.Vtilde = 0x1e7c; + t.W = 0x0057; + t.Wacute = 0x1e82; + t.Wcircle = 0x24cc; + t.Wcircumflex = 0x0174; + t.Wdieresis = 0x1e84; + t.Wdotaccent = 0x1e86; + t.Wdotbelow = 0x1e88; + t.Wgrave = 0x1e80; + t.Wmonospace = 0xff37; + t.Wsmall = 0xf777; + t.X = 0x0058; + t.Xcircle = 0x24cd; + t.Xdieresis = 0x1e8c; + t.Xdotaccent = 0x1e8a; + t.Xeharmenian = 0x053d; + t.Xi = 0x039e; + t.Xmonospace = 0xff38; + t.Xsmall = 0xf778; + t.Y = 0x0059; + t.Yacute = 0x00dd; + t.Yacutesmall = 0xf7fd; + t.Yatcyrillic = 0x0462; + t.Ycircle = 0x24ce; + t.Ycircumflex = 0x0176; + t.Ydieresis = 0x0178; + t.Ydieresissmall = 0xf7ff; + t.Ydotaccent = 0x1e8e; + t.Ydotbelow = 0x1ef4; + t.Yericyrillic = 0x042b; + t.Yerudieresiscyrillic = 0x04f8; + t.Ygrave = 0x1ef2; + t.Yhook = 0x01b3; + t.Yhookabove = 0x1ef6; + t.Yiarmenian = 0x0545; + t.Yicyrillic = 0x0407; + t.Yiwnarmenian = 0x0552; + t.Ymonospace = 0xff39; + t.Ysmall = 0xf779; + t.Ytilde = 0x1ef8; + t.Yusbigcyrillic = 0x046a; + t.Yusbigiotifiedcyrillic = 0x046c; + t.Yuslittlecyrillic = 0x0466; + t.Yuslittleiotifiedcyrillic = 0x0468; + t.Z = 0x005a; + t.Zaarmenian = 0x0536; + t.Zacute = 0x0179; + t.Zcaron = 0x017d; + t.Zcaronsmall = 0xf6ff; + t.Zcircle = 0x24cf; + t.Zcircumflex = 0x1e90; + t.Zdot = 0x017b; + t.Zdotaccent = 0x017b; + t.Zdotbelow = 0x1e92; + t.Zecyrillic = 0x0417; + t.Zedescendercyrillic = 0x0498; + t.Zedieresiscyrillic = 0x04de; + t.Zeta = 0x0396; + t.Zhearmenian = 0x053a; + t.Zhebrevecyrillic = 0x04c1; + t.Zhecyrillic = 0x0416; + t.Zhedescendercyrillic = 0x0496; + t.Zhedieresiscyrillic = 0x04dc; + t.Zlinebelow = 0x1e94; + t.Zmonospace = 0xff3a; + t.Zsmall = 0xf77a; + t.Zstroke = 0x01b5; + t.a = 0x0061; + t.aabengali = 0x0986; + t.aacute = 0x00e1; + t.aadeva = 0x0906; + t.aagujarati = 0x0a86; + t.aagurmukhi = 0x0a06; + t.aamatragurmukhi = 0x0a3e; + t.aarusquare = 0x3303; + t.aavowelsignbengali = 0x09be; + t.aavowelsigndeva = 0x093e; + t.aavowelsigngujarati = 0x0abe; + t.abbreviationmarkarmenian = 0x055f; + t.abbreviationsigndeva = 0x0970; + t.abengali = 0x0985; + t.abopomofo = 0x311a; + t.abreve = 0x0103; + t.abreveacute = 0x1eaf; + t.abrevecyrillic = 0x04d1; + t.abrevedotbelow = 0x1eb7; + t.abrevegrave = 0x1eb1; + t.abrevehookabove = 0x1eb3; + t.abrevetilde = 0x1eb5; + t.acaron = 0x01ce; + t.acircle = 0x24d0; + t.acircumflex = 0x00e2; + t.acircumflexacute = 0x1ea5; + t.acircumflexdotbelow = 0x1ead; + t.acircumflexgrave = 0x1ea7; + t.acircumflexhookabove = 0x1ea9; + t.acircumflextilde = 0x1eab; + t.acute = 0x00b4; + t.acutebelowcmb = 0x0317; + t.acutecmb = 0x0301; + t.acutecomb = 0x0301; + t.acutedeva = 0x0954; + t.acutelowmod = 0x02cf; + t.acutetonecmb = 0x0341; + t.acyrillic = 0x0430; + t.adblgrave = 0x0201; + t.addakgurmukhi = 0x0a71; + t.adeva = 0x0905; + t.adieresis = 0x00e4; + t.adieresiscyrillic = 0x04d3; + t.adieresismacron = 0x01df; + t.adotbelow = 0x1ea1; + t.adotmacron = 0x01e1; + t.ae = 0x00e6; + t.aeacute = 0x01fd; + t.aekorean = 0x3150; + t.aemacron = 0x01e3; + t.afii00208 = 0x2015; + t.afii08941 = 0x20a4; + t.afii10017 = 0x0410; + t.afii10018 = 0x0411; + t.afii10019 = 0x0412; + t.afii10020 = 0x0413; + t.afii10021 = 0x0414; + t.afii10022 = 0x0415; + t.afii10023 = 0x0401; + t.afii10024 = 0x0416; + t.afii10025 = 0x0417; + t.afii10026 = 0x0418; + t.afii10027 = 0x0419; + t.afii10028 = 0x041a; + t.afii10029 = 0x041b; + t.afii10030 = 0x041c; + t.afii10031 = 0x041d; + t.afii10032 = 0x041e; + t.afii10033 = 0x041f; + t.afii10034 = 0x0420; + t.afii10035 = 0x0421; + t.afii10036 = 0x0422; + t.afii10037 = 0x0423; + t.afii10038 = 0x0424; + t.afii10039 = 0x0425; + t.afii10040 = 0x0426; + t.afii10041 = 0x0427; + t.afii10042 = 0x0428; + t.afii10043 = 0x0429; + t.afii10044 = 0x042a; + t.afii10045 = 0x042b; + t.afii10046 = 0x042c; + t.afii10047 = 0x042d; + t.afii10048 = 0x042e; + t.afii10049 = 0x042f; + t.afii10050 = 0x0490; + t.afii10051 = 0x0402; + t.afii10052 = 0x0403; + t.afii10053 = 0x0404; + t.afii10054 = 0x0405; + t.afii10055 = 0x0406; + t.afii10056 = 0x0407; + t.afii10057 = 0x0408; + t.afii10058 = 0x0409; + t.afii10059 = 0x040a; + t.afii10060 = 0x040b; + t.afii10061 = 0x040c; + t.afii10062 = 0x040e; + t.afii10063 = 0xf6c4; + t.afii10064 = 0xf6c5; + t.afii10065 = 0x0430; + t.afii10066 = 0x0431; + t.afii10067 = 0x0432; + t.afii10068 = 0x0433; + t.afii10069 = 0x0434; + t.afii10070 = 0x0435; + t.afii10071 = 0x0451; + t.afii10072 = 0x0436; + t.afii10073 = 0x0437; + t.afii10074 = 0x0438; + t.afii10075 = 0x0439; + t.afii10076 = 0x043a; + t.afii10077 = 0x043b; + t.afii10078 = 0x043c; + t.afii10079 = 0x043d; + t.afii10080 = 0x043e; + t.afii10081 = 0x043f; + t.afii10082 = 0x0440; + t.afii10083 = 0x0441; + t.afii10084 = 0x0442; + t.afii10085 = 0x0443; + t.afii10086 = 0x0444; + t.afii10087 = 0x0445; + t.afii10088 = 0x0446; + t.afii10089 = 0x0447; + t.afii10090 = 0x0448; + t.afii10091 = 0x0449; + t.afii10092 = 0x044a; + t.afii10093 = 0x044b; + t.afii10094 = 0x044c; + t.afii10095 = 0x044d; + t.afii10096 = 0x044e; + t.afii10097 = 0x044f; + t.afii10098 = 0x0491; + t.afii10099 = 0x0452; + t.afii10100 = 0x0453; + t.afii10101 = 0x0454; + t.afii10102 = 0x0455; + t.afii10103 = 0x0456; + t.afii10104 = 0x0457; + t.afii10105 = 0x0458; + t.afii10106 = 0x0459; + t.afii10107 = 0x045a; + t.afii10108 = 0x045b; + t.afii10109 = 0x045c; + t.afii10110 = 0x045e; + t.afii10145 = 0x040f; + t.afii10146 = 0x0462; + t.afii10147 = 0x0472; + t.afii10148 = 0x0474; + t.afii10192 = 0xf6c6; + t.afii10193 = 0x045f; + t.afii10194 = 0x0463; + t.afii10195 = 0x0473; + t.afii10196 = 0x0475; + t.afii10831 = 0xf6c7; + t.afii10832 = 0xf6c8; + t.afii10846 = 0x04d9; + t.afii299 = 0x200e; + t.afii300 = 0x200f; + t.afii301 = 0x200d; + t.afii57381 = 0x066a; + t.afii57388 = 0x060c; + t.afii57392 = 0x0660; + t.afii57393 = 0x0661; + t.afii57394 = 0x0662; + t.afii57395 = 0x0663; + t.afii57396 = 0x0664; + t.afii57397 = 0x0665; + t.afii57398 = 0x0666; + t.afii57399 = 0x0667; + t.afii57400 = 0x0668; + t.afii57401 = 0x0669; + t.afii57403 = 0x061b; + t.afii57407 = 0x061f; + t.afii57409 = 0x0621; + t.afii57410 = 0x0622; + t.afii57411 = 0x0623; + t.afii57412 = 0x0624; + t.afii57413 = 0x0625; + t.afii57414 = 0x0626; + t.afii57415 = 0x0627; + t.afii57416 = 0x0628; + t.afii57417 = 0x0629; + t.afii57418 = 0x062a; + t.afii57419 = 0x062b; + t.afii57420 = 0x062c; + t.afii57421 = 0x062d; + t.afii57422 = 0x062e; + t.afii57423 = 0x062f; + t.afii57424 = 0x0630; + t.afii57425 = 0x0631; + t.afii57426 = 0x0632; + t.afii57427 = 0x0633; + t.afii57428 = 0x0634; + t.afii57429 = 0x0635; + t.afii57430 = 0x0636; + t.afii57431 = 0x0637; + t.afii57432 = 0x0638; + t.afii57433 = 0x0639; + t.afii57434 = 0x063a; + t.afii57440 = 0x0640; + t.afii57441 = 0x0641; + t.afii57442 = 0x0642; + t.afii57443 = 0x0643; + t.afii57444 = 0x0644; + t.afii57445 = 0x0645; + t.afii57446 = 0x0646; + t.afii57448 = 0x0648; + t.afii57449 = 0x0649; + t.afii57450 = 0x064a; + t.afii57451 = 0x064b; + t.afii57452 = 0x064c; + t.afii57453 = 0x064d; + t.afii57454 = 0x064e; + t.afii57455 = 0x064f; + t.afii57456 = 0x0650; + t.afii57457 = 0x0651; + t.afii57458 = 0x0652; + t.afii57470 = 0x0647; + t.afii57505 = 0x06a4; + t.afii57506 = 0x067e; + t.afii57507 = 0x0686; + t.afii57508 = 0x0698; + t.afii57509 = 0x06af; + t.afii57511 = 0x0679; + t.afii57512 = 0x0688; + t.afii57513 = 0x0691; + t.afii57514 = 0x06ba; + t.afii57519 = 0x06d2; + t.afii57534 = 0x06d5; + t.afii57636 = 0x20aa; + t.afii57645 = 0x05be; + t.afii57658 = 0x05c3; + t.afii57664 = 0x05d0; + t.afii57665 = 0x05d1; + t.afii57666 = 0x05d2; + t.afii57667 = 0x05d3; + t.afii57668 = 0x05d4; + t.afii57669 = 0x05d5; + t.afii57670 = 0x05d6; + t.afii57671 = 0x05d7; + t.afii57672 = 0x05d8; + t.afii57673 = 0x05d9; + t.afii57674 = 0x05da; + t.afii57675 = 0x05db; + t.afii57676 = 0x05dc; + t.afii57677 = 0x05dd; + t.afii57678 = 0x05de; + t.afii57679 = 0x05df; + t.afii57680 = 0x05e0; + t.afii57681 = 0x05e1; + t.afii57682 = 0x05e2; + t.afii57683 = 0x05e3; + t.afii57684 = 0x05e4; + t.afii57685 = 0x05e5; + t.afii57686 = 0x05e6; + t.afii57687 = 0x05e7; + t.afii57688 = 0x05e8; + t.afii57689 = 0x05e9; + t.afii57690 = 0x05ea; + t.afii57694 = 0xfb2a; + t.afii57695 = 0xfb2b; + t.afii57700 = 0xfb4b; + t.afii57705 = 0xfb1f; + t.afii57716 = 0x05f0; + t.afii57717 = 0x05f1; + t.afii57718 = 0x05f2; + t.afii57723 = 0xfb35; + t.afii57793 = 0x05b4; + t.afii57794 = 0x05b5; + t.afii57795 = 0x05b6; + t.afii57796 = 0x05bb; + t.afii57797 = 0x05b8; + t.afii57798 = 0x05b7; + t.afii57799 = 0x05b0; + t.afii57800 = 0x05b2; + t.afii57801 = 0x05b1; + t.afii57802 = 0x05b3; + t.afii57803 = 0x05c2; + t.afii57804 = 0x05c1; + t.afii57806 = 0x05b9; + t.afii57807 = 0x05bc; + t.afii57839 = 0x05bd; + t.afii57841 = 0x05bf; + t.afii57842 = 0x05c0; + t.afii57929 = 0x02bc; + t.afii61248 = 0x2105; + t.afii61289 = 0x2113; + t.afii61352 = 0x2116; + t.afii61573 = 0x202c; + t.afii61574 = 0x202d; + t.afii61575 = 0x202e; + t.afii61664 = 0x200c; + t.afii63167 = 0x066d; + t.afii64937 = 0x02bd; + t.agrave = 0x00e0; + t.agujarati = 0x0a85; + t.agurmukhi = 0x0a05; + t.ahiragana = 0x3042; + t.ahookabove = 0x1ea3; + t.aibengali = 0x0990; + t.aibopomofo = 0x311e; + t.aideva = 0x0910; + t.aiecyrillic = 0x04d5; + t.aigujarati = 0x0a90; + t.aigurmukhi = 0x0a10; + t.aimatragurmukhi = 0x0a48; + t.ainarabic = 0x0639; + t.ainfinalarabic = 0xfeca; + t.aininitialarabic = 0xfecb; + t.ainmedialarabic = 0xfecc; + t.ainvertedbreve = 0x0203; + t.aivowelsignbengali = 0x09c8; + t.aivowelsigndeva = 0x0948; + t.aivowelsigngujarati = 0x0ac8; + t.akatakana = 0x30a2; + t.akatakanahalfwidth = 0xff71; + t.akorean = 0x314f; + t.alef = 0x05d0; + t.alefarabic = 0x0627; + t.alefdageshhebrew = 0xfb30; + t.aleffinalarabic = 0xfe8e; + t.alefhamzaabovearabic = 0x0623; + t.alefhamzaabovefinalarabic = 0xfe84; + t.alefhamzabelowarabic = 0x0625; + t.alefhamzabelowfinalarabic = 0xfe88; + t.alefhebrew = 0x05d0; + t.aleflamedhebrew = 0xfb4f; + t.alefmaddaabovearabic = 0x0622; + t.alefmaddaabovefinalarabic = 0xfe82; + t.alefmaksuraarabic = 0x0649; + t.alefmaksurafinalarabic = 0xfef0; + t.alefmaksurainitialarabic = 0xfef3; + t.alefmaksuramedialarabic = 0xfef4; + t.alefpatahhebrew = 0xfb2e; + t.alefqamatshebrew = 0xfb2f; + t.aleph = 0x2135; + t.allequal = 0x224c; + t.alpha = 0x03b1; + t.alphatonos = 0x03ac; + t.amacron = 0x0101; + t.amonospace = 0xff41; + t.ampersand = 0x0026; + t.ampersandmonospace = 0xff06; + t.ampersandsmall = 0xf726; + t.amsquare = 0x33c2; + t.anbopomofo = 0x3122; + t.angbopomofo = 0x3124; + t.angbracketleft = 0x3008; + t.angbracketright = 0x3009; + t.angkhankhuthai = 0x0e5a; + t.angle = 0x2220; + t.anglebracketleft = 0x3008; + t.anglebracketleftvertical = 0xfe3f; + t.anglebracketright = 0x3009; + t.anglebracketrightvertical = 0xfe40; + t.angleleft = 0x2329; + t.angleright = 0x232a; + t.angstrom = 0x212b; + t.anoteleia = 0x0387; + t.anudattadeva = 0x0952; + t.anusvarabengali = 0x0982; + t.anusvaradeva = 0x0902; + t.anusvaragujarati = 0x0a82; + t.aogonek = 0x0105; + t.apaatosquare = 0x3300; + t.aparen = 0x249c; + t.apostrophearmenian = 0x055a; + t.apostrophemod = 0x02bc; + t.apple = 0xf8ff; + t.approaches = 0x2250; + t.approxequal = 0x2248; + t.approxequalorimage = 0x2252; + t.approximatelyequal = 0x2245; + t.araeaekorean = 0x318e; + t.araeakorean = 0x318d; + t.arc = 0x2312; + t.arighthalfring = 0x1e9a; + t.aring = 0x00e5; + t.aringacute = 0x01fb; + t.aringbelow = 0x1e01; + t.arrowboth = 0x2194; + t.arrowdashdown = 0x21e3; + t.arrowdashleft = 0x21e0; + t.arrowdashright = 0x21e2; + t.arrowdashup = 0x21e1; + t.arrowdblboth = 0x21d4; + t.arrowdbldown = 0x21d3; + t.arrowdblleft = 0x21d0; + t.arrowdblright = 0x21d2; + t.arrowdblup = 0x21d1; + t.arrowdown = 0x2193; + t.arrowdownleft = 0x2199; + t.arrowdownright = 0x2198; + t.arrowdownwhite = 0x21e9; + t.arrowheaddownmod = 0x02c5; + t.arrowheadleftmod = 0x02c2; + t.arrowheadrightmod = 0x02c3; + t.arrowheadupmod = 0x02c4; + t.arrowhorizex = 0xf8e7; + t.arrowleft = 0x2190; + t.arrowleftdbl = 0x21d0; + t.arrowleftdblstroke = 0x21cd; + t.arrowleftoverright = 0x21c6; + t.arrowleftwhite = 0x21e6; + t.arrowright = 0x2192; + t.arrowrightdblstroke = 0x21cf; + t.arrowrightheavy = 0x279e; + t.arrowrightoverleft = 0x21c4; + t.arrowrightwhite = 0x21e8; + t.arrowtableft = 0x21e4; + t.arrowtabright = 0x21e5; + t.arrowup = 0x2191; + t.arrowupdn = 0x2195; + t.arrowupdnbse = 0x21a8; + t.arrowupdownbase = 0x21a8; + t.arrowupleft = 0x2196; + t.arrowupleftofdown = 0x21c5; + t.arrowupright = 0x2197; + t.arrowupwhite = 0x21e7; + t.arrowvertex = 0xf8e6; + t.asciicircum = 0x005e; + t.asciicircummonospace = 0xff3e; + t.asciitilde = 0x007e; + t.asciitildemonospace = 0xff5e; + t.ascript = 0x0251; + t.ascriptturned = 0x0252; + t.asmallhiragana = 0x3041; + t.asmallkatakana = 0x30a1; + t.asmallkatakanahalfwidth = 0xff67; + t.asterisk = 0x002a; + t.asteriskaltonearabic = 0x066d; + t.asteriskarabic = 0x066d; + t.asteriskmath = 0x2217; + t.asteriskmonospace = 0xff0a; + t.asterisksmall = 0xfe61; + t.asterism = 0x2042; + t.asuperior = 0xf6e9; + t.asymptoticallyequal = 0x2243; + t.at = 0x0040; + t.atilde = 0x00e3; + t.atmonospace = 0xff20; + t.atsmall = 0xfe6b; + t.aturned = 0x0250; + t.aubengali = 0x0994; + t.aubopomofo = 0x3120; + t.audeva = 0x0914; + t.augujarati = 0x0a94; + t.augurmukhi = 0x0a14; + t.aulengthmarkbengali = 0x09d7; + t.aumatragurmukhi = 0x0a4c; + t.auvowelsignbengali = 0x09cc; + t.auvowelsigndeva = 0x094c; + t.auvowelsigngujarati = 0x0acc; + t.avagrahadeva = 0x093d; + t.aybarmenian = 0x0561; + t.ayin = 0x05e2; + t.ayinaltonehebrew = 0xfb20; + t.ayinhebrew = 0x05e2; + t.b = 0x0062; + t.babengali = 0x09ac; + t.backslash = 0x005c; + t.backslashmonospace = 0xff3c; + t.badeva = 0x092c; + t.bagujarati = 0x0aac; + t.bagurmukhi = 0x0a2c; + t.bahiragana = 0x3070; + t.bahtthai = 0x0e3f; + t.bakatakana = 0x30d0; + t.bar = 0x007c; + t.barmonospace = 0xff5c; + t.bbopomofo = 0x3105; + t.bcircle = 0x24d1; + t.bdotaccent = 0x1e03; + t.bdotbelow = 0x1e05; + t.beamedsixteenthnotes = 0x266c; + t.because = 0x2235; + t.becyrillic = 0x0431; + t.beharabic = 0x0628; + t.behfinalarabic = 0xfe90; + t.behinitialarabic = 0xfe91; + t.behiragana = 0x3079; + t.behmedialarabic = 0xfe92; + t.behmeeminitialarabic = 0xfc9f; + t.behmeemisolatedarabic = 0xfc08; + t.behnoonfinalarabic = 0xfc6d; + t.bekatakana = 0x30d9; + t.benarmenian = 0x0562; + t.bet = 0x05d1; + t.beta = 0x03b2; + t.betasymbolgreek = 0x03d0; + t.betdagesh = 0xfb31; + t.betdageshhebrew = 0xfb31; + t.bethebrew = 0x05d1; + t.betrafehebrew = 0xfb4c; + t.bhabengali = 0x09ad; + t.bhadeva = 0x092d; + t.bhagujarati = 0x0aad; + t.bhagurmukhi = 0x0a2d; + t.bhook = 0x0253; + t.bihiragana = 0x3073; + t.bikatakana = 0x30d3; + t.bilabialclick = 0x0298; + t.bindigurmukhi = 0x0a02; + t.birusquare = 0x3331; + t.blackcircle = 0x25cf; + t.blackdiamond = 0x25c6; + t.blackdownpointingtriangle = 0x25bc; + t.blackleftpointingpointer = 0x25c4; + t.blackleftpointingtriangle = 0x25c0; + t.blacklenticularbracketleft = 0x3010; + t.blacklenticularbracketleftvertical = 0xfe3b; + t.blacklenticularbracketright = 0x3011; + t.blacklenticularbracketrightvertical = 0xfe3c; + t.blacklowerlefttriangle = 0x25e3; + t.blacklowerrighttriangle = 0x25e2; + t.blackrectangle = 0x25ac; + t.blackrightpointingpointer = 0x25ba; + t.blackrightpointingtriangle = 0x25b6; + t.blacksmallsquare = 0x25aa; + t.blacksmilingface = 0x263b; + t.blacksquare = 0x25a0; + t.blackstar = 0x2605; + t.blackupperlefttriangle = 0x25e4; + t.blackupperrighttriangle = 0x25e5; + t.blackuppointingsmalltriangle = 0x25b4; + t.blackuppointingtriangle = 0x25b2; + t.blank = 0x2423; + t.blinebelow = 0x1e07; + t.block = 0x2588; + t.bmonospace = 0xff42; + t.bobaimaithai = 0x0e1a; + t.bohiragana = 0x307c; + t.bokatakana = 0x30dc; + t.bparen = 0x249d; + t.bqsquare = 0x33c3; + t.braceex = 0xf8f4; + t.braceleft = 0x007b; + t.braceleftbt = 0xf8f3; + t.braceleftmid = 0xf8f2; + t.braceleftmonospace = 0xff5b; + t.braceleftsmall = 0xfe5b; + t.bracelefttp = 0xf8f1; + t.braceleftvertical = 0xfe37; + t.braceright = 0x007d; + t.bracerightbt = 0xf8fe; + t.bracerightmid = 0xf8fd; + t.bracerightmonospace = 0xff5d; + t.bracerightsmall = 0xfe5c; + t.bracerighttp = 0xf8fc; + t.bracerightvertical = 0xfe38; + t.bracketleft = 0x005b; + t.bracketleftbt = 0xf8f0; + t.bracketleftex = 0xf8ef; + t.bracketleftmonospace = 0xff3b; + t.bracketlefttp = 0xf8ee; + t.bracketright = 0x005d; + t.bracketrightbt = 0xf8fb; + t.bracketrightex = 0xf8fa; + t.bracketrightmonospace = 0xff3d; + t.bracketrighttp = 0xf8f9; + t.breve = 0x02d8; + t.brevebelowcmb = 0x032e; + t.brevecmb = 0x0306; + t.breveinvertedbelowcmb = 0x032f; + t.breveinvertedcmb = 0x0311; + t.breveinverteddoublecmb = 0x0361; + t.bridgebelowcmb = 0x032a; + t.bridgeinvertedbelowcmb = 0x033a; + t.brokenbar = 0x00a6; + t.bstroke = 0x0180; + t.bsuperior = 0xf6ea; + t.btopbar = 0x0183; + t.buhiragana = 0x3076; + t.bukatakana = 0x30d6; + t.bullet = 0x2022; + t.bulletinverse = 0x25d8; + t.bulletoperator = 0x2219; + t.bullseye = 0x25ce; + t.c = 0x0063; + t.caarmenian = 0x056e; + t.cabengali = 0x099a; + t.cacute = 0x0107; + t.cadeva = 0x091a; + t.cagujarati = 0x0a9a; + t.cagurmukhi = 0x0a1a; + t.calsquare = 0x3388; + t.candrabindubengali = 0x0981; + t.candrabinducmb = 0x0310; + t.candrabindudeva = 0x0901; + t.candrabindugujarati = 0x0a81; + t.capslock = 0x21ea; + t.careof = 0x2105; + t.caron = 0x02c7; + t.caronbelowcmb = 0x032c; + t.caroncmb = 0x030c; + t.carriagereturn = 0x21b5; + t.cbopomofo = 0x3118; + t.ccaron = 0x010d; + t.ccedilla = 0x00e7; + t.ccedillaacute = 0x1e09; + t.ccircle = 0x24d2; + t.ccircumflex = 0x0109; + t.ccurl = 0x0255; + t.cdot = 0x010b; + t.cdotaccent = 0x010b; + t.cdsquare = 0x33c5; + t.cedilla = 0x00b8; + t.cedillacmb = 0x0327; + t.cent = 0x00a2; + t.centigrade = 0x2103; + t.centinferior = 0xf6df; + t.centmonospace = 0xffe0; + t.centoldstyle = 0xf7a2; + t.centsuperior = 0xf6e0; + t.chaarmenian = 0x0579; + t.chabengali = 0x099b; + t.chadeva = 0x091b; + t.chagujarati = 0x0a9b; + t.chagurmukhi = 0x0a1b; + t.chbopomofo = 0x3114; + t.cheabkhasiancyrillic = 0x04bd; + t.checkmark = 0x2713; + t.checyrillic = 0x0447; + t.chedescenderabkhasiancyrillic = 0x04bf; + t.chedescendercyrillic = 0x04b7; + t.chedieresiscyrillic = 0x04f5; + t.cheharmenian = 0x0573; + t.chekhakassiancyrillic = 0x04cc; + t.cheverticalstrokecyrillic = 0x04b9; + t.chi = 0x03c7; + t.chieuchacirclekorean = 0x3277; + t.chieuchaparenkorean = 0x3217; + t.chieuchcirclekorean = 0x3269; + t.chieuchkorean = 0x314a; + t.chieuchparenkorean = 0x3209; + t.chochangthai = 0x0e0a; + t.chochanthai = 0x0e08; + t.chochingthai = 0x0e09; + t.chochoethai = 0x0e0c; + t.chook = 0x0188; + t.cieucacirclekorean = 0x3276; + t.cieucaparenkorean = 0x3216; + t.cieuccirclekorean = 0x3268; + t.cieuckorean = 0x3148; + t.cieucparenkorean = 0x3208; + t.cieucuparenkorean = 0x321c; + t.circle = 0x25cb; + t.circlecopyrt = 0x00a9; + t.circlemultiply = 0x2297; + t.circleot = 0x2299; + t.circleplus = 0x2295; + t.circlepostalmark = 0x3036; + t.circlewithlefthalfblack = 0x25d0; + t.circlewithrighthalfblack = 0x25d1; + t.circumflex = 0x02c6; + t.circumflexbelowcmb = 0x032d; + t.circumflexcmb = 0x0302; + t.clear = 0x2327; + t.clickalveolar = 0x01c2; + t.clickdental = 0x01c0; + t.clicklateral = 0x01c1; + t.clickretroflex = 0x01c3; + t.club = 0x2663; + t.clubsuitblack = 0x2663; + t.clubsuitwhite = 0x2667; + t.cmcubedsquare = 0x33a4; + t.cmonospace = 0xff43; + t.cmsquaredsquare = 0x33a0; + t.coarmenian = 0x0581; + t.colon = 0x003a; + t.colonmonetary = 0x20a1; + t.colonmonospace = 0xff1a; + t.colonsign = 0x20a1; + t.colonsmall = 0xfe55; + t.colontriangularhalfmod = 0x02d1; + t.colontriangularmod = 0x02d0; + t.comma = 0x002c; + t.commaabovecmb = 0x0313; + t.commaaboverightcmb = 0x0315; + t.commaaccent = 0xf6c3; + t.commaarabic = 0x060c; + t.commaarmenian = 0x055d; + t.commainferior = 0xf6e1; + t.commamonospace = 0xff0c; + t.commareversedabovecmb = 0x0314; + t.commareversedmod = 0x02bd; + t.commasmall = 0xfe50; + t.commasuperior = 0xf6e2; + t.commaturnedabovecmb = 0x0312; + t.commaturnedmod = 0x02bb; + t.compass = 0x263c; + t.congruent = 0x2245; + t.contourintegral = 0x222e; + t.control = 0x2303; + t.controlACK = 0x0006; + t.controlBEL = 0x0007; + t.controlBS = 0x0008; + t.controlCAN = 0x0018; + t.controlCR = 0x000d; + t.controlDC1 = 0x0011; + t.controlDC2 = 0x0012; + t.controlDC3 = 0x0013; + t.controlDC4 = 0x0014; + t.controlDEL = 0x007f; + t.controlDLE = 0x0010; + t.controlEM = 0x0019; + t.controlENQ = 0x0005; + t.controlEOT = 0x0004; + t.controlESC = 0x001b; + t.controlETB = 0x0017; + t.controlETX = 0x0003; + t.controlFF = 0x000c; + t.controlFS = 0x001c; + t.controlGS = 0x001d; + t.controlHT = 0x0009; + t.controlLF = 0x000a; + t.controlNAK = 0x0015; + t.controlNULL = 0x0000; + t.controlRS = 0x001e; + t.controlSI = 0x000f; + t.controlSO = 0x000e; + t.controlSOT = 0x0002; + t.controlSTX = 0x0001; + t.controlSUB = 0x001a; + t.controlSYN = 0x0016; + t.controlUS = 0x001f; + t.controlVT = 0x000b; + t.copyright = 0x00a9; + t.copyrightsans = 0xf8e9; + t.copyrightserif = 0xf6d9; + t.cornerbracketleft = 0x300c; + t.cornerbracketlefthalfwidth = 0xff62; + t.cornerbracketleftvertical = 0xfe41; + t.cornerbracketright = 0x300d; + t.cornerbracketrighthalfwidth = 0xff63; + t.cornerbracketrightvertical = 0xfe42; + t.corporationsquare = 0x337f; + t.cosquare = 0x33c7; + t.coverkgsquare = 0x33c6; + t.cparen = 0x249e; + t.cruzeiro = 0x20a2; + t.cstretched = 0x0297; + t.curlyand = 0x22cf; + t.curlyor = 0x22ce; + t.currency = 0x00a4; + t.cyrBreve = 0xf6d1; + t.cyrFlex = 0xf6d2; + t.cyrbreve = 0xf6d4; + t.cyrflex = 0xf6d5; + t.d = 0x0064; + t.daarmenian = 0x0564; + t.dabengali = 0x09a6; + t.dadarabic = 0x0636; + t.dadeva = 0x0926; + t.dadfinalarabic = 0xfebe; + t.dadinitialarabic = 0xfebf; + t.dadmedialarabic = 0xfec0; + t.dagesh = 0x05bc; + t.dageshhebrew = 0x05bc; + t.dagger = 0x2020; + t.daggerdbl = 0x2021; + t.dagujarati = 0x0aa6; + t.dagurmukhi = 0x0a26; + t.dahiragana = 0x3060; + t.dakatakana = 0x30c0; + t.dalarabic = 0x062f; + t.dalet = 0x05d3; + t.daletdagesh = 0xfb33; + t.daletdageshhebrew = 0xfb33; + t.dalethebrew = 0x05d3; + t.dalfinalarabic = 0xfeaa; + t.dammaarabic = 0x064f; + t.dammalowarabic = 0x064f; + t.dammatanaltonearabic = 0x064c; + t.dammatanarabic = 0x064c; + t.danda = 0x0964; + t.dargahebrew = 0x05a7; + t.dargalefthebrew = 0x05a7; + t.dasiapneumatacyrilliccmb = 0x0485; + t.dblGrave = 0xf6d3; + t.dblanglebracketleft = 0x300a; + t.dblanglebracketleftvertical = 0xfe3d; + t.dblanglebracketright = 0x300b; + t.dblanglebracketrightvertical = 0xfe3e; + t.dblarchinvertedbelowcmb = 0x032b; + t.dblarrowleft = 0x21d4; + t.dblarrowright = 0x21d2; + t.dbldanda = 0x0965; + t.dblgrave = 0xf6d6; + t.dblgravecmb = 0x030f; + t.dblintegral = 0x222c; + t.dbllowline = 0x2017; + t.dbllowlinecmb = 0x0333; + t.dbloverlinecmb = 0x033f; + t.dblprimemod = 0x02ba; + t.dblverticalbar = 0x2016; + t.dblverticallineabovecmb = 0x030e; + t.dbopomofo = 0x3109; + t.dbsquare = 0x33c8; + t.dcaron = 0x010f; + t.dcedilla = 0x1e11; + t.dcircle = 0x24d3; + t.dcircumflexbelow = 0x1e13; + t.dcroat = 0x0111; + t.ddabengali = 0x09a1; + t.ddadeva = 0x0921; + t.ddagujarati = 0x0aa1; + t.ddagurmukhi = 0x0a21; + t.ddalarabic = 0x0688; + t.ddalfinalarabic = 0xfb89; + t.dddhadeva = 0x095c; + t.ddhabengali = 0x09a2; + t.ddhadeva = 0x0922; + t.ddhagujarati = 0x0aa2; + t.ddhagurmukhi = 0x0a22; + t.ddotaccent = 0x1e0b; + t.ddotbelow = 0x1e0d; + t.decimalseparatorarabic = 0x066b; + t.decimalseparatorpersian = 0x066b; + t.decyrillic = 0x0434; + t.degree = 0x00b0; + t.dehihebrew = 0x05ad; + t.dehiragana = 0x3067; + t.deicoptic = 0x03ef; + t.dekatakana = 0x30c7; + t.deleteleft = 0x232b; + t.deleteright = 0x2326; + t.delta = 0x03b4; + t.deltaturned = 0x018d; + t.denominatorminusonenumeratorbengali = 0x09f8; + t.dezh = 0x02a4; + t.dhabengali = 0x09a7; + t.dhadeva = 0x0927; + t.dhagujarati = 0x0aa7; + t.dhagurmukhi = 0x0a27; + t.dhook = 0x0257; + t.dialytikatonos = 0x0385; + t.dialytikatonoscmb = 0x0344; + t.diamond = 0x2666; + t.diamondsuitwhite = 0x2662; + t.dieresis = 0x00a8; + t.dieresisacute = 0xf6d7; + t.dieresisbelowcmb = 0x0324; + t.dieresiscmb = 0x0308; + t.dieresisgrave = 0xf6d8; + t.dieresistonos = 0x0385; + t.dihiragana = 0x3062; + t.dikatakana = 0x30c2; + t.dittomark = 0x3003; + t.divide = 0x00f7; + t.divides = 0x2223; + t.divisionslash = 0x2215; + t.djecyrillic = 0x0452; + t.dkshade = 0x2593; + t.dlinebelow = 0x1e0f; + t.dlsquare = 0x3397; + t.dmacron = 0x0111; + t.dmonospace = 0xff44; + t.dnblock = 0x2584; + t.dochadathai = 0x0e0e; + t.dodekthai = 0x0e14; + t.dohiragana = 0x3069; + t.dokatakana = 0x30c9; + t.dollar = 0x0024; + t.dollarinferior = 0xf6e3; + t.dollarmonospace = 0xff04; + t.dollaroldstyle = 0xf724; + t.dollarsmall = 0xfe69; + t.dollarsuperior = 0xf6e4; + t.dong = 0x20ab; + t.dorusquare = 0x3326; + t.dotaccent = 0x02d9; + t.dotaccentcmb = 0x0307; + t.dotbelowcmb = 0x0323; + t.dotbelowcomb = 0x0323; + t.dotkatakana = 0x30fb; + t.dotlessi = 0x0131; + t.dotlessj = 0xf6be; + t.dotlessjstrokehook = 0x0284; + t.dotmath = 0x22c5; + t.dottedcircle = 0x25cc; + t.doubleyodpatah = 0xfb1f; + t.doubleyodpatahhebrew = 0xfb1f; + t.downtackbelowcmb = 0x031e; + t.downtackmod = 0x02d5; + t.dparen = 0x249f; + t.dsuperior = 0xf6eb; + t.dtail = 0x0256; + t.dtopbar = 0x018c; + t.duhiragana = 0x3065; + t.dukatakana = 0x30c5; + t.dz = 0x01f3; + t.dzaltone = 0x02a3; + t.dzcaron = 0x01c6; + t.dzcurl = 0x02a5; + t.dzeabkhasiancyrillic = 0x04e1; + t.dzecyrillic = 0x0455; + t.dzhecyrillic = 0x045f; + t.e = 0x0065; + t.eacute = 0x00e9; + t.earth = 0x2641; + t.ebengali = 0x098f; + t.ebopomofo = 0x311c; + t.ebreve = 0x0115; + t.ecandradeva = 0x090d; + t.ecandragujarati = 0x0a8d; + t.ecandravowelsigndeva = 0x0945; + t.ecandravowelsigngujarati = 0x0ac5; + t.ecaron = 0x011b; + t.ecedillabreve = 0x1e1d; + t.echarmenian = 0x0565; + t.echyiwnarmenian = 0x0587; + t.ecircle = 0x24d4; + t.ecircumflex = 0x00ea; + t.ecircumflexacute = 0x1ebf; + t.ecircumflexbelow = 0x1e19; + t.ecircumflexdotbelow = 0x1ec7; + t.ecircumflexgrave = 0x1ec1; + t.ecircumflexhookabove = 0x1ec3; + t.ecircumflextilde = 0x1ec5; + t.ecyrillic = 0x0454; + t.edblgrave = 0x0205; + t.edeva = 0x090f; + t.edieresis = 0x00eb; + t.edot = 0x0117; + t.edotaccent = 0x0117; + t.edotbelow = 0x1eb9; + t.eegurmukhi = 0x0a0f; + t.eematragurmukhi = 0x0a47; + t.efcyrillic = 0x0444; + t.egrave = 0x00e8; + t.egujarati = 0x0a8f; + t.eharmenian = 0x0567; + t.ehbopomofo = 0x311d; + t.ehiragana = 0x3048; + t.ehookabove = 0x1ebb; + t.eibopomofo = 0x311f; + t.eight = 0x0038; + t.eightarabic = 0x0668; + t.eightbengali = 0x09ee; + t.eightcircle = 0x2467; + t.eightcircleinversesansserif = 0x2791; + t.eightdeva = 0x096e; + t.eighteencircle = 0x2471; + t.eighteenparen = 0x2485; + t.eighteenperiod = 0x2499; + t.eightgujarati = 0x0aee; + t.eightgurmukhi = 0x0a6e; + t.eighthackarabic = 0x0668; + t.eighthangzhou = 0x3028; + t.eighthnotebeamed = 0x266b; + t.eightideographicparen = 0x3227; + t.eightinferior = 0x2088; + t.eightmonospace = 0xff18; + t.eightoldstyle = 0xf738; + t.eightparen = 0x247b; + t.eightperiod = 0x248f; + t.eightpersian = 0x06f8; + t.eightroman = 0x2177; + t.eightsuperior = 0x2078; + t.eightthai = 0x0e58; + t.einvertedbreve = 0x0207; + t.eiotifiedcyrillic = 0x0465; + t.ekatakana = 0x30a8; + t.ekatakanahalfwidth = 0xff74; + t.ekonkargurmukhi = 0x0a74; + t.ekorean = 0x3154; + t.elcyrillic = 0x043b; + t.element = 0x2208; + t.elevencircle = 0x246a; + t.elevenparen = 0x247e; + t.elevenperiod = 0x2492; + t.elevenroman = 0x217a; + t.ellipsis = 0x2026; + t.ellipsisvertical = 0x22ee; + t.emacron = 0x0113; + t.emacronacute = 0x1e17; + t.emacrongrave = 0x1e15; + t.emcyrillic = 0x043c; + t.emdash = 0x2014; + t.emdashvertical = 0xfe31; + t.emonospace = 0xff45; + t.emphasismarkarmenian = 0x055b; + t.emptyset = 0x2205; + t.enbopomofo = 0x3123; + t.encyrillic = 0x043d; + t.endash = 0x2013; + t.endashvertical = 0xfe32; + t.endescendercyrillic = 0x04a3; + t.eng = 0x014b; + t.engbopomofo = 0x3125; + t.enghecyrillic = 0x04a5; + t.enhookcyrillic = 0x04c8; + t.enspace = 0x2002; + t.eogonek = 0x0119; + t.eokorean = 0x3153; + t.eopen = 0x025b; + t.eopenclosed = 0x029a; + t.eopenreversed = 0x025c; + t.eopenreversedclosed = 0x025e; + t.eopenreversedhook = 0x025d; + t.eparen = 0x24a0; + t.epsilon = 0x03b5; + t.epsilontonos = 0x03ad; + t.equal = 0x003d; + t.equalmonospace = 0xff1d; + t.equalsmall = 0xfe66; + t.equalsuperior = 0x207c; + t.equivalence = 0x2261; + t.erbopomofo = 0x3126; + t.ercyrillic = 0x0440; + t.ereversed = 0x0258; + t.ereversedcyrillic = 0x044d; + t.escyrillic = 0x0441; + t.esdescendercyrillic = 0x04ab; + t.esh = 0x0283; + t.eshcurl = 0x0286; + t.eshortdeva = 0x090e; + t.eshortvowelsigndeva = 0x0946; + t.eshreversedloop = 0x01aa; + t.eshsquatreversed = 0x0285; + t.esmallhiragana = 0x3047; + t.esmallkatakana = 0x30a7; + t.esmallkatakanahalfwidth = 0xff6a; + t.estimated = 0x212e; + t.esuperior = 0xf6ec; + t.eta = 0x03b7; + t.etarmenian = 0x0568; + t.etatonos = 0x03ae; + t.eth = 0x00f0; + t.etilde = 0x1ebd; + t.etildebelow = 0x1e1b; + t.etnahtafoukhhebrew = 0x0591; + t.etnahtafoukhlefthebrew = 0x0591; + t.etnahtahebrew = 0x0591; + t.etnahtalefthebrew = 0x0591; + t.eturned = 0x01dd; + t.eukorean = 0x3161; + t.euro = 0x20ac; + t.evowelsignbengali = 0x09c7; + t.evowelsigndeva = 0x0947; + t.evowelsigngujarati = 0x0ac7; + t.exclam = 0x0021; + t.exclamarmenian = 0x055c; + t.exclamdbl = 0x203c; + t.exclamdown = 0x00a1; + t.exclamdownsmall = 0xf7a1; + t.exclammonospace = 0xff01; + t.exclamsmall = 0xf721; + t.existential = 0x2203; + t.ezh = 0x0292; + t.ezhcaron = 0x01ef; + t.ezhcurl = 0x0293; + t.ezhreversed = 0x01b9; + t.ezhtail = 0x01ba; + t.f = 0x0066; + t.fadeva = 0x095e; + t.fagurmukhi = 0x0a5e; + t.fahrenheit = 0x2109; + t.fathaarabic = 0x064e; + t.fathalowarabic = 0x064e; + t.fathatanarabic = 0x064b; + t.fbopomofo = 0x3108; + t.fcircle = 0x24d5; + t.fdotaccent = 0x1e1f; + t.feharabic = 0x0641; + t.feharmenian = 0x0586; + t.fehfinalarabic = 0xfed2; + t.fehinitialarabic = 0xfed3; + t.fehmedialarabic = 0xfed4; + t.feicoptic = 0x03e5; + t.female = 0x2640; + t.ff = 0xfb00; + t.f_f = 0xfb00; + t.ffi = 0xfb03; + t.f_f_i = 0xfb03; + t.ffl = 0xfb04; + t.f_f_l = 0xfb04; + t.fi = 0xfb01; + t.f_i = 0xfb01; + t.fifteencircle = 0x246e; + t.fifteenparen = 0x2482; + t.fifteenperiod = 0x2496; + t.figuredash = 0x2012; + t.filledbox = 0x25a0; + t.filledrect = 0x25ac; + t.finalkaf = 0x05da; + t.finalkafdagesh = 0xfb3a; + t.finalkafdageshhebrew = 0xfb3a; + t.finalkafhebrew = 0x05da; + t.finalmem = 0x05dd; + t.finalmemhebrew = 0x05dd; + t.finalnun = 0x05df; + t.finalnunhebrew = 0x05df; + t.finalpe = 0x05e3; + t.finalpehebrew = 0x05e3; + t.finaltsadi = 0x05e5; + t.finaltsadihebrew = 0x05e5; + t.firsttonechinese = 0x02c9; + t.fisheye = 0x25c9; + t.fitacyrillic = 0x0473; + t.five = 0x0035; + t.fivearabic = 0x0665; + t.fivebengali = 0x09eb; + t.fivecircle = 0x2464; + t.fivecircleinversesansserif = 0x278e; + t.fivedeva = 0x096b; + t.fiveeighths = 0x215d; + t.fivegujarati = 0x0aeb; + t.fivegurmukhi = 0x0a6b; + t.fivehackarabic = 0x0665; + t.fivehangzhou = 0x3025; + t.fiveideographicparen = 0x3224; + t.fiveinferior = 0x2085; + t.fivemonospace = 0xff15; + t.fiveoldstyle = 0xf735; + t.fiveparen = 0x2478; + t.fiveperiod = 0x248c; + t.fivepersian = 0x06f5; + t.fiveroman = 0x2174; + t.fivesuperior = 0x2075; + t.fivethai = 0x0e55; + t.fl = 0xfb02; + t.f_l = 0xfb02; + t.florin = 0x0192; + t.fmonospace = 0xff46; + t.fmsquare = 0x3399; + t.fofanthai = 0x0e1f; + t.fofathai = 0x0e1d; + t.fongmanthai = 0x0e4f; + t.forall = 0x2200; + t.four = 0x0034; + t.fourarabic = 0x0664; + t.fourbengali = 0x09ea; + t.fourcircle = 0x2463; + t.fourcircleinversesansserif = 0x278d; + t.fourdeva = 0x096a; + t.fourgujarati = 0x0aea; + t.fourgurmukhi = 0x0a6a; + t.fourhackarabic = 0x0664; + t.fourhangzhou = 0x3024; + t.fourideographicparen = 0x3223; + t.fourinferior = 0x2084; + t.fourmonospace = 0xff14; + t.fournumeratorbengali = 0x09f7; + t.fouroldstyle = 0xf734; + t.fourparen = 0x2477; + t.fourperiod = 0x248b; + t.fourpersian = 0x06f4; + t.fourroman = 0x2173; + t.foursuperior = 0x2074; + t.fourteencircle = 0x246d; + t.fourteenparen = 0x2481; + t.fourteenperiod = 0x2495; + t.fourthai = 0x0e54; + t.fourthtonechinese = 0x02cb; + t.fparen = 0x24a1; + t.fraction = 0x2044; + t.franc = 0x20a3; + t.g = 0x0067; + t.gabengali = 0x0997; + t.gacute = 0x01f5; + t.gadeva = 0x0917; + t.gafarabic = 0x06af; + t.gaffinalarabic = 0xfb93; + t.gafinitialarabic = 0xfb94; + t.gafmedialarabic = 0xfb95; + t.gagujarati = 0x0a97; + t.gagurmukhi = 0x0a17; + t.gahiragana = 0x304c; + t.gakatakana = 0x30ac; + t.gamma = 0x03b3; + t.gammalatinsmall = 0x0263; + t.gammasuperior = 0x02e0; + t.gangiacoptic = 0x03eb; + t.gbopomofo = 0x310d; + t.gbreve = 0x011f; + t.gcaron = 0x01e7; + t.gcedilla = 0x0123; + t.gcircle = 0x24d6; + t.gcircumflex = 0x011d; + t.gcommaaccent = 0x0123; + t.gdot = 0x0121; + t.gdotaccent = 0x0121; + t.gecyrillic = 0x0433; + t.gehiragana = 0x3052; + t.gekatakana = 0x30b2; + t.geometricallyequal = 0x2251; + t.gereshaccenthebrew = 0x059c; + t.gereshhebrew = 0x05f3; + t.gereshmuqdamhebrew = 0x059d; + t.germandbls = 0x00df; + t.gershayimaccenthebrew = 0x059e; + t.gershayimhebrew = 0x05f4; + t.getamark = 0x3013; + t.ghabengali = 0x0998; + t.ghadarmenian = 0x0572; + t.ghadeva = 0x0918; + t.ghagujarati = 0x0a98; + t.ghagurmukhi = 0x0a18; + t.ghainarabic = 0x063a; + t.ghainfinalarabic = 0xfece; + t.ghaininitialarabic = 0xfecf; + t.ghainmedialarabic = 0xfed0; + t.ghemiddlehookcyrillic = 0x0495; + t.ghestrokecyrillic = 0x0493; + t.gheupturncyrillic = 0x0491; + t.ghhadeva = 0x095a; + t.ghhagurmukhi = 0x0a5a; + t.ghook = 0x0260; + t.ghzsquare = 0x3393; + t.gihiragana = 0x304e; + t.gikatakana = 0x30ae; + t.gimarmenian = 0x0563; + t.gimel = 0x05d2; + t.gimeldagesh = 0xfb32; + t.gimeldageshhebrew = 0xfb32; + t.gimelhebrew = 0x05d2; + t.gjecyrillic = 0x0453; + t.glottalinvertedstroke = 0x01be; + t.glottalstop = 0x0294; + t.glottalstopinverted = 0x0296; + t.glottalstopmod = 0x02c0; + t.glottalstopreversed = 0x0295; + t.glottalstopreversedmod = 0x02c1; + t.glottalstopreversedsuperior = 0x02e4; + t.glottalstopstroke = 0x02a1; + t.glottalstopstrokereversed = 0x02a2; + t.gmacron = 0x1e21; + t.gmonospace = 0xff47; + t.gohiragana = 0x3054; + t.gokatakana = 0x30b4; + t.gparen = 0x24a2; + t.gpasquare = 0x33ac; + t.gradient = 0x2207; + t.grave = 0x0060; + t.gravebelowcmb = 0x0316; + t.gravecmb = 0x0300; + t.gravecomb = 0x0300; + t.gravedeva = 0x0953; + t.gravelowmod = 0x02ce; + t.gravemonospace = 0xff40; + t.gravetonecmb = 0x0340; + t.greater = 0x003e; + t.greaterequal = 0x2265; + t.greaterequalorless = 0x22db; + t.greatermonospace = 0xff1e; + t.greaterorequivalent = 0x2273; + t.greaterorless = 0x2277; + t.greateroverequal = 0x2267; + t.greatersmall = 0xfe65; + t.gscript = 0x0261; + t.gstroke = 0x01e5; + t.guhiragana = 0x3050; + t.guillemotleft = 0x00ab; + t.guillemotright = 0x00bb; + t.guilsinglleft = 0x2039; + t.guilsinglright = 0x203a; + t.gukatakana = 0x30b0; + t.guramusquare = 0x3318; + t.gysquare = 0x33c9; + t.h = 0x0068; + t.haabkhasiancyrillic = 0x04a9; + t.haaltonearabic = 0x06c1; + t.habengali = 0x09b9; + t.hadescendercyrillic = 0x04b3; + t.hadeva = 0x0939; + t.hagujarati = 0x0ab9; + t.hagurmukhi = 0x0a39; + t.haharabic = 0x062d; + t.hahfinalarabic = 0xfea2; + t.hahinitialarabic = 0xfea3; + t.hahiragana = 0x306f; + t.hahmedialarabic = 0xfea4; + t.haitusquare = 0x332a; + t.hakatakana = 0x30cf; + t.hakatakanahalfwidth = 0xff8a; + t.halantgurmukhi = 0x0a4d; + t.hamzaarabic = 0x0621; + t.hamzalowarabic = 0x0621; + t.hangulfiller = 0x3164; + t.hardsigncyrillic = 0x044a; + t.harpoonleftbarbup = 0x21bc; + t.harpoonrightbarbup = 0x21c0; + t.hasquare = 0x33ca; + t.hatafpatah = 0x05b2; + t.hatafpatah16 = 0x05b2; + t.hatafpatah23 = 0x05b2; + t.hatafpatah2f = 0x05b2; + t.hatafpatahhebrew = 0x05b2; + t.hatafpatahnarrowhebrew = 0x05b2; + t.hatafpatahquarterhebrew = 0x05b2; + t.hatafpatahwidehebrew = 0x05b2; + t.hatafqamats = 0x05b3; + t.hatafqamats1b = 0x05b3; + t.hatafqamats28 = 0x05b3; + t.hatafqamats34 = 0x05b3; + t.hatafqamatshebrew = 0x05b3; + t.hatafqamatsnarrowhebrew = 0x05b3; + t.hatafqamatsquarterhebrew = 0x05b3; + t.hatafqamatswidehebrew = 0x05b3; + t.hatafsegol = 0x05b1; + t.hatafsegol17 = 0x05b1; + t.hatafsegol24 = 0x05b1; + t.hatafsegol30 = 0x05b1; + t.hatafsegolhebrew = 0x05b1; + t.hatafsegolnarrowhebrew = 0x05b1; + t.hatafsegolquarterhebrew = 0x05b1; + t.hatafsegolwidehebrew = 0x05b1; + t.hbar = 0x0127; + t.hbopomofo = 0x310f; + t.hbrevebelow = 0x1e2b; + t.hcedilla = 0x1e29; + t.hcircle = 0x24d7; + t.hcircumflex = 0x0125; + t.hdieresis = 0x1e27; + t.hdotaccent = 0x1e23; + t.hdotbelow = 0x1e25; + t.he = 0x05d4; + t.heart = 0x2665; + t.heartsuitblack = 0x2665; + t.heartsuitwhite = 0x2661; + t.hedagesh = 0xfb34; + t.hedageshhebrew = 0xfb34; + t.hehaltonearabic = 0x06c1; + t.heharabic = 0x0647; + t.hehebrew = 0x05d4; + t.hehfinalaltonearabic = 0xfba7; + t.hehfinalalttwoarabic = 0xfeea; + t.hehfinalarabic = 0xfeea; + t.hehhamzaabovefinalarabic = 0xfba5; + t.hehhamzaaboveisolatedarabic = 0xfba4; + t.hehinitialaltonearabic = 0xfba8; + t.hehinitialarabic = 0xfeeb; + t.hehiragana = 0x3078; + t.hehmedialaltonearabic = 0xfba9; + t.hehmedialarabic = 0xfeec; + t.heiseierasquare = 0x337b; + t.hekatakana = 0x30d8; + t.hekatakanahalfwidth = 0xff8d; + t.hekutaarusquare = 0x3336; + t.henghook = 0x0267; + t.herutusquare = 0x3339; + t.het = 0x05d7; + t.hethebrew = 0x05d7; + t.hhook = 0x0266; + t.hhooksuperior = 0x02b1; + t.hieuhacirclekorean = 0x327b; + t.hieuhaparenkorean = 0x321b; + t.hieuhcirclekorean = 0x326d; + t.hieuhkorean = 0x314e; + t.hieuhparenkorean = 0x320d; + t.hihiragana = 0x3072; + t.hikatakana = 0x30d2; + t.hikatakanahalfwidth = 0xff8b; + t.hiriq = 0x05b4; + t.hiriq14 = 0x05b4; + t.hiriq21 = 0x05b4; + t.hiriq2d = 0x05b4; + t.hiriqhebrew = 0x05b4; + t.hiriqnarrowhebrew = 0x05b4; + t.hiriqquarterhebrew = 0x05b4; + t.hiriqwidehebrew = 0x05b4; + t.hlinebelow = 0x1e96; + t.hmonospace = 0xff48; + t.hoarmenian = 0x0570; + t.hohipthai = 0x0e2b; + t.hohiragana = 0x307b; + t.hokatakana = 0x30db; + t.hokatakanahalfwidth = 0xff8e; + t.holam = 0x05b9; + t.holam19 = 0x05b9; + t.holam26 = 0x05b9; + t.holam32 = 0x05b9; + t.holamhebrew = 0x05b9; + t.holamnarrowhebrew = 0x05b9; + t.holamquarterhebrew = 0x05b9; + t.holamwidehebrew = 0x05b9; + t.honokhukthai = 0x0e2e; + t.hookabovecomb = 0x0309; + t.hookcmb = 0x0309; + t.hookpalatalizedbelowcmb = 0x0321; + t.hookretroflexbelowcmb = 0x0322; + t.hoonsquare = 0x3342; + t.horicoptic = 0x03e9; + t.horizontalbar = 0x2015; + t.horncmb = 0x031b; + t.hotsprings = 0x2668; + t.house = 0x2302; + t.hparen = 0x24a3; + t.hsuperior = 0x02b0; + t.hturned = 0x0265; + t.huhiragana = 0x3075; + t.huiitosquare = 0x3333; + t.hukatakana = 0x30d5; + t.hukatakanahalfwidth = 0xff8c; + t.hungarumlaut = 0x02dd; + t.hungarumlautcmb = 0x030b; + t.hv = 0x0195; + t.hyphen = 0x002d; + t.hypheninferior = 0xf6e5; + t.hyphenmonospace = 0xff0d; + t.hyphensmall = 0xfe63; + t.hyphensuperior = 0xf6e6; + t.hyphentwo = 0x2010; + t.i = 0x0069; + t.iacute = 0x00ed; + t.iacyrillic = 0x044f; + t.ibengali = 0x0987; + t.ibopomofo = 0x3127; + t.ibreve = 0x012d; + t.icaron = 0x01d0; + t.icircle = 0x24d8; + t.icircumflex = 0x00ee; + t.icyrillic = 0x0456; + t.idblgrave = 0x0209; + t.ideographearthcircle = 0x328f; + t.ideographfirecircle = 0x328b; + t.ideographicallianceparen = 0x323f; + t.ideographiccallparen = 0x323a; + t.ideographiccentrecircle = 0x32a5; + t.ideographicclose = 0x3006; + t.ideographiccomma = 0x3001; + t.ideographiccommaleft = 0xff64; + t.ideographiccongratulationparen = 0x3237; + t.ideographiccorrectcircle = 0x32a3; + t.ideographicearthparen = 0x322f; + t.ideographicenterpriseparen = 0x323d; + t.ideographicexcellentcircle = 0x329d; + t.ideographicfestivalparen = 0x3240; + t.ideographicfinancialcircle = 0x3296; + t.ideographicfinancialparen = 0x3236; + t.ideographicfireparen = 0x322b; + t.ideographichaveparen = 0x3232; + t.ideographichighcircle = 0x32a4; + t.ideographiciterationmark = 0x3005; + t.ideographiclaborcircle = 0x3298; + t.ideographiclaborparen = 0x3238; + t.ideographicleftcircle = 0x32a7; + t.ideographiclowcircle = 0x32a6; + t.ideographicmedicinecircle = 0x32a9; + t.ideographicmetalparen = 0x322e; + t.ideographicmoonparen = 0x322a; + t.ideographicnameparen = 0x3234; + t.ideographicperiod = 0x3002; + t.ideographicprintcircle = 0x329e; + t.ideographicreachparen = 0x3243; + t.ideographicrepresentparen = 0x3239; + t.ideographicresourceparen = 0x323e; + t.ideographicrightcircle = 0x32a8; + t.ideographicsecretcircle = 0x3299; + t.ideographicselfparen = 0x3242; + t.ideographicsocietyparen = 0x3233; + t.ideographicspace = 0x3000; + t.ideographicspecialparen = 0x3235; + t.ideographicstockparen = 0x3231; + t.ideographicstudyparen = 0x323b; + t.ideographicsunparen = 0x3230; + t.ideographicsuperviseparen = 0x323c; + t.ideographicwaterparen = 0x322c; + t.ideographicwoodparen = 0x322d; + t.ideographiczero = 0x3007; + t.ideographmetalcircle = 0x328e; + t.ideographmooncircle = 0x328a; + t.ideographnamecircle = 0x3294; + t.ideographsuncircle = 0x3290; + t.ideographwatercircle = 0x328c; + t.ideographwoodcircle = 0x328d; + t.ideva = 0x0907; + t.idieresis = 0x00ef; + t.idieresisacute = 0x1e2f; + t.idieresiscyrillic = 0x04e5; + t.idotbelow = 0x1ecb; + t.iebrevecyrillic = 0x04d7; + t.iecyrillic = 0x0435; + t.ieungacirclekorean = 0x3275; + t.ieungaparenkorean = 0x3215; + t.ieungcirclekorean = 0x3267; + t.ieungkorean = 0x3147; + t.ieungparenkorean = 0x3207; + t.igrave = 0x00ec; + t.igujarati = 0x0a87; + t.igurmukhi = 0x0a07; + t.ihiragana = 0x3044; + t.ihookabove = 0x1ec9; + t.iibengali = 0x0988; + t.iicyrillic = 0x0438; + t.iideva = 0x0908; + t.iigujarati = 0x0a88; + t.iigurmukhi = 0x0a08; + t.iimatragurmukhi = 0x0a40; + t.iinvertedbreve = 0x020b; + t.iishortcyrillic = 0x0439; + t.iivowelsignbengali = 0x09c0; + t.iivowelsigndeva = 0x0940; + t.iivowelsigngujarati = 0x0ac0; + t.ij = 0x0133; + t.ikatakana = 0x30a4; + t.ikatakanahalfwidth = 0xff72; + t.ikorean = 0x3163; + t.ilde = 0x02dc; + t.iluyhebrew = 0x05ac; + t.imacron = 0x012b; + t.imacroncyrillic = 0x04e3; + t.imageorapproximatelyequal = 0x2253; + t.imatragurmukhi = 0x0a3f; + t.imonospace = 0xff49; + t.increment = 0x2206; + t.infinity = 0x221e; + t.iniarmenian = 0x056b; + t.integral = 0x222b; + t.integralbottom = 0x2321; + t.integralbt = 0x2321; + t.integralex = 0xf8f5; + t.integraltop = 0x2320; + t.integraltp = 0x2320; + t.intersection = 0x2229; + t.intisquare = 0x3305; + t.invbullet = 0x25d8; + t.invcircle = 0x25d9; + t.invsmileface = 0x263b; + t.iocyrillic = 0x0451; + t.iogonek = 0x012f; + t.iota = 0x03b9; + t.iotadieresis = 0x03ca; + t.iotadieresistonos = 0x0390; + t.iotalatin = 0x0269; + t.iotatonos = 0x03af; + t.iparen = 0x24a4; + t.irigurmukhi = 0x0a72; + t.ismallhiragana = 0x3043; + t.ismallkatakana = 0x30a3; + t.ismallkatakanahalfwidth = 0xff68; + t.issharbengali = 0x09fa; + t.istroke = 0x0268; + t.isuperior = 0xf6ed; + t.iterationhiragana = 0x309d; + t.iterationkatakana = 0x30fd; + t.itilde = 0x0129; + t.itildebelow = 0x1e2d; + t.iubopomofo = 0x3129; + t.iucyrillic = 0x044e; + t.ivowelsignbengali = 0x09bf; + t.ivowelsigndeva = 0x093f; + t.ivowelsigngujarati = 0x0abf; + t.izhitsacyrillic = 0x0475; + t.izhitsadblgravecyrillic = 0x0477; + t.j = 0x006a; + t.jaarmenian = 0x0571; + t.jabengali = 0x099c; + t.jadeva = 0x091c; + t.jagujarati = 0x0a9c; + t.jagurmukhi = 0x0a1c; + t.jbopomofo = 0x3110; + t.jcaron = 0x01f0; + t.jcircle = 0x24d9; + t.jcircumflex = 0x0135; + t.jcrossedtail = 0x029d; + t.jdotlessstroke = 0x025f; + t.jecyrillic = 0x0458; + t.jeemarabic = 0x062c; + t.jeemfinalarabic = 0xfe9e; + t.jeeminitialarabic = 0xfe9f; + t.jeemmedialarabic = 0xfea0; + t.jeharabic = 0x0698; + t.jehfinalarabic = 0xfb8b; + t.jhabengali = 0x099d; + t.jhadeva = 0x091d; + t.jhagujarati = 0x0a9d; + t.jhagurmukhi = 0x0a1d; + t.jheharmenian = 0x057b; + t.jis = 0x3004; + t.jmonospace = 0xff4a; + t.jparen = 0x24a5; + t.jsuperior = 0x02b2; + t.k = 0x006b; + t.kabashkircyrillic = 0x04a1; + t.kabengali = 0x0995; + t.kacute = 0x1e31; + t.kacyrillic = 0x043a; + t.kadescendercyrillic = 0x049b; + t.kadeva = 0x0915; + t.kaf = 0x05db; + t.kafarabic = 0x0643; + t.kafdagesh = 0xfb3b; + t.kafdageshhebrew = 0xfb3b; + t.kaffinalarabic = 0xfeda; + t.kafhebrew = 0x05db; + t.kafinitialarabic = 0xfedb; + t.kafmedialarabic = 0xfedc; + t.kafrafehebrew = 0xfb4d; + t.kagujarati = 0x0a95; + t.kagurmukhi = 0x0a15; + t.kahiragana = 0x304b; + t.kahookcyrillic = 0x04c4; + t.kakatakana = 0x30ab; + t.kakatakanahalfwidth = 0xff76; + t.kappa = 0x03ba; + t.kappasymbolgreek = 0x03f0; + t.kapyeounmieumkorean = 0x3171; + t.kapyeounphieuphkorean = 0x3184; + t.kapyeounpieupkorean = 0x3178; + t.kapyeounssangpieupkorean = 0x3179; + t.karoriisquare = 0x330d; + t.kashidaautoarabic = 0x0640; + t.kashidaautonosidebearingarabic = 0x0640; + t.kasmallkatakana = 0x30f5; + t.kasquare = 0x3384; + t.kasraarabic = 0x0650; + t.kasratanarabic = 0x064d; + t.kastrokecyrillic = 0x049f; + t.katahiraprolongmarkhalfwidth = 0xff70; + t.kaverticalstrokecyrillic = 0x049d; + t.kbopomofo = 0x310e; + t.kcalsquare = 0x3389; + t.kcaron = 0x01e9; + t.kcedilla = 0x0137; + t.kcircle = 0x24da; + t.kcommaaccent = 0x0137; + t.kdotbelow = 0x1e33; + t.keharmenian = 0x0584; + t.kehiragana = 0x3051; + t.kekatakana = 0x30b1; + t.kekatakanahalfwidth = 0xff79; + t.kenarmenian = 0x056f; + t.kesmallkatakana = 0x30f6; + t.kgreenlandic = 0x0138; + t.khabengali = 0x0996; + t.khacyrillic = 0x0445; + t.khadeva = 0x0916; + t.khagujarati = 0x0a96; + t.khagurmukhi = 0x0a16; + t.khaharabic = 0x062e; + t.khahfinalarabic = 0xfea6; + t.khahinitialarabic = 0xfea7; + t.khahmedialarabic = 0xfea8; + t.kheicoptic = 0x03e7; + t.khhadeva = 0x0959; + t.khhagurmukhi = 0x0a59; + t.khieukhacirclekorean = 0x3278; + t.khieukhaparenkorean = 0x3218; + t.khieukhcirclekorean = 0x326a; + t.khieukhkorean = 0x314b; + t.khieukhparenkorean = 0x320a; + t.khokhaithai = 0x0e02; + t.khokhonthai = 0x0e05; + t.khokhuatthai = 0x0e03; + t.khokhwaithai = 0x0e04; + t.khomutthai = 0x0e5b; + t.khook = 0x0199; + t.khorakhangthai = 0x0e06; + t.khzsquare = 0x3391; + t.kihiragana = 0x304d; + t.kikatakana = 0x30ad; + t.kikatakanahalfwidth = 0xff77; + t.kiroguramusquare = 0x3315; + t.kiromeetorusquare = 0x3316; + t.kirosquare = 0x3314; + t.kiyeokacirclekorean = 0x326e; + t.kiyeokaparenkorean = 0x320e; + t.kiyeokcirclekorean = 0x3260; + t.kiyeokkorean = 0x3131; + t.kiyeokparenkorean = 0x3200; + t.kiyeoksioskorean = 0x3133; + t.kjecyrillic = 0x045c; + t.klinebelow = 0x1e35; + t.klsquare = 0x3398; + t.kmcubedsquare = 0x33a6; + t.kmonospace = 0xff4b; + t.kmsquaredsquare = 0x33a2; + t.kohiragana = 0x3053; + t.kohmsquare = 0x33c0; + t.kokaithai = 0x0e01; + t.kokatakana = 0x30b3; + t.kokatakanahalfwidth = 0xff7a; + t.kooposquare = 0x331e; + t.koppacyrillic = 0x0481; + t.koreanstandardsymbol = 0x327f; + t.koroniscmb = 0x0343; + t.kparen = 0x24a6; + t.kpasquare = 0x33aa; + t.ksicyrillic = 0x046f; + t.ktsquare = 0x33cf; + t.kturned = 0x029e; + t.kuhiragana = 0x304f; + t.kukatakana = 0x30af; + t.kukatakanahalfwidth = 0xff78; + t.kvsquare = 0x33b8; + t.kwsquare = 0x33be; + t.l = 0x006c; + t.labengali = 0x09b2; + t.lacute = 0x013a; + t.ladeva = 0x0932; + t.lagujarati = 0x0ab2; + t.lagurmukhi = 0x0a32; + t.lakkhangyaothai = 0x0e45; + t.lamaleffinalarabic = 0xfefc; + t.lamalefhamzaabovefinalarabic = 0xfef8; + t.lamalefhamzaaboveisolatedarabic = 0xfef7; + t.lamalefhamzabelowfinalarabic = 0xfefa; + t.lamalefhamzabelowisolatedarabic = 0xfef9; + t.lamalefisolatedarabic = 0xfefb; + t.lamalefmaddaabovefinalarabic = 0xfef6; + t.lamalefmaddaaboveisolatedarabic = 0xfef5; + t.lamarabic = 0x0644; + t.lambda = 0x03bb; + t.lambdastroke = 0x019b; + t.lamed = 0x05dc; + t.lameddagesh = 0xfb3c; + t.lameddageshhebrew = 0xfb3c; + t.lamedhebrew = 0x05dc; + t.lamfinalarabic = 0xfede; + t.lamhahinitialarabic = 0xfcca; + t.laminitialarabic = 0xfedf; + t.lamjeeminitialarabic = 0xfcc9; + t.lamkhahinitialarabic = 0xfccb; + t.lamlamhehisolatedarabic = 0xfdf2; + t.lammedialarabic = 0xfee0; + t.lammeemhahinitialarabic = 0xfd88; + t.lammeeminitialarabic = 0xfccc; + t.largecircle = 0x25ef; + t.lbar = 0x019a; + t.lbelt = 0x026c; + t.lbopomofo = 0x310c; + t.lcaron = 0x013e; + t.lcedilla = 0x013c; + t.lcircle = 0x24db; + t.lcircumflexbelow = 0x1e3d; + t.lcommaaccent = 0x013c; + t.ldot = 0x0140; + t.ldotaccent = 0x0140; + t.ldotbelow = 0x1e37; + t.ldotbelowmacron = 0x1e39; + t.leftangleabovecmb = 0x031a; + t.lefttackbelowcmb = 0x0318; + t.less = 0x003c; + t.lessequal = 0x2264; + t.lessequalorgreater = 0x22da; + t.lessmonospace = 0xff1c; + t.lessorequivalent = 0x2272; + t.lessorgreater = 0x2276; + t.lessoverequal = 0x2266; + t.lesssmall = 0xfe64; + t.lezh = 0x026e; + t.lfblock = 0x258c; + t.lhookretroflex = 0x026d; + t.lira = 0x20a4; + t.liwnarmenian = 0x056c; + t.lj = 0x01c9; + t.ljecyrillic = 0x0459; + t.ll = 0xf6c0; + t.lladeva = 0x0933; + t.llagujarati = 0x0ab3; + t.llinebelow = 0x1e3b; + t.llladeva = 0x0934; + t.llvocalicbengali = 0x09e1; + t.llvocalicdeva = 0x0961; + t.llvocalicvowelsignbengali = 0x09e3; + t.llvocalicvowelsigndeva = 0x0963; + t.lmiddletilde = 0x026b; + t.lmonospace = 0xff4c; + t.lmsquare = 0x33d0; + t.lochulathai = 0x0e2c; + t.logicaland = 0x2227; + t.logicalnot = 0x00ac; + t.logicalnotreversed = 0x2310; + t.logicalor = 0x2228; + t.lolingthai = 0x0e25; + t.longs = 0x017f; + t.lowlinecenterline = 0xfe4e; + t.lowlinecmb = 0x0332; + t.lowlinedashed = 0xfe4d; + t.lozenge = 0x25ca; + t.lparen = 0x24a7; + t.lslash = 0x0142; + t.lsquare = 0x2113; + t.lsuperior = 0xf6ee; + t.ltshade = 0x2591; + t.luthai = 0x0e26; + t.lvocalicbengali = 0x098c; + t.lvocalicdeva = 0x090c; + t.lvocalicvowelsignbengali = 0x09e2; + t.lvocalicvowelsigndeva = 0x0962; + t.lxsquare = 0x33d3; + t.m = 0x006d; + t.mabengali = 0x09ae; + t.macron = 0x00af; + t.macronbelowcmb = 0x0331; + t.macroncmb = 0x0304; + t.macronlowmod = 0x02cd; + t.macronmonospace = 0xffe3; + t.macute = 0x1e3f; + t.madeva = 0x092e; + t.magujarati = 0x0aae; + t.magurmukhi = 0x0a2e; + t.mahapakhhebrew = 0x05a4; + t.mahapakhlefthebrew = 0x05a4; + t.mahiragana = 0x307e; + t.maichattawalowleftthai = 0xf895; + t.maichattawalowrightthai = 0xf894; + t.maichattawathai = 0x0e4b; + t.maichattawaupperleftthai = 0xf893; + t.maieklowleftthai = 0xf88c; + t.maieklowrightthai = 0xf88b; + t.maiekthai = 0x0e48; + t.maiekupperleftthai = 0xf88a; + t.maihanakatleftthai = 0xf884; + t.maihanakatthai = 0x0e31; + t.maitaikhuleftthai = 0xf889; + t.maitaikhuthai = 0x0e47; + t.maitholowleftthai = 0xf88f; + t.maitholowrightthai = 0xf88e; + t.maithothai = 0x0e49; + t.maithoupperleftthai = 0xf88d; + t.maitrilowleftthai = 0xf892; + t.maitrilowrightthai = 0xf891; + t.maitrithai = 0x0e4a; + t.maitriupperleftthai = 0xf890; + t.maiyamokthai = 0x0e46; + t.makatakana = 0x30de; + t.makatakanahalfwidth = 0xff8f; + t.male = 0x2642; + t.mansyonsquare = 0x3347; + t.maqafhebrew = 0x05be; + t.mars = 0x2642; + t.masoracirclehebrew = 0x05af; + t.masquare = 0x3383; + t.mbopomofo = 0x3107; + t.mbsquare = 0x33d4; + t.mcircle = 0x24dc; + t.mcubedsquare = 0x33a5; + t.mdotaccent = 0x1e41; + t.mdotbelow = 0x1e43; + t.meemarabic = 0x0645; + t.meemfinalarabic = 0xfee2; + t.meeminitialarabic = 0xfee3; + t.meemmedialarabic = 0xfee4; + t.meemmeeminitialarabic = 0xfcd1; + t.meemmeemisolatedarabic = 0xfc48; + t.meetorusquare = 0x334d; + t.mehiragana = 0x3081; + t.meizierasquare = 0x337e; + t.mekatakana = 0x30e1; + t.mekatakanahalfwidth = 0xff92; + t.mem = 0x05de; + t.memdagesh = 0xfb3e; + t.memdageshhebrew = 0xfb3e; + t.memhebrew = 0x05de; + t.menarmenian = 0x0574; + t.merkhahebrew = 0x05a5; + t.merkhakefulahebrew = 0x05a6; + t.merkhakefulalefthebrew = 0x05a6; + t.merkhalefthebrew = 0x05a5; + t.mhook = 0x0271; + t.mhzsquare = 0x3392; + t.middledotkatakanahalfwidth = 0xff65; + t.middot = 0x00b7; + t.mieumacirclekorean = 0x3272; + t.mieumaparenkorean = 0x3212; + t.mieumcirclekorean = 0x3264; + t.mieumkorean = 0x3141; + t.mieumpansioskorean = 0x3170; + t.mieumparenkorean = 0x3204; + t.mieumpieupkorean = 0x316e; + t.mieumsioskorean = 0x316f; + t.mihiragana = 0x307f; + t.mikatakana = 0x30df; + t.mikatakanahalfwidth = 0xff90; + t.minus = 0x2212; + t.minusbelowcmb = 0x0320; + t.minuscircle = 0x2296; + t.minusmod = 0x02d7; + t.minusplus = 0x2213; + t.minute = 0x2032; + t.miribaarusquare = 0x334a; + t.mirisquare = 0x3349; + t.mlonglegturned = 0x0270; + t.mlsquare = 0x3396; + t.mmcubedsquare = 0x33a3; + t.mmonospace = 0xff4d; + t.mmsquaredsquare = 0x339f; + t.mohiragana = 0x3082; + t.mohmsquare = 0x33c1; + t.mokatakana = 0x30e2; + t.mokatakanahalfwidth = 0xff93; + t.molsquare = 0x33d6; + t.momathai = 0x0e21; + t.moverssquare = 0x33a7; + t.moverssquaredsquare = 0x33a8; + t.mparen = 0x24a8; + t.mpasquare = 0x33ab; + t.mssquare = 0x33b3; + t.msuperior = 0xf6ef; + t.mturned = 0x026f; + t.mu = 0x00b5; + t.mu1 = 0x00b5; + t.muasquare = 0x3382; + t.muchgreater = 0x226b; + t.muchless = 0x226a; + t.mufsquare = 0x338c; + t.mugreek = 0x03bc; + t.mugsquare = 0x338d; + t.muhiragana = 0x3080; + t.mukatakana = 0x30e0; + t.mukatakanahalfwidth = 0xff91; + t.mulsquare = 0x3395; + t.multiply = 0x00d7; + t.mumsquare = 0x339b; + t.munahhebrew = 0x05a3; + t.munahlefthebrew = 0x05a3; + t.musicalnote = 0x266a; + t.musicalnotedbl = 0x266b; + t.musicflatsign = 0x266d; + t.musicsharpsign = 0x266f; + t.mussquare = 0x33b2; + t.muvsquare = 0x33b6; + t.muwsquare = 0x33bc; + t.mvmegasquare = 0x33b9; + t.mvsquare = 0x33b7; + t.mwmegasquare = 0x33bf; + t.mwsquare = 0x33bd; + t.n = 0x006e; + t.nabengali = 0x09a8; + t.nabla = 0x2207; + t.nacute = 0x0144; + t.nadeva = 0x0928; + t.nagujarati = 0x0aa8; + t.nagurmukhi = 0x0a28; + t.nahiragana = 0x306a; + t.nakatakana = 0x30ca; + t.nakatakanahalfwidth = 0xff85; + t.napostrophe = 0x0149; + t.nasquare = 0x3381; + t.nbopomofo = 0x310b; + t.nbspace = 0x00a0; + t.ncaron = 0x0148; + t.ncedilla = 0x0146; + t.ncircle = 0x24dd; + t.ncircumflexbelow = 0x1e4b; + t.ncommaaccent = 0x0146; + t.ndotaccent = 0x1e45; + t.ndotbelow = 0x1e47; + t.nehiragana = 0x306d; + t.nekatakana = 0x30cd; + t.nekatakanahalfwidth = 0xff88; + t.newsheqelsign = 0x20aa; + t.nfsquare = 0x338b; + t.ngabengali = 0x0999; + t.ngadeva = 0x0919; + t.ngagujarati = 0x0a99; + t.ngagurmukhi = 0x0a19; + t.ngonguthai = 0x0e07; + t.nhiragana = 0x3093; + t.nhookleft = 0x0272; + t.nhookretroflex = 0x0273; + t.nieunacirclekorean = 0x326f; + t.nieunaparenkorean = 0x320f; + t.nieuncieuckorean = 0x3135; + t.nieuncirclekorean = 0x3261; + t.nieunhieuhkorean = 0x3136; + t.nieunkorean = 0x3134; + t.nieunpansioskorean = 0x3168; + t.nieunparenkorean = 0x3201; + t.nieunsioskorean = 0x3167; + t.nieuntikeutkorean = 0x3166; + t.nihiragana = 0x306b; + t.nikatakana = 0x30cb; + t.nikatakanahalfwidth = 0xff86; + t.nikhahitleftthai = 0xf899; + t.nikhahitthai = 0x0e4d; + t.nine = 0x0039; + t.ninearabic = 0x0669; + t.ninebengali = 0x09ef; + t.ninecircle = 0x2468; + t.ninecircleinversesansserif = 0x2792; + t.ninedeva = 0x096f; + t.ninegujarati = 0x0aef; + t.ninegurmukhi = 0x0a6f; + t.ninehackarabic = 0x0669; + t.ninehangzhou = 0x3029; + t.nineideographicparen = 0x3228; + t.nineinferior = 0x2089; + t.ninemonospace = 0xff19; + t.nineoldstyle = 0xf739; + t.nineparen = 0x247c; + t.nineperiod = 0x2490; + t.ninepersian = 0x06f9; + t.nineroman = 0x2178; + t.ninesuperior = 0x2079; + t.nineteencircle = 0x2472; + t.nineteenparen = 0x2486; + t.nineteenperiod = 0x249a; + t.ninethai = 0x0e59; + t.nj = 0x01cc; + t.njecyrillic = 0x045a; + t.nkatakana = 0x30f3; + t.nkatakanahalfwidth = 0xff9d; + t.nlegrightlong = 0x019e; + t.nlinebelow = 0x1e49; + t.nmonospace = 0xff4e; + t.nmsquare = 0x339a; + t.nnabengali = 0x09a3; + t.nnadeva = 0x0923; + t.nnagujarati = 0x0aa3; + t.nnagurmukhi = 0x0a23; + t.nnnadeva = 0x0929; + t.nohiragana = 0x306e; + t.nokatakana = 0x30ce; + t.nokatakanahalfwidth = 0xff89; + t.nonbreakingspace = 0x00a0; + t.nonenthai = 0x0e13; + t.nonuthai = 0x0e19; + t.noonarabic = 0x0646; + t.noonfinalarabic = 0xfee6; + t.noonghunnaarabic = 0x06ba; + t.noonghunnafinalarabic = 0xfb9f; + t.nooninitialarabic = 0xfee7; + t.noonjeeminitialarabic = 0xfcd2; + t.noonjeemisolatedarabic = 0xfc4b; + t.noonmedialarabic = 0xfee8; + t.noonmeeminitialarabic = 0xfcd5; + t.noonmeemisolatedarabic = 0xfc4e; + t.noonnoonfinalarabic = 0xfc8d; + t.notcontains = 0x220c; + t.notelement = 0x2209; + t.notelementof = 0x2209; + t.notequal = 0x2260; + t.notgreater = 0x226f; + t.notgreaternorequal = 0x2271; + t.notgreaternorless = 0x2279; + t.notidentical = 0x2262; + t.notless = 0x226e; + t.notlessnorequal = 0x2270; + t.notparallel = 0x2226; + t.notprecedes = 0x2280; + t.notsubset = 0x2284; + t.notsucceeds = 0x2281; + t.notsuperset = 0x2285; + t.nowarmenian = 0x0576; + t.nparen = 0x24a9; + t.nssquare = 0x33b1; + t.nsuperior = 0x207f; + t.ntilde = 0x00f1; + t.nu = 0x03bd; + t.nuhiragana = 0x306c; + t.nukatakana = 0x30cc; + t.nukatakanahalfwidth = 0xff87; + t.nuktabengali = 0x09bc; + t.nuktadeva = 0x093c; + t.nuktagujarati = 0x0abc; + t.nuktagurmukhi = 0x0a3c; + t.numbersign = 0x0023; + t.numbersignmonospace = 0xff03; + t.numbersignsmall = 0xfe5f; + t.numeralsigngreek = 0x0374; + t.numeralsignlowergreek = 0x0375; + t.numero = 0x2116; + t.nun = 0x05e0; + t.nundagesh = 0xfb40; + t.nundageshhebrew = 0xfb40; + t.nunhebrew = 0x05e0; + t.nvsquare = 0x33b5; + t.nwsquare = 0x33bb; + t.nyabengali = 0x099e; + t.nyadeva = 0x091e; + t.nyagujarati = 0x0a9e; + t.nyagurmukhi = 0x0a1e; + t.o = 0x006f; + t.oacute = 0x00f3; + t.oangthai = 0x0e2d; + t.obarred = 0x0275; + t.obarredcyrillic = 0x04e9; + t.obarreddieresiscyrillic = 0x04eb; + t.obengali = 0x0993; + t.obopomofo = 0x311b; + t.obreve = 0x014f; + t.ocandradeva = 0x0911; + t.ocandragujarati = 0x0a91; + t.ocandravowelsigndeva = 0x0949; + t.ocandravowelsigngujarati = 0x0ac9; + t.ocaron = 0x01d2; + t.ocircle = 0x24de; + t.ocircumflex = 0x00f4; + t.ocircumflexacute = 0x1ed1; + t.ocircumflexdotbelow = 0x1ed9; + t.ocircumflexgrave = 0x1ed3; + t.ocircumflexhookabove = 0x1ed5; + t.ocircumflextilde = 0x1ed7; + t.ocyrillic = 0x043e; + t.odblacute = 0x0151; + t.odblgrave = 0x020d; + t.odeva = 0x0913; + t.odieresis = 0x00f6; + t.odieresiscyrillic = 0x04e7; + t.odotbelow = 0x1ecd; + t.oe = 0x0153; + t.oekorean = 0x315a; + t.ogonek = 0x02db; + t.ogonekcmb = 0x0328; + t.ograve = 0x00f2; + t.ogujarati = 0x0a93; + t.oharmenian = 0x0585; + t.ohiragana = 0x304a; + t.ohookabove = 0x1ecf; + t.ohorn = 0x01a1; + t.ohornacute = 0x1edb; + t.ohorndotbelow = 0x1ee3; + t.ohorngrave = 0x1edd; + t.ohornhookabove = 0x1edf; + t.ohorntilde = 0x1ee1; + t.ohungarumlaut = 0x0151; + t.oi = 0x01a3; + t.oinvertedbreve = 0x020f; + t.okatakana = 0x30aa; + t.okatakanahalfwidth = 0xff75; + t.okorean = 0x3157; + t.olehebrew = 0x05ab; + t.omacron = 0x014d; + t.omacronacute = 0x1e53; + t.omacrongrave = 0x1e51; + t.omdeva = 0x0950; + t.omega = 0x03c9; + t.omega1 = 0x03d6; + t.omegacyrillic = 0x0461; + t.omegalatinclosed = 0x0277; + t.omegaroundcyrillic = 0x047b; + t.omegatitlocyrillic = 0x047d; + t.omegatonos = 0x03ce; + t.omgujarati = 0x0ad0; + t.omicron = 0x03bf; + t.omicrontonos = 0x03cc; + t.omonospace = 0xff4f; + t.one = 0x0031; + t.onearabic = 0x0661; + t.onebengali = 0x09e7; + t.onecircle = 0x2460; + t.onecircleinversesansserif = 0x278a; + t.onedeva = 0x0967; + t.onedotenleader = 0x2024; + t.oneeighth = 0x215b; + t.onefitted = 0xf6dc; + t.onegujarati = 0x0ae7; + t.onegurmukhi = 0x0a67; + t.onehackarabic = 0x0661; + t.onehalf = 0x00bd; + t.onehangzhou = 0x3021; + t.oneideographicparen = 0x3220; + t.oneinferior = 0x2081; + t.onemonospace = 0xff11; + t.onenumeratorbengali = 0x09f4; + t.oneoldstyle = 0xf731; + t.oneparen = 0x2474; + t.oneperiod = 0x2488; + t.onepersian = 0x06f1; + t.onequarter = 0x00bc; + t.oneroman = 0x2170; + t.onesuperior = 0x00b9; + t.onethai = 0x0e51; + t.onethird = 0x2153; + t.oogonek = 0x01eb; + t.oogonekmacron = 0x01ed; + t.oogurmukhi = 0x0a13; + t.oomatragurmukhi = 0x0a4b; + t.oopen = 0x0254; + t.oparen = 0x24aa; + t.openbullet = 0x25e6; + t.option = 0x2325; + t.ordfeminine = 0x00aa; + t.ordmasculine = 0x00ba; + t.orthogonal = 0x221f; + t.oshortdeva = 0x0912; + t.oshortvowelsigndeva = 0x094a; + t.oslash = 0x00f8; + t.oslashacute = 0x01ff; + t.osmallhiragana = 0x3049; + t.osmallkatakana = 0x30a9; + t.osmallkatakanahalfwidth = 0xff6b; + t.ostrokeacute = 0x01ff; + t.osuperior = 0xf6f0; + t.otcyrillic = 0x047f; + t.otilde = 0x00f5; + t.otildeacute = 0x1e4d; + t.otildedieresis = 0x1e4f; + t.oubopomofo = 0x3121; + t.overline = 0x203e; + t.overlinecenterline = 0xfe4a; + t.overlinecmb = 0x0305; + t.overlinedashed = 0xfe49; + t.overlinedblwavy = 0xfe4c; + t.overlinewavy = 0xfe4b; + t.overscore = 0x00af; + t.ovowelsignbengali = 0x09cb; + t.ovowelsigndeva = 0x094b; + t.ovowelsigngujarati = 0x0acb; + t.p = 0x0070; + t.paampssquare = 0x3380; + t.paasentosquare = 0x332b; + t.pabengali = 0x09aa; + t.pacute = 0x1e55; + t.padeva = 0x092a; + t.pagedown = 0x21df; + t.pageup = 0x21de; + t.pagujarati = 0x0aaa; + t.pagurmukhi = 0x0a2a; + t.pahiragana = 0x3071; + t.paiyannoithai = 0x0e2f; + t.pakatakana = 0x30d1; + t.palatalizationcyrilliccmb = 0x0484; + t.palochkacyrillic = 0x04c0; + t.pansioskorean = 0x317f; + t.paragraph = 0x00b6; + t.parallel = 0x2225; + t.parenleft = 0x0028; + t.parenleftaltonearabic = 0xfd3e; + t.parenleftbt = 0xf8ed; + t.parenleftex = 0xf8ec; + t.parenleftinferior = 0x208d; + t.parenleftmonospace = 0xff08; + t.parenleftsmall = 0xfe59; + t.parenleftsuperior = 0x207d; + t.parenlefttp = 0xf8eb; + t.parenleftvertical = 0xfe35; + t.parenright = 0x0029; + t.parenrightaltonearabic = 0xfd3f; + t.parenrightbt = 0xf8f8; + t.parenrightex = 0xf8f7; + t.parenrightinferior = 0x208e; + t.parenrightmonospace = 0xff09; + t.parenrightsmall = 0xfe5a; + t.parenrightsuperior = 0x207e; + t.parenrighttp = 0xf8f6; + t.parenrightvertical = 0xfe36; + t.partialdiff = 0x2202; + t.paseqhebrew = 0x05c0; + t.pashtahebrew = 0x0599; + t.pasquare = 0x33a9; + t.patah = 0x05b7; + t.patah11 = 0x05b7; + t.patah1d = 0x05b7; + t.patah2a = 0x05b7; + t.patahhebrew = 0x05b7; + t.patahnarrowhebrew = 0x05b7; + t.patahquarterhebrew = 0x05b7; + t.patahwidehebrew = 0x05b7; + t.pazerhebrew = 0x05a1; + t.pbopomofo = 0x3106; + t.pcircle = 0x24df; + t.pdotaccent = 0x1e57; + t.pe = 0x05e4; + t.pecyrillic = 0x043f; + t.pedagesh = 0xfb44; + t.pedageshhebrew = 0xfb44; + t.peezisquare = 0x333b; + t.pefinaldageshhebrew = 0xfb43; + t.peharabic = 0x067e; + t.peharmenian = 0x057a; + t.pehebrew = 0x05e4; + t.pehfinalarabic = 0xfb57; + t.pehinitialarabic = 0xfb58; + t.pehiragana = 0x307a; + t.pehmedialarabic = 0xfb59; + t.pekatakana = 0x30da; + t.pemiddlehookcyrillic = 0x04a7; + t.perafehebrew = 0xfb4e; + t.percent = 0x0025; + t.percentarabic = 0x066a; + t.percentmonospace = 0xff05; + t.percentsmall = 0xfe6a; + t.period = 0x002e; + t.periodarmenian = 0x0589; + t.periodcentered = 0x00b7; + t.periodhalfwidth = 0xff61; + t.periodinferior = 0xf6e7; + t.periodmonospace = 0xff0e; + t.periodsmall = 0xfe52; + t.periodsuperior = 0xf6e8; + t.perispomenigreekcmb = 0x0342; + t.perpendicular = 0x22a5; + t.perthousand = 0x2030; + t.peseta = 0x20a7; + t.pfsquare = 0x338a; + t.phabengali = 0x09ab; + t.phadeva = 0x092b; + t.phagujarati = 0x0aab; + t.phagurmukhi = 0x0a2b; + t.phi = 0x03c6; + t.phi1 = 0x03d5; + t.phieuphacirclekorean = 0x327a; + t.phieuphaparenkorean = 0x321a; + t.phieuphcirclekorean = 0x326c; + t.phieuphkorean = 0x314d; + t.phieuphparenkorean = 0x320c; + t.philatin = 0x0278; + t.phinthuthai = 0x0e3a; + t.phisymbolgreek = 0x03d5; + t.phook = 0x01a5; + t.phophanthai = 0x0e1e; + t.phophungthai = 0x0e1c; + t.phosamphaothai = 0x0e20; + t.pi = 0x03c0; + t.pieupacirclekorean = 0x3273; + t.pieupaparenkorean = 0x3213; + t.pieupcieuckorean = 0x3176; + t.pieupcirclekorean = 0x3265; + t.pieupkiyeokkorean = 0x3172; + t.pieupkorean = 0x3142; + t.pieupparenkorean = 0x3205; + t.pieupsioskiyeokkorean = 0x3174; + t.pieupsioskorean = 0x3144; + t.pieupsiostikeutkorean = 0x3175; + t.pieupthieuthkorean = 0x3177; + t.pieuptikeutkorean = 0x3173; + t.pihiragana = 0x3074; + t.pikatakana = 0x30d4; + t.pisymbolgreek = 0x03d6; + t.piwrarmenian = 0x0583; + t.planckover2pi = 0x210f; + t.planckover2pi1 = 0x210f; + t.plus = 0x002b; + t.plusbelowcmb = 0x031f; + t.pluscircle = 0x2295; + t.plusminus = 0x00b1; + t.plusmod = 0x02d6; + t.plusmonospace = 0xff0b; + t.plussmall = 0xfe62; + t.plussuperior = 0x207a; + t.pmonospace = 0xff50; + t.pmsquare = 0x33d8; + t.pohiragana = 0x307d; + t.pointingindexdownwhite = 0x261f; + t.pointingindexleftwhite = 0x261c; + t.pointingindexrightwhite = 0x261e; + t.pointingindexupwhite = 0x261d; + t.pokatakana = 0x30dd; + t.poplathai = 0x0e1b; + t.postalmark = 0x3012; + t.postalmarkface = 0x3020; + t.pparen = 0x24ab; + t.precedes = 0x227a; + t.prescription = 0x211e; + t.primemod = 0x02b9; + t.primereversed = 0x2035; + t.product = 0x220f; + t.projective = 0x2305; + t.prolongedkana = 0x30fc; + t.propellor = 0x2318; + t.propersubset = 0x2282; + t.propersuperset = 0x2283; + t.proportion = 0x2237; + t.proportional = 0x221d; + t.psi = 0x03c8; + t.psicyrillic = 0x0471; + t.psilipneumatacyrilliccmb = 0x0486; + t.pssquare = 0x33b0; + t.puhiragana = 0x3077; + t.pukatakana = 0x30d7; + t.pvsquare = 0x33b4; + t.pwsquare = 0x33ba; + t.q = 0x0071; + t.qadeva = 0x0958; + t.qadmahebrew = 0x05a8; + t.qafarabic = 0x0642; + t.qaffinalarabic = 0xfed6; + t.qafinitialarabic = 0xfed7; + t.qafmedialarabic = 0xfed8; + t.qamats = 0x05b8; + t.qamats10 = 0x05b8; + t.qamats1a = 0x05b8; + t.qamats1c = 0x05b8; + t.qamats27 = 0x05b8; + t.qamats29 = 0x05b8; + t.qamats33 = 0x05b8; + t.qamatsde = 0x05b8; + t.qamatshebrew = 0x05b8; + t.qamatsnarrowhebrew = 0x05b8; + t.qamatsqatanhebrew = 0x05b8; + t.qamatsqatannarrowhebrew = 0x05b8; + t.qamatsqatanquarterhebrew = 0x05b8; + t.qamatsqatanwidehebrew = 0x05b8; + t.qamatsquarterhebrew = 0x05b8; + t.qamatswidehebrew = 0x05b8; + t.qarneyparahebrew = 0x059f; + t.qbopomofo = 0x3111; + t.qcircle = 0x24e0; + t.qhook = 0x02a0; + t.qmonospace = 0xff51; + t.qof = 0x05e7; + t.qofdagesh = 0xfb47; + t.qofdageshhebrew = 0xfb47; + t.qofhebrew = 0x05e7; + t.qparen = 0x24ac; + t.quarternote = 0x2669; + t.qubuts = 0x05bb; + t.qubuts18 = 0x05bb; + t.qubuts25 = 0x05bb; + t.qubuts31 = 0x05bb; + t.qubutshebrew = 0x05bb; + t.qubutsnarrowhebrew = 0x05bb; + t.qubutsquarterhebrew = 0x05bb; + t.qubutswidehebrew = 0x05bb; + t.question = 0x003f; + t.questionarabic = 0x061f; + t.questionarmenian = 0x055e; + t.questiondown = 0x00bf; + t.questiondownsmall = 0xf7bf; + t.questiongreek = 0x037e; + t.questionmonospace = 0xff1f; + t.questionsmall = 0xf73f; + t.quotedbl = 0x0022; + t.quotedblbase = 0x201e; + t.quotedblleft = 0x201c; + t.quotedblmonospace = 0xff02; + t.quotedblprime = 0x301e; + t.quotedblprimereversed = 0x301d; + t.quotedblright = 0x201d; + t.quoteleft = 0x2018; + t.quoteleftreversed = 0x201b; + t.quotereversed = 0x201b; + t.quoteright = 0x2019; + t.quoterightn = 0x0149; + t.quotesinglbase = 0x201a; + t.quotesingle = 0x0027; + t.quotesinglemonospace = 0xff07; + t.r = 0x0072; + t.raarmenian = 0x057c; + t.rabengali = 0x09b0; + t.racute = 0x0155; + t.radeva = 0x0930; + t.radical = 0x221a; + t.radicalex = 0xf8e5; + t.radoverssquare = 0x33ae; + t.radoverssquaredsquare = 0x33af; + t.radsquare = 0x33ad; + t.rafe = 0x05bf; + t.rafehebrew = 0x05bf; + t.ragujarati = 0x0ab0; + t.ragurmukhi = 0x0a30; + t.rahiragana = 0x3089; + t.rakatakana = 0x30e9; + t.rakatakanahalfwidth = 0xff97; + t.ralowerdiagonalbengali = 0x09f1; + t.ramiddlediagonalbengali = 0x09f0; + t.ramshorn = 0x0264; + t.ratio = 0x2236; + t.rbopomofo = 0x3116; + t.rcaron = 0x0159; + t.rcedilla = 0x0157; + t.rcircle = 0x24e1; + t.rcommaaccent = 0x0157; + t.rdblgrave = 0x0211; + t.rdotaccent = 0x1e59; + t.rdotbelow = 0x1e5b; + t.rdotbelowmacron = 0x1e5d; + t.referencemark = 0x203b; + t.reflexsubset = 0x2286; + t.reflexsuperset = 0x2287; + t.registered = 0x00ae; + t.registersans = 0xf8e8; + t.registerserif = 0xf6da; + t.reharabic = 0x0631; + t.reharmenian = 0x0580; + t.rehfinalarabic = 0xfeae; + t.rehiragana = 0x308c; + t.rekatakana = 0x30ec; + t.rekatakanahalfwidth = 0xff9a; + t.resh = 0x05e8; + t.reshdageshhebrew = 0xfb48; + t.reshhebrew = 0x05e8; + t.reversedtilde = 0x223d; + t.reviahebrew = 0x0597; + t.reviamugrashhebrew = 0x0597; + t.revlogicalnot = 0x2310; + t.rfishhook = 0x027e; + t.rfishhookreversed = 0x027f; + t.rhabengali = 0x09dd; + t.rhadeva = 0x095d; + t.rho = 0x03c1; + t.rhook = 0x027d; + t.rhookturned = 0x027b; + t.rhookturnedsuperior = 0x02b5; + t.rhosymbolgreek = 0x03f1; + t.rhotichookmod = 0x02de; + t.rieulacirclekorean = 0x3271; + t.rieulaparenkorean = 0x3211; + t.rieulcirclekorean = 0x3263; + t.rieulhieuhkorean = 0x3140; + t.rieulkiyeokkorean = 0x313a; + t.rieulkiyeoksioskorean = 0x3169; + t.rieulkorean = 0x3139; + t.rieulmieumkorean = 0x313b; + t.rieulpansioskorean = 0x316c; + t.rieulparenkorean = 0x3203; + t.rieulphieuphkorean = 0x313f; + t.rieulpieupkorean = 0x313c; + t.rieulpieupsioskorean = 0x316b; + t.rieulsioskorean = 0x313d; + t.rieulthieuthkorean = 0x313e; + t.rieultikeutkorean = 0x316a; + t.rieulyeorinhieuhkorean = 0x316d; + t.rightangle = 0x221f; + t.righttackbelowcmb = 0x0319; + t.righttriangle = 0x22bf; + t.rihiragana = 0x308a; + t.rikatakana = 0x30ea; + t.rikatakanahalfwidth = 0xff98; + t.ring = 0x02da; + t.ringbelowcmb = 0x0325; + t.ringcmb = 0x030a; + t.ringhalfleft = 0x02bf; + t.ringhalfleftarmenian = 0x0559; + t.ringhalfleftbelowcmb = 0x031c; + t.ringhalfleftcentered = 0x02d3; + t.ringhalfright = 0x02be; + t.ringhalfrightbelowcmb = 0x0339; + t.ringhalfrightcentered = 0x02d2; + t.rinvertedbreve = 0x0213; + t.rittorusquare = 0x3351; + t.rlinebelow = 0x1e5f; + t.rlongleg = 0x027c; + t.rlonglegturned = 0x027a; + t.rmonospace = 0xff52; + t.rohiragana = 0x308d; + t.rokatakana = 0x30ed; + t.rokatakanahalfwidth = 0xff9b; + t.roruathai = 0x0e23; + t.rparen = 0x24ad; + t.rrabengali = 0x09dc; + t.rradeva = 0x0931; + t.rragurmukhi = 0x0a5c; + t.rreharabic = 0x0691; + t.rrehfinalarabic = 0xfb8d; + t.rrvocalicbengali = 0x09e0; + t.rrvocalicdeva = 0x0960; + t.rrvocalicgujarati = 0x0ae0; + t.rrvocalicvowelsignbengali = 0x09c4; + t.rrvocalicvowelsigndeva = 0x0944; + t.rrvocalicvowelsigngujarati = 0x0ac4; + t.rsuperior = 0xf6f1; + t.rtblock = 0x2590; + t.rturned = 0x0279; + t.rturnedsuperior = 0x02b4; + t.ruhiragana = 0x308b; + t.rukatakana = 0x30eb; + t.rukatakanahalfwidth = 0xff99; + t.rupeemarkbengali = 0x09f2; + t.rupeesignbengali = 0x09f3; + t.rupiah = 0xf6dd; + t.ruthai = 0x0e24; + t.rvocalicbengali = 0x098b; + t.rvocalicdeva = 0x090b; + t.rvocalicgujarati = 0x0a8b; + t.rvocalicvowelsignbengali = 0x09c3; + t.rvocalicvowelsigndeva = 0x0943; + t.rvocalicvowelsigngujarati = 0x0ac3; + t.s = 0x0073; + t.sabengali = 0x09b8; + t.sacute = 0x015b; + t.sacutedotaccent = 0x1e65; + t.sadarabic = 0x0635; + t.sadeva = 0x0938; + t.sadfinalarabic = 0xfeba; + t.sadinitialarabic = 0xfebb; + t.sadmedialarabic = 0xfebc; + t.sagujarati = 0x0ab8; + t.sagurmukhi = 0x0a38; + t.sahiragana = 0x3055; + t.sakatakana = 0x30b5; + t.sakatakanahalfwidth = 0xff7b; + t.sallallahoualayhewasallamarabic = 0xfdfa; + t.samekh = 0x05e1; + t.samekhdagesh = 0xfb41; + t.samekhdageshhebrew = 0xfb41; + t.samekhhebrew = 0x05e1; + t.saraaathai = 0x0e32; + t.saraaethai = 0x0e41; + t.saraaimaimalaithai = 0x0e44; + t.saraaimaimuanthai = 0x0e43; + t.saraamthai = 0x0e33; + t.saraathai = 0x0e30; + t.saraethai = 0x0e40; + t.saraiileftthai = 0xf886; + t.saraiithai = 0x0e35; + t.saraileftthai = 0xf885; + t.saraithai = 0x0e34; + t.saraothai = 0x0e42; + t.saraueeleftthai = 0xf888; + t.saraueethai = 0x0e37; + t.saraueleftthai = 0xf887; + t.sarauethai = 0x0e36; + t.sarauthai = 0x0e38; + t.sarauuthai = 0x0e39; + t.sbopomofo = 0x3119; + t.scaron = 0x0161; + t.scarondotaccent = 0x1e67; + t.scedilla = 0x015f; + t.schwa = 0x0259; + t.schwacyrillic = 0x04d9; + t.schwadieresiscyrillic = 0x04db; + t.schwahook = 0x025a; + t.scircle = 0x24e2; + t.scircumflex = 0x015d; + t.scommaaccent = 0x0219; + t.sdotaccent = 0x1e61; + t.sdotbelow = 0x1e63; + t.sdotbelowdotaccent = 0x1e69; + t.seagullbelowcmb = 0x033c; + t.second = 0x2033; + t.secondtonechinese = 0x02ca; + t.section = 0x00a7; + t.seenarabic = 0x0633; + t.seenfinalarabic = 0xfeb2; + t.seeninitialarabic = 0xfeb3; + t.seenmedialarabic = 0xfeb4; + t.segol = 0x05b6; + t.segol13 = 0x05b6; + t.segol1f = 0x05b6; + t.segol2c = 0x05b6; + t.segolhebrew = 0x05b6; + t.segolnarrowhebrew = 0x05b6; + t.segolquarterhebrew = 0x05b6; + t.segoltahebrew = 0x0592; + t.segolwidehebrew = 0x05b6; + t.seharmenian = 0x057d; + t.sehiragana = 0x305b; + t.sekatakana = 0x30bb; + t.sekatakanahalfwidth = 0xff7e; + t.semicolon = 0x003b; + t.semicolonarabic = 0x061b; + t.semicolonmonospace = 0xff1b; + t.semicolonsmall = 0xfe54; + t.semivoicedmarkkana = 0x309c; + t.semivoicedmarkkanahalfwidth = 0xff9f; + t.sentisquare = 0x3322; + t.sentosquare = 0x3323; + t.seven = 0x0037; + t.sevenarabic = 0x0667; + t.sevenbengali = 0x09ed; + t.sevencircle = 0x2466; + t.sevencircleinversesansserif = 0x2790; + t.sevendeva = 0x096d; + t.seveneighths = 0x215e; + t.sevengujarati = 0x0aed; + t.sevengurmukhi = 0x0a6d; + t.sevenhackarabic = 0x0667; + t.sevenhangzhou = 0x3027; + t.sevenideographicparen = 0x3226; + t.seveninferior = 0x2087; + t.sevenmonospace = 0xff17; + t.sevenoldstyle = 0xf737; + t.sevenparen = 0x247a; + t.sevenperiod = 0x248e; + t.sevenpersian = 0x06f7; + t.sevenroman = 0x2176; + t.sevensuperior = 0x2077; + t.seventeencircle = 0x2470; + t.seventeenparen = 0x2484; + t.seventeenperiod = 0x2498; + t.seventhai = 0x0e57; + t.sfthyphen = 0x00ad; + t.shaarmenian = 0x0577; + t.shabengali = 0x09b6; + t.shacyrillic = 0x0448; + t.shaddaarabic = 0x0651; + t.shaddadammaarabic = 0xfc61; + t.shaddadammatanarabic = 0xfc5e; + t.shaddafathaarabic = 0xfc60; + t.shaddakasraarabic = 0xfc62; + t.shaddakasratanarabic = 0xfc5f; + t.shade = 0x2592; + t.shadedark = 0x2593; + t.shadelight = 0x2591; + t.shademedium = 0x2592; + t.shadeva = 0x0936; + t.shagujarati = 0x0ab6; + t.shagurmukhi = 0x0a36; + t.shalshelethebrew = 0x0593; + t.shbopomofo = 0x3115; + t.shchacyrillic = 0x0449; + t.sheenarabic = 0x0634; + t.sheenfinalarabic = 0xfeb6; + t.sheeninitialarabic = 0xfeb7; + t.sheenmedialarabic = 0xfeb8; + t.sheicoptic = 0x03e3; + t.sheqel = 0x20aa; + t.sheqelhebrew = 0x20aa; + t.sheva = 0x05b0; + t.sheva115 = 0x05b0; + t.sheva15 = 0x05b0; + t.sheva22 = 0x05b0; + t.sheva2e = 0x05b0; + t.shevahebrew = 0x05b0; + t.shevanarrowhebrew = 0x05b0; + t.shevaquarterhebrew = 0x05b0; + t.shevawidehebrew = 0x05b0; + t.shhacyrillic = 0x04bb; + t.shimacoptic = 0x03ed; + t.shin = 0x05e9; + t.shindagesh = 0xfb49; + t.shindageshhebrew = 0xfb49; + t.shindageshshindot = 0xfb2c; + t.shindageshshindothebrew = 0xfb2c; + t.shindageshsindot = 0xfb2d; + t.shindageshsindothebrew = 0xfb2d; + t.shindothebrew = 0x05c1; + t.shinhebrew = 0x05e9; + t.shinshindot = 0xfb2a; + t.shinshindothebrew = 0xfb2a; + t.shinsindot = 0xfb2b; + t.shinsindothebrew = 0xfb2b; + t.shook = 0x0282; + t.sigma = 0x03c3; + t.sigma1 = 0x03c2; + t.sigmafinal = 0x03c2; + t.sigmalunatesymbolgreek = 0x03f2; + t.sihiragana = 0x3057; + t.sikatakana = 0x30b7; + t.sikatakanahalfwidth = 0xff7c; + t.siluqhebrew = 0x05bd; + t.siluqlefthebrew = 0x05bd; + t.similar = 0x223c; + t.sindothebrew = 0x05c2; + t.siosacirclekorean = 0x3274; + t.siosaparenkorean = 0x3214; + t.sioscieuckorean = 0x317e; + t.sioscirclekorean = 0x3266; + t.sioskiyeokkorean = 0x317a; + t.sioskorean = 0x3145; + t.siosnieunkorean = 0x317b; + t.siosparenkorean = 0x3206; + t.siospieupkorean = 0x317d; + t.siostikeutkorean = 0x317c; + t.six = 0x0036; + t.sixarabic = 0x0666; + t.sixbengali = 0x09ec; + t.sixcircle = 0x2465; + t.sixcircleinversesansserif = 0x278f; + t.sixdeva = 0x096c; + t.sixgujarati = 0x0aec; + t.sixgurmukhi = 0x0a6c; + t.sixhackarabic = 0x0666; + t.sixhangzhou = 0x3026; + t.sixideographicparen = 0x3225; + t.sixinferior = 0x2086; + t.sixmonospace = 0xff16; + t.sixoldstyle = 0xf736; + t.sixparen = 0x2479; + t.sixperiod = 0x248d; + t.sixpersian = 0x06f6; + t.sixroman = 0x2175; + t.sixsuperior = 0x2076; + t.sixteencircle = 0x246f; + t.sixteencurrencydenominatorbengali = 0x09f9; + t.sixteenparen = 0x2483; + t.sixteenperiod = 0x2497; + t.sixthai = 0x0e56; + t.slash = 0x002f; + t.slashmonospace = 0xff0f; + t.slong = 0x017f; + t.slongdotaccent = 0x1e9b; + t.smileface = 0x263a; + t.smonospace = 0xff53; + t.sofpasuqhebrew = 0x05c3; + t.softhyphen = 0x00ad; + t.softsigncyrillic = 0x044c; + t.sohiragana = 0x305d; + t.sokatakana = 0x30bd; + t.sokatakanahalfwidth = 0xff7f; + t.soliduslongoverlaycmb = 0x0338; + t.solidusshortoverlaycmb = 0x0337; + t.sorusithai = 0x0e29; + t.sosalathai = 0x0e28; + t.sosothai = 0x0e0b; + t.sosuathai = 0x0e2a; + t.space = 0x0020; + t.spacehackarabic = 0x0020; + t.spade = 0x2660; + t.spadesuitblack = 0x2660; + t.spadesuitwhite = 0x2664; + t.sparen = 0x24ae; + t.squarebelowcmb = 0x033b; + t.squarecc = 0x33c4; + t.squarecm = 0x339d; + t.squarediagonalcrosshatchfill = 0x25a9; + t.squarehorizontalfill = 0x25a4; + t.squarekg = 0x338f; + t.squarekm = 0x339e; + t.squarekmcapital = 0x33ce; + t.squareln = 0x33d1; + t.squarelog = 0x33d2; + t.squaremg = 0x338e; + t.squaremil = 0x33d5; + t.squaremm = 0x339c; + t.squaremsquared = 0x33a1; + t.squareorthogonalcrosshatchfill = 0x25a6; + t.squareupperlefttolowerrightfill = 0x25a7; + t.squareupperrighttolowerleftfill = 0x25a8; + t.squareverticalfill = 0x25a5; + t.squarewhitewithsmallblack = 0x25a3; + t.srsquare = 0x33db; + t.ssabengali = 0x09b7; + t.ssadeva = 0x0937; + t.ssagujarati = 0x0ab7; + t.ssangcieuckorean = 0x3149; + t.ssanghieuhkorean = 0x3185; + t.ssangieungkorean = 0x3180; + t.ssangkiyeokkorean = 0x3132; + t.ssangnieunkorean = 0x3165; + t.ssangpieupkorean = 0x3143; + t.ssangsioskorean = 0x3146; + t.ssangtikeutkorean = 0x3138; + t.ssuperior = 0xf6f2; + t.sterling = 0x00a3; + t.sterlingmonospace = 0xffe1; + t.strokelongoverlaycmb = 0x0336; + t.strokeshortoverlaycmb = 0x0335; + t.subset = 0x2282; + t.subsetnotequal = 0x228a; + t.subsetorequal = 0x2286; + t.succeeds = 0x227b; + t.suchthat = 0x220b; + t.suhiragana = 0x3059; + t.sukatakana = 0x30b9; + t.sukatakanahalfwidth = 0xff7d; + t.sukunarabic = 0x0652; + t.summation = 0x2211; + t.sun = 0x263c; + t.superset = 0x2283; + t.supersetnotequal = 0x228b; + t.supersetorequal = 0x2287; + t.svsquare = 0x33dc; + t.syouwaerasquare = 0x337c; + t.t = 0x0074; + t.tabengali = 0x09a4; + t.tackdown = 0x22a4; + t.tackleft = 0x22a3; + t.tadeva = 0x0924; + t.tagujarati = 0x0aa4; + t.tagurmukhi = 0x0a24; + t.taharabic = 0x0637; + t.tahfinalarabic = 0xfec2; + t.tahinitialarabic = 0xfec3; + t.tahiragana = 0x305f; + t.tahmedialarabic = 0xfec4; + t.taisyouerasquare = 0x337d; + t.takatakana = 0x30bf; + t.takatakanahalfwidth = 0xff80; + t.tatweelarabic = 0x0640; + t.tau = 0x03c4; + t.tav = 0x05ea; + t.tavdages = 0xfb4a; + t.tavdagesh = 0xfb4a; + t.tavdageshhebrew = 0xfb4a; + t.tavhebrew = 0x05ea; + t.tbar = 0x0167; + t.tbopomofo = 0x310a; + t.tcaron = 0x0165; + t.tccurl = 0x02a8; + t.tcedilla = 0x0163; + t.tcheharabic = 0x0686; + t.tchehfinalarabic = 0xfb7b; + t.tchehinitialarabic = 0xfb7c; + t.tchehmedialarabic = 0xfb7d; + t.tcircle = 0x24e3; + t.tcircumflexbelow = 0x1e71; + t.tcommaaccent = 0x0163; + t.tdieresis = 0x1e97; + t.tdotaccent = 0x1e6b; + t.tdotbelow = 0x1e6d; + t.tecyrillic = 0x0442; + t.tedescendercyrillic = 0x04ad; + t.teharabic = 0x062a; + t.tehfinalarabic = 0xfe96; + t.tehhahinitialarabic = 0xfca2; + t.tehhahisolatedarabic = 0xfc0c; + t.tehinitialarabic = 0xfe97; + t.tehiragana = 0x3066; + t.tehjeeminitialarabic = 0xfca1; + t.tehjeemisolatedarabic = 0xfc0b; + t.tehmarbutaarabic = 0x0629; + t.tehmarbutafinalarabic = 0xfe94; + t.tehmedialarabic = 0xfe98; + t.tehmeeminitialarabic = 0xfca4; + t.tehmeemisolatedarabic = 0xfc0e; + t.tehnoonfinalarabic = 0xfc73; + t.tekatakana = 0x30c6; + t.tekatakanahalfwidth = 0xff83; + t.telephone = 0x2121; + t.telephoneblack = 0x260e; + t.telishagedolahebrew = 0x05a0; + t.telishaqetanahebrew = 0x05a9; + t.tencircle = 0x2469; + t.tenideographicparen = 0x3229; + t.tenparen = 0x247d; + t.tenperiod = 0x2491; + t.tenroman = 0x2179; + t.tesh = 0x02a7; + t.tet = 0x05d8; + t.tetdagesh = 0xfb38; + t.tetdageshhebrew = 0xfb38; + t.tethebrew = 0x05d8; + t.tetsecyrillic = 0x04b5; + t.tevirhebrew = 0x059b; + t.tevirlefthebrew = 0x059b; + t.thabengali = 0x09a5; + t.thadeva = 0x0925; + t.thagujarati = 0x0aa5; + t.thagurmukhi = 0x0a25; + t.thalarabic = 0x0630; + t.thalfinalarabic = 0xfeac; + t.thanthakhatlowleftthai = 0xf898; + t.thanthakhatlowrightthai = 0xf897; + t.thanthakhatthai = 0x0e4c; + t.thanthakhatupperleftthai = 0xf896; + t.theharabic = 0x062b; + t.thehfinalarabic = 0xfe9a; + t.thehinitialarabic = 0xfe9b; + t.thehmedialarabic = 0xfe9c; + t.thereexists = 0x2203; + t.therefore = 0x2234; + t.theta = 0x03b8; + t.theta1 = 0x03d1; + t.thetasymbolgreek = 0x03d1; + t.thieuthacirclekorean = 0x3279; + t.thieuthaparenkorean = 0x3219; + t.thieuthcirclekorean = 0x326b; + t.thieuthkorean = 0x314c; + t.thieuthparenkorean = 0x320b; + t.thirteencircle = 0x246c; + t.thirteenparen = 0x2480; + t.thirteenperiod = 0x2494; + t.thonangmonthothai = 0x0e11; + t.thook = 0x01ad; + t.thophuthaothai = 0x0e12; + t.thorn = 0x00fe; + t.thothahanthai = 0x0e17; + t.thothanthai = 0x0e10; + t.thothongthai = 0x0e18; + t.thothungthai = 0x0e16; + t.thousandcyrillic = 0x0482; + t.thousandsseparatorarabic = 0x066c; + t.thousandsseparatorpersian = 0x066c; + t.three = 0x0033; + t.threearabic = 0x0663; + t.threebengali = 0x09e9; + t.threecircle = 0x2462; + t.threecircleinversesansserif = 0x278c; + t.threedeva = 0x0969; + t.threeeighths = 0x215c; + t.threegujarati = 0x0ae9; + t.threegurmukhi = 0x0a69; + t.threehackarabic = 0x0663; + t.threehangzhou = 0x3023; + t.threeideographicparen = 0x3222; + t.threeinferior = 0x2083; + t.threemonospace = 0xff13; + t.threenumeratorbengali = 0x09f6; + t.threeoldstyle = 0xf733; + t.threeparen = 0x2476; + t.threeperiod = 0x248a; + t.threepersian = 0x06f3; + t.threequarters = 0x00be; + t.threequartersemdash = 0xf6de; + t.threeroman = 0x2172; + t.threesuperior = 0x00b3; + t.threethai = 0x0e53; + t.thzsquare = 0x3394; + t.tihiragana = 0x3061; + t.tikatakana = 0x30c1; + t.tikatakanahalfwidth = 0xff81; + t.tikeutacirclekorean = 0x3270; + t.tikeutaparenkorean = 0x3210; + t.tikeutcirclekorean = 0x3262; + t.tikeutkorean = 0x3137; + t.tikeutparenkorean = 0x3202; + t.tilde = 0x02dc; + t.tildebelowcmb = 0x0330; + t.tildecmb = 0x0303; + t.tildecomb = 0x0303; + t.tildedoublecmb = 0x0360; + t.tildeoperator = 0x223c; + t.tildeoverlaycmb = 0x0334; + t.tildeverticalcmb = 0x033e; + t.timescircle = 0x2297; + t.tipehahebrew = 0x0596; + t.tipehalefthebrew = 0x0596; + t.tippigurmukhi = 0x0a70; + t.titlocyrilliccmb = 0x0483; + t.tiwnarmenian = 0x057f; + t.tlinebelow = 0x1e6f; + t.tmonospace = 0xff54; + t.toarmenian = 0x0569; + t.tohiragana = 0x3068; + t.tokatakana = 0x30c8; + t.tokatakanahalfwidth = 0xff84; + t.tonebarextrahighmod = 0x02e5; + t.tonebarextralowmod = 0x02e9; + t.tonebarhighmod = 0x02e6; + t.tonebarlowmod = 0x02e8; + t.tonebarmidmod = 0x02e7; + t.tonefive = 0x01bd; + t.tonesix = 0x0185; + t.tonetwo = 0x01a8; + t.tonos = 0x0384; + t.tonsquare = 0x3327; + t.topatakthai = 0x0e0f; + t.tortoiseshellbracketleft = 0x3014; + t.tortoiseshellbracketleftsmall = 0xfe5d; + t.tortoiseshellbracketleftvertical = 0xfe39; + t.tortoiseshellbracketright = 0x3015; + t.tortoiseshellbracketrightsmall = 0xfe5e; + t.tortoiseshellbracketrightvertical = 0xfe3a; + t.totaothai = 0x0e15; + t.tpalatalhook = 0x01ab; + t.tparen = 0x24af; + t.trademark = 0x2122; + t.trademarksans = 0xf8ea; + t.trademarkserif = 0xf6db; + t.tretroflexhook = 0x0288; + t.triagdn = 0x25bc; + t.triaglf = 0x25c4; + t.triagrt = 0x25ba; + t.triagup = 0x25b2; + t.ts = 0x02a6; + t.tsadi = 0x05e6; + t.tsadidagesh = 0xfb46; + t.tsadidageshhebrew = 0xfb46; + t.tsadihebrew = 0x05e6; + t.tsecyrillic = 0x0446; + t.tsere = 0x05b5; + t.tsere12 = 0x05b5; + t.tsere1e = 0x05b5; + t.tsere2b = 0x05b5; + t.tserehebrew = 0x05b5; + t.tserenarrowhebrew = 0x05b5; + t.tserequarterhebrew = 0x05b5; + t.tserewidehebrew = 0x05b5; + t.tshecyrillic = 0x045b; + t.tsuperior = 0xf6f3; + t.ttabengali = 0x099f; + t.ttadeva = 0x091f; + t.ttagujarati = 0x0a9f; + t.ttagurmukhi = 0x0a1f; + t.tteharabic = 0x0679; + t.ttehfinalarabic = 0xfb67; + t.ttehinitialarabic = 0xfb68; + t.ttehmedialarabic = 0xfb69; + t.tthabengali = 0x09a0; + t.tthadeva = 0x0920; + t.tthagujarati = 0x0aa0; + t.tthagurmukhi = 0x0a20; + t.tturned = 0x0287; + t.tuhiragana = 0x3064; + t.tukatakana = 0x30c4; + t.tukatakanahalfwidth = 0xff82; + t.tusmallhiragana = 0x3063; + t.tusmallkatakana = 0x30c3; + t.tusmallkatakanahalfwidth = 0xff6f; + t.twelvecircle = 0x246b; + t.twelveparen = 0x247f; + t.twelveperiod = 0x2493; + t.twelveroman = 0x217b; + t.twentycircle = 0x2473; + t.twentyhangzhou = 0x5344; + t.twentyparen = 0x2487; + t.twentyperiod = 0x249b; + t.two = 0x0032; + t.twoarabic = 0x0662; + t.twobengali = 0x09e8; + t.twocircle = 0x2461; + t.twocircleinversesansserif = 0x278b; + t.twodeva = 0x0968; + t.twodotenleader = 0x2025; + t.twodotleader = 0x2025; + t.twodotleadervertical = 0xfe30; + t.twogujarati = 0x0ae8; + t.twogurmukhi = 0x0a68; + t.twohackarabic = 0x0662; + t.twohangzhou = 0x3022; + t.twoideographicparen = 0x3221; + t.twoinferior = 0x2082; + t.twomonospace = 0xff12; + t.twonumeratorbengali = 0x09f5; + t.twooldstyle = 0xf732; + t.twoparen = 0x2475; + t.twoperiod = 0x2489; + t.twopersian = 0x06f2; + t.tworoman = 0x2171; + t.twostroke = 0x01bb; + t.twosuperior = 0x00b2; + t.twothai = 0x0e52; + t.twothirds = 0x2154; + t.u = 0x0075; + t.uacute = 0x00fa; + t.ubar = 0x0289; + t.ubengali = 0x0989; + t.ubopomofo = 0x3128; + t.ubreve = 0x016d; + t.ucaron = 0x01d4; + t.ucircle = 0x24e4; + t.ucircumflex = 0x00fb; + t.ucircumflexbelow = 0x1e77; + t.ucyrillic = 0x0443; + t.udattadeva = 0x0951; + t.udblacute = 0x0171; + t.udblgrave = 0x0215; + t.udeva = 0x0909; + t.udieresis = 0x00fc; + t.udieresisacute = 0x01d8; + t.udieresisbelow = 0x1e73; + t.udieresiscaron = 0x01da; + t.udieresiscyrillic = 0x04f1; + t.udieresisgrave = 0x01dc; + t.udieresismacron = 0x01d6; + t.udotbelow = 0x1ee5; + t.ugrave = 0x00f9; + t.ugujarati = 0x0a89; + t.ugurmukhi = 0x0a09; + t.uhiragana = 0x3046; + t.uhookabove = 0x1ee7; + t.uhorn = 0x01b0; + t.uhornacute = 0x1ee9; + t.uhorndotbelow = 0x1ef1; + t.uhorngrave = 0x1eeb; + t.uhornhookabove = 0x1eed; + t.uhorntilde = 0x1eef; + t.uhungarumlaut = 0x0171; + t.uhungarumlautcyrillic = 0x04f3; + t.uinvertedbreve = 0x0217; + t.ukatakana = 0x30a6; + t.ukatakanahalfwidth = 0xff73; + t.ukcyrillic = 0x0479; + t.ukorean = 0x315c; + t.umacron = 0x016b; + t.umacroncyrillic = 0x04ef; + t.umacrondieresis = 0x1e7b; + t.umatragurmukhi = 0x0a41; + t.umonospace = 0xff55; + t.underscore = 0x005f; + t.underscoredbl = 0x2017; + t.underscoremonospace = 0xff3f; + t.underscorevertical = 0xfe33; + t.underscorewavy = 0xfe4f; + t.union = 0x222a; + t.universal = 0x2200; + t.uogonek = 0x0173; + t.uparen = 0x24b0; + t.upblock = 0x2580; + t.upperdothebrew = 0x05c4; + t.upsilon = 0x03c5; + t.upsilondieresis = 0x03cb; + t.upsilondieresistonos = 0x03b0; + t.upsilonlatin = 0x028a; + t.upsilontonos = 0x03cd; + t.uptackbelowcmb = 0x031d; + t.uptackmod = 0x02d4; + t.uragurmukhi = 0x0a73; + t.uring = 0x016f; + t.ushortcyrillic = 0x045e; + t.usmallhiragana = 0x3045; + t.usmallkatakana = 0x30a5; + t.usmallkatakanahalfwidth = 0xff69; + t.ustraightcyrillic = 0x04af; + t.ustraightstrokecyrillic = 0x04b1; + t.utilde = 0x0169; + t.utildeacute = 0x1e79; + t.utildebelow = 0x1e75; + t.uubengali = 0x098a; + t.uudeva = 0x090a; + t.uugujarati = 0x0a8a; + t.uugurmukhi = 0x0a0a; + t.uumatragurmukhi = 0x0a42; + t.uuvowelsignbengali = 0x09c2; + t.uuvowelsigndeva = 0x0942; + t.uuvowelsigngujarati = 0x0ac2; + t.uvowelsignbengali = 0x09c1; + t.uvowelsigndeva = 0x0941; + t.uvowelsigngujarati = 0x0ac1; + t.v = 0x0076; + t.vadeva = 0x0935; + t.vagujarati = 0x0ab5; + t.vagurmukhi = 0x0a35; + t.vakatakana = 0x30f7; + t.vav = 0x05d5; + t.vavdagesh = 0xfb35; + t.vavdagesh65 = 0xfb35; + t.vavdageshhebrew = 0xfb35; + t.vavhebrew = 0x05d5; + t.vavholam = 0xfb4b; + t.vavholamhebrew = 0xfb4b; + t.vavvavhebrew = 0x05f0; + t.vavyodhebrew = 0x05f1; + t.vcircle = 0x24e5; + t.vdotbelow = 0x1e7f; + t.vecyrillic = 0x0432; + t.veharabic = 0x06a4; + t.vehfinalarabic = 0xfb6b; + t.vehinitialarabic = 0xfb6c; + t.vehmedialarabic = 0xfb6d; + t.vekatakana = 0x30f9; + t.venus = 0x2640; + t.verticalbar = 0x007c; + t.verticallineabovecmb = 0x030d; + t.verticallinebelowcmb = 0x0329; + t.verticallinelowmod = 0x02cc; + t.verticallinemod = 0x02c8; + t.vewarmenian = 0x057e; + t.vhook = 0x028b; + t.vikatakana = 0x30f8; + t.viramabengali = 0x09cd; + t.viramadeva = 0x094d; + t.viramagujarati = 0x0acd; + t.visargabengali = 0x0983; + t.visargadeva = 0x0903; + t.visargagujarati = 0x0a83; + t.vmonospace = 0xff56; + t.voarmenian = 0x0578; + t.voicediterationhiragana = 0x309e; + t.voicediterationkatakana = 0x30fe; + t.voicedmarkkana = 0x309b; + t.voicedmarkkanahalfwidth = 0xff9e; + t.vokatakana = 0x30fa; + t.vparen = 0x24b1; + t.vtilde = 0x1e7d; + t.vturned = 0x028c; + t.vuhiragana = 0x3094; + t.vukatakana = 0x30f4; + t.w = 0x0077; + t.wacute = 0x1e83; + t.waekorean = 0x3159; + t.wahiragana = 0x308f; + t.wakatakana = 0x30ef; + t.wakatakanahalfwidth = 0xff9c; + t.wakorean = 0x3158; + t.wasmallhiragana = 0x308e; + t.wasmallkatakana = 0x30ee; + t.wattosquare = 0x3357; + t.wavedash = 0x301c; + t.wavyunderscorevertical = 0xfe34; + t.wawarabic = 0x0648; + t.wawfinalarabic = 0xfeee; + t.wawhamzaabovearabic = 0x0624; + t.wawhamzaabovefinalarabic = 0xfe86; + t.wbsquare = 0x33dd; + t.wcircle = 0x24e6; + t.wcircumflex = 0x0175; + t.wdieresis = 0x1e85; + t.wdotaccent = 0x1e87; + t.wdotbelow = 0x1e89; + t.wehiragana = 0x3091; + t.weierstrass = 0x2118; + t.wekatakana = 0x30f1; + t.wekorean = 0x315e; + t.weokorean = 0x315d; + t.wgrave = 0x1e81; + t.whitebullet = 0x25e6; + t.whitecircle = 0x25cb; + t.whitecircleinverse = 0x25d9; + t.whitecornerbracketleft = 0x300e; + t.whitecornerbracketleftvertical = 0xfe43; + t.whitecornerbracketright = 0x300f; + t.whitecornerbracketrightvertical = 0xfe44; + t.whitediamond = 0x25c7; + t.whitediamondcontainingblacksmalldiamond = 0x25c8; + t.whitedownpointingsmalltriangle = 0x25bf; + t.whitedownpointingtriangle = 0x25bd; + t.whiteleftpointingsmalltriangle = 0x25c3; + t.whiteleftpointingtriangle = 0x25c1; + t.whitelenticularbracketleft = 0x3016; + t.whitelenticularbracketright = 0x3017; + t.whiterightpointingsmalltriangle = 0x25b9; + t.whiterightpointingtriangle = 0x25b7; + t.whitesmallsquare = 0x25ab; + t.whitesmilingface = 0x263a; + t.whitesquare = 0x25a1; + t.whitestar = 0x2606; + t.whitetelephone = 0x260f; + t.whitetortoiseshellbracketleft = 0x3018; + t.whitetortoiseshellbracketright = 0x3019; + t.whiteuppointingsmalltriangle = 0x25b5; + t.whiteuppointingtriangle = 0x25b3; + t.wihiragana = 0x3090; + t.wikatakana = 0x30f0; + t.wikorean = 0x315f; + t.wmonospace = 0xff57; + t.wohiragana = 0x3092; + t.wokatakana = 0x30f2; + t.wokatakanahalfwidth = 0xff66; + t.won = 0x20a9; + t.wonmonospace = 0xffe6; + t.wowaenthai = 0x0e27; + t.wparen = 0x24b2; + t.wring = 0x1e98; + t.wsuperior = 0x02b7; + t.wturned = 0x028d; + t.wynn = 0x01bf; + t.x = 0x0078; + t.xabovecmb = 0x033d; + t.xbopomofo = 0x3112; + t.xcircle = 0x24e7; + t.xdieresis = 0x1e8d; + t.xdotaccent = 0x1e8b; + t.xeharmenian = 0x056d; + t.xi = 0x03be; + t.xmonospace = 0xff58; + t.xparen = 0x24b3; + t.xsuperior = 0x02e3; + t.y = 0x0079; + t.yaadosquare = 0x334e; + t.yabengali = 0x09af; + t.yacute = 0x00fd; + t.yadeva = 0x092f; + t.yaekorean = 0x3152; + t.yagujarati = 0x0aaf; + t.yagurmukhi = 0x0a2f; + t.yahiragana = 0x3084; + t.yakatakana = 0x30e4; + t.yakatakanahalfwidth = 0xff94; + t.yakorean = 0x3151; + t.yamakkanthai = 0x0e4e; + t.yasmallhiragana = 0x3083; + t.yasmallkatakana = 0x30e3; + t.yasmallkatakanahalfwidth = 0xff6c; + t.yatcyrillic = 0x0463; + t.ycircle = 0x24e8; + t.ycircumflex = 0x0177; + t.ydieresis = 0x00ff; + t.ydotaccent = 0x1e8f; + t.ydotbelow = 0x1ef5; + t.yeharabic = 0x064a; + t.yehbarreearabic = 0x06d2; + t.yehbarreefinalarabic = 0xfbaf; + t.yehfinalarabic = 0xfef2; + t.yehhamzaabovearabic = 0x0626; + t.yehhamzaabovefinalarabic = 0xfe8a; + t.yehhamzaaboveinitialarabic = 0xfe8b; + t.yehhamzaabovemedialarabic = 0xfe8c; + t.yehinitialarabic = 0xfef3; + t.yehmedialarabic = 0xfef4; + t.yehmeeminitialarabic = 0xfcdd; + t.yehmeemisolatedarabic = 0xfc58; + t.yehnoonfinalarabic = 0xfc94; + t.yehthreedotsbelowarabic = 0x06d1; + t.yekorean = 0x3156; + t.yen = 0x00a5; + t.yenmonospace = 0xffe5; + t.yeokorean = 0x3155; + t.yeorinhieuhkorean = 0x3186; + t.yerahbenyomohebrew = 0x05aa; + t.yerahbenyomolefthebrew = 0x05aa; + t.yericyrillic = 0x044b; + t.yerudieresiscyrillic = 0x04f9; + t.yesieungkorean = 0x3181; + t.yesieungpansioskorean = 0x3183; + t.yesieungsioskorean = 0x3182; + t.yetivhebrew = 0x059a; + t.ygrave = 0x1ef3; + t.yhook = 0x01b4; + t.yhookabove = 0x1ef7; + t.yiarmenian = 0x0575; + t.yicyrillic = 0x0457; + t.yikorean = 0x3162; + t.yinyang = 0x262f; + t.yiwnarmenian = 0x0582; + t.ymonospace = 0xff59; + t.yod = 0x05d9; + t.yoddagesh = 0xfb39; + t.yoddageshhebrew = 0xfb39; + t.yodhebrew = 0x05d9; + t.yodyodhebrew = 0x05f2; + t.yodyodpatahhebrew = 0xfb1f; + t.yohiragana = 0x3088; + t.yoikorean = 0x3189; + t.yokatakana = 0x30e8; + t.yokatakanahalfwidth = 0xff96; + t.yokorean = 0x315b; + t.yosmallhiragana = 0x3087; + t.yosmallkatakana = 0x30e7; + t.yosmallkatakanahalfwidth = 0xff6e; + t.yotgreek = 0x03f3; + t.yoyaekorean = 0x3188; + t.yoyakorean = 0x3187; + t.yoyakthai = 0x0e22; + t.yoyingthai = 0x0e0d; + t.yparen = 0x24b4; + t.ypogegrammeni = 0x037a; + t.ypogegrammenigreekcmb = 0x0345; + t.yr = 0x01a6; + t.yring = 0x1e99; + t.ysuperior = 0x02b8; + t.ytilde = 0x1ef9; + t.yturned = 0x028e; + t.yuhiragana = 0x3086; + t.yuikorean = 0x318c; + t.yukatakana = 0x30e6; + t.yukatakanahalfwidth = 0xff95; + t.yukorean = 0x3160; + t.yusbigcyrillic = 0x046b; + t.yusbigiotifiedcyrillic = 0x046d; + t.yuslittlecyrillic = 0x0467; + t.yuslittleiotifiedcyrillic = 0x0469; + t.yusmallhiragana = 0x3085; + t.yusmallkatakana = 0x30e5; + t.yusmallkatakanahalfwidth = 0xff6d; + t.yuyekorean = 0x318b; + t.yuyeokorean = 0x318a; + t.yyabengali = 0x09df; + t.yyadeva = 0x095f; + t.z = 0x007a; + t.zaarmenian = 0x0566; + t.zacute = 0x017a; + t.zadeva = 0x095b; + t.zagurmukhi = 0x0a5b; + t.zaharabic = 0x0638; + t.zahfinalarabic = 0xfec6; + t.zahinitialarabic = 0xfec7; + t.zahiragana = 0x3056; + t.zahmedialarabic = 0xfec8; + t.zainarabic = 0x0632; + t.zainfinalarabic = 0xfeb0; + t.zakatakana = 0x30b6; + t.zaqefgadolhebrew = 0x0595; + t.zaqefqatanhebrew = 0x0594; + t.zarqahebrew = 0x0598; + t.zayin = 0x05d6; + t.zayindagesh = 0xfb36; + t.zayindageshhebrew = 0xfb36; + t.zayinhebrew = 0x05d6; + t.zbopomofo = 0x3117; + t.zcaron = 0x017e; + t.zcircle = 0x24e9; + t.zcircumflex = 0x1e91; + t.zcurl = 0x0291; + t.zdot = 0x017c; + t.zdotaccent = 0x017c; + t.zdotbelow = 0x1e93; + t.zecyrillic = 0x0437; + t.zedescendercyrillic = 0x0499; + t.zedieresiscyrillic = 0x04df; + t.zehiragana = 0x305c; + t.zekatakana = 0x30bc; + t.zero = 0x0030; + t.zeroarabic = 0x0660; + t.zerobengali = 0x09e6; + t.zerodeva = 0x0966; + t.zerogujarati = 0x0ae6; + t.zerogurmukhi = 0x0a66; + t.zerohackarabic = 0x0660; + t.zeroinferior = 0x2080; + t.zeromonospace = 0xff10; + t.zerooldstyle = 0xf730; + t.zeropersian = 0x06f0; + t.zerosuperior = 0x2070; + t.zerothai = 0x0e50; + t.zerowidthjoiner = 0xfeff; + t.zerowidthnonjoiner = 0x200c; + t.zerowidthspace = 0x200b; + t.zeta = 0x03b6; + t.zhbopomofo = 0x3113; + t.zhearmenian = 0x056a; + t.zhebrevecyrillic = 0x04c2; + t.zhecyrillic = 0x0436; + t.zhedescendercyrillic = 0x0497; + t.zhedieresiscyrillic = 0x04dd; + t.zihiragana = 0x3058; + t.zikatakana = 0x30b8; + t.zinorhebrew = 0x05ae; + t.zlinebelow = 0x1e95; + t.zmonospace = 0xff5a; + t.zohiragana = 0x305e; + t.zokatakana = 0x30be; + t.zparen = 0x24b5; + t.zretroflexhook = 0x0290; + t.zstroke = 0x01b6; + t.zuhiragana = 0x305a; + t.zukatakana = 0x30ba; + t[".notdef"] = 0x0000; + t.angbracketleftbig = 0x2329; + t.angbracketleftBig = 0x2329; + t.angbracketleftbigg = 0x2329; + t.angbracketleftBigg = 0x2329; + t.angbracketrightBig = 0x232a; + t.angbracketrightbig = 0x232a; + t.angbracketrightBigg = 0x232a; + t.angbracketrightbigg = 0x232a; + t.arrowhookleft = 0x21aa; + t.arrowhookright = 0x21a9; + t.arrowlefttophalf = 0x21bc; + t.arrowleftbothalf = 0x21bd; + t.arrownortheast = 0x2197; + t.arrownorthwest = 0x2196; + t.arrowrighttophalf = 0x21c0; + t.arrowrightbothalf = 0x21c1; + t.arrowsoutheast = 0x2198; + t.arrowsouthwest = 0x2199; + t.backslashbig = 0x2216; + t.backslashBig = 0x2216; + t.backslashBigg = 0x2216; + t.backslashbigg = 0x2216; + t.bardbl = 0x2016; + t.bracehtipdownleft = 0xfe37; + t.bracehtipdownright = 0xfe37; + t.bracehtipupleft = 0xfe38; + t.bracehtipupright = 0xfe38; + t.braceleftBig = 0x007b; + t.braceleftbig = 0x007b; + t.braceleftbigg = 0x007b; + t.braceleftBigg = 0x007b; + t.bracerightBig = 0x007d; + t.bracerightbig = 0x007d; + t.bracerightbigg = 0x007d; + t.bracerightBigg = 0x007d; + t.bracketleftbig = 0x005b; + t.bracketleftBig = 0x005b; + t.bracketleftbigg = 0x005b; + t.bracketleftBigg = 0x005b; + t.bracketrightBig = 0x005d; + t.bracketrightbig = 0x005d; + t.bracketrightbigg = 0x005d; + t.bracketrightBigg = 0x005d; + t.ceilingleftbig = 0x2308; + t.ceilingleftBig = 0x2308; + t.ceilingleftBigg = 0x2308; + t.ceilingleftbigg = 0x2308; + t.ceilingrightbig = 0x2309; + t.ceilingrightBig = 0x2309; + t.ceilingrightbigg = 0x2309; + t.ceilingrightBigg = 0x2309; + t.circledotdisplay = 0x2299; + t.circledottext = 0x2299; + t.circlemultiplydisplay = 0x2297; + t.circlemultiplytext = 0x2297; + t.circleplusdisplay = 0x2295; + t.circleplustext = 0x2295; + t.contintegraldisplay = 0x222e; + t.contintegraltext = 0x222e; + t.coproductdisplay = 0x2210; + t.coproducttext = 0x2210; + t.floorleftBig = 0x230a; + t.floorleftbig = 0x230a; + t.floorleftbigg = 0x230a; + t.floorleftBigg = 0x230a; + t.floorrightbig = 0x230b; + t.floorrightBig = 0x230b; + t.floorrightBigg = 0x230b; + t.floorrightbigg = 0x230b; + t.hatwide = 0x0302; + t.hatwider = 0x0302; + t.hatwidest = 0x0302; + t.intercal = 0x1d40; + t.integraldisplay = 0x222b; + t.integraltext = 0x222b; + t.intersectiondisplay = 0x22c2; + t.intersectiontext = 0x22c2; + t.logicalanddisplay = 0x2227; + t.logicalandtext = 0x2227; + t.logicalordisplay = 0x2228; + t.logicalortext = 0x2228; + t.parenleftBig = 0x0028; + t.parenleftbig = 0x0028; + t.parenleftBigg = 0x0028; + t.parenleftbigg = 0x0028; + t.parenrightBig = 0x0029; + t.parenrightbig = 0x0029; + t.parenrightBigg = 0x0029; + t.parenrightbigg = 0x0029; + t.prime = 0x2032; + t.productdisplay = 0x220f; + t.producttext = 0x220f; + t.radicalbig = 0x221a; + t.radicalBig = 0x221a; + t.radicalBigg = 0x221a; + t.radicalbigg = 0x221a; + t.radicalbt = 0x221a; + t.radicaltp = 0x221a; + t.radicalvertex = 0x221a; + t.slashbig = 0x002f; + t.slashBig = 0x002f; + t.slashBigg = 0x002f; + t.slashbigg = 0x002f; + t.summationdisplay = 0x2211; + t.summationtext = 0x2211; + t.tildewide = 0x02dc; + t.tildewider = 0x02dc; + t.tildewidest = 0x02dc; + t.uniondisplay = 0x22c3; + t.unionmultidisplay = 0x228e; + t.unionmultitext = 0x228e; + t.unionsqdisplay = 0x2294; + t.unionsqtext = 0x2294; + t.uniontext = 0x22c3; + t.vextenddouble = 0x2225; + t.vextendsingle = 0x2223; +}); +const getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) { + t.space = 0x0020; + t.a1 = 0x2701; + t.a2 = 0x2702; + t.a202 = 0x2703; + t.a3 = 0x2704; + t.a4 = 0x260e; + t.a5 = 0x2706; + t.a119 = 0x2707; + t.a118 = 0x2708; + t.a117 = 0x2709; + t.a11 = 0x261b; + t.a12 = 0x261e; + t.a13 = 0x270c; + t.a14 = 0x270d; + t.a15 = 0x270e; + t.a16 = 0x270f; + t.a105 = 0x2710; + t.a17 = 0x2711; + t.a18 = 0x2712; + t.a19 = 0x2713; + t.a20 = 0x2714; + t.a21 = 0x2715; + t.a22 = 0x2716; + t.a23 = 0x2717; + t.a24 = 0x2718; + t.a25 = 0x2719; + t.a26 = 0x271a; + t.a27 = 0x271b; + t.a28 = 0x271c; + t.a6 = 0x271d; + t.a7 = 0x271e; + t.a8 = 0x271f; + t.a9 = 0x2720; + t.a10 = 0x2721; + t.a29 = 0x2722; + t.a30 = 0x2723; + t.a31 = 0x2724; + t.a32 = 0x2725; + t.a33 = 0x2726; + t.a34 = 0x2727; + t.a35 = 0x2605; + t.a36 = 0x2729; + t.a37 = 0x272a; + t.a38 = 0x272b; + t.a39 = 0x272c; + t.a40 = 0x272d; + t.a41 = 0x272e; + t.a42 = 0x272f; + t.a43 = 0x2730; + t.a44 = 0x2731; + t.a45 = 0x2732; + t.a46 = 0x2733; + t.a47 = 0x2734; + t.a48 = 0x2735; + t.a49 = 0x2736; + t.a50 = 0x2737; + t.a51 = 0x2738; + t.a52 = 0x2739; + t.a53 = 0x273a; + t.a54 = 0x273b; + t.a55 = 0x273c; + t.a56 = 0x273d; + t.a57 = 0x273e; + t.a58 = 0x273f; + t.a59 = 0x2740; + t.a60 = 0x2741; + t.a61 = 0x2742; + t.a62 = 0x2743; + t.a63 = 0x2744; + t.a64 = 0x2745; + t.a65 = 0x2746; + t.a66 = 0x2747; + t.a67 = 0x2748; + t.a68 = 0x2749; + t.a69 = 0x274a; + t.a70 = 0x274b; + t.a71 = 0x25cf; + t.a72 = 0x274d; + t.a73 = 0x25a0; + t.a74 = 0x274f; + t.a203 = 0x2750; + t.a75 = 0x2751; + t.a204 = 0x2752; + t.a76 = 0x25b2; + t.a77 = 0x25bc; + t.a78 = 0x25c6; + t.a79 = 0x2756; + t.a81 = 0x25d7; + t.a82 = 0x2758; + t.a83 = 0x2759; + t.a84 = 0x275a; + t.a97 = 0x275b; + t.a98 = 0x275c; + t.a99 = 0x275d; + t.a100 = 0x275e; + t.a101 = 0x2761; + t.a102 = 0x2762; + t.a103 = 0x2763; + t.a104 = 0x2764; + t.a106 = 0x2765; + t.a107 = 0x2766; + t.a108 = 0x2767; + t.a112 = 0x2663; + t.a111 = 0x2666; + t.a110 = 0x2665; + t.a109 = 0x2660; + t.a120 = 0x2460; + t.a121 = 0x2461; + t.a122 = 0x2462; + t.a123 = 0x2463; + t.a124 = 0x2464; + t.a125 = 0x2465; + t.a126 = 0x2466; + t.a127 = 0x2467; + t.a128 = 0x2468; + t.a129 = 0x2469; + t.a130 = 0x2776; + t.a131 = 0x2777; + t.a132 = 0x2778; + t.a133 = 0x2779; + t.a134 = 0x277a; + t.a135 = 0x277b; + t.a136 = 0x277c; + t.a137 = 0x277d; + t.a138 = 0x277e; + t.a139 = 0x277f; + t.a140 = 0x2780; + t.a141 = 0x2781; + t.a142 = 0x2782; + t.a143 = 0x2783; + t.a144 = 0x2784; + t.a145 = 0x2785; + t.a146 = 0x2786; + t.a147 = 0x2787; + t.a148 = 0x2788; + t.a149 = 0x2789; + t.a150 = 0x278a; + t.a151 = 0x278b; + t.a152 = 0x278c; + t.a153 = 0x278d; + t.a154 = 0x278e; + t.a155 = 0x278f; + t.a156 = 0x2790; + t.a157 = 0x2791; + t.a158 = 0x2792; + t.a159 = 0x2793; + t.a160 = 0x2794; + t.a161 = 0x2192; + t.a163 = 0x2194; + t.a164 = 0x2195; + t.a196 = 0x2798; + t.a165 = 0x2799; + t.a192 = 0x279a; + t.a166 = 0x279b; + t.a167 = 0x279c; + t.a168 = 0x279d; + t.a169 = 0x279e; + t.a170 = 0x279f; + t.a171 = 0x27a0; + t.a172 = 0x27a1; + t.a173 = 0x27a2; + t.a162 = 0x27a3; + t.a174 = 0x27a4; + t.a175 = 0x27a5; + t.a176 = 0x27a6; + t.a177 = 0x27a7; + t.a178 = 0x27a8; + t.a179 = 0x27a9; + t.a193 = 0x27aa; + t.a180 = 0x27ab; + t.a199 = 0x27ac; + t.a181 = 0x27ad; + t.a200 = 0x27ae; + t.a182 = 0x27af; + t.a201 = 0x27b1; + t.a183 = 0x27b2; + t.a184 = 0x27b3; + t.a197 = 0x27b4; + t.a185 = 0x27b5; + t.a194 = 0x27b6; + t.a198 = 0x27b7; + t.a186 = 0x27b8; + t.a195 = 0x27b9; + t.a187 = 0x27ba; + t.a188 = 0x27bb; + t.a189 = 0x27bc; + t.a190 = 0x27bd; + t.a191 = 0x27be; + t.a89 = 0x2768; + t.a90 = 0x2769; + t.a93 = 0x276a; + t.a94 = 0x276b; + t.a91 = 0x276c; + t.a92 = 0x276d; + t.a205 = 0x276e; + t.a85 = 0x276f; + t.a206 = 0x2770; + t.a86 = 0x2771; + t.a87 = 0x2772; + t.a88 = 0x2773; + t.a95 = 0x2774; + t.a96 = 0x2775; + t[".notdef"] = 0x0000; +}); + +;// ./src/core/unicode.js + +const getSpecialPUASymbols = getLookupTableFactory(function (t) { + t[63721] = 0x00a9; + t[63193] = 0x00a9; + t[63720] = 0x00ae; + t[63194] = 0x00ae; + t[63722] = 0x2122; + t[63195] = 0x2122; + t[63729] = 0x23a7; + t[63730] = 0x23a8; + t[63731] = 0x23a9; + t[63740] = 0x23ab; + t[63741] = 0x23ac; + t[63742] = 0x23ad; + t[63726] = 0x23a1; + t[63727] = 0x23a2; + t[63728] = 0x23a3; + t[63737] = 0x23a4; + t[63738] = 0x23a5; + t[63739] = 0x23a6; + t[63723] = 0x239b; + t[63724] = 0x239c; + t[63725] = 0x239d; + t[63734] = 0x239e; + t[63735] = 0x239f; + t[63736] = 0x23a0; +}); +function mapSpecialUnicodeValues(code) { + if (code >= 0xfff0 && code <= 0xffff) { + return 0; + } else if (code >= 0xf600 && code <= 0xf8ff) { + return getSpecialPUASymbols()[code] || code; + } else if (code === 0x00ad) { + return 0x002d; + } + return code; +} +function getUnicodeForGlyph(name, glyphsUnicodeMap) { + let unicode = glyphsUnicodeMap[name]; + if (unicode !== undefined) { + return unicode; + } + if (!name) { + return -1; + } + if (name[0] === "u") { + const nameLen = name.length; + let hexStr; + if (nameLen === 7 && name[1] === "n" && name[2] === "i") { + hexStr = name.substring(3); + } else if (nameLen >= 5 && nameLen <= 7) { + hexStr = name.substring(1); + } else { + return -1; + } + if (hexStr === hexStr.toUpperCase()) { + unicode = parseInt(hexStr, 16); + if (unicode >= 0) { + return unicode; + } + } + } + return -1; +} +const UnicodeRanges = [[0x0000, 0x007f], [0x0080, 0x00ff], [0x0100, 0x017f], [0x0180, 0x024f], [0x0250, 0x02af, 0x1d00, 0x1d7f, 0x1d80, 0x1dbf], [0x02b0, 0x02ff, 0xa700, 0xa71f], [0x0300, 0x036f, 0x1dc0, 0x1dff], [0x0370, 0x03ff], [0x2c80, 0x2cff], [0x0400, 0x04ff, 0x0500, 0x052f, 0x2de0, 0x2dff, 0xa640, 0xa69f], [0x0530, 0x058f], [0x0590, 0x05ff], [0xa500, 0xa63f], [0x0600, 0x06ff, 0x0750, 0x077f], [0x07c0, 0x07ff], [0x0900, 0x097f], [0x0980, 0x09ff], [0x0a00, 0x0a7f], [0x0a80, 0x0aff], [0x0b00, 0x0b7f], [0x0b80, 0x0bff], [0x0c00, 0x0c7f], [0x0c80, 0x0cff], [0x0d00, 0x0d7f], [0x0e00, 0x0e7f], [0x0e80, 0x0eff], [0x10a0, 0x10ff, 0x2d00, 0x2d2f], [0x1b00, 0x1b7f], [0x1100, 0x11ff], [0x1e00, 0x1eff, 0x2c60, 0x2c7f, 0xa720, 0xa7ff], [0x1f00, 0x1fff], [0x2000, 0x206f, 0x2e00, 0x2e7f], [0x2070, 0x209f], [0x20a0, 0x20cf], [0x20d0, 0x20ff], [0x2100, 0x214f], [0x2150, 0x218f], [0x2190, 0x21ff, 0x27f0, 0x27ff, 0x2900, 0x297f, 0x2b00, 0x2bff], [0x2200, 0x22ff, 0x2a00, 0x2aff, 0x27c0, 0x27ef, 0x2980, 0x29ff], [0x2300, 0x23ff], [0x2400, 0x243f], [0x2440, 0x245f], [0x2460, 0x24ff], [0x2500, 0x257f], [0x2580, 0x259f], [0x25a0, 0x25ff], [0x2600, 0x26ff], [0x2700, 0x27bf], [0x3000, 0x303f], [0x3040, 0x309f], [0x30a0, 0x30ff, 0x31f0, 0x31ff], [0x3100, 0x312f, 0x31a0, 0x31bf], [0x3130, 0x318f], [0xa840, 0xa87f], [0x3200, 0x32ff], [0x3300, 0x33ff], [0xac00, 0xd7af], [0xd800, 0xdfff], [0x10900, 0x1091f], [0x4e00, 0x9fff, 0x2e80, 0x2eff, 0x2f00, 0x2fdf, 0x2ff0, 0x2fff, 0x3400, 0x4dbf, 0x20000, 0x2a6df, 0x3190, 0x319f], [0xe000, 0xf8ff], [0x31c0, 0x31ef, 0xf900, 0xfaff, 0x2f800, 0x2fa1f], [0xfb00, 0xfb4f], [0xfb50, 0xfdff], [0xfe20, 0xfe2f], [0xfe10, 0xfe1f], [0xfe50, 0xfe6f], [0xfe70, 0xfeff], [0xff00, 0xffef], [0xfff0, 0xffff], [0x0f00, 0x0fff], [0x0700, 0x074f], [0x0780, 0x07bf], [0x0d80, 0x0dff], [0x1000, 0x109f], [0x1200, 0x137f, 0x1380, 0x139f, 0x2d80, 0x2ddf], [0x13a0, 0x13ff], [0x1400, 0x167f], [0x1680, 0x169f], [0x16a0, 0x16ff], [0x1780, 0x17ff], [0x1800, 0x18af], [0x2800, 0x28ff], [0xa000, 0xa48f], [0x1700, 0x171f, 0x1720, 0x173f, 0x1740, 0x175f, 0x1760, 0x177f], [0x10300, 0x1032f], [0x10330, 0x1034f], [0x10400, 0x1044f], [0x1d000, 0x1d0ff, 0x1d100, 0x1d1ff, 0x1d200, 0x1d24f], [0x1d400, 0x1d7ff], [0xff000, 0xffffd], [0xfe00, 0xfe0f, 0xe0100, 0xe01ef], [0xe0000, 0xe007f], [0x1900, 0x194f], [0x1950, 0x197f], [0x1980, 0x19df], [0x1a00, 0x1a1f], [0x2c00, 0x2c5f], [0x2d30, 0x2d7f], [0x4dc0, 0x4dff], [0xa800, 0xa82f], [0x10000, 0x1007f, 0x10080, 0x100ff, 0x10100, 0x1013f], [0x10140, 0x1018f], [0x10380, 0x1039f], [0x103a0, 0x103df], [0x10450, 0x1047f], [0x10480, 0x104af], [0x10800, 0x1083f], [0x10a00, 0x10a5f], [0x1d300, 0x1d35f], [0x12000, 0x123ff, 0x12400, 0x1247f], [0x1d360, 0x1d37f], [0x1b80, 0x1bbf], [0x1c00, 0x1c4f], [0x1c50, 0x1c7f], [0xa880, 0xa8df], [0xa900, 0xa92f], [0xa930, 0xa95f], [0xaa00, 0xaa5f], [0x10190, 0x101cf], [0x101d0, 0x101ff], [0x102a0, 0x102df, 0x10280, 0x1029f, 0x10920, 0x1093f], [0x1f030, 0x1f09f, 0x1f000, 0x1f02f]]; +function getUnicodeRangeFor(value, lastPosition = -1) { + if (lastPosition !== -1) { + const range = UnicodeRanges[lastPosition]; + for (let i = 0, ii = range.length; i < ii; i += 2) { + if (value >= range[i] && value <= range[i + 1]) { + return lastPosition; + } + } + } + for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) { + const range = UnicodeRanges[i]; + for (let j = 0, jj = range.length; j < jj; j += 2) { + if (value >= range[j] && value <= range[j + 1]) { + return i; + } + } + } + return -1; +} +const SpecialCharRegExp = new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$", "u"); +const CategoryCache = new Map(); +function getCharUnicodeCategory(char) { + const cachedCategory = CategoryCache.get(char); + if (cachedCategory) { + return cachedCategory; + } + const groups = char.match(SpecialCharRegExp); + const category = { + isWhitespace: !!groups?.[1], + isZeroWidthDiacritic: !!groups?.[2], + isInvisibleFormatMark: !!groups?.[3] + }; + CategoryCache.set(char, category); + return category; +} +function clearUnicodeCaches() { + CategoryCache.clear(); +} + +;// ./src/core/fonts_utils.js + + + + + +const SEAC_ANALYSIS_ENABLED = true; +const FontFlags = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144 +}; +const MacStandardGlyphOrdering = [".notdef", ".null", "nonmarkingreturn", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quotesingle", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "grave", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "Adieresis", "Aring", "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", "aacute", "agrave", "acircumflex", "adieresis", "atilde", "aring", "ccedilla", "eacute", "egrave", "ecircumflex", "edieresis", "iacute", "igrave", "icircumflex", "idieresis", "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", "dagger", "degree", "cent", "sterling", "section", "bullet", "paragraph", "germandbls", "registered", "copyright", "trademark", "acute", "dieresis", "notequal", "AE", "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", "yen", "mu", "partialdiff", "summation", "product", "pi", "integral", "ordfeminine", "ordmasculine", "Omega", "ae", "oslash", "questiondown", "exclamdown", "logicalnot", "radical", "florin", "approxequal", "Delta", "guillemotleft", "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde", "Otilde", "OE", "oe", "endash", "emdash", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde", "macron", "breve", "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "Lslash", "lslash", "Scaron", "scaron", "Zcaron", "zcaron", "brokenbar", "Eth", "eth", "Yacute", "yacute", "Thorn", "thorn", "minus", "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf", "onequarter", "threequarters", "franc", "Gbreve", "gbreve", "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute", "Ccaron", "ccaron", "dcroat"]; +function recoverGlyphName(name, glyphsUnicodeMap) { + if (glyphsUnicodeMap[name] !== undefined) { + return name; + } + const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap); + if (unicode !== -1) { + for (const key in glyphsUnicodeMap) { + if (glyphsUnicodeMap[key] === unicode) { + return key; + } + } + } + info("Unable to recover a standard glyph name for: " + name); + return name; +} +function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { + const charCodeToGlyphId = Object.create(null); + let glyphId, charCode, baseEncoding; + const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + if (properties.isInternalFont) { + baseEncoding = builtInEncoding; + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } else if (properties.baseEncodingName) { + baseEncoding = getEncoding(properties.baseEncodingName); + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } else if (isSymbolicFont) { + for (charCode in builtInEncoding) { + charCodeToGlyphId[charCode] = builtInEncoding[charCode]; + } + } else { + baseEncoding = StandardEncoding; + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } + const differences = properties.differences; + let glyphsUnicodeMap; + if (differences) { + for (charCode in differences) { + const glyphName = differences[charCode]; + glyphId = glyphNames.indexOf(glyphName); + if (glyphId === -1) { + if (!glyphsUnicodeMap) { + glyphsUnicodeMap = getGlyphsUnicode(); + } + const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + if (standardGlyphName !== glyphName) { + glyphId = glyphNames.indexOf(standardGlyphName); + } + } + charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : 0; + } + } + return charCodeToGlyphId; +} +function normalizeFontName(name) { + return name.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, ""); +} +const getVerticalPresentationForm = getLookupTableFactory(t => { + t[0x2013] = 0xfe32; + t[0x2014] = 0xfe31; + t[0x2025] = 0xfe30; + t[0x2026] = 0xfe19; + t[0x3001] = 0xfe11; + t[0x3002] = 0xfe12; + t[0x3008] = 0xfe3f; + t[0x3009] = 0xfe40; + t[0x300a] = 0xfe3d; + t[0x300b] = 0xfe3e; + t[0x300c] = 0xfe41; + t[0x300d] = 0xfe42; + t[0x300e] = 0xfe43; + t[0x300f] = 0xfe44; + t[0x3010] = 0xfe3b; + t[0x3011] = 0xfe3c; + t[0x3014] = 0xfe39; + t[0x3015] = 0xfe3a; + t[0x3016] = 0xfe17; + t[0x3017] = 0xfe18; + t[0xfe4f] = 0xfe34; + t[0xff01] = 0xfe15; + t[0xff08] = 0xfe35; + t[0xff09] = 0xfe36; + t[0xff0c] = 0xfe10; + t[0xff1a] = 0xfe13; + t[0xff1b] = 0xfe14; + t[0xff1f] = 0xfe16; + t[0xff3b] = 0xfe47; + t[0xff3d] = 0xfe48; + t[0xff3f] = 0xfe33; + t[0xff5b] = 0xfe37; + t[0xff5d] = 0xfe38; +}); + +;// ./src/core/standard_fonts.js + + +const getStdFontMap = getLookupTableFactory(function (t) { + t["Times-Roman"] = "Times-Roman"; + t.Helvetica = "Helvetica"; + t.Courier = "Courier"; + t.Symbol = "Symbol"; + t["Times-Bold"] = "Times-Bold"; + t["Helvetica-Bold"] = "Helvetica-Bold"; + t["Courier-Bold"] = "Courier-Bold"; + t.ZapfDingbats = "ZapfDingbats"; + t["Times-Italic"] = "Times-Italic"; + t["Helvetica-Oblique"] = "Helvetica-Oblique"; + t["Courier-Oblique"] = "Courier-Oblique"; + t["Times-BoldItalic"] = "Times-BoldItalic"; + t["Helvetica-BoldOblique"] = "Helvetica-BoldOblique"; + t["Courier-BoldOblique"] = "Courier-BoldOblique"; + t.ArialNarrow = "Helvetica"; + t["ArialNarrow-Bold"] = "Helvetica-Bold"; + t["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialNarrow-Italic"] = "Helvetica-Oblique"; + t.ArialBlack = "Helvetica"; + t["ArialBlack-Bold"] = "Helvetica-Bold"; + t["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialBlack-Italic"] = "Helvetica-Oblique"; + t["Arial-Black"] = "Helvetica"; + t["Arial-Black-Bold"] = "Helvetica-Bold"; + t["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-Black-Italic"] = "Helvetica-Oblique"; + t.Arial = "Helvetica"; + t["Arial-Bold"] = "Helvetica-Bold"; + t["Arial-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-Italic"] = "Helvetica-Oblique"; + t.ArialMT = "Helvetica"; + t["Arial-BoldItalicMT"] = "Helvetica-BoldOblique"; + t["Arial-BoldMT"] = "Helvetica-Bold"; + t["Arial-ItalicMT"] = "Helvetica-Oblique"; + t["Arial-BoldItalicMT-BoldItalic"] = "Helvetica-BoldOblique"; + t["Arial-BoldMT-Bold"] = "Helvetica-Bold"; + t["Arial-ItalicMT-Italic"] = "Helvetica-Oblique"; + t.ArialUnicodeMS = "Helvetica"; + t["ArialUnicodeMS-Bold"] = "Helvetica-Bold"; + t["ArialUnicodeMS-BoldItalic"] = "Helvetica-BoldOblique"; + t["ArialUnicodeMS-Italic"] = "Helvetica-Oblique"; + t["Courier-BoldItalic"] = "Courier-BoldOblique"; + t["Courier-Italic"] = "Courier-Oblique"; + t.CourierNew = "Courier"; + t["CourierNew-Bold"] = "Courier-Bold"; + t["CourierNew-BoldItalic"] = "Courier-BoldOblique"; + t["CourierNew-Italic"] = "Courier-Oblique"; + t["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique"; + t["CourierNewPS-BoldMT"] = "Courier-Bold"; + t["CourierNewPS-ItalicMT"] = "Courier-Oblique"; + t.CourierNewPSMT = "Courier"; + t["Helvetica-BoldItalic"] = "Helvetica-BoldOblique"; + t["Helvetica-Italic"] = "Helvetica-Oblique"; + t["HelveticaLTStd-Bold"] = "Helvetica-Bold"; + t["Symbol-Bold"] = "Symbol"; + t["Symbol-BoldItalic"] = "Symbol"; + t["Symbol-Italic"] = "Symbol"; + t.TimesNewRoman = "Times-Roman"; + t["TimesNewRoman-Bold"] = "Times-Bold"; + t["TimesNewRoman-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRoman-Italic"] = "Times-Italic"; + t.TimesNewRomanPS = "Times-Roman"; + t["TimesNewRomanPS-Bold"] = "Times-Bold"; + t["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic"; + t["TimesNewRomanPS-BoldMT"] = "Times-Bold"; + t["TimesNewRomanPS-Italic"] = "Times-Italic"; + t["TimesNewRomanPS-ItalicMT"] = "Times-Italic"; + t.TimesNewRomanPSMT = "Times-Roman"; + t["TimesNewRomanPSMT-Bold"] = "Times-Bold"; + t["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic"; + t["TimesNewRomanPSMT-Italic"] = "Times-Italic"; +}); +const getFontNameToFileMap = getLookupTableFactory(function (t) { + t.Courier = "FoxitFixed.pfb"; + t["Courier-Bold"] = "FoxitFixedBold.pfb"; + t["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb"; + t["Courier-Oblique"] = "FoxitFixedItalic.pfb"; + t.Helvetica = "LiberationSans-Regular.ttf"; + t["Helvetica-Bold"] = "LiberationSans-Bold.ttf"; + t["Helvetica-BoldOblique"] = "LiberationSans-BoldItalic.ttf"; + t["Helvetica-Oblique"] = "LiberationSans-Italic.ttf"; + t["Times-Roman"] = "FoxitSerif.pfb"; + t["Times-Bold"] = "FoxitSerifBold.pfb"; + t["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb"; + t["Times-Italic"] = "FoxitSerifItalic.pfb"; + t.Symbol = "FoxitSymbol.pfb"; + t.ZapfDingbats = "FoxitDingbats.pfb"; + t["LiberationSans-Regular"] = "LiberationSans-Regular.ttf"; + t["LiberationSans-Bold"] = "LiberationSans-Bold.ttf"; + t["LiberationSans-Italic"] = "LiberationSans-Italic.ttf"; + t["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf"; +}); +const getNonStdFontMap = getLookupTableFactory(function (t) { + t.Calibri = "Helvetica"; + t["Calibri-Bold"] = "Helvetica-Bold"; + t["Calibri-BoldItalic"] = "Helvetica-BoldOblique"; + t["Calibri-Italic"] = "Helvetica-Oblique"; + t.CenturyGothic = "Helvetica"; + t["CenturyGothic-Bold"] = "Helvetica-Bold"; + t["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique"; + t["CenturyGothic-Italic"] = "Helvetica-Oblique"; + t.ComicSansMS = "Comic Sans MS"; + t["ComicSansMS-Bold"] = "Comic Sans MS-Bold"; + t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic"; + t["ComicSansMS-Italic"] = "Comic Sans MS-Italic"; + t.GillSansMT = "Helvetica"; + t["GillSansMT-Bold"] = "Helvetica-Bold"; + t["GillSansMT-BoldItalic"] = "Helvetica-BoldOblique"; + t["GillSansMT-Italic"] = "Helvetica-Oblique"; + t.Impact = "Helvetica"; + t["ItcSymbol-Bold"] = "Helvetica-Bold"; + t["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique"; + t["ItcSymbol-Book"] = "Helvetica"; + t["ItcSymbol-BookItalic"] = "Helvetica-Oblique"; + t["ItcSymbol-Medium"] = "Helvetica"; + t["ItcSymbol-MediumItalic"] = "Helvetica-Oblique"; + t.LucidaConsole = "Courier"; + t["LucidaConsole-Bold"] = "Courier-Bold"; + t["LucidaConsole-BoldItalic"] = "Courier-BoldOblique"; + t["LucidaConsole-Italic"] = "Courier-Oblique"; + t["LucidaSans-Demi"] = "Helvetica-Bold"; + t["MS-Gothic"] = "MS Gothic"; + t["MS-Gothic-Bold"] = "MS Gothic-Bold"; + t["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic"; + t["MS-Gothic-Italic"] = "MS Gothic-Italic"; + t["MS-Mincho"] = "MS Mincho"; + t["MS-Mincho-Bold"] = "MS Mincho-Bold"; + t["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic"; + t["MS-Mincho-Italic"] = "MS Mincho-Italic"; + t["MS-PGothic"] = "MS PGothic"; + t["MS-PGothic-Bold"] = "MS PGothic-Bold"; + t["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic"; + t["MS-PGothic-Italic"] = "MS PGothic-Italic"; + t["MS-PMincho"] = "MS PMincho"; + t["MS-PMincho-Bold"] = "MS PMincho-Bold"; + t["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic"; + t["MS-PMincho-Italic"] = "MS PMincho-Italic"; + t.NuptialScript = "Times-Italic"; + t.SegoeUISymbol = "Helvetica"; +}); +const getSerifFonts = getLookupTableFactory(function (t) { + t["Adobe Jenson"] = true; + t["Adobe Text"] = true; + t.Albertus = true; + t.Aldus = true; + t.Alexandria = true; + t.Algerian = true; + t["American Typewriter"] = true; + t.Antiqua = true; + t.Apex = true; + t.Arno = true; + t.Aster = true; + t.Aurora = true; + t.Baskerville = true; + t.Bell = true; + t.Bembo = true; + t["Bembo Schoolbook"] = true; + t.Benguiat = true; + t["Berkeley Old Style"] = true; + t["Bernhard Modern"] = true; + t["Berthold City"] = true; + t.Bodoni = true; + t["Bauer Bodoni"] = true; + t["Book Antiqua"] = true; + t.Bookman = true; + t["Bordeaux Roman"] = true; + t["Californian FB"] = true; + t.Calisto = true; + t.Calvert = true; + t.Capitals = true; + t.Cambria = true; + t.Cartier = true; + t.Caslon = true; + t.Catull = true; + t.Centaur = true; + t["Century Old Style"] = true; + t["Century Schoolbook"] = true; + t.Chaparral = true; + t["Charis SIL"] = true; + t.Cheltenham = true; + t["Cholla Slab"] = true; + t.Clarendon = true; + t.Clearface = true; + t.Cochin = true; + t.Colonna = true; + t["Computer Modern"] = true; + t["Concrete Roman"] = true; + t.Constantia = true; + t["Cooper Black"] = true; + t.Corona = true; + t.Ecotype = true; + t.Egyptienne = true; + t.Elephant = true; + t.Excelsior = true; + t.Fairfield = true; + t["FF Scala"] = true; + t.Folkard = true; + t.Footlight = true; + t.FreeSerif = true; + t["Friz Quadrata"] = true; + t.Garamond = true; + t.Gentium = true; + t.Georgia = true; + t.Gloucester = true; + t["Goudy Old Style"] = true; + t["Goudy Schoolbook"] = true; + t["Goudy Pro Font"] = true; + t.Granjon = true; + t["Guardian Egyptian"] = true; + t.Heather = true; + t.Hercules = true; + t["High Tower Text"] = true; + t.Hiroshige = true; + t["Hoefler Text"] = true; + t["Humana Serif"] = true; + t.Imprint = true; + t["Ionic No. 5"] = true; + t.Janson = true; + t.Joanna = true; + t.Korinna = true; + t.Lexicon = true; + t.LiberationSerif = true; + t["Liberation Serif"] = true; + t["Linux Libertine"] = true; + t.Literaturnaya = true; + t.Lucida = true; + t["Lucida Bright"] = true; + t.Melior = true; + t.Memphis = true; + t.Miller = true; + t.Minion = true; + t.Modern = true; + t["Mona Lisa"] = true; + t["Mrs Eaves"] = true; + t["MS Serif"] = true; + t["Museo Slab"] = true; + t["New York"] = true; + t["Nimbus Roman"] = true; + t["NPS Rawlinson Roadway"] = true; + t.NuptialScript = true; + t.Palatino = true; + t.Perpetua = true; + t.Plantin = true; + t["Plantin Schoolbook"] = true; + t.Playbill = true; + t["Poor Richard"] = true; + t["Rawlinson Roadway"] = true; + t.Renault = true; + t.Requiem = true; + t.Rockwell = true; + t.Roman = true; + t["Rotis Serif"] = true; + t.Sabon = true; + t.Scala = true; + t.Seagull = true; + t.Sistina = true; + t.Souvenir = true; + t.STIX = true; + t["Stone Informal"] = true; + t["Stone Serif"] = true; + t.Sylfaen = true; + t.Times = true; + t.Trajan = true; + t["Trinité"] = true; + t["Trump Mediaeval"] = true; + t.Utopia = true; + t["Vale Type"] = true; + t["Bitstream Vera"] = true; + t["Vera Serif"] = true; + t.Versailles = true; + t.Wanted = true; + t.Weiss = true; + t["Wide Latin"] = true; + t.Windsor = true; + t.XITS = true; +}); +const getSymbolsFonts = getLookupTableFactory(function (t) { + t.Dingbats = true; + t.Symbol = true; + t.ZapfDingbats = true; + t.Wingdings = true; + t["Wingdings-Bold"] = true; + t["Wingdings-Regular"] = true; +}); +const getGlyphMapForStandardFonts = getLookupTableFactory(function (t) { + t[2] = 10; + t[3] = 32; + t[4] = 33; + t[5] = 34; + t[6] = 35; + t[7] = 36; + t[8] = 37; + t[9] = 38; + t[10] = 39; + t[11] = 40; + t[12] = 41; + t[13] = 42; + t[14] = 43; + t[15] = 44; + t[16] = 45; + t[17] = 46; + t[18] = 47; + t[19] = 48; + t[20] = 49; + t[21] = 50; + t[22] = 51; + t[23] = 52; + t[24] = 53; + t[25] = 54; + t[26] = 55; + t[27] = 56; + t[28] = 57; + t[29] = 58; + t[30] = 894; + t[31] = 60; + t[32] = 61; + t[33] = 62; + t[34] = 63; + t[35] = 64; + t[36] = 65; + t[37] = 66; + t[38] = 67; + t[39] = 68; + t[40] = 69; + t[41] = 70; + t[42] = 71; + t[43] = 72; + t[44] = 73; + t[45] = 74; + t[46] = 75; + t[47] = 76; + t[48] = 77; + t[49] = 78; + t[50] = 79; + t[51] = 80; + t[52] = 81; + t[53] = 82; + t[54] = 83; + t[55] = 84; + t[56] = 85; + t[57] = 86; + t[58] = 87; + t[59] = 88; + t[60] = 89; + t[61] = 90; + t[62] = 91; + t[63] = 92; + t[64] = 93; + t[65] = 94; + t[66] = 95; + t[67] = 96; + t[68] = 97; + t[69] = 98; + t[70] = 99; + t[71] = 100; + t[72] = 101; + t[73] = 102; + t[74] = 103; + t[75] = 104; + t[76] = 105; + t[77] = 106; + t[78] = 107; + t[79] = 108; + t[80] = 109; + t[81] = 110; + t[82] = 111; + t[83] = 112; + t[84] = 113; + t[85] = 114; + t[86] = 115; + t[87] = 116; + t[88] = 117; + t[89] = 118; + t[90] = 119; + t[91] = 120; + t[92] = 121; + t[93] = 122; + t[94] = 123; + t[95] = 124; + t[96] = 125; + t[97] = 126; + t[98] = 196; + t[99] = 197; + t[100] = 199; + t[101] = 201; + t[102] = 209; + t[103] = 214; + t[104] = 220; + t[105] = 225; + t[106] = 224; + t[107] = 226; + t[108] = 228; + t[109] = 227; + t[110] = 229; + t[111] = 231; + t[112] = 233; + t[113] = 232; + t[114] = 234; + t[115] = 235; + t[116] = 237; + t[117] = 236; + t[118] = 238; + t[119] = 239; + t[120] = 241; + t[121] = 243; + t[122] = 242; + t[123] = 244; + t[124] = 246; + t[125] = 245; + t[126] = 250; + t[127] = 249; + t[128] = 251; + t[129] = 252; + t[130] = 8224; + t[131] = 176; + t[132] = 162; + t[133] = 163; + t[134] = 167; + t[135] = 8226; + t[136] = 182; + t[137] = 223; + t[138] = 174; + t[139] = 169; + t[140] = 8482; + t[141] = 180; + t[142] = 168; + t[143] = 8800; + t[144] = 198; + t[145] = 216; + t[146] = 8734; + t[147] = 177; + t[148] = 8804; + t[149] = 8805; + t[150] = 165; + t[151] = 181; + t[152] = 8706; + t[153] = 8721; + t[154] = 8719; + t[156] = 8747; + t[157] = 170; + t[158] = 186; + t[159] = 8486; + t[160] = 230; + t[161] = 248; + t[162] = 191; + t[163] = 161; + t[164] = 172; + t[165] = 8730; + t[166] = 402; + t[167] = 8776; + t[168] = 8710; + t[169] = 171; + t[170] = 187; + t[171] = 8230; + t[179] = 8220; + t[180] = 8221; + t[181] = 8216; + t[182] = 8217; + t[200] = 193; + t[203] = 205; + t[207] = 211; + t[210] = 218; + t[223] = 711; + t[224] = 321; + t[225] = 322; + t[226] = 352; + t[227] = 353; + t[228] = 381; + t[229] = 382; + t[233] = 221; + t[234] = 253; + t[252] = 263; + t[253] = 268; + t[254] = 269; + t[258] = 258; + t[260] = 260; + t[261] = 261; + t[265] = 280; + t[266] = 281; + t[267] = 282; + t[268] = 283; + t[269] = 313; + t[275] = 323; + t[276] = 324; + t[278] = 328; + t[283] = 344; + t[284] = 345; + t[285] = 346; + t[286] = 347; + t[292] = 367; + t[295] = 377; + t[296] = 378; + t[298] = 380; + t[305] = 963; + t[306] = 964; + t[307] = 966; + t[308] = 8215; + t[309] = 8252; + t[310] = 8319; + t[311] = 8359; + t[312] = 8592; + t[313] = 8593; + t[337] = 9552; + t[493] = 1039; + t[494] = 1040; + t[672] = 1488; + t[673] = 1489; + t[674] = 1490; + t[675] = 1491; + t[676] = 1492; + t[677] = 1493; + t[678] = 1494; + t[679] = 1495; + t[680] = 1496; + t[681] = 1497; + t[682] = 1498; + t[683] = 1499; + t[684] = 1500; + t[685] = 1501; + t[686] = 1502; + t[687] = 1503; + t[688] = 1504; + t[689] = 1505; + t[690] = 1506; + t[691] = 1507; + t[692] = 1508; + t[693] = 1509; + t[694] = 1510; + t[695] = 1511; + t[696] = 1512; + t[697] = 1513; + t[698] = 1514; + t[705] = 1524; + t[706] = 8362; + t[710] = 64288; + t[711] = 64298; + t[759] = 1617; + t[761] = 1776; + t[763] = 1778; + t[775] = 1652; + t[777] = 1764; + t[778] = 1780; + t[779] = 1781; + t[780] = 1782; + t[782] = 771; + t[783] = 64726; + t[786] = 8363; + t[788] = 8532; + t[790] = 768; + t[791] = 769; + t[792] = 768; + t[795] = 803; + t[797] = 64336; + t[798] = 64337; + t[799] = 64342; + t[800] = 64343; + t[801] = 64344; + t[802] = 64345; + t[803] = 64362; + t[804] = 64363; + t[805] = 64364; + t[2424] = 7821; + t[2425] = 7822; + t[2426] = 7823; + t[2427] = 7824; + t[2428] = 7825; + t[2429] = 7826; + t[2430] = 7827; + t[2433] = 7682; + t[2678] = 8045; + t[2679] = 8046; + t[2830] = 1552; + t[2838] = 686; + t[2840] = 751; + t[2842] = 753; + t[2843] = 754; + t[2844] = 755; + t[2846] = 757; + t[2856] = 767; + t[2857] = 848; + t[2858] = 849; + t[2862] = 853; + t[2863] = 854; + t[2864] = 855; + t[2865] = 861; + t[2866] = 862; + t[2906] = 7460; + t[2908] = 7462; + t[2909] = 7463; + t[2910] = 7464; + t[2912] = 7466; + t[2913] = 7467; + t[2914] = 7468; + t[2916] = 7470; + t[2917] = 7471; + t[2918] = 7472; + t[2920] = 7474; + t[2921] = 7475; + t[2922] = 7476; + t[2924] = 7478; + t[2925] = 7479; + t[2926] = 7480; + t[2928] = 7482; + t[2929] = 7483; + t[2930] = 7484; + t[2932] = 7486; + t[2933] = 7487; + t[2934] = 7488; + t[2936] = 7490; + t[2937] = 7491; + t[2938] = 7492; + t[2940] = 7494; + t[2941] = 7495; + t[2942] = 7496; + t[2944] = 7498; + t[2946] = 7500; + t[2948] = 7502; + t[2950] = 7504; + t[2951] = 7505; + t[2952] = 7506; + t[2954] = 7508; + t[2955] = 7509; + t[2956] = 7510; + t[2958] = 7512; + t[2959] = 7513; + t[2960] = 7514; + t[2962] = 7516; + t[2963] = 7517; + t[2964] = 7518; + t[2966] = 7520; + t[2967] = 7521; + t[2968] = 7522; + t[2970] = 7524; + t[2971] = 7525; + t[2972] = 7526; + t[2974] = 7528; + t[2975] = 7529; + t[2976] = 7530; + t[2978] = 1537; + t[2979] = 1538; + t[2980] = 1539; + t[2982] = 1549; + t[2983] = 1551; + t[2984] = 1552; + t[2986] = 1554; + t[2987] = 1555; + t[2988] = 1556; + t[2990] = 1623; + t[2991] = 1624; + t[2995] = 1775; + t[2999] = 1791; + t[3002] = 64290; + t[3003] = 64291; + t[3004] = 64292; + t[3006] = 64294; + t[3007] = 64295; + t[3008] = 64296; + t[3011] = 1900; + t[3014] = 8223; + t[3015] = 8244; + t[3017] = 7532; + t[3018] = 7533; + t[3019] = 7534; + t[3075] = 7590; + t[3076] = 7591; + t[3079] = 7594; + t[3080] = 7595; + t[3083] = 7598; + t[3084] = 7599; + t[3087] = 7602; + t[3088] = 7603; + t[3091] = 7606; + t[3092] = 7607; + t[3095] = 7610; + t[3096] = 7611; + t[3099] = 7614; + t[3100] = 7615; + t[3103] = 7618; + t[3104] = 7619; + t[3107] = 8337; + t[3108] = 8338; + t[3116] = 1884; + t[3119] = 1885; + t[3120] = 1885; + t[3123] = 1886; + t[3124] = 1886; + t[3127] = 1887; + t[3128] = 1887; + t[3131] = 1888; + t[3132] = 1888; + t[3135] = 1889; + t[3136] = 1889; + t[3139] = 1890; + t[3140] = 1890; + t[3143] = 1891; + t[3144] = 1891; + t[3147] = 1892; + t[3148] = 1892; + t[3153] = 580; + t[3154] = 581; + t[3157] = 584; + t[3158] = 585; + t[3161] = 588; + t[3162] = 589; + t[3165] = 891; + t[3166] = 892; + t[3169] = 1274; + t[3170] = 1275; + t[3173] = 1278; + t[3174] = 1279; + t[3181] = 7622; + t[3182] = 7623; + t[3282] = 11799; + t[3316] = 578; + t[3379] = 42785; + t[3393] = 1159; + t[3416] = 8377; +}); +const getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (t) { + t[227] = 322; + t[264] = 261; + t[291] = 346; +}); +const getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) { + t[1] = 32; + t[4] = 65; + t[5] = 192; + t[6] = 193; + t[9] = 196; + t[17] = 66; + t[18] = 67; + t[21] = 268; + t[24] = 68; + t[28] = 69; + t[29] = 200; + t[30] = 201; + t[32] = 282; + t[38] = 70; + t[39] = 71; + t[44] = 72; + t[47] = 73; + t[48] = 204; + t[49] = 205; + t[58] = 74; + t[60] = 75; + t[62] = 76; + t[68] = 77; + t[69] = 78; + t[75] = 79; + t[76] = 210; + t[80] = 214; + t[87] = 80; + t[89] = 81; + t[90] = 82; + t[92] = 344; + t[94] = 83; + t[97] = 352; + t[100] = 84; + t[104] = 85; + t[109] = 220; + t[115] = 86; + t[116] = 87; + t[121] = 88; + t[122] = 89; + t[124] = 221; + t[127] = 90; + t[129] = 381; + t[258] = 97; + t[259] = 224; + t[260] = 225; + t[263] = 228; + t[268] = 261; + t[271] = 98; + t[272] = 99; + t[273] = 263; + t[275] = 269; + t[282] = 100; + t[286] = 101; + t[287] = 232; + t[288] = 233; + t[290] = 283; + t[295] = 281; + t[296] = 102; + t[336] = 103; + t[346] = 104; + t[349] = 105; + t[350] = 236; + t[351] = 237; + t[361] = 106; + t[364] = 107; + t[367] = 108; + t[371] = 322; + t[373] = 109; + t[374] = 110; + t[381] = 111; + t[382] = 242; + t[383] = 243; + t[386] = 246; + t[393] = 112; + t[395] = 113; + t[396] = 114; + t[398] = 345; + t[400] = 115; + t[401] = 347; + t[403] = 353; + t[410] = 116; + t[437] = 117; + t[442] = 252; + t[448] = 118; + t[449] = 119; + t[454] = 120; + t[455] = 121; + t[457] = 253; + t[460] = 122; + t[462] = 382; + t[463] = 380; + t[853] = 44; + t[855] = 58; + t[856] = 46; + t[876] = 47; + t[878] = 45; + t[882] = 45; + t[894] = 40; + t[895] = 41; + t[896] = 91; + t[897] = 93; + t[923] = 64; + t[1004] = 48; + t[1005] = 49; + t[1006] = 50; + t[1007] = 51; + t[1008] = 52; + t[1009] = 53; + t[1010] = 54; + t[1011] = 55; + t[1012] = 56; + t[1013] = 57; + t[1081] = 37; + t[1085] = 43; + t[1086] = 45; +}); +function getStandardFontName(name) { + const fontName = normalizeFontName(name); + const stdFontMap = getStdFontMap(); + return stdFontMap[fontName]; +} +function isKnownFontName(name) { + const fontName = normalizeFontName(name); + return !!(getStdFontMap()[fontName] || getNonStdFontMap()[fontName] || getSerifFonts()[fontName] || getSymbolsFonts()[fontName]); +} + +;// ./src/core/to_unicode_map.js + +class ToUnicodeMap { + constructor(cmap = []) { + this._map = cmap; + } + get length() { + return this._map.length; + } + forEach(callback) { + for (const charCode in this._map) { + callback(charCode, this._map[charCode].codePointAt(0)); + } + } + has(i) { + return this._map[i] !== undefined; + } + get(i) { + return this._map[i]; + } + charCodeOf(value) { + const map = this._map; + if (map.length <= 0x10000) { + return map.indexOf(value); + } + for (const charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + return -1; + } + amend(map) { + for (const charCode in map) { + this._map[charCode] = map[charCode]; + } + } +} +class IdentityToUnicodeMap { + constructor(firstChar, lastChar) { + this.firstChar = firstChar; + this.lastChar = lastChar; + } + get length() { + return this.lastChar + 1 - this.firstChar; + } + forEach(callback) { + for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) { + callback(i, i); + } + } + has(i) { + return this.firstChar <= i && i <= this.lastChar; + } + get(i) { + if (this.firstChar <= i && i <= this.lastChar) { + return String.fromCharCode(i); + } + return undefined; + } + charCodeOf(v) { + return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; + } + amend(map) { + unreachable("Should not call amend()"); + } +} + +;// ./src/core/cff_font.js + + + +class CFFFont { + constructor(file, properties) { + this.properties = properties; + const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED); + this.cff = parser.parse(); + this.cff.duplicateFirstGlyph(); + const compiler = new CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + try { + this.data = compiler.compile(); + } catch { + warn("Failed to compile font " + properties.loadedName); + this.data = file; + } + this._createBuiltInEncoding(); + } + get numGlyphs() { + return this.cff.charStrings.count; + } + getCharset() { + return this.cff.charset.charset; + } + getGlyphMapping() { + const cff = this.cff; + const properties = this.properties; + const { + cidToGidMap, + cMap + } = properties; + const charsets = cff.charset.charset; + let charCodeToGlyphId; + let glyphId; + if (properties.composite) { + let invCidToGidMap; + if (cidToGidMap?.length > 0) { + invCidToGidMap = Object.create(null); + for (let i = 0, ii = cidToGidMap.length; i < ii; i++) { + const gid = cidToGidMap[i]; + if (gid !== undefined) { + invCidToGidMap[gid] = i; + } + } + } + charCodeToGlyphId = Object.create(null); + let charCode; + if (cff.isCIDFont) { + for (glyphId = 0; glyphId < charsets.length; glyphId++) { + const cid = charsets[glyphId]; + charCode = cMap.charCodeOf(cid); + if (invCidToGidMap?.[charCode] !== undefined) { + charCode = invCidToGidMap[charCode]; + } + charCodeToGlyphId[charCode] = glyphId; + } + } else { + for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) { + charCode = cMap.charCodeOf(glyphId); + charCodeToGlyphId[charCode] = glyphId; + } + } + return charCodeToGlyphId; + } + let encoding = cff.encoding ? cff.encoding.encoding : null; + if (properties.isInternalFont) { + encoding = properties.defaultEncoding; + } + charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets); + return charCodeToGlyphId; + } + hasGlyphId(id) { + return this.cff.hasGlyphId(id); + } + _createBuiltInEncoding() { + const { + charset, + encoding + } = this.cff; + if (!charset || !encoding) { + return; + } + const charsets = charset.charset, + encodings = encoding.encoding; + const map = []; + for (const charCode in encodings) { + const glyphId = encodings[charCode]; + if (glyphId >= 0) { + const glyphName = charsets[glyphId]; + if (glyphName) { + map[charCode] = glyphName; + } + } + } + if (map.length > 0) { + this.properties.builtInEncoding = map; + } + } +} + +;// ./src/core/font_renderer.js + + + + + + +function getUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} +function getUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} +function getInt16(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16) >> 16; +} +function getInt8(data, offset) { + return data[offset] << 24 >> 24; +} +function getFloat214(data, offset) { + return getInt16(data, offset) / 16384; +} +function getSubroutineBias(subrs) { + const numSubrs = subrs.length; + let bias = 32768; + if (numSubrs < 1240) { + bias = 107; + } else if (numSubrs < 33900) { + bias = 1131; + } + return bias; +} +function parseCmap(data, start, end) { + const offset = getUint16(data, start + 2) === 1 ? getUint32(data, start + 8) : getUint32(data, start + 16); + const format = getUint16(data, start + offset); + let ranges, p, i; + if (format === 4) { + getUint16(data, start + offset + 2); + const segCount = getUint16(data, start + offset + 6) >> 1; + p = start + offset + 14; + ranges = []; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i] = { + end: getUint16(data, p) + }; + } + p += 2; + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].start = getUint16(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].idDelta = getUint16(data, p); + } + for (i = 0; i < segCount; i++, p += 2) { + let idOffset = getUint16(data, p); + if (idOffset === 0) { + continue; + } + ranges[i].ids = []; + for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) { + ranges[i].ids[j] = getUint16(data, p + idOffset); + idOffset += 2; + } + } + return ranges; + } else if (format === 12) { + const groups = getUint32(data, start + offset + 12); + p = start + offset + 16; + ranges = []; + for (i = 0; i < groups; i++) { + start = getUint32(data, p); + ranges.push({ + start, + end: getUint32(data, p + 4), + idDelta: getUint32(data, p + 8) - start + }); + p += 12; + } + return ranges; + } + throw new FormatError(`unsupported cmap: ${format}`); +} +function parseCff(data, start, end, seacAnalysisEnabled) { + const properties = {}; + const parser = new CFFParser(new Stream(data, start, end - start), properties, seacAnalysisEnabled); + const cff = parser.parse(); + return { + glyphs: cff.charStrings.objects, + subrs: cff.topDict.privateDict?.subrsIndex?.objects, + gsubrs: cff.globalSubrIndex?.objects, + isCFFCIDFont: cff.isCIDFont, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray + }; +} +function parseGlyfTable(glyf, loca, isGlyphLocationsLong) { + let itemSize, itemDecode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = getUint32; + } else { + itemSize = 2; + itemDecode = (data, offset) => 2 * getUint16(data, offset); + } + const glyphs = []; + let startOffset = itemDecode(loca, 0); + for (let j = itemSize; j < loca.length; j += itemSize) { + const endOffset = itemDecode(loca, j); + glyphs.push(glyf.subarray(startOffset, endOffset)); + startOffset = endOffset; + } + return glyphs; +} +function lookupCmap(ranges, unicode) { + const code = unicode.codePointAt(0); + let gid = 0, + l = 0, + r = ranges.length - 1; + while (l < r) { + const c = l + r + 1 >> 1; + if (code < ranges[c].start) { + r = c - 1; + } else { + l = c; + } + } + if (ranges[l].start <= code && code <= ranges[l].end) { + gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff; + } + return { + charCode: code, + glyphId: gid + }; +} +function compileGlyf(code, cmds, font) { + function moveTo(x, y) { + cmds.add("M", [x, y]); + } + function lineTo(x, y) { + cmds.add("L", [x, y]); + } + function quadraticCurveTo(xa, ya, x, y) { + cmds.add("Q", [xa, ya, x, y]); + } + let i = 0; + const numberOfContours = getInt16(code, i); + let flags; + let x = 0, + y = 0; + i += 10; + if (numberOfContours < 0) { + do { + flags = getUint16(code, i); + const glyphIndex = getUint16(code, i + 2); + i += 4; + let arg1, arg2; + if (flags & 0x01) { + if (flags & 0x02) { + arg1 = getInt16(code, i); + arg2 = getInt16(code, i + 2); + } else { + arg1 = getUint16(code, i); + arg2 = getUint16(code, i + 2); + } + i += 4; + } else if (flags & 0x02) { + arg1 = getInt8(code, i++); + arg2 = getInt8(code, i++); + } else { + arg1 = code[i++]; + arg2 = code[i++]; + } + if (flags & 0x02) { + x = arg1; + y = arg2; + } else { + x = 0; + y = 0; + } + let scaleX = 1, + scaleY = 1, + scale01 = 0, + scale10 = 0; + if (flags & 0x08) { + scaleX = scaleY = getFloat214(code, i); + i += 2; + } else if (flags & 0x40) { + scaleX = getFloat214(code, i); + scaleY = getFloat214(code, i + 2); + i += 4; + } else if (flags & 0x80) { + scaleX = getFloat214(code, i); + scale01 = getFloat214(code, i + 2); + scale10 = getFloat214(code, i + 4); + scaleY = getFloat214(code, i + 6); + i += 8; + } + const subglyph = font.glyphs[glyphIndex]; + if (subglyph) { + cmds.save(); + cmds.transform([scaleX, scale01, scale10, scaleY, x, y]); + if (!(flags & 0x02)) {} + compileGlyf(subglyph, cmds, font); + cmds.restore(); + } + } while (flags & 0x20); + } else { + const endPtsOfContours = []; + let j, jj; + for (j = 0; j < numberOfContours; j++) { + endPtsOfContours.push(getUint16(code, i)); + i += 2; + } + const instructionLength = getUint16(code, i); + i += 2 + instructionLength; + const numberOfPoints = endPtsOfContours.at(-1) + 1; + const points = []; + while (points.length < numberOfPoints) { + flags = code[i++]; + let repeat = 1; + if (flags & 0x08) { + repeat += code[i++]; + } + while (repeat-- > 0) { + points.push({ + flags + }); + } + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x12) { + case 0x00: + x += getInt16(code, i); + i += 2; + break; + case 0x02: + x -= code[i++]; + break; + case 0x12: + x += code[i++]; + break; + } + points[j].x = x; + } + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x24) { + case 0x00: + y += getInt16(code, i); + i += 2; + break; + case 0x04: + y -= code[i++]; + break; + case 0x24: + y += code[i++]; + break; + } + points[j].y = y; + } + let startPoint = 0; + for (i = 0; i < numberOfContours; i++) { + const endPoint = endPtsOfContours[i]; + const contour = points.slice(startPoint, endPoint + 1); + if (contour[0].flags & 1) { + contour.push(contour[0]); + } else if (contour.at(-1).flags & 1) { + contour.unshift(contour.at(-1)); + } else { + const p = { + flags: 1, + x: (contour[0].x + contour.at(-1).x) / 2, + y: (contour[0].y + contour.at(-1).y) / 2 + }; + contour.unshift(p); + contour.push(p); + } + moveTo(contour[0].x, contour[0].y); + for (j = 1, jj = contour.length; j < jj; j++) { + if (contour[j].flags & 1) { + lineTo(contour[j].x, contour[j].y); + } else if (contour[j + 1].flags & 1) { + quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y); + j++; + } else { + quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2); + } + } + startPoint = endPoint + 1; + } + } +} +function compileCharString(charStringCode, cmds, font, glyphId) { + function moveTo(x, y) { + cmds.add("M", [x, y]); + } + function lineTo(x, y) { + cmds.add("L", [x, y]); + } + function bezierCurveTo(x1, y1, x2, y2, x, y) { + cmds.add("C", [x1, y1, x2, y2, x, y]); + } + const stack = []; + let x = 0, + y = 0; + let stems = 0; + function parse(code) { + let i = 0; + while (i < code.length) { + let stackClean = false; + let v = code[i++]; + let xa, xb, ya, yb, y1, y2, y3, n, subrCode; + switch (v) { + case 1: + stems += stack.length >> 1; + stackClean = true; + break; + case 3: + stems += stack.length >> 1; + stackClean = true; + break; + case 4: + y += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 5: + while (stack.length > 0) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + break; + case 6: + while (stack.length > 0) { + x += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + y += stack.shift(); + lineTo(x, y); + } + break; + case 7: + while (stack.length > 0) { + y += stack.shift(); + lineTo(x, y); + if (stack.length === 0) { + break; + } + x += stack.shift(); + lineTo(x, y); + } + break; + case 8: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 10: + n = stack.pop(); + subrCode = null; + if (font.isCFFCIDFont) { + const fdIndex = font.fdSelect.getFDIndex(glyphId); + if (fdIndex >= 0 && fdIndex < font.fdArray.length) { + const fontDict = font.fdArray[fdIndex]; + let subrs; + if (fontDict.privateDict?.subrsIndex) { + subrs = fontDict.privateDict.subrsIndex.objects; + } + if (subrs) { + n += getSubroutineBias(subrs); + subrCode = subrs[n]; + } + } else { + warn("Invalid fd index for glyph index."); + } + } else { + subrCode = font.subrs[n + font.subrsBias]; + } + if (subrCode) { + parse(subrCode); + } + break; + case 11: + return; + case 12: + v = code[i++]; + switch (v) { + case 34: + xa = x + stack.shift(); + xb = xa + stack.shift(); + y1 = y + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y, xb, y1, x, y1); + xa = x + stack.shift(); + xb = xa + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y, x, y); + break; + case 35: + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + stack.pop(); + break; + case 36: + xa = x + stack.shift(); + y1 = y + stack.shift(); + xb = xa + stack.shift(); + y2 = y1 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y2, x, y2); + xa = x + stack.shift(); + xb = xa + stack.shift(); + y3 = y2 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y2, xb, y3, x, y); + break; + case 37: + const x0 = x, + y0 = y; + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb; + if (Math.abs(x - x0) > Math.abs(y - y0)) { + x += stack.shift(); + } else { + y += stack.shift(); + } + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + default: + throw new FormatError(`unknown operator: 12 ${v}`); + } + break; + case 14: + if (stack.length >= 4) { + const achar = stack.pop(); + const bchar = stack.pop(); + y = stack.pop(); + x = stack.pop(); + cmds.save(); + cmds.translate(x, y); + let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + cmds.restore(); + cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + } + return; + case 18: + stems += stack.length >> 1; + stackClean = true; + break; + case 19: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 20: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + case 21: + y += stack.pop(); + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 22: + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + case 23: + stems += stack.length >> 1; + stackClean = true; + break; + case 24: + while (stack.length > 2) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + break; + case 25: + while (stack.length > 6) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + case 26: + if (stack.length % 2) { + x += stack.shift(); + } + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 27: + if (stack.length % 2) { + y += stack.shift(); + } + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb; + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 28: + stack.push((code[i] << 24 | code[i + 1] << 16) >> 16); + i += 2; + break; + case 29: + n = stack.pop() + font.gsubrsBias; + subrCode = font.gsubrs[n]; + if (subrCode) { + parse(subrCode); + } + break; + case 30: + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + case 31: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + if (stack.length === 0) { + break; + } + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + break; + default: + if (v < 32) { + throw new FormatError(`unknown operator: ${v}`); + } + if (v < 247) { + stack.push(v - 139); + } else if (v < 251) { + stack.push((v - 247) * 256 + code[i++] + 108); + } else if (v < 255) { + stack.push(-(v - 251) * 256 - code[i++] - 108); + } else { + stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536); + i += 4; + } + break; + } + if (stackClean) { + stack.length = 0; + } + } + } + parse(charStringCode); +} +const NOOP = ""; +class Commands { + cmds = []; + transformStack = []; + currentTransform = [1, 0, 0, 1, 0, 0]; + add(cmd, args) { + if (args) { + const [a, b, c, d, e, f] = this.currentTransform; + for (let i = 0, ii = args.length; i < ii; i += 2) { + const x = args[i]; + const y = args[i + 1]; + args[i] = a * x + c * y + e; + args[i + 1] = b * x + d * y + f; + } + this.cmds.push(`${cmd}${args.join(" ")}`); + } else { + this.cmds.push(cmd); + } + } + transform(transf) { + this.currentTransform = Util.transform(this.currentTransform, transf); + } + translate(x, y) { + this.transform([1, 0, 0, 1, x, y]); + } + save() { + this.transformStack.push(this.currentTransform.slice()); + } + restore() { + this.currentTransform = this.transformStack.pop() || [1, 0, 0, 1, 0, 0]; + } + getSVG() { + return this.cmds.join(""); + } +} +class CompiledFont { + constructor(fontMatrix) { + this.fontMatrix = fontMatrix; + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + } + getPathJs(unicode) { + const { + charCode, + glyphId + } = lookupCmap(this.cmap, unicode); + let fn = this.compiledGlyphs[glyphId], + compileEx; + if (fn === undefined) { + try { + fn = this.compileGlyph(this.glyphs[glyphId], glyphId); + } catch (ex) { + fn = NOOP; + compileEx = ex; + } + this.compiledGlyphs[glyphId] = fn; + } + this.compiledCharCodeToGlyphId[charCode] ??= glyphId; + if (compileEx) { + throw compileEx; + } + return fn; + } + compileGlyph(code, glyphId) { + if (!code?.length || code[0] === 14) { + return NOOP; + } + let fontMatrix = this.fontMatrix; + if (this.isCFFCIDFont) { + const fdIndex = this.fdSelect.getFDIndex(glyphId); + if (fdIndex >= 0 && fdIndex < this.fdArray.length) { + const fontDict = this.fdArray[fdIndex]; + fontMatrix = fontDict.getByName("FontMatrix") || FONT_IDENTITY_MATRIX; + } else { + warn("Invalid fd index for glyph index."); + } + } + assert(isNumberArray(fontMatrix, 6), "Expected a valid fontMatrix."); + const cmds = new Commands(); + cmds.transform(fontMatrix.slice()); + this.compileGlyphImpl(code, cmds, glyphId); + cmds.add("Z"); + return cmds.getSVG(); + } + compileGlyphImpl() { + unreachable("Children classes should implement this."); + } + hasBuiltPath(unicode) { + const { + charCode, + glyphId + } = lookupCmap(this.cmap, unicode); + return this.compiledGlyphs[glyphId] !== undefined && this.compiledCharCodeToGlyphId[charCode] !== undefined; + } +} +class TrueTypeCompiled extends CompiledFont { + constructor(glyphs, cmap, fontMatrix) { + super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]); + this.glyphs = glyphs; + this.cmap = cmap; + } + compileGlyphImpl(code, cmds) { + compileGlyf(code, cmds, this); + } +} +class Type2Compiled extends CompiledFont { + constructor(cffInfo, cmap, fontMatrix) { + super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]); + this.glyphs = cffInfo.glyphs; + this.gsubrs = cffInfo.gsubrs || []; + this.subrs = cffInfo.subrs || []; + this.cmap = cmap; + this.glyphNameMap = getGlyphsUnicode(); + this.gsubrsBias = getSubroutineBias(this.gsubrs); + this.subrsBias = getSubroutineBias(this.subrs); + this.isCFFCIDFont = cffInfo.isCFFCIDFont; + this.fdSelect = cffInfo.fdSelect; + this.fdArray = cffInfo.fdArray; + } + compileGlyphImpl(code, cmds, glyphId) { + compileCharString(code, cmds, this, glyphId); + } +} +class FontRendererFactory { + static create(font, seacAnalysisEnabled) { + const data = new Uint8Array(font.data); + let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm; + const numTables = getUint16(data, 4); + for (let i = 0, p = 12; i < numTables; i++, p += 16) { + const tag = bytesToString(data.subarray(p, p + 4)); + const offset = getUint32(data, p + 8); + const length = getUint32(data, p + 12); + switch (tag) { + case "cmap": + cmap = parseCmap(data, offset, offset + length); + break; + case "glyf": + glyf = data.subarray(offset, offset + length); + break; + case "loca": + loca = data.subarray(offset, offset + length); + break; + case "head": + unitsPerEm = getUint16(data, offset + 18); + indexToLocFormat = getUint16(data, offset + 50); + break; + case "CFF ": + cff = parseCff(data, offset, offset + length, seacAnalysisEnabled); + break; + } + } + if (glyf) { + const fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0]; + return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix); + } + return new Type2Compiled(cff, cmap, font.fontMatrix); + } +} + +;// ./src/core/metrics.js + +const getMetrics = getLookupTableFactory(function (t) { + t.Courier = 600; + t["Courier-Bold"] = 600; + t["Courier-BoldOblique"] = 600; + t["Courier-Oblique"] = 600; + t.Helvetica = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 278; + t.quotedbl = 355; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 667; + t.quoteright = 222; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 278; + t.semicolon = 278; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 556; + t.at = 1015; + t.A = 667; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 500; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 278; + t.backslash = 278; + t.bracketright = 278; + t.asciicircum = 469; + t.underscore = 556; + t.quoteleft = 222; + t.a = 556; + t.b = 556; + t.c = 500; + t.d = 556; + t.e = 556; + t.f = 278; + t.g = 556; + t.h = 556; + t.i = 222; + t.j = 222; + t.k = 500; + t.l = 222; + t.m = 833; + t.n = 556; + t.o = 556; + t.p = 556; + t.q = 556; + t.r = 333; + t.s = 500; + t.t = 278; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 500; + t.braceleft = 334; + t.bar = 260; + t.braceright = 334; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 191; + t.quotedblleft = 333; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 537; + t.bullet = 350; + t.quotesinglbase = 222; + t.quotedblbase = 333; + t.quotedblright = 333; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 556; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 222; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 556; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 667; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 500; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 500; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 222; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 500; + t.scedilla = 500; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 556; + t.Amacron = 667; + t.rcaron = 333; + t.ccedilla = 500; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 643; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 584; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 500; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 260; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 333; + t.omacron = 556; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 222; + t.tcaron = 317; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 222; + t.Oacute = 778; + t.oacute = 556; + t.amacron = 556; + t.sacute = 500; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 556; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 299; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 556; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 556; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 556; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 556; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 556; + t.Rcommaaccent = 722; + t.Lcommaaccent = 556; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 500; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 584; + t.odieresis = 556; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 556; + t.eth = 556; + t.zcaron = 500; + t.ncommaaccent = 556; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-Bold"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 333; + t.quotedbl = 474; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 722; + t.quoteright = 278; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 333; + t.semicolon = 333; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 611; + t.at = 975; + t.A = 722; + t.B = 722; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 556; + t.K = 722; + t.L = 611; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 584; + t.underscore = 556; + t.quoteleft = 278; + t.a = 556; + t.b = 611; + t.c = 556; + t.d = 611; + t.e = 556; + t.f = 333; + t.g = 611; + t.h = 611; + t.i = 278; + t.j = 278; + t.k = 556; + t.l = 278; + t.m = 889; + t.n = 611; + t.o = 611; + t.p = 611; + t.q = 611; + t.r = 389; + t.s = 556; + t.t = 333; + t.u = 611; + t.v = 556; + t.w = 778; + t.x = 556; + t.y = 556; + t.z = 500; + t.braceleft = 389; + t.bar = 280; + t.braceright = 389; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 238; + t.quotedblleft = 500; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 611; + t.fl = 611; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 556; + t.bullet = 350; + t.quotesinglbase = 278; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 611; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 611; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 722; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 556; + t.scommaaccent = 556; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 611; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 556; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 556; + t.scedilla = 556; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 611; + t.acircumflex = 556; + t.Amacron = 722; + t.rcaron = 389; + t.ccedilla = 556; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 743; + t.Umacron = 722; + t.uring = 611; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 584; + t.uacute = 611; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 556; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 556; + t.nacute = 611; + t.umacron = 611; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 280; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 611; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 389; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 611; + t.amacron = 556; + t.sacute = 556; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 611; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 611; + t.igrave = 278; + t.ohungarumlaut = 611; + t.Eogonek = 667; + t.dcroat = 611; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 400; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 611; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 611; + t.ntilde = 611; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 611; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 611; + t.Ccaron = 722; + t.ugrave = 611; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 611; + t.Rcommaaccent = 722; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 556; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 611; + t.tcommaaccent = 333; + t.logicalnot = 584; + t.odieresis = 611; + t.udieresis = 611; + t.notequal = 549; + t.gcommaaccent = 611; + t.eth = 611; + t.zcaron = 500; + t.ncommaaccent = 611; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-BoldOblique"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 333; + t.quotedbl = 474; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 722; + t.quoteright = 278; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 333; + t.semicolon = 333; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 611; + t.at = 975; + t.A = 722; + t.B = 722; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 556; + t.K = 722; + t.L = 611; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 584; + t.underscore = 556; + t.quoteleft = 278; + t.a = 556; + t.b = 611; + t.c = 556; + t.d = 611; + t.e = 556; + t.f = 333; + t.g = 611; + t.h = 611; + t.i = 278; + t.j = 278; + t.k = 556; + t.l = 278; + t.m = 889; + t.n = 611; + t.o = 611; + t.p = 611; + t.q = 611; + t.r = 389; + t.s = 556; + t.t = 333; + t.u = 611; + t.v = 556; + t.w = 778; + t.x = 556; + t.y = 556; + t.z = 500; + t.braceleft = 389; + t.bar = 280; + t.braceright = 389; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 238; + t.quotedblleft = 500; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 611; + t.fl = 611; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 556; + t.bullet = 350; + t.quotesinglbase = 278; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 611; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 611; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 722; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 556; + t.scommaaccent = 556; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 611; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 556; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 556; + t.scedilla = 556; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 611; + t.acircumflex = 556; + t.Amacron = 722; + t.rcaron = 389; + t.ccedilla = 556; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 743; + t.Umacron = 722; + t.uring = 611; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 584; + t.uacute = 611; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 556; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 556; + t.nacute = 611; + t.umacron = 611; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 280; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 611; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 389; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 611; + t.amacron = 556; + t.sacute = 556; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 611; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 611; + t.igrave = 278; + t.ohungarumlaut = 611; + t.Eogonek = 667; + t.dcroat = 611; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 400; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 611; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 611; + t.ntilde = 611; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 611; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 611; + t.Ccaron = 722; + t.ugrave = 611; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 611; + t.Rcommaaccent = 722; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 556; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 611; + t.tcommaaccent = 333; + t.logicalnot = 584; + t.odieresis = 611; + t.udieresis = 611; + t.notequal = 549; + t.gcommaaccent = 611; + t.eth = 611; + t.zcaron = 500; + t.ncommaaccent = 611; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t["Helvetica-Oblique"] = getLookupTableFactory(function (t) { + t.space = 278; + t.exclam = 278; + t.quotedbl = 355; + t.numbersign = 556; + t.dollar = 556; + t.percent = 889; + t.ampersand = 667; + t.quoteright = 222; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 389; + t.plus = 584; + t.comma = 278; + t.hyphen = 333; + t.period = 278; + t.slash = 278; + t.zero = 556; + t.one = 556; + t.two = 556; + t.three = 556; + t.four = 556; + t.five = 556; + t.six = 556; + t.seven = 556; + t.eight = 556; + t.nine = 556; + t.colon = 278; + t.semicolon = 278; + t.less = 584; + t.equal = 584; + t.greater = 584; + t.question = 556; + t.at = 1015; + t.A = 667; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 722; + t.I = 278; + t.J = 500; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 722; + t.O = 778; + t.P = 667; + t.Q = 778; + t.R = 722; + t.S = 667; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 944; + t.X = 667; + t.Y = 667; + t.Z = 611; + t.bracketleft = 278; + t.backslash = 278; + t.bracketright = 278; + t.asciicircum = 469; + t.underscore = 556; + t.quoteleft = 222; + t.a = 556; + t.b = 556; + t.c = 500; + t.d = 556; + t.e = 556; + t.f = 278; + t.g = 556; + t.h = 556; + t.i = 222; + t.j = 222; + t.k = 500; + t.l = 222; + t.m = 833; + t.n = 556; + t.o = 556; + t.p = 556; + t.q = 556; + t.r = 333; + t.s = 500; + t.t = 278; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 500; + t.braceleft = 334; + t.bar = 260; + t.braceright = 334; + t.asciitilde = 584; + t.exclamdown = 333; + t.cent = 556; + t.sterling = 556; + t.fraction = 167; + t.yen = 556; + t.florin = 556; + t.section = 556; + t.currency = 556; + t.quotesingle = 191; + t.quotedblleft = 333; + t.guillemotleft = 556; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 556; + t.dagger = 556; + t.daggerdbl = 556; + t.periodcentered = 278; + t.paragraph = 537; + t.bullet = 350; + t.quotesinglbase = 222; + t.quotedblbase = 333; + t.quotedblright = 333; + t.guillemotright = 556; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 611; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 370; + t.Lslash = 556; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 365; + t.ae = 889; + t.dotlessi = 278; + t.lslash = 222; + t.oslash = 611; + t.oe = 944; + t.germandbls = 611; + t.Idieresis = 278; + t.eacute = 556; + t.abreve = 556; + t.uhungarumlaut = 556; + t.ecaron = 556; + t.Ydieresis = 667; + t.divide = 584; + t.Yacute = 667; + t.Acircumflex = 667; + t.aacute = 556; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 500; + t.ecircumflex = 556; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 556; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 737; + t.Emacron = 667; + t.ccaron = 500; + t.aring = 556; + t.Ncommaaccent = 722; + t.lacute = 222; + t.agrave = 556; + t.Tcommaaccent = 611; + t.Cacute = 722; + t.atilde = 556; + t.Edotaccent = 667; + t.scaron = 500; + t.scedilla = 500; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 556; + t.Amacron = 667; + t.rcaron = 333; + t.ccedilla = 500; + t.Zdotaccent = 611; + t.Thorn = 667; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 667; + t.dcaron = 643; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 333; + t.Ograve = 778; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 584; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 556; + t.edieresis = 556; + t.cacute = 500; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 278; + t.plusminus = 584; + t.brokenbar = 260; + t.registered = 737; + t.Gbreve = 778; + t.Idotaccent = 278; + t.summation = 600; + t.Egrave = 667; + t.racute = 333; + t.omacron = 556; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 222; + t.tcaron = 317; + t.eogonek = 556; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 556; + t.zacute = 500; + t.iogonek = 222; + t.Oacute = 778; + t.oacute = 556; + t.amacron = 556; + t.sacute = 500; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 333; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 556; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 834; + t.Scedilla = 667; + t.lcaron = 299; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 1000; + t.edotaccent = 556; + t.Igrave = 278; + t.Imacron = 278; + t.Lcaron = 556; + t.onehalf = 834; + t.lessequal = 549; + t.ocircumflex = 556; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 556; + t.gbreve = 556; + t.onequarter = 834; + t.Scaron = 667; + t.Scommaaccent = 667; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 556; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 556; + t.Rcommaaccent = 722; + t.Lcommaaccent = 556; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 778; + t.zdotaccent = 500; + t.Ecaron = 667; + t.Iogonek = 278; + t.kcommaaccent = 500; + t.minus = 584; + t.Icircumflex = 278; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 584; + t.odieresis = 556; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 556; + t.eth = 556; + t.zcaron = 500; + t.ncommaaccent = 556; + t.onesuperior = 333; + t.imacron = 278; + t.Euro = 556; + }); + t.Symbol = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.universal = 713; + t.numbersign = 500; + t.existential = 549; + t.percent = 833; + t.ampersand = 778; + t.suchthat = 439; + t.parenleft = 333; + t.parenright = 333; + t.asteriskmath = 500; + t.plus = 549; + t.comma = 250; + t.minus = 549; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 278; + t.semicolon = 278; + t.less = 549; + t.equal = 549; + t.greater = 549; + t.question = 444; + t.congruent = 549; + t.Alpha = 722; + t.Beta = 667; + t.Chi = 722; + t.Delta = 612; + t.Epsilon = 611; + t.Phi = 763; + t.Gamma = 603; + t.Eta = 722; + t.Iota = 333; + t.theta1 = 631; + t.Kappa = 722; + t.Lambda = 686; + t.Mu = 889; + t.Nu = 722; + t.Omicron = 722; + t.Pi = 768; + t.Theta = 741; + t.Rho = 556; + t.Sigma = 592; + t.Tau = 611; + t.Upsilon = 690; + t.sigma1 = 439; + t.Omega = 768; + t.Xi = 645; + t.Psi = 795; + t.Zeta = 611; + t.bracketleft = 333; + t.therefore = 863; + t.bracketright = 333; + t.perpendicular = 658; + t.underscore = 500; + t.radicalex = 500; + t.alpha = 631; + t.beta = 549; + t.chi = 549; + t.delta = 494; + t.epsilon = 439; + t.phi = 521; + t.gamma = 411; + t.eta = 603; + t.iota = 329; + t.phi1 = 603; + t.kappa = 549; + t.lambda = 549; + t.mu = 576; + t.nu = 521; + t.omicron = 549; + t.pi = 549; + t.theta = 521; + t.rho = 549; + t.sigma = 603; + t.tau = 439; + t.upsilon = 576; + t.omega1 = 713; + t.omega = 686; + t.xi = 493; + t.psi = 686; + t.zeta = 494; + t.braceleft = 480; + t.bar = 200; + t.braceright = 480; + t.similar = 549; + t.Euro = 750; + t.Upsilon1 = 620; + t.minute = 247; + t.lessequal = 549; + t.fraction = 167; + t.infinity = 713; + t.florin = 500; + t.club = 753; + t.diamond = 753; + t.heart = 753; + t.spade = 753; + t.arrowboth = 1042; + t.arrowleft = 987; + t.arrowup = 603; + t.arrowright = 987; + t.arrowdown = 603; + t.degree = 400; + t.plusminus = 549; + t.second = 411; + t.greaterequal = 549; + t.multiply = 549; + t.proportional = 713; + t.partialdiff = 494; + t.bullet = 460; + t.divide = 549; + t.notequal = 549; + t.equivalence = 549; + t.approxequal = 549; + t.ellipsis = 1000; + t.arrowvertex = 603; + t.arrowhorizex = 1000; + t.carriagereturn = 658; + t.aleph = 823; + t.Ifraktur = 686; + t.Rfraktur = 795; + t.weierstrass = 987; + t.circlemultiply = 768; + t.circleplus = 768; + t.emptyset = 823; + t.intersection = 768; + t.union = 768; + t.propersuperset = 713; + t.reflexsuperset = 713; + t.notsubset = 713; + t.propersubset = 713; + t.reflexsubset = 713; + t.element = 713; + t.notelement = 713; + t.angle = 768; + t.gradient = 713; + t.registerserif = 790; + t.copyrightserif = 790; + t.trademarkserif = 890; + t.product = 823; + t.radical = 549; + t.dotmath = 250; + t.logicalnot = 713; + t.logicaland = 603; + t.logicalor = 603; + t.arrowdblboth = 1042; + t.arrowdblleft = 987; + t.arrowdblup = 603; + t.arrowdblright = 987; + t.arrowdbldown = 603; + t.lozenge = 494; + t.angleleft = 329; + t.registersans = 790; + t.copyrightsans = 790; + t.trademarksans = 786; + t.summation = 713; + t.parenlefttp = 384; + t.parenleftex = 384; + t.parenleftbt = 384; + t.bracketlefttp = 384; + t.bracketleftex = 384; + t.bracketleftbt = 384; + t.bracelefttp = 494; + t.braceleftmid = 494; + t.braceleftbt = 494; + t.braceex = 494; + t.angleright = 329; + t.integral = 274; + t.integraltp = 686; + t.integralex = 686; + t.integralbt = 686; + t.parenrighttp = 384; + t.parenrightex = 384; + t.parenrightbt = 384; + t.bracketrighttp = 384; + t.bracketrightex = 384; + t.bracketrightbt = 384; + t.bracerighttp = 494; + t.bracerightmid = 494; + t.bracerightbt = 494; + t.apple = 790; + }); + t["Times-Roman"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 408; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 564; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 278; + t.semicolon = 278; + t.less = 564; + t.equal = 564; + t.greater = 564; + t.question = 444; + t.at = 921; + t.A = 722; + t.B = 667; + t.C = 667; + t.D = 722; + t.E = 611; + t.F = 556; + t.G = 722; + t.H = 722; + t.I = 333; + t.J = 389; + t.K = 722; + t.L = 611; + t.M = 889; + t.N = 722; + t.O = 722; + t.P = 556; + t.Q = 722; + t.R = 667; + t.S = 556; + t.T = 611; + t.U = 722; + t.V = 722; + t.W = 944; + t.X = 722; + t.Y = 722; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 469; + t.underscore = 500; + t.quoteleft = 333; + t.a = 444; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 500; + t.i = 278; + t.j = 278; + t.k = 500; + t.l = 278; + t.m = 778; + t.n = 500; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 333; + t.s = 389; + t.t = 278; + t.u = 500; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 444; + t.braceleft = 480; + t.bar = 200; + t.braceright = 480; + t.asciitilde = 541; + t.exclamdown = 333; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 180; + t.quotedblleft = 444; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 453; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 444; + t.quotedblright = 444; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 444; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 889; + t.ordfeminine = 276; + t.Lslash = 611; + t.Oslash = 722; + t.OE = 889; + t.ordmasculine = 310; + t.ae = 667; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 500; + t.Idieresis = 333; + t.eacute = 444; + t.abreve = 444; + t.uhungarumlaut = 500; + t.ecaron = 444; + t.Ydieresis = 722; + t.divide = 564; + t.Yacute = 722; + t.Acircumflex = 722; + t.aacute = 444; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 444; + t.Uacute = 722; + t.uogonek = 500; + t.Edieresis = 611; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 760; + t.Emacron = 611; + t.ccaron = 444; + t.aring = 444; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 444; + t.Tcommaaccent = 611; + t.Cacute = 667; + t.atilde = 444; + t.Edotaccent = 611; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 667; + t.Gcommaaccent = 722; + t.ucircumflex = 500; + t.acircumflex = 444; + t.Amacron = 722; + t.rcaron = 333; + t.ccedilla = 444; + t.Zdotaccent = 611; + t.Thorn = 556; + t.Omacron = 722; + t.Racute = 667; + t.Sacute = 556; + t.dcaron = 588; + t.Umacron = 722; + t.uring = 500; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 564; + t.uacute = 500; + t.Tcaron = 611; + t.partialdiff = 476; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 611; + t.adieresis = 444; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 500; + t.umacron = 500; + t.Ncaron = 722; + t.Iacute = 333; + t.plusminus = 564; + t.brokenbar = 200; + t.registered = 760; + t.Gbreve = 722; + t.Idotaccent = 333; + t.summation = 600; + t.Egrave = 611; + t.racute = 333; + t.omacron = 500; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 326; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 444; + t.zacute = 444; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 444; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 500; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 611; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 344; + t.Kcommaaccent = 722; + t.Lacute = 611; + t.trademark = 980; + t.edotaccent = 444; + t.Igrave = 333; + t.Imacron = 333; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 500; + t.Uhungarumlaut = 722; + t.Eacute = 611; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 500; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 333; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 667; + t.Lcommaaccent = 611; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 722; + t.zdotaccent = 444; + t.Ecaron = 611; + t.Iogonek = 333; + t.kcommaaccent = 500; + t.minus = 564; + t.Icircumflex = 333; + t.ncaron = 500; + t.tcommaaccent = 278; + t.logicalnot = 564; + t.odieresis = 500; + t.udieresis = 500; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 444; + t.ncommaaccent = 500; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-Bold"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 555; + t.numbersign = 500; + t.dollar = 500; + t.percent = 1000; + t.ampersand = 833; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 570; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 570; + t.equal = 570; + t.greater = 570; + t.question = 500; + t.at = 930; + t.A = 722; + t.B = 667; + t.C = 722; + t.D = 722; + t.E = 667; + t.F = 611; + t.G = 778; + t.H = 778; + t.I = 389; + t.J = 500; + t.K = 778; + t.L = 667; + t.M = 944; + t.N = 722; + t.O = 778; + t.P = 611; + t.Q = 778; + t.R = 722; + t.S = 556; + t.T = 667; + t.U = 722; + t.V = 722; + t.W = 1000; + t.X = 722; + t.Y = 722; + t.Z = 667; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 581; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 556; + t.c = 444; + t.d = 556; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 556; + t.i = 278; + t.j = 333; + t.k = 556; + t.l = 278; + t.m = 833; + t.n = 556; + t.o = 500; + t.p = 556; + t.q = 556; + t.r = 444; + t.s = 389; + t.t = 333; + t.u = 556; + t.v = 500; + t.w = 722; + t.x = 500; + t.y = 500; + t.z = 444; + t.braceleft = 394; + t.bar = 220; + t.braceright = 394; + t.asciitilde = 520; + t.exclamdown = 333; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 278; + t.quotedblleft = 500; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 540; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 1000; + t.ordfeminine = 300; + t.Lslash = 667; + t.Oslash = 778; + t.OE = 1000; + t.ordmasculine = 330; + t.ae = 722; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 556; + t.Idieresis = 389; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 556; + t.ecaron = 444; + t.Ydieresis = 722; + t.divide = 570; + t.Yacute = 722; + t.Acircumflex = 722; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 500; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 747; + t.Emacron = 667; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 667; + t.Cacute = 722; + t.atilde = 500; + t.Edotaccent = 667; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 722; + t.Gcommaaccent = 778; + t.ucircumflex = 556; + t.acircumflex = 500; + t.Amacron = 722; + t.rcaron = 444; + t.ccedilla = 444; + t.Zdotaccent = 667; + t.Thorn = 611; + t.Omacron = 778; + t.Racute = 722; + t.Sacute = 556; + t.dcaron = 672; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 300; + t.Ograve = 778; + t.Agrave = 722; + t.Abreve = 722; + t.multiply = 570; + t.uacute = 556; + t.Tcaron = 667; + t.partialdiff = 494; + t.ydieresis = 500; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 389; + t.plusminus = 570; + t.brokenbar = 220; + t.registered = 747; + t.Gbreve = 778; + t.Idotaccent = 389; + t.summation = 600; + t.Egrave = 667; + t.racute = 444; + t.omacron = 500; + t.Zacute = 667; + t.Zcaron = 667; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 722; + t.lcommaaccent = 278; + t.tcaron = 416; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 722; + t.Adieresis = 722; + t.egrave = 444; + t.zacute = 444; + t.iogonek = 278; + t.Oacute = 778; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 778; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 556; + t.twosuperior = 300; + t.Odieresis = 778; + t.mu = 556; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 667; + t.dcroat = 556; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 394; + t.Kcommaaccent = 778; + t.Lacute = 667; + t.trademark = 1000; + t.edotaccent = 444; + t.Igrave = 389; + t.Imacron = 389; + t.Lcaron = 667; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 778; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 722; + t.ugrave = 556; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 444; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 722; + t.Lcommaaccent = 667; + t.Atilde = 722; + t.Aogonek = 722; + t.Aring = 722; + t.Otilde = 778; + t.zdotaccent = 444; + t.Ecaron = 667; + t.Iogonek = 389; + t.kcommaaccent = 556; + t.minus = 570; + t.Icircumflex = 389; + t.ncaron = 556; + t.tcommaaccent = 333; + t.logicalnot = 570; + t.odieresis = 500; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 444; + t.ncommaaccent = 556; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-BoldItalic"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 389; + t.quotedbl = 555; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 570; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 570; + t.equal = 570; + t.greater = 570; + t.question = 500; + t.at = 832; + t.A = 667; + t.B = 667; + t.C = 667; + t.D = 722; + t.E = 667; + t.F = 667; + t.G = 722; + t.H = 778; + t.I = 389; + t.J = 500; + t.K = 667; + t.L = 611; + t.M = 889; + t.N = 722; + t.O = 722; + t.P = 611; + t.Q = 722; + t.R = 667; + t.S = 556; + t.T = 611; + t.U = 722; + t.V = 667; + t.W = 889; + t.X = 667; + t.Y = 611; + t.Z = 611; + t.bracketleft = 333; + t.backslash = 278; + t.bracketright = 333; + t.asciicircum = 570; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 333; + t.g = 500; + t.h = 556; + t.i = 278; + t.j = 278; + t.k = 500; + t.l = 278; + t.m = 778; + t.n = 556; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 389; + t.s = 389; + t.t = 278; + t.u = 556; + t.v = 444; + t.w = 667; + t.x = 500; + t.y = 444; + t.z = 389; + t.braceleft = 348; + t.bar = 220; + t.braceright = 348; + t.asciitilde = 570; + t.exclamdown = 389; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 278; + t.quotedblleft = 500; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 556; + t.fl = 556; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 500; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 500; + t.quotedblright = 500; + t.guillemotright = 500; + t.ellipsis = 1000; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 1000; + t.AE = 944; + t.ordfeminine = 266; + t.Lslash = 611; + t.Oslash = 722; + t.OE = 944; + t.ordmasculine = 300; + t.ae = 722; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 722; + t.germandbls = 500; + t.Idieresis = 389; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 556; + t.ecaron = 444; + t.Ydieresis = 611; + t.divide = 570; + t.Yacute = 611; + t.Acircumflex = 667; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 444; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 556; + t.Edieresis = 667; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 747; + t.Emacron = 667; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 722; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 611; + t.Cacute = 667; + t.atilde = 500; + t.Edotaccent = 667; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 494; + t.Rcaron = 667; + t.Gcommaaccent = 722; + t.ucircumflex = 556; + t.acircumflex = 500; + t.Amacron = 667; + t.rcaron = 389; + t.ccedilla = 444; + t.Zdotaccent = 611; + t.Thorn = 611; + t.Omacron = 722; + t.Racute = 667; + t.Sacute = 556; + t.dcaron = 608; + t.Umacron = 722; + t.uring = 556; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 667; + t.Abreve = 667; + t.multiply = 570; + t.uacute = 556; + t.Tcaron = 611; + t.partialdiff = 494; + t.ydieresis = 444; + t.Nacute = 722; + t.icircumflex = 278; + t.Ecircumflex = 667; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 556; + t.umacron = 556; + t.Ncaron = 722; + t.Iacute = 389; + t.plusminus = 570; + t.brokenbar = 220; + t.registered = 747; + t.Gbreve = 722; + t.Idotaccent = 389; + t.summation = 600; + t.Egrave = 667; + t.racute = 389; + t.omacron = 500; + t.Zacute = 611; + t.Zcaron = 611; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 366; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 667; + t.Adieresis = 667; + t.egrave = 444; + t.zacute = 389; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 576; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 667; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 556; + t.lcaron = 382; + t.Kcommaaccent = 667; + t.Lacute = 611; + t.trademark = 1000; + t.edotaccent = 444; + t.Igrave = 389; + t.Imacron = 389; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 556; + t.Uhungarumlaut = 722; + t.Eacute = 667; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 556; + t.Scommaaccent = 556; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 556; + t.radical = 549; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 722; + t.otilde = 500; + t.Rcommaaccent = 667; + t.Lcommaaccent = 611; + t.Atilde = 667; + t.Aogonek = 667; + t.Aring = 667; + t.Otilde = 722; + t.zdotaccent = 389; + t.Ecaron = 667; + t.Iogonek = 389; + t.kcommaaccent = 500; + t.minus = 606; + t.Icircumflex = 389; + t.ncaron = 556; + t.tcommaaccent = 278; + t.logicalnot = 606; + t.odieresis = 500; + t.udieresis = 556; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 389; + t.ncommaaccent = 556; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t["Times-Italic"] = getLookupTableFactory(function (t) { + t.space = 250; + t.exclam = 333; + t.quotedbl = 420; + t.numbersign = 500; + t.dollar = 500; + t.percent = 833; + t.ampersand = 778; + t.quoteright = 333; + t.parenleft = 333; + t.parenright = 333; + t.asterisk = 500; + t.plus = 675; + t.comma = 250; + t.hyphen = 333; + t.period = 250; + t.slash = 278; + t.zero = 500; + t.one = 500; + t.two = 500; + t.three = 500; + t.four = 500; + t.five = 500; + t.six = 500; + t.seven = 500; + t.eight = 500; + t.nine = 500; + t.colon = 333; + t.semicolon = 333; + t.less = 675; + t.equal = 675; + t.greater = 675; + t.question = 500; + t.at = 920; + t.A = 611; + t.B = 611; + t.C = 667; + t.D = 722; + t.E = 611; + t.F = 611; + t.G = 722; + t.H = 722; + t.I = 333; + t.J = 444; + t.K = 667; + t.L = 556; + t.M = 833; + t.N = 667; + t.O = 722; + t.P = 611; + t.Q = 722; + t.R = 611; + t.S = 500; + t.T = 556; + t.U = 722; + t.V = 611; + t.W = 833; + t.X = 611; + t.Y = 556; + t.Z = 556; + t.bracketleft = 389; + t.backslash = 278; + t.bracketright = 389; + t.asciicircum = 422; + t.underscore = 500; + t.quoteleft = 333; + t.a = 500; + t.b = 500; + t.c = 444; + t.d = 500; + t.e = 444; + t.f = 278; + t.g = 500; + t.h = 500; + t.i = 278; + t.j = 278; + t.k = 444; + t.l = 278; + t.m = 722; + t.n = 500; + t.o = 500; + t.p = 500; + t.q = 500; + t.r = 389; + t.s = 389; + t.t = 278; + t.u = 500; + t.v = 444; + t.w = 667; + t.x = 444; + t.y = 444; + t.z = 389; + t.braceleft = 400; + t.bar = 275; + t.braceright = 400; + t.asciitilde = 541; + t.exclamdown = 389; + t.cent = 500; + t.sterling = 500; + t.fraction = 167; + t.yen = 500; + t.florin = 500; + t.section = 500; + t.currency = 500; + t.quotesingle = 214; + t.quotedblleft = 556; + t.guillemotleft = 500; + t.guilsinglleft = 333; + t.guilsinglright = 333; + t.fi = 500; + t.fl = 500; + t.endash = 500; + t.dagger = 500; + t.daggerdbl = 500; + t.periodcentered = 250; + t.paragraph = 523; + t.bullet = 350; + t.quotesinglbase = 333; + t.quotedblbase = 556; + t.quotedblright = 556; + t.guillemotright = 500; + t.ellipsis = 889; + t.perthousand = 1000; + t.questiondown = 500; + t.grave = 333; + t.acute = 333; + t.circumflex = 333; + t.tilde = 333; + t.macron = 333; + t.breve = 333; + t.dotaccent = 333; + t.dieresis = 333; + t.ring = 333; + t.cedilla = 333; + t.hungarumlaut = 333; + t.ogonek = 333; + t.caron = 333; + t.emdash = 889; + t.AE = 889; + t.ordfeminine = 276; + t.Lslash = 556; + t.Oslash = 722; + t.OE = 944; + t.ordmasculine = 310; + t.ae = 667; + t.dotlessi = 278; + t.lslash = 278; + t.oslash = 500; + t.oe = 667; + t.germandbls = 500; + t.Idieresis = 333; + t.eacute = 444; + t.abreve = 500; + t.uhungarumlaut = 500; + t.ecaron = 444; + t.Ydieresis = 556; + t.divide = 675; + t.Yacute = 556; + t.Acircumflex = 611; + t.aacute = 500; + t.Ucircumflex = 722; + t.yacute = 444; + t.scommaaccent = 389; + t.ecircumflex = 444; + t.Uring = 722; + t.Udieresis = 722; + t.aogonek = 500; + t.Uacute = 722; + t.uogonek = 500; + t.Edieresis = 611; + t.Dcroat = 722; + t.commaaccent = 250; + t.copyright = 760; + t.Emacron = 611; + t.ccaron = 444; + t.aring = 500; + t.Ncommaaccent = 667; + t.lacute = 278; + t.agrave = 500; + t.Tcommaaccent = 556; + t.Cacute = 667; + t.atilde = 500; + t.Edotaccent = 611; + t.scaron = 389; + t.scedilla = 389; + t.iacute = 278; + t.lozenge = 471; + t.Rcaron = 611; + t.Gcommaaccent = 722; + t.ucircumflex = 500; + t.acircumflex = 500; + t.Amacron = 611; + t.rcaron = 389; + t.ccedilla = 444; + t.Zdotaccent = 556; + t.Thorn = 611; + t.Omacron = 722; + t.Racute = 611; + t.Sacute = 500; + t.dcaron = 544; + t.Umacron = 722; + t.uring = 500; + t.threesuperior = 300; + t.Ograve = 722; + t.Agrave = 611; + t.Abreve = 611; + t.multiply = 675; + t.uacute = 500; + t.Tcaron = 556; + t.partialdiff = 476; + t.ydieresis = 444; + t.Nacute = 667; + t.icircumflex = 278; + t.Ecircumflex = 611; + t.adieresis = 500; + t.edieresis = 444; + t.cacute = 444; + t.nacute = 500; + t.umacron = 500; + t.Ncaron = 667; + t.Iacute = 333; + t.plusminus = 675; + t.brokenbar = 275; + t.registered = 760; + t.Gbreve = 722; + t.Idotaccent = 333; + t.summation = 600; + t.Egrave = 611; + t.racute = 389; + t.omacron = 500; + t.Zacute = 556; + t.Zcaron = 556; + t.greaterequal = 549; + t.Eth = 722; + t.Ccedilla = 667; + t.lcommaaccent = 278; + t.tcaron = 300; + t.eogonek = 444; + t.Uogonek = 722; + t.Aacute = 611; + t.Adieresis = 611; + t.egrave = 444; + t.zacute = 389; + t.iogonek = 278; + t.Oacute = 722; + t.oacute = 500; + t.amacron = 500; + t.sacute = 389; + t.idieresis = 278; + t.Ocircumflex = 722; + t.Ugrave = 722; + t.Delta = 612; + t.thorn = 500; + t.twosuperior = 300; + t.Odieresis = 722; + t.mu = 500; + t.igrave = 278; + t.ohungarumlaut = 500; + t.Eogonek = 611; + t.dcroat = 500; + t.threequarters = 750; + t.Scedilla = 500; + t.lcaron = 300; + t.Kcommaaccent = 667; + t.Lacute = 556; + t.trademark = 980; + t.edotaccent = 444; + t.Igrave = 333; + t.Imacron = 333; + t.Lcaron = 611; + t.onehalf = 750; + t.lessequal = 549; + t.ocircumflex = 500; + t.ntilde = 500; + t.Uhungarumlaut = 722; + t.Eacute = 611; + t.emacron = 444; + t.gbreve = 500; + t.onequarter = 750; + t.Scaron = 500; + t.Scommaaccent = 500; + t.Ohungarumlaut = 722; + t.degree = 400; + t.ograve = 500; + t.Ccaron = 667; + t.ugrave = 500; + t.radical = 453; + t.Dcaron = 722; + t.rcommaaccent = 389; + t.Ntilde = 667; + t.otilde = 500; + t.Rcommaaccent = 611; + t.Lcommaaccent = 556; + t.Atilde = 611; + t.Aogonek = 611; + t.Aring = 611; + t.Otilde = 722; + t.zdotaccent = 389; + t.Ecaron = 611; + t.Iogonek = 333; + t.kcommaaccent = 444; + t.minus = 675; + t.Icircumflex = 333; + t.ncaron = 500; + t.tcommaaccent = 278; + t.logicalnot = 675; + t.odieresis = 500; + t.udieresis = 500; + t.notequal = 549; + t.gcommaaccent = 500; + t.eth = 500; + t.zcaron = 389; + t.ncommaaccent = 500; + t.onesuperior = 300; + t.imacron = 278; + t.Euro = 500; + }); + t.ZapfDingbats = getLookupTableFactory(function (t) { + t.space = 278; + t.a1 = 974; + t.a2 = 961; + t.a202 = 974; + t.a3 = 980; + t.a4 = 719; + t.a5 = 789; + t.a119 = 790; + t.a118 = 791; + t.a117 = 690; + t.a11 = 960; + t.a12 = 939; + t.a13 = 549; + t.a14 = 855; + t.a15 = 911; + t.a16 = 933; + t.a105 = 911; + t.a17 = 945; + t.a18 = 974; + t.a19 = 755; + t.a20 = 846; + t.a21 = 762; + t.a22 = 761; + t.a23 = 571; + t.a24 = 677; + t.a25 = 763; + t.a26 = 760; + t.a27 = 759; + t.a28 = 754; + t.a6 = 494; + t.a7 = 552; + t.a8 = 537; + t.a9 = 577; + t.a10 = 692; + t.a29 = 786; + t.a30 = 788; + t.a31 = 788; + t.a32 = 790; + t.a33 = 793; + t.a34 = 794; + t.a35 = 816; + t.a36 = 823; + t.a37 = 789; + t.a38 = 841; + t.a39 = 823; + t.a40 = 833; + t.a41 = 816; + t.a42 = 831; + t.a43 = 923; + t.a44 = 744; + t.a45 = 723; + t.a46 = 749; + t.a47 = 790; + t.a48 = 792; + t.a49 = 695; + t.a50 = 776; + t.a51 = 768; + t.a52 = 792; + t.a53 = 759; + t.a54 = 707; + t.a55 = 708; + t.a56 = 682; + t.a57 = 701; + t.a58 = 826; + t.a59 = 815; + t.a60 = 789; + t.a61 = 789; + t.a62 = 707; + t.a63 = 687; + t.a64 = 696; + t.a65 = 689; + t.a66 = 786; + t.a67 = 787; + t.a68 = 713; + t.a69 = 791; + t.a70 = 785; + t.a71 = 791; + t.a72 = 873; + t.a73 = 761; + t.a74 = 762; + t.a203 = 762; + t.a75 = 759; + t.a204 = 759; + t.a76 = 892; + t.a77 = 892; + t.a78 = 788; + t.a79 = 784; + t.a81 = 438; + t.a82 = 138; + t.a83 = 277; + t.a84 = 415; + t.a97 = 392; + t.a98 = 392; + t.a99 = 668; + t.a100 = 668; + t.a89 = 390; + t.a90 = 390; + t.a93 = 317; + t.a94 = 317; + t.a91 = 276; + t.a92 = 276; + t.a205 = 509; + t.a85 = 509; + t.a206 = 410; + t.a86 = 410; + t.a87 = 234; + t.a88 = 234; + t.a95 = 334; + t.a96 = 334; + t.a101 = 732; + t.a102 = 544; + t.a103 = 544; + t.a104 = 910; + t.a106 = 667; + t.a107 = 760; + t.a108 = 760; + t.a112 = 776; + t.a111 = 595; + t.a110 = 694; + t.a109 = 626; + t.a120 = 788; + t.a121 = 788; + t.a122 = 788; + t.a123 = 788; + t.a124 = 788; + t.a125 = 788; + t.a126 = 788; + t.a127 = 788; + t.a128 = 788; + t.a129 = 788; + t.a130 = 788; + t.a131 = 788; + t.a132 = 788; + t.a133 = 788; + t.a134 = 788; + t.a135 = 788; + t.a136 = 788; + t.a137 = 788; + t.a138 = 788; + t.a139 = 788; + t.a140 = 788; + t.a141 = 788; + t.a142 = 788; + t.a143 = 788; + t.a144 = 788; + t.a145 = 788; + t.a146 = 788; + t.a147 = 788; + t.a148 = 788; + t.a149 = 788; + t.a150 = 788; + t.a151 = 788; + t.a152 = 788; + t.a153 = 788; + t.a154 = 788; + t.a155 = 788; + t.a156 = 788; + t.a157 = 788; + t.a158 = 788; + t.a159 = 788; + t.a160 = 894; + t.a161 = 838; + t.a163 = 1016; + t.a164 = 458; + t.a196 = 748; + t.a165 = 924; + t.a192 = 748; + t.a166 = 918; + t.a167 = 927; + t.a168 = 928; + t.a169 = 928; + t.a170 = 834; + t.a171 = 873; + t.a172 = 828; + t.a173 = 924; + t.a162 = 924; + t.a174 = 917; + t.a175 = 930; + t.a176 = 931; + t.a177 = 463; + t.a178 = 883; + t.a179 = 836; + t.a193 = 836; + t.a180 = 867; + t.a199 = 867; + t.a181 = 696; + t.a200 = 696; + t.a182 = 874; + t.a201 = 874; + t.a183 = 760; + t.a184 = 946; + t.a197 = 771; + t.a185 = 865; + t.a194 = 771; + t.a198 = 888; + t.a186 = 967; + t.a195 = 888; + t.a187 = 831; + t.a188 = 873; + t.a189 = 927; + t.a190 = 970; + t.a191 = 918; + }); +}); +const getFontBasicMetrics = getLookupTableFactory(function (t) { + t.Courier = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: -426 + }; + t["Courier-Bold"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 439 + }; + t["Courier-Oblique"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 426 + }; + t["Courier-BoldOblique"] = { + ascent: 629, + descent: -157, + capHeight: 562, + xHeight: 426 + }; + t.Helvetica = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 523 + }; + t["Helvetica-Bold"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532 + }; + t["Helvetica-Oblique"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 523 + }; + t["Helvetica-BoldOblique"] = { + ascent: 718, + descent: -207, + capHeight: 718, + xHeight: 532 + }; + t["Times-Roman"] = { + ascent: 683, + descent: -217, + capHeight: 662, + xHeight: 450 + }; + t["Times-Bold"] = { + ascent: 683, + descent: -217, + capHeight: 676, + xHeight: 461 + }; + t["Times-Italic"] = { + ascent: 683, + descent: -217, + capHeight: 653, + xHeight: 441 + }; + t["Times-BoldItalic"] = { + ascent: 683, + descent: -217, + capHeight: 669, + xHeight: 462 + }; + t.Symbol = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN + }; + t.ZapfDingbats = { + ascent: Math.NaN, + descent: Math.NaN, + capHeight: Math.NaN, + xHeight: Math.NaN + }; +}); + +;// ./src/core/glyf.js +const ON_CURVE_POINT = 1 << 0; +const X_SHORT_VECTOR = 1 << 1; +const Y_SHORT_VECTOR = 1 << 2; +const REPEAT_FLAG = 1 << 3; +const X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4; +const Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5; +const OVERLAP_SIMPLE = 1 << 6; +const ARG_1_AND_2_ARE_WORDS = 1 << 0; +const ARGS_ARE_XY_VALUES = 1 << 1; +const WE_HAVE_A_SCALE = 1 << 3; +const MORE_COMPONENTS = 1 << 5; +const WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6; +const WE_HAVE_A_TWO_BY_TWO = 1 << 7; +const WE_HAVE_INSTRUCTIONS = 1 << 8; +class GlyfTable { + constructor({ + glyfTable, + isGlyphLocationsLong, + locaTable, + numGlyphs + }) { + this.glyphs = []; + const loca = new DataView(locaTable.buffer, locaTable.byteOffset, locaTable.byteLength); + const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength); + const offsetSize = isGlyphLocationsLong ? 4 : 2; + let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0); + let pos = 0; + for (let i = 0; i < numGlyphs; i++) { + pos += offsetSize; + const next = isGlyphLocationsLong ? loca.getUint32(pos) : 2 * loca.getUint16(pos); + if (next === prev) { + this.glyphs.push(new Glyph({})); + continue; + } + const glyph = Glyph.parse(prev, glyf); + this.glyphs.push(glyph); + prev = next; + } + } + getSize() { + return this.glyphs.reduce((a, g) => { + const size = g.getSize(); + return a + (size + 3 & ~3); + }, 0); + } + write() { + const totalSize = this.getSize(); + const glyfTable = new DataView(new ArrayBuffer(totalSize)); + const isLocationLong = totalSize > 0x1fffe; + const offsetSize = isLocationLong ? 4 : 2; + const locaTable = new DataView(new ArrayBuffer((this.glyphs.length + 1) * offsetSize)); + if (isLocationLong) { + locaTable.setUint32(0, 0); + } else { + locaTable.setUint16(0, 0); + } + let pos = 0; + let locaIndex = 0; + for (const glyph of this.glyphs) { + pos += glyph.write(pos, glyfTable); + pos = pos + 3 & ~3; + locaIndex += offsetSize; + if (isLocationLong) { + locaTable.setUint32(locaIndex, pos); + } else { + locaTable.setUint16(locaIndex, pos >> 1); + } + } + return { + isLocationLong, + loca: new Uint8Array(locaTable.buffer), + glyf: new Uint8Array(glyfTable.buffer) + }; + } + scale(factors) { + for (let i = 0, ii = this.glyphs.length; i < ii; i++) { + this.glyphs[i].scale(factors[i]); + } + } +} +class Glyph { + constructor({ + header = null, + simple = null, + composites = null + }) { + this.header = header; + this.simple = simple; + this.composites = composites; + } + static parse(pos, glyf) { + const [read, header] = GlyphHeader.parse(pos, glyf); + pos += read; + if (header.numberOfContours < 0) { + const composites = []; + while (true) { + const [n, composite] = CompositeGlyph.parse(pos, glyf); + pos += n; + composites.push(composite); + if (!(composite.flags & MORE_COMPONENTS)) { + break; + } + } + return new Glyph({ + header, + composites + }); + } + const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours); + return new Glyph({ + header, + simple + }); + } + getSize() { + if (!this.header) { + return 0; + } + const size = this.simple ? this.simple.getSize() : this.composites.reduce((a, c) => a + c.getSize(), 0); + return this.header.getSize() + size; + } + write(pos, buf) { + if (!this.header) { + return 0; + } + const spos = pos; + pos += this.header.write(pos, buf); + if (this.simple) { + pos += this.simple.write(pos, buf); + } else { + for (const composite of this.composites) { + pos += composite.write(pos, buf); + } + } + return pos - spos; + } + scale(factor) { + if (!this.header) { + return; + } + const xMiddle = (this.header.xMin + this.header.xMax) / 2; + this.header.scale(xMiddle, factor); + if (this.simple) { + this.simple.scale(xMiddle, factor); + } else { + for (const composite of this.composites) { + composite.scale(xMiddle, factor); + } + } + } +} +class GlyphHeader { + constructor({ + numberOfContours, + xMin, + yMin, + xMax, + yMax + }) { + this.numberOfContours = numberOfContours; + this.xMin = xMin; + this.yMin = yMin; + this.xMax = xMax; + this.yMax = yMax; + } + static parse(pos, glyf) { + return [10, new GlyphHeader({ + numberOfContours: glyf.getInt16(pos), + xMin: glyf.getInt16(pos + 2), + yMin: glyf.getInt16(pos + 4), + xMax: glyf.getInt16(pos + 6), + yMax: glyf.getInt16(pos + 8) + })]; + } + getSize() { + return 10; + } + write(pos, buf) { + buf.setInt16(pos, this.numberOfContours); + buf.setInt16(pos + 2, this.xMin); + buf.setInt16(pos + 4, this.yMin); + buf.setInt16(pos + 6, this.xMax); + buf.setInt16(pos + 8, this.yMax); + return 10; + } + scale(x, factor) { + this.xMin = Math.round(x + (this.xMin - x) * factor); + this.xMax = Math.round(x + (this.xMax - x) * factor); + } +} +class Contour { + constructor({ + flags, + xCoordinates, + yCoordinates + }) { + this.xCoordinates = xCoordinates; + this.yCoordinates = yCoordinates; + this.flags = flags; + } +} +class SimpleGlyph { + constructor({ + contours, + instructions + }) { + this.contours = contours; + this.instructions = instructions; + } + static parse(pos, glyf, numberOfContours) { + const endPtsOfContours = []; + for (let i = 0; i < numberOfContours; i++) { + const endPt = glyf.getUint16(pos); + pos += 2; + endPtsOfContours.push(endPt); + } + const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1; + const instructionLength = glyf.getUint16(pos); + pos += 2; + const instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength); + pos += instructionLength; + const flags = []; + for (let i = 0; i < numberOfPt; pos++, i++) { + let flag = glyf.getUint8(pos); + flags.push(flag); + if (flag & REPEAT_FLAG) { + const count = glyf.getUint8(++pos); + flag ^= REPEAT_FLAG; + for (let m = 0; m < count; m++) { + flags.push(flag); + } + i += count; + } + } + const allXCoordinates = []; + let xCoordinates = []; + let yCoordinates = []; + let pointFlags = []; + const contours = []; + let endPtsOfContoursIndex = 0; + let lastCoordinate = 0; + for (let i = 0; i < numberOfPt; i++) { + const flag = flags[i]; + if (flag & X_SHORT_VECTOR) { + const x = glyf.getUint8(pos++); + lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x; + xCoordinates.push(lastCoordinate); + } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) { + xCoordinates.push(lastCoordinate); + } else { + lastCoordinate += glyf.getInt16(pos); + pos += 2; + xCoordinates.push(lastCoordinate); + } + if (endPtsOfContours[endPtsOfContoursIndex] === i) { + endPtsOfContoursIndex++; + allXCoordinates.push(xCoordinates); + xCoordinates = []; + } + } + lastCoordinate = 0; + endPtsOfContoursIndex = 0; + for (let i = 0; i < numberOfPt; i++) { + const flag = flags[i]; + if (flag & Y_SHORT_VECTOR) { + const y = glyf.getUint8(pos++); + lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y; + yCoordinates.push(lastCoordinate); + } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) { + yCoordinates.push(lastCoordinate); + } else { + lastCoordinate += glyf.getInt16(pos); + pos += 2; + yCoordinates.push(lastCoordinate); + } + pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE); + if (endPtsOfContours[endPtsOfContoursIndex] === i) { + xCoordinates = allXCoordinates[endPtsOfContoursIndex]; + endPtsOfContoursIndex++; + contours.push(new Contour({ + flags: pointFlags, + xCoordinates, + yCoordinates + })); + yCoordinates = []; + pointFlags = []; + } + } + return new SimpleGlyph({ + contours, + instructions + }); + } + getSize() { + let size = this.contours.length * 2 + 2 + this.instructions.length; + let lastX = 0; + let lastY = 0; + for (const contour of this.contours) { + size += contour.flags.length; + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + const x = contour.xCoordinates[i]; + const y = contour.yCoordinates[i]; + let abs = Math.abs(x - lastX); + if (abs > 255) { + size += 2; + } else if (abs > 0) { + size += 1; + } + lastX = x; + abs = Math.abs(y - lastY); + if (abs > 255) { + size += 2; + } else if (abs > 0) { + size += 1; + } + lastY = y; + } + } + return size; + } + write(pos, buf) { + const spos = pos; + const xCoordinates = []; + const yCoordinates = []; + const flags = []; + let lastX = 0; + let lastY = 0; + for (const contour of this.contours) { + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + let flag = contour.flags[i]; + const x = contour.xCoordinates[i]; + let delta = x - lastX; + if (delta === 0) { + flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR; + xCoordinates.push(0); + } else { + const abs = Math.abs(delta); + if (abs <= 255) { + flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR; + xCoordinates.push(abs); + } else { + xCoordinates.push(delta); + } + } + lastX = x; + const y = contour.yCoordinates[i]; + delta = y - lastY; + if (delta === 0) { + flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR; + yCoordinates.push(0); + } else { + const abs = Math.abs(delta); + if (abs <= 255) { + flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR; + yCoordinates.push(abs); + } else { + yCoordinates.push(delta); + } + } + lastY = y; + flags.push(flag); + } + buf.setUint16(pos, xCoordinates.length - 1); + pos += 2; + } + buf.setUint16(pos, this.instructions.length); + pos += 2; + if (this.instructions.length) { + new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos); + pos += this.instructions.length; + } + for (const flag of flags) { + buf.setUint8(pos++, flag); + } + for (let i = 0, ii = xCoordinates.length; i < ii; i++) { + const x = xCoordinates[i]; + const flag = flags[i]; + if (flag & X_SHORT_VECTOR) { + buf.setUint8(pos++, x); + } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) { + buf.setInt16(pos, x); + pos += 2; + } + } + for (let i = 0, ii = yCoordinates.length; i < ii; i++) { + const y = yCoordinates[i]; + const flag = flags[i]; + if (flag & Y_SHORT_VECTOR) { + buf.setUint8(pos++, y); + } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) { + buf.setInt16(pos, y); + pos += 2; + } + } + return pos - spos; + } + scale(x, factor) { + for (const contour of this.contours) { + if (contour.xCoordinates.length === 0) { + continue; + } + for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) { + contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor); + } + } + } +} +class CompositeGlyph { + constructor({ + flags, + glyphIndex, + argument1, + argument2, + transf, + instructions + }) { + this.flags = flags; + this.glyphIndex = glyphIndex; + this.argument1 = argument1; + this.argument2 = argument2; + this.transf = transf; + this.instructions = instructions; + } + static parse(pos, glyf) { + const spos = pos; + const transf = []; + let flags = glyf.getUint16(pos); + const glyphIndex = glyf.getUint16(pos + 2); + pos += 4; + let argument1, argument2; + if (flags & ARG_1_AND_2_ARE_WORDS) { + if (flags & ARGS_ARE_XY_VALUES) { + argument1 = glyf.getInt16(pos); + argument2 = glyf.getInt16(pos + 2); + } else { + argument1 = glyf.getUint16(pos); + argument2 = glyf.getUint16(pos + 2); + } + pos += 4; + flags ^= ARG_1_AND_2_ARE_WORDS; + } else { + if (flags & ARGS_ARE_XY_VALUES) { + argument1 = glyf.getInt8(pos); + argument2 = glyf.getInt8(pos + 1); + } else { + argument1 = glyf.getUint8(pos); + argument2 = glyf.getUint8(pos + 1); + } + pos += 2; + } + if (flags & WE_HAVE_A_SCALE) { + transf.push(glyf.getUint16(pos)); + pos += 2; + } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) { + transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2)); + pos += 4; + } else if (flags & WE_HAVE_A_TWO_BY_TWO) { + transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6)); + pos += 8; + } + let instructions = null; + if (flags & WE_HAVE_INSTRUCTIONS) { + const instructionLength = glyf.getUint16(pos); + pos += 2; + instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength); + pos += instructionLength; + } + return [pos - spos, new CompositeGlyph({ + flags, + glyphIndex, + argument1, + argument2, + transf, + instructions + })]; + } + getSize() { + let size = 2 + 2 + this.transf.length * 2; + if (this.flags & WE_HAVE_INSTRUCTIONS) { + size += 2 + this.instructions.length; + } + size += 2; + if (this.flags & 2) { + if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) { + size += 2; + } + } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) { + size += 2; + } + return size; + } + write(pos, buf) { + const spos = pos; + if (this.flags & ARGS_ARE_XY_VALUES) { + if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) { + this.flags |= ARG_1_AND_2_ARE_WORDS; + } + } else if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) { + this.flags |= ARG_1_AND_2_ARE_WORDS; + } + buf.setUint16(pos, this.flags); + buf.setUint16(pos + 2, this.glyphIndex); + pos += 4; + if (this.flags & ARG_1_AND_2_ARE_WORDS) { + if (this.flags & ARGS_ARE_XY_VALUES) { + buf.setInt16(pos, this.argument1); + buf.setInt16(pos + 2, this.argument2); + } else { + buf.setUint16(pos, this.argument1); + buf.setUint16(pos + 2, this.argument2); + } + pos += 4; + } else { + buf.setUint8(pos, this.argument1); + buf.setUint8(pos + 1, this.argument2); + pos += 2; + } + if (this.flags & WE_HAVE_INSTRUCTIONS) { + buf.setUint16(pos, this.instructions.length); + pos += 2; + if (this.instructions.length) { + new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos); + pos += this.instructions.length; + } + } + return pos - spos; + } + scale(x, factor) {} +} + +;// ./src/core/opentype_file_builder.js + + +function writeInt16(dest, offset, num) { + dest[offset] = num >> 8 & 0xff; + dest[offset + 1] = num & 0xff; +} +function writeInt32(dest, offset, num) { + dest[offset] = num >> 24 & 0xff; + dest[offset + 1] = num >> 16 & 0xff; + dest[offset + 2] = num >> 8 & 0xff; + dest[offset + 3] = num & 0xff; +} +function writeData(dest, offset, data) { + if (data instanceof Uint8Array) { + dest.set(data, offset); + } else if (typeof data === "string") { + for (let i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data.charCodeAt(i) & 0xff; + } + } else { + for (const num of data) { + dest[offset++] = num & 0xff; + } + } +} +const OTF_HEADER_SIZE = 12; +const OTF_TABLE_ENTRY_SIZE = 16; +class OpenTypeFileBuilder { + constructor(sfnt) { + this.sfnt = sfnt; + this.tables = Object.create(null); + } + static getSearchParams(entriesCount, entrySize) { + let maxPower2 = 1, + log2 = 0; + while ((maxPower2 ^ entriesCount) > maxPower2) { + maxPower2 <<= 1; + log2++; + } + const searchRange = maxPower2 * entrySize; + return { + range: searchRange, + entry: log2, + rangeShift: entrySize * entriesCount - searchRange + }; + } + toArray() { + let sfnt = this.sfnt; + const tables = this.tables; + const tablesNames = Object.keys(tables); + tablesNames.sort(); + const numTables = tablesNames.length; + let i, j, jj, table, tableName; + let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE; + const tableOffsets = [offset]; + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + const paddedLength = (table.length + 3 & ~3) >>> 0; + offset += paddedLength; + tableOffsets.push(offset); + } + const file = new Uint8Array(offset); + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + writeData(file, tableOffsets[i], table); + } + if (sfnt === "true") { + sfnt = string32(0x00010000); + } + file[0] = sfnt.charCodeAt(0) & 0xff; + file[1] = sfnt.charCodeAt(1) & 0xff; + file[2] = sfnt.charCodeAt(2) & 0xff; + file[3] = sfnt.charCodeAt(3) & 0xff; + writeInt16(file, 4, numTables); + const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16); + writeInt16(file, 6, searchParams.range); + writeInt16(file, 8, searchParams.entry); + writeInt16(file, 10, searchParams.rangeShift); + offset = OTF_HEADER_SIZE; + for (i = 0; i < numTables; i++) { + tableName = tablesNames[i]; + file[offset] = tableName.charCodeAt(0) & 0xff; + file[offset + 1] = tableName.charCodeAt(1) & 0xff; + file[offset + 2] = tableName.charCodeAt(2) & 0xff; + file[offset + 3] = tableName.charCodeAt(3) & 0xff; + let checksum = 0; + for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) { + const quad = readUint32(file, j); + checksum = checksum + quad >>> 0; + } + writeInt32(file, offset + 4, checksum); + writeInt32(file, offset + 8, tableOffsets[i]); + writeInt32(file, offset + 12, tables[tableName].length); + offset += OTF_TABLE_ENTRY_SIZE; + } + return file; + } + addTable(tag, data) { + if (tag in this.tables) { + throw new Error("Table " + tag + " already exists"); + } + this.tables[tag] = data; + } +} + +;// ./src/core/type1_parser.js + + + + +const HINTING_ENABLED = false; +const COMMAND_MAP = { + hstem: [1], + vstem: [3], + vmoveto: [4], + rlineto: [5], + hlineto: [6], + vlineto: [7], + rrcurveto: [8], + callsubr: [10], + flex: [12, 35], + drop: [12, 18], + endchar: [14], + rmoveto: [21], + hmoveto: [22], + vhcurveto: [30], + hvcurveto: [31] +}; +class Type1CharString { + constructor() { + this.width = 0; + this.lsb = 0; + this.flexing = false; + this.output = []; + this.stack = []; + } + convert(encoded, subrs, seacAnalysisEnabled) { + const count = encoded.length; + let error = false; + let wx, sbx, subrNumber; + for (let i = 0; i < count; i++) { + let value = encoded[i]; + if (value < 32) { + if (value === 12) { + value = (value << 8) + encoded[++i]; + } + switch (value) { + case 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case 3: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + error = true; + break; + } + const dy = this.stack.pop(); + this.stack.push(0, dy); + break; + } + error = this.executeCommand(1, COMMAND_MAP.vmoveto); + break; + case 5: + error = this.executeCommand(2, COMMAND_MAP.rlineto); + break; + case 6: + error = this.executeCommand(1, COMMAND_MAP.hlineto); + break; + case 7: + error = this.executeCommand(1, COMMAND_MAP.vlineto); + break; + case 8: + error = this.executeCommand(6, COMMAND_MAP.rrcurveto); + break; + case 9: + this.stack = []; + break; + case 10: + if (this.stack.length < 1) { + error = true; + break; + } + subrNumber = this.stack.pop(); + if (!subrs[subrNumber]) { + error = true; + break; + } + error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled); + break; + case 11: + return error; + case 13: + if (this.stack.length < 2) { + error = true; + break; + } + wx = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx); + error = this.executeCommand(2, COMMAND_MAP.hmoveto); + break; + case 14: + this.output.push(COMMAND_MAP.endchar[0]); + break; + case 21: + if (this.flexing) { + break; + } + error = this.executeCommand(2, COMMAND_MAP.rmoveto); + break; + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + error = this.executeCommand(1, COMMAND_MAP.hmoveto); + break; + case 30: + error = this.executeCommand(4, COMMAND_MAP.vhcurveto); + break; + case 31: + error = this.executeCommand(4, COMMAND_MAP.hvcurveto); + break; + case (12 << 8) + 0: + this.stack = []; + break; + case (12 << 8) + 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + case (12 << 8) + 2: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + case (12 << 8) + 6: + if (seacAnalysisEnabled) { + const asb = this.stack.at(-5); + this.seac = this.stack.splice(-4, 4); + this.seac[0] += this.lsb - asb; + error = this.executeCommand(0, COMMAND_MAP.endchar); + } else { + error = this.executeCommand(4, COMMAND_MAP.endchar); + } + break; + case (12 << 8) + 7: + if (this.stack.length < 4) { + error = true; + break; + } + this.stack.pop(); + wx = this.stack.pop(); + const sby = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx, sby); + error = this.executeCommand(3, COMMAND_MAP.rmoveto); + break; + case (12 << 8) + 12: + if (this.stack.length < 2) { + error = true; + break; + } + const num2 = this.stack.pop(); + const num1 = this.stack.pop(); + this.stack.push(num1 / num2); + break; + case (12 << 8) + 16: + if (this.stack.length < 2) { + error = true; + break; + } + subrNumber = this.stack.pop(); + const numArgs = this.stack.pop(); + if (subrNumber === 0 && numArgs === 3) { + const flexArgs = this.stack.splice(-17, 17); + this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]); + error = this.executeCommand(13, COMMAND_MAP.flex, true); + this.flexing = false; + this.stack.push(flexArgs[15], flexArgs[16]); + } else if (subrNumber === 1 && numArgs === 0) { + this.flexing = true; + } + break; + case (12 << 8) + 17: + break; + case (12 << 8) + 33: + this.stack = []; + break; + default: + warn('Unknown type 1 charstring command of "' + value + '"'); + break; + } + if (error) { + break; + } + continue; + } else if (value <= 246) { + value -= 139; + } else if (value <= 250) { + value = (value - 247) * 256 + encoded[++i] + 108; + } else if (value <= 254) { + value = -((value - 251) * 256) - encoded[++i] - 108; + } else { + value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0; + } + this.stack.push(value); + } + return error; + } + executeCommand(howManyArgs, command, keepStack) { + const stackLength = this.stack.length; + if (howManyArgs > stackLength) { + return true; + } + const start = stackLength - howManyArgs; + for (let i = start; i < stackLength; i++) { + let value = this.stack[i]; + if (Number.isInteger(value)) { + this.output.push(28, value >> 8 & 0xff, value & 0xff); + } else { + value = 65536 * value | 0; + this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); + } + } + this.output.push(...command); + if (keepStack) { + this.stack.splice(start, howManyArgs); + } else { + this.stack.length = 0; + } + return false; + } +} +const EEXEC_ENCRYPT_KEY = 55665; +const CHAR_STRS_ENCRYPT_KEY = 4330; +function isHexDigit(code) { + return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102; +} +function decrypt(data, key, discardNumber) { + if (discardNumber >= data.length) { + return new Uint8Array(0); + } + const c1 = 52845, + c2 = 22719; + let r = key | 0, + i, + j; + for (i = 0; i < discardNumber; i++) { + r = (data[i] + r) * c1 + c2 & (1 << 16) - 1; + } + const count = data.length - discardNumber; + const decrypted = new Uint8Array(count); + for (i = discardNumber, j = 0; j < count; i++, j++) { + const value = data[i]; + decrypted[j] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + return decrypted; +} +function decryptAscii(data, key, discardNumber) { + const c1 = 52845, + c2 = 22719; + let r = key | 0; + const count = data.length, + maybeLength = count >>> 1; + const decrypted = new Uint8Array(maybeLength); + let i, j; + for (i = 0, j = 0; i < count; i++) { + const digit1 = data[i]; + if (!isHexDigit(digit1)) { + continue; + } + i++; + let digit2; + while (i < count && !isHexDigit(digit2 = data[i])) { + i++; + } + if (i < count) { + const value = parseInt(String.fromCharCode(digit1, digit2), 16); + decrypted[j++] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + } + return decrypted.slice(discardNumber, j); +} +function isSpecial(c) { + return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29; +} +class Type1Parser { + constructor(stream, encrypted, seacAnalysisEnabled) { + if (encrypted) { + const data = stream.getBytes(); + const isBinary = !((isHexDigit(data[0]) || isWhiteSpace(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7])); + stream = new Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); + } + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + this.stream = stream; + this.nextChar(); + } + readNumberArray() { + this.getToken(); + const array = []; + while (true) { + const token = this.getToken(); + if (token === null || token === "]" || token === "}") { + break; + } + array.push(parseFloat(token || 0)); + } + return array; + } + readNumber() { + const token = this.getToken(); + return parseFloat(token || 0); + } + readInt() { + const token = this.getToken(); + return parseInt(token || 0, 10) | 0; + } + readBoolean() { + const token = this.getToken(); + return token === "true" ? 1 : 0; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + prevChar() { + this.stream.skip(-2); + return this.currentChar = this.stream.getByte(); + } + getToken() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch === -1) { + return null; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isWhiteSpace(ch)) { + break; + } + ch = this.nextChar(); + } + if (isSpecial(ch)) { + this.nextChar(); + return String.fromCharCode(ch); + } + let token = ""; + do { + token += String.fromCharCode(ch); + ch = this.nextChar(); + } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch)); + return token; + } + readCharStrings(bytes, lenIV) { + if (lenIV === -1) { + return bytes; + } + return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV); + } + extractFontProgram(properties) { + const stream = this.stream; + const subrs = [], + charstrings = []; + const privateData = Object.create(null); + privateData.lenIV = 4; + const program = { + subrs: [], + charstrings: [], + properties: { + privateData + } + }; + let token, length, data, lenIV; + while ((token = this.getToken()) !== null) { + if (token !== "/") { + continue; + } + token = this.getToken(); + switch (token) { + case "CharStrings": + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + while (true) { + token = this.getToken(); + if (token === null || token === "end") { + break; + } + if (token !== "/") { + continue; + } + const glyph = this.getToken(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData.lenIV; + const encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + if (token === "noaccess") { + this.getToken(); + } else if (token === "/") { + this.prevChar(); + } + charstrings.push({ + glyph, + encoded + }); + } + break; + case "Subrs": + this.readInt(); + this.getToken(); + while (this.getToken() === "dup") { + const index = this.readInt(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData.lenIV; + const encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + if (token === "noaccess") { + this.getToken(); + } + subrs[index] = encoded; + } + break; + case "BlueValues": + case "OtherBlues": + case "FamilyBlues": + case "FamilyOtherBlues": + const blueArray = this.readNumberArray(); + if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) { + program.properties.privateData[token] = blueArray; + } + break; + case "StemSnapH": + case "StemSnapV": + program.properties.privateData[token] = this.readNumberArray(); + break; + case "StdHW": + case "StdVW": + program.properties.privateData[token] = this.readNumberArray()[0]; + break; + case "BlueShift": + case "lenIV": + case "BlueFuzz": + case "BlueScale": + case "LanguageGroup": + program.properties.privateData[token] = this.readNumber(); + break; + case "ExpansionFactor": + program.properties.privateData[token] = this.readNumber() || 0.06; + break; + case "ForceBold": + program.properties.privateData[token] = this.readBoolean(); + break; + } + } + for (const { + encoded, + glyph + } of charstrings) { + const charString = new Type1CharString(); + const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled); + let output = charString.output; + if (error) { + output = [14]; + } + const charStringObject = { + glyphName: glyph, + charstring: output, + width: charString.width, + lsb: charString.lsb, + seac: charString.seac + }; + if (glyph === ".notdef") { + program.charstrings.unshift(charStringObject); + } else { + program.charstrings.push(charStringObject); + } + if (properties.builtInEncoding) { + const index = properties.builtInEncoding.indexOf(glyph); + if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) { + properties.widths[index] = charString.width; + } + } + } + return program; + } + extractFontHeader(properties) { + let token; + while ((token = this.getToken()) !== null) { + if (token !== "/") { + continue; + } + token = this.getToken(); + switch (token) { + case "FontMatrix": + const matrix = this.readNumberArray(); + properties.fontMatrix = matrix; + break; + case "Encoding": + const encodingArg = this.getToken(); + let encoding; + if (!/^\d+$/.test(encodingArg)) { + encoding = getEncoding(encodingArg); + } else { + encoding = []; + const size = parseInt(encodingArg, 10) | 0; + this.getToken(); + for (let j = 0; j < size; j++) { + token = this.getToken(); + while (token !== "dup" && token !== "def") { + token = this.getToken(); + if (token === null) { + return; + } + } + if (token === "def") { + break; + } + const index = this.readInt(); + this.getToken(); + const glyph = this.getToken(); + encoding[index] = glyph; + this.getToken(); + } + } + properties.builtInEncoding = encoding; + break; + case "FontBBox": + const fontBBox = this.readNumberArray(); + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + break; + } + } + } +} + +;// ./src/core/type1_font.js + + + + + + +function findBlock(streamBytes, signature, startIndex) { + const streamBytesLength = streamBytes.length; + const signatureLength = signature.length; + const scanLength = streamBytesLength - signatureLength; + let i = startIndex, + found = false; + while (i < scanLength) { + let j = 0; + while (j < signatureLength && streamBytes[i + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { + i += j; + while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) { + i++; + } + found = true; + break; + } + i++; + } + return { + found, + length: i + }; +} +function getHeaderBlock(stream, suggestedLength) { + const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63]; + const streamStartPos = stream.pos; + let headerBytes, headerBytesLength, block; + try { + headerBytes = stream.getBytes(suggestedLength); + headerBytesLength = headerBytes.length; + } catch {} + if (headerBytesLength === suggestedLength) { + block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length); + if (block.found && block.length === suggestedLength) { + return { + stream: new Stream(headerBytes), + length: suggestedLength + }; + } + } + warn('Invalid "Length1" property in Type1 font -- trying to recover.'); + stream.pos = streamStartPos; + const SCAN_BLOCK_LENGTH = 2048; + let actualLength; + while (true) { + const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + block = findBlock(scanBytes, EEXEC_SIGNATURE, 0); + if (block.length === 0) { + break; + } + stream.pos += block.length; + if (block.found) { + actualLength = stream.pos - streamStartPos; + break; + } + } + stream.pos = streamStartPos; + if (actualLength) { + return { + stream: new Stream(stream.getBytes(actualLength)), + length: actualLength + }; + } + warn('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { + stream: new Stream(stream.getBytes(suggestedLength)), + length: suggestedLength + }; +} +function getEexecBlock(stream, suggestedLength) { + const eexecBytes = stream.getBytes(); + if (eexecBytes.length === 0) { + throw new FormatError("getEexecBlock - no font program found."); + } + return { + stream: new Stream(eexecBytes), + length: eexecBytes.length + }; +} +class Type1Font { + constructor(name, file, properties) { + const PFB_HEADER_SIZE = 6; + let headerBlockLength = properties.length1; + let eexecBlockLength = properties.length2; + let pfbHeader = file.peekBytes(PFB_HEADER_SIZE); + const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; + if (pfbHeaderPresent) { + file.skip(PFB_HEADER_SIZE); + headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + const headerBlock = getHeaderBlock(file, headerBlockLength); + const headerBlockParser = new Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED); + headerBlockParser.extractFontHeader(properties); + if (pfbHeaderPresent) { + pfbHeader = file.getBytes(PFB_HEADER_SIZE); + eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + const eexecBlock = getEexecBlock(file, eexecBlockLength); + const eexecBlockParser = new Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED); + const data = eexecBlockParser.extractFontProgram(properties); + for (const key in data.properties) { + properties[key] = data.properties[key]; + } + const charstrings = data.charstrings; + const type2Charstrings = this.getType2Charstrings(charstrings); + const subrs = this.getType2Subrs(data.subrs); + this.charstrings = charstrings; + this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties); + this.seacs = this.getSeacs(data.charstrings); + } + get numGlyphs() { + return this.charstrings.length + 1; + } + getCharset() { + const charset = [".notdef"]; + for (const { + glyphName + } of this.charstrings) { + charset.push(glyphName); + } + return charset; + } + getGlyphMapping(properties) { + const charstrings = this.charstrings; + if (properties.composite) { + const charCodeToGlyphId = Object.create(null); + for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) { + const charCode = properties.cMap.charCodeOf(glyphId); + charCodeToGlyphId[charCode] = glyphId + 1; + } + return charCodeToGlyphId; + } + const glyphNames = [".notdef"]; + let builtInEncoding, glyphId; + for (glyphId = 0; glyphId < charstrings.length; glyphId++) { + glyphNames.push(charstrings[glyphId].glyphName); + } + const encoding = properties.builtInEncoding; + if (encoding) { + builtInEncoding = Object.create(null); + for (const charCode in encoding) { + glyphId = glyphNames.indexOf(encoding[charCode]); + if (glyphId >= 0) { + builtInEncoding[charCode] = glyphId; + } + } + } + return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); + } + hasGlyphId(id) { + if (id < 0 || id >= this.numGlyphs) { + return false; + } + if (id === 0) { + return true; + } + const glyph = this.charstrings[id - 1]; + return glyph.charstring.length > 0; + } + getSeacs(charstrings) { + const seacMap = []; + for (let i = 0, ii = charstrings.length; i < ii; i++) { + const charstring = charstrings[i]; + if (charstring.seac) { + seacMap[i + 1] = charstring.seac; + } + } + return seacMap; + } + getType2Charstrings(type1Charstrings) { + const type2Charstrings = []; + for (const type1Charstring of type1Charstrings) { + type2Charstrings.push(type1Charstring.charstring); + } + return type2Charstrings; + } + getType2Subrs(type1Subrs) { + let bias = 0; + const count = type1Subrs.length; + if (count < 1133) { + bias = 107; + } else if (count < 33769) { + bias = 1131; + } else { + bias = 32768; + } + const type2Subrs = []; + let i; + for (i = 0; i < bias; i++) { + type2Subrs.push([0x0b]); + } + for (i = 0; i < count; i++) { + type2Subrs.push(type1Subrs[i]); + } + return type2Subrs; + } + wrap(name, glyphs, charstrings, subrs, properties) { + const cff = new CFF(); + cff.header = new CFFHeader(1, 0, 4, 4); + cff.names = [name]; + const topDict = new CFFTopDict(); + topDict.setByName("version", 391); + topDict.setByName("Notice", 392); + topDict.setByName("FullName", 393); + topDict.setByName("FamilyName", 394); + topDict.setByName("Weight", 395); + topDict.setByName("Encoding", null); + topDict.setByName("FontMatrix", properties.fontMatrix); + topDict.setByName("FontBBox", properties.bbox); + topDict.setByName("charset", null); + topDict.setByName("CharStrings", null); + topDict.setByName("Private", null); + cff.topDict = topDict; + const strings = new CFFStrings(); + strings.add("Version 0.11"); + strings.add("See original notice"); + strings.add(name); + strings.add(name); + strings.add("Medium"); + cff.strings = strings; + cff.globalSubrIndex = new CFFIndex(); + const count = glyphs.length; + const charsetArray = [".notdef"]; + let i, ii; + for (i = 0; i < count; i++) { + const glyphName = charstrings[i].glyphName; + const index = CFFStandardStrings.indexOf(glyphName); + if (index === -1) { + strings.add(glyphName); + } + charsetArray.push(glyphName); + } + cff.charset = new CFFCharset(false, 0, charsetArray); + const charStringsIndex = new CFFIndex(); + charStringsIndex.add([0x8b, 0x0e]); + for (i = 0; i < count; i++) { + charStringsIndex.add(glyphs[i]); + } + cff.charStrings = charStringsIndex; + const privateDict = new CFFPrivateDict(); + privateDict.setByName("Subrs", null); + const fields = ["BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StemSnapH", "StemSnapV", "BlueShift", "BlueFuzz", "BlueScale", "LanguageGroup", "ExpansionFactor", "ForceBold", "StdHW", "StdVW"]; + for (i = 0, ii = fields.length; i < ii; i++) { + const field = fields[i]; + if (!(field in properties.privateData)) { + continue; + } + const value = properties.privateData[field]; + if (Array.isArray(value)) { + for (let j = value.length - 1; j > 0; j--) { + value[j] -= value[j - 1]; + } + } + privateDict.setByName(field, value); + } + cff.topDict.privateDict = privateDict; + const subrIndex = new CFFIndex(); + for (i = 0, ii = subrs.length; i < ii; i++) { + subrIndex.add(subrs[i]); + } + privateDict.subrsIndex = subrIndex; + const compiler = new CFFCompiler(cff); + return compiler.compile(); + } +} + +;// ./src/core/fonts.js + + + + + + + + + + + + + + + + + +const PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]]; +const PDF_GLYPH_SPACE_UNITS = 1000; +const EXPORT_DATA_PROPERTIES = ["ascent", "bbox", "black", "bold", "charProcOperatorList", "composite", "cssFontInfo", "data", "defaultVMetrics", "defaultWidth", "descent", "fallbackName", "fontMatrix", "isInvalidPDFjsFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", "remeasure", "subtype", "systemFontInfo", "type", "vertical"]; +const EXPORT_DATA_EXTRA_PROPERTIES = ["cMap", "defaultEncoding", "differences", "isMonospace", "isSerifFont", "isSymbolicFont", "seacMap", "toFontChar", "toUnicode", "vmetrics", "widths"]; +function adjustWidths(properties) { + if (!properties.fontMatrix) { + return; + } + if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) { + return; + } + const scale = 0.001 / properties.fontMatrix[0]; + const glyphsWidths = properties.widths; + for (const glyph in glyphsWidths) { + glyphsWidths[glyph] *= scale; + } + properties.defaultWidth *= scale; +} +function adjustTrueTypeToUnicode(properties, isSymbolicFont, nameRecords) { + if (properties.isInternalFont) { + return; + } + if (properties.hasIncludedToUnicodeMap) { + return; + } + if (properties.hasEncoding) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + if (!isSymbolicFont) { + return; + } + if (nameRecords.length === 0) { + return; + } + if (properties.defaultEncoding === WinAnsiEncoding) { + return; + } + for (const r of nameRecords) { + if (!isWinNameRecord(r)) { + return; + } + } + const encoding = WinAnsiEncoding; + const toUnicode = [], + glyphsUnicodeMap = getGlyphsUnicode(); + for (const charCode in encoding) { + const glyphName = encoding[charCode]; + if (glyphName === "") { + continue; + } + const unicode = glyphsUnicodeMap[glyphName]; + if (unicode === undefined) { + continue; + } + toUnicode[charCode] = String.fromCharCode(unicode); + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +function adjustType1ToUnicode(properties, builtInEncoding) { + if (properties.isInternalFont) { + return; + } + if (properties.hasIncludedToUnicodeMap) { + return; + } + if (builtInEncoding === properties.defaultEncoding) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + const toUnicode = [], + glyphsUnicodeMap = getGlyphsUnicode(); + for (const charCode in builtInEncoding) { + if (properties.hasEncoding) { + if (properties.baseEncodingName || properties.differences[charCode] !== undefined) { + continue; + } + } + const glyphName = builtInEncoding[charCode]; + const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + toUnicode[charCode] = String.fromCharCode(unicode); + } + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +function amendFallbackToUnicode(properties) { + if (!properties.fallbackToUnicode) { + return; + } + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + const toUnicode = []; + for (const charCode in properties.fallbackToUnicode) { + if (properties.toUnicode.has(charCode)) { + continue; + } + toUnicode[charCode] = properties.fallbackToUnicode[charCode]; + } + if (toUnicode.length > 0) { + properties.toUnicode.amend(toUnicode); + } +} +class fonts_Glyph { + constructor(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + this.originalCharCode = originalCharCode; + this.fontChar = fontChar; + this.unicode = unicode; + this.accent = accent; + this.width = width; + this.vmetric = vmetric; + this.operatorListId = operatorListId; + this.isSpace = isSpace; + this.isInFont = isInFont; + } + get category() { + return shadow(this, "category", getCharUnicodeCategory(this.unicode), true); + } +} +function int16(b0, b1) { + return (b0 << 8) + b1; +} +function writeSignedInt16(bytes, index, value) { + bytes[index + 1] = value; + bytes[index] = value >>> 8; +} +function signedInt16(b0, b1) { + const value = (b0 << 8) + b1; + return value & 1 << 15 ? value - 0x10000 : value; +} +function writeUint32(bytes, index, value) { + bytes[index + 3] = value & 0xff; + bytes[index + 2] = value >>> 8; + bytes[index + 1] = value >>> 16; + bytes[index] = value >>> 24; +} +function int32(b0, b1, b2, b3) { + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; +} +function string16(value) { + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); +} +function safeString16(value) { + if (value > 0x7fff) { + value = 0x7fff; + } else if (value < -0x8000) { + value = -0x8000; + } + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); +} +function isTrueTypeFile(file) { + const header = file.peekBytes(4); + return readUint32(header, 0) === 0x00010000 || bytesToString(header) === "true"; +} +function isTrueTypeCollectionFile(file) { + const header = file.peekBytes(4); + return bytesToString(header) === "ttcf"; +} +function isOpenTypeFile(file) { + const header = file.peekBytes(4); + return bytesToString(header) === "OTTO"; +} +function isType1File(file) { + const header = file.peekBytes(2); + if (header[0] === 0x25 && header[1] === 0x21) { + return true; + } + if (header[0] === 0x80 && header[1] === 0x01) { + return true; + } + return false; +} +function isCFFFile(file) { + const header = file.peekBytes(4); + if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) { + return true; + } + return false; +} +function getFontFileType(file, { + type, + subtype, + composite +}) { + let fileType, fileSubtype; + if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) { + fileType = composite ? "CIDFontType2" : "TrueType"; + } else if (isOpenTypeFile(file)) { + fileType = composite ? "CIDFontType2" : "OpenType"; + } else if (isType1File(file)) { + if (composite) { + fileType = "CIDFontType0"; + } else { + fileType = type === "MMType1" ? "MMType1" : "Type1"; + } + } else if (isCFFFile(file)) { + if (composite) { + fileType = "CIDFontType0"; + fileSubtype = "CIDFontType0C"; + } else { + fileType = type === "MMType1" ? "MMType1" : "Type1"; + fileSubtype = "Type1C"; + } + } else { + warn("getFontFileType: Unable to detect correct font file Type/Subtype."); + fileType = type; + fileSubtype = subtype; + } + return [fileType, fileSubtype]; +} +function applyStandardFontGlyphMap(map, glyphMap) { + for (const charCode in glyphMap) { + map[+charCode] = glyphMap[charCode]; + } +} +function buildToFontChar(encoding, glyphsUnicodeMap, differences) { + const toFontChar = []; + let unicode; + for (let i = 0, ii = encoding.length; i < ii; i++) { + unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[i] = unicode; + } + } + for (const charCode in differences) { + unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap); + if (unicode !== -1) { + toFontChar[+charCode] = unicode; + } + } + return toFontChar; +} +function isMacNameRecord(r) { + return r.platform === 1 && r.encoding === 0 && r.language === 0; +} +function isWinNameRecord(r) { + return r.platform === 3 && r.encoding === 1 && r.language === 0x409; +} +function convertCidString(charCode, cid, shouldThrow = false) { + switch (cid.length) { + case 1: + return cid.charCodeAt(0); + case 2: + return cid.charCodeAt(0) << 8 | cid.charCodeAt(1); + } + const msg = `Unsupported CID string (charCode ${charCode}): "${cid}".`; + if (shouldThrow) { + throw new FormatError(msg); + } + warn(msg); + return cid; +} +function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) { + const newMap = Object.create(null); + const toUnicodeExtraMap = new Map(); + const toFontChar = []; + const usedGlyphIds = new Set(); + let privateUseAreaIndex = 0; + const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + let nextAvailableFontCharCode = privateUseOffetStart; + let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + const isInPrivateArea = code => PRIVATE_USE_AREAS[0][0] <= code && code <= PRIVATE_USE_AREAS[0][1] || PRIVATE_USE_AREAS[1][0] <= code && code <= PRIVATE_USE_AREAS[1][1]; + for (const originalCharCode in charCodeToGlyphId) { + let glyphId = charCodeToGlyphId[originalCharCode]; + if (!hasGlyph(glyphId)) { + continue; + } + if (nextAvailableFontCharCode > privateUseOffetEnd) { + privateUseAreaIndex++; + if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) { + warn("Ran out of space in font private use area."); + break; + } + nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + } + const fontCharCode = nextAvailableFontCharCode++; + if (glyphId === 0) { + glyphId = newGlyphZeroId; + } + let unicode = toUnicode.get(originalCharCode); + if (typeof unicode === "string") { + unicode = unicode.codePointAt(0); + } + if (unicode && !isInPrivateArea(unicode) && !usedGlyphIds.has(glyphId)) { + toUnicodeExtraMap.set(unicode, glyphId); + usedGlyphIds.add(glyphId); + } + newMap[fontCharCode] = glyphId; + toFontChar[originalCharCode] = fontCharCode; + } + return { + toFontChar, + charCodeToGlyphId: newMap, + toUnicodeExtraMap, + nextAvailableFontCharCode + }; +} +function getRanges(glyphs, toUnicodeExtraMap, numGlyphs) { + const codes = []; + for (const charCode in glyphs) { + if (glyphs[charCode] >= numGlyphs) { + continue; + } + codes.push({ + fontCharCode: charCode | 0, + glyphId: glyphs[charCode] + }); + } + if (toUnicodeExtraMap) { + for (const [unicode, glyphId] of toUnicodeExtraMap) { + if (glyphId >= numGlyphs) { + continue; + } + codes.push({ + fontCharCode: unicode, + glyphId + }); + } + } + if (codes.length === 0) { + codes.push({ + fontCharCode: 0, + glyphId: 0 + }); + } + codes.sort(function fontGetRangesSort(a, b) { + return a.fontCharCode - b.fontCharCode; + }); + const ranges = []; + const length = codes.length; + for (let n = 0; n < length;) { + const start = codes[n].fontCharCode; + const codeIndices = [codes[n].glyphId]; + ++n; + let end = start; + while (n < length && end + 1 === codes[n].fontCharCode) { + codeIndices.push(codes[n].glyphId); + ++end; + ++n; + if (end === 0xffff) { + break; + } + } + ranges.push([start, end, codeIndices]); + } + return ranges; +} +function createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) { + const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs); + const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1; + let cmap = "\x00\x00" + string16(numTables) + "\x00\x03" + "\x00\x01" + string32(4 + numTables * 8); + let i, ii, j, jj; + for (i = ranges.length - 1; i >= 0; --i) { + if (ranges[i][0] <= 0xffff) { + break; + } + } + const bmpLength = i + 1; + if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) { + ranges[i][1] = 0xfffe; + } + const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0; + const segCount = bmpLength + trailingRangesCount; + const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2); + let startCount = ""; + let endCount = ""; + let idDeltas = ""; + let idRangeOffsets = ""; + let glyphsIds = ""; + let bias = 0; + let range, start, end, codes; + for (i = 0, ii = bmpLength; i < ii; i++) { + range = ranges[i]; + start = range[0]; + end = range[1]; + startCount += string16(start); + endCount += string16(end); + codes = range[2]; + let contiguous = true; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + contiguous = false; + break; + } + } + if (!contiguous) { + const offset = (segCount - i) * 2 + bias * 2; + bias += end - start + 1; + idDeltas += string16(0); + idRangeOffsets += string16(offset); + for (j = 0, jj = codes.length; j < jj; ++j) { + glyphsIds += string16(codes[j]); + } + } else { + const startCode = codes[0]; + idDeltas += string16(startCode - start & 0xffff); + idRangeOffsets += string16(0); + } + } + if (trailingRangesCount > 0) { + endCount += "\xFF\xFF"; + startCount += "\xFF\xFF"; + idDeltas += "\x00\x01"; + idRangeOffsets += "\x00\x00"; + } + const format314 = "\x00\x00" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + "\x00\x00" + startCount + idDeltas + idRangeOffsets + glyphsIds; + let format31012 = ""; + let header31012 = ""; + if (numTables > 1) { + cmap += "\x00\x03" + "\x00\x0A" + string32(4 + numTables * 8 + 4 + format314.length); + format31012 = ""; + for (i = 0, ii = ranges.length; i < ii; i++) { + range = ranges[i]; + start = range[0]; + codes = range[2]; + let code = codes[0]; + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + end = range[0] + j - 1; + format31012 += string32(start) + string32(end) + string32(code); + start = end + 1; + code = codes[j]; + } + } + format31012 += string32(start) + string32(range[1]) + string32(code); + } + header31012 = "\x00\x0C" + "\x00\x00" + string32(format31012.length + 16) + "\x00\x00\x00\x00" + string32(format31012.length / 12); + } + return cmap + "\x00\x04" + string16(format314.length + 4) + format314 + header31012 + format31012; +} +function validateOS2Table(os2, file) { + file.pos = (file.start || 0) + os2.offset; + const version = file.getUint16(); + file.skip(60); + const selection = file.getUint16(); + if (version < 4 && selection & 0x0300) { + return false; + } + const firstChar = file.getUint16(); + const lastChar = file.getUint16(); + if (firstChar > lastChar) { + return false; + } + file.skip(6); + const usWinAscent = file.getUint16(); + if (usWinAscent === 0) { + return false; + } + os2.data[8] = os2.data[9] = 0; + return true; +} +function createOS2Table(properties, charstrings, override) { + override ||= { + unitsPerEm: 0, + yMax: 0, + yMin: 0, + ascent: 0, + descent: 0 + }; + let ulUnicodeRange1 = 0; + let ulUnicodeRange2 = 0; + let ulUnicodeRange3 = 0; + let ulUnicodeRange4 = 0; + let firstCharIndex = null; + let lastCharIndex = 0; + let position = -1; + if (charstrings) { + for (let code in charstrings) { + code |= 0; + if (firstCharIndex > code || !firstCharIndex) { + firstCharIndex = code; + } + if (lastCharIndex < code) { + lastCharIndex = code; + } + position = getUnicodeRangeFor(code, position); + if (position < 32) { + ulUnicodeRange1 |= 1 << position; + } else if (position < 64) { + ulUnicodeRange2 |= 1 << position - 32; + } else if (position < 96) { + ulUnicodeRange3 |= 1 << position - 64; + } else if (position < 123) { + ulUnicodeRange4 |= 1 << position - 96; + } else { + throw new FormatError("Unicode ranges Bits > 123 are reserved for internal usage"); + } + } + if (lastCharIndex > 0xffff) { + lastCharIndex = 0xffff; + } + } else { + firstCharIndex = 0; + lastCharIndex = 255; + } + const bbox = properties.bbox || [0, 0, 0, 0]; + const unitsPerEm = override.unitsPerEm || (properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000); + const scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS; + const typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3])); + let typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1])); + if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) { + typoDescent = -typoDescent; + } + const winAscent = override.yMax || typoAscent; + const winDescent = -override.yMin || -typoDescent; + return "\x00\x03" + "\x02\x24" + "\x01\xF4" + "\x00\x05" + "\x00\x00" + "\x02\x8A" + "\x02\xBB" + "\x00\x00" + "\x00\x8C" + "\x02\x8A" + "\x02\xBB" + "\x00\x00" + "\x01\xDF" + "\x00\x31" + "\x01\x02" + "\x00\x00" + "\x00\x00\x06" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + "\x00\x00\x00\x00\x00\x00" + string32(ulUnicodeRange1) + string32(ulUnicodeRange2) + string32(ulUnicodeRange3) + string32(ulUnicodeRange4) + "\x2A\x32\x31\x2A" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + "\x00\x64" + string16(winAscent) + string16(winDescent) + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + "\x00\x03"; +} +function createPostTable(properties) { + const angle = Math.floor(properties.italicAngle * 2 ** 16); + return "\x00\x03\x00\x00" + string32(angle) + "\x00\x00" + "\x00\x00" + string32(properties.fixedPitch ? 1 : 0) + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00"; +} +function createPostscriptName(name) { + return name.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, "").slice(0, 63); +} +function createNameTable(name, proto) { + if (!proto) { + proto = [[], []]; + } + const strings = [proto[0][0] || "Original licence", proto[0][1] || name, proto[0][2] || "Unknown", proto[0][3] || "uniqueID", proto[0][4] || name, proto[0][5] || "Version 0.11", proto[0][6] || createPostscriptName(name), proto[0][7] || "Unknown", proto[0][8] || "Unknown", proto[0][9] || "Unknown"]; + const stringsUnicode = []; + let i, ii, j, jj, str; + for (i = 0, ii = strings.length; i < ii; i++) { + str = proto[1][i] || strings[i]; + const strBufUnicode = []; + for (j = 0, jj = str.length; j < jj; j++) { + strBufUnicode.push(string16(str.charCodeAt(j))); + } + stringsUnicode.push(strBufUnicode.join("")); + } + const names = [strings, stringsUnicode]; + const platforms = ["\x00\x01", "\x00\x03"]; + const encodings = ["\x00\x00", "\x00\x01"]; + const languages = ["\x00\x00", "\x04\x09"]; + const namesRecordCount = strings.length * platforms.length; + let nameTable = "\x00\x00" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6); + let strOffset = 0; + for (i = 0, ii = platforms.length; i < ii; i++) { + const strs = names[i]; + for (j = 0, jj = strs.length; j < jj; j++) { + str = strs[j]; + const nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset); + nameTable += nameRecord; + strOffset += str.length; + } + } + nameTable += strings.join("") + stringsUnicode.join(""); + return nameTable; +} +class Font { + constructor(name, file, properties) { + this.name = name; + this.psName = null; + this.mimetype = null; + this.disableFontFace = false; + this.loadedName = properties.loadedName; + this.isType3Font = properties.isType3Font; + this.missingFile = false; + this.cssFontInfo = properties.cssFontInfo; + this._charsCache = Object.create(null); + this._glyphCache = Object.create(null); + let isSerifFont = !!(properties.flags & FontFlags.Serif); + if (!isSerifFont && !properties.isSimulatedFlags) { + const baseName = name.replaceAll(/[,_]/g, "-").split("-", 1)[0], + serifFonts = getSerifFonts(); + for (const namePart of baseName.split("+")) { + if (serifFonts[namePart]) { + isSerifFont = true; + break; + } + } + } + this.isSerifFont = isSerifFont; + this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + this.isMonospace = !!(properties.flags & FontFlags.FixedPitch); + let { + type, + subtype + } = properties; + this.type = type; + this.subtype = subtype; + this.systemFontInfo = properties.systemFontInfo; + const matches = name.match(/^InvalidPDFjsFont_(.*)_\d+$/); + this.isInvalidPDFjsFont = !!matches; + if (this.isInvalidPDFjsFont) { + this.fallbackName = matches[1]; + } else if (this.isMonospace) { + this.fallbackName = "monospace"; + } else if (this.isSerifFont) { + this.fallbackName = "serif"; + } else { + this.fallbackName = "sans-serif"; + } + if (this.systemFontInfo?.guessFallback) { + this.systemFontInfo.guessFallback = false; + this.systemFontInfo.css += `,${this.fallbackName}`; + } + this.differences = properties.differences; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.composite = properties.composite; + this.cMap = properties.cMap; + this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS; + this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS; + this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS; + this.lineHeight = this.ascent - this.descent; + this.fontMatrix = properties.fontMatrix; + this.bbox = properties.bbox; + this.defaultEncoding = properties.defaultEncoding; + this.toUnicode = properties.toUnicode; + this.toFontChar = []; + if (properties.type === "Type3") { + for (let charCode = 0; charCode < 256; charCode++) { + this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode]; + } + return; + } + this.cidEncoding = properties.cidEncoding || ""; + this.vertical = !!properties.vertical; + if (this.vertical) { + this.vmetrics = properties.vmetrics; + this.defaultVMetrics = properties.defaultVMetrics; + } + if (!file || file.isEmpty) { + if (file) { + warn('Font file is empty in "' + name + '" (' + this.loadedName + ")"); + } + this.fallbackToSystemFont(properties); + return; + } + [type, subtype] = getFontFileType(file, properties); + if (type !== this.type || subtype !== this.subtype) { + info("Inconsistent font file Type/SubType, expected: " + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`); + } + let data; + try { + switch (type) { + case "MMType1": + info("MMType1 font (" + name + "), falling back to Type1."); + case "Type1": + case "CIDFontType0": + this.mimetype = "font/opentype"; + const cff = subtype === "Type1C" || subtype === "CIDFontType0C" ? new CFFFont(file, properties) : new Type1Font(name, file, properties); + adjustWidths(properties); + data = this.convert(name, cff, properties); + break; + case "OpenType": + case "TrueType": + case "CIDFontType2": + this.mimetype = "font/opentype"; + data = this.checkAndRepair(name, file, properties); + if (this.isOpenType) { + adjustWidths(properties); + type = "OpenType"; + } + break; + default: + throw new FormatError(`Font ${type} is not supported`); + } + } catch (e) { + warn(e); + this.fallbackToSystemFont(properties); + return; + } + amendFallbackToUnicode(properties); + this.data = data; + this.type = type; + this.subtype = subtype; + this.fontMatrix = properties.fontMatrix; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.toUnicode = properties.toUnicode; + this.seacMap = properties.seacMap; + } + get renderer() { + const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED); + return shadow(this, "renderer", renderer); + } + exportData(extraProperties = false) { + const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES; + const data = Object.create(null); + let property, value; + for (property of exportDataProperties) { + value = this[property]; + if (value !== undefined) { + data[property] = value; + } + } + return data; + } + fallbackToSystemFont(properties) { + this.missingFile = true; + const { + name, + type + } = this; + let fontName = normalizeFontName(name); + const stdFontMap = getStdFontMap(), + nonStdFontMap = getNonStdFontMap(); + const isStandardFont = !!stdFontMap[fontName]; + const isMappedToStandardFont = !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); + fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; + const fontBasicMetricsMap = getFontBasicMetrics(); + const metrics = fontBasicMetricsMap[fontName]; + if (metrics) { + if (isNaN(this.ascent)) { + this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS; + } + if (isNaN(this.descent)) { + this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS; + } + if (isNaN(this.capHeight)) { + this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS; + } + } + this.bold = /bold/gi.test(fontName); + this.italic = /oblique|italic/gi.test(fontName); + this.black = /Black/g.test(name); + const isNarrow = /Narrow/g.test(name); + this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0; + if ((isStandardFont || isMappedToStandardFont) && type === "CIDFontType2" && this.cidEncoding.startsWith("Identity-")) { + const cidToGidMap = properties.cidToGidMap; + const map = []; + applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts()); + if (/Arial-?Black/i.test(name)) { + applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack()); + } else if (/Calibri/i.test(name)) { + applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri()); + } + if (cidToGidMap) { + for (const charCode in map) { + const cid = map[charCode]; + if (cidToGidMap[cid] !== undefined) { + map[+charCode] = cidToGidMap[cid]; + } + } + if (cidToGidMap.length !== this.toUnicode.length && properties.hasIncludedToUnicodeMap && this.toUnicode instanceof IdentityToUnicodeMap) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + const cid = map[charCode]; + if (cidToGidMap[cid] === undefined) { + map[+charCode] = unicodeCharCode; + } + }); + } + } + if (!(this.toUnicode instanceof IdentityToUnicodeMap)) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + this.toFontChar = map; + this.toUnicode = new ToUnicodeMap(map); + } else if (/Symbol/i.test(fontName)) { + this.toFontChar = buildToFontChar(SymbolSetEncoding, getGlyphsUnicode(), this.differences); + } else if (/Dingbats/i.test(fontName)) { + this.toFontChar = buildToFontChar(ZapfDingbatsEncoding, getDingbatsGlyphsUnicode(), this.differences); + } else if (isStandardFont || isMappedToStandardFont) { + const map = buildToFontChar(this.defaultEncoding, getGlyphsUnicode(), this.differences); + if (type === "CIDFontType2" && !this.cidEncoding.startsWith("Identity-") && !(this.toUnicode instanceof IdentityToUnicodeMap)) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + this.toFontChar = map; + } else { + const glyphsUnicodeMap = getGlyphsUnicode(); + const map = []; + this.toUnicode.forEach((charCode, unicodeCharCode) => { + if (!this.composite) { + const glyphName = this.differences[charCode] || this.defaultEncoding[charCode]; + const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + unicodeCharCode = unicode; + } + } + map[+charCode] = unicodeCharCode; + }); + if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) { + if (/Tahoma|Verdana/i.test(name)) { + applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts()); + } + } + this.toFontChar = map; + } + amendFallbackToUnicode(properties); + this.loadedName = fontName.split("-", 1)[0]; + } + checkAndRepair(name, font, properties) { + const VALID_TABLES = ["OS/2", "cmap", "head", "hhea", "hmtx", "maxp", "name", "post", "loca", "glyf", "fpgm", "prep", "cvt ", "CFF "]; + function readTables(file, numTables) { + const tables = Object.create(null); + tables["OS/2"] = null; + tables.cmap = null; + tables.head = null; + tables.hhea = null; + tables.hmtx = null; + tables.maxp = null; + tables.name = null; + tables.post = null; + for (let i = 0; i < numTables; i++) { + const table = readTableEntry(file); + if (!VALID_TABLES.includes(table.tag)) { + continue; + } + if (table.length === 0) { + continue; + } + tables[table.tag] = table; + } + return tables; + } + function readTableEntry(file) { + const tag = file.getString(4); + const checksum = file.getInt32() >>> 0; + const offset = file.getInt32() >>> 0; + const length = file.getInt32() >>> 0; + const previousPosition = file.pos; + file.pos = file.start || 0; + file.skip(offset); + const data = file.getBytes(length); + file.pos = previousPosition; + if (tag === "head") { + data[8] = data[9] = data[10] = data[11] = 0; + data[17] |= 0x20; + } + return { + tag, + checksum, + length, + offset, + data + }; + } + function readOpenTypeHeader(ttf) { + return { + version: ttf.getString(4), + numTables: ttf.getUint16(), + searchRange: ttf.getUint16(), + entrySelector: ttf.getUint16(), + rangeShift: ttf.getUint16() + }; + } + function readTrueTypeCollectionHeader(ttc) { + const ttcTag = ttc.getString(4); + assert(ttcTag === "ttcf", "Must be a TrueType Collection font."); + const majorVersion = ttc.getUint16(); + const minorVersion = ttc.getUint16(); + const numFonts = ttc.getInt32() >>> 0; + const offsetTable = []; + for (let i = 0; i < numFonts; i++) { + offsetTable.push(ttc.getInt32() >>> 0); + } + const header = { + ttcTag, + majorVersion, + minorVersion, + numFonts, + offsetTable + }; + switch (majorVersion) { + case 1: + return header; + case 2: + header.dsigTag = ttc.getInt32() >>> 0; + header.dsigLength = ttc.getInt32() >>> 0; + header.dsigOffset = ttc.getInt32() >>> 0; + return header; + } + throw new FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`); + } + function readTrueTypeCollectionData(ttc, fontName) { + const { + numFonts, + offsetTable + } = readTrueTypeCollectionHeader(ttc); + const fontNameParts = fontName.split("+"); + let fallbackData; + for (let i = 0; i < numFonts; i++) { + ttc.pos = (ttc.start || 0) + offsetTable[i]; + const potentialHeader = readOpenTypeHeader(ttc); + const potentialTables = readTables(ttc, potentialHeader.numTables); + if (!potentialTables.name) { + throw new FormatError('TrueType Collection font must contain a "name" table.'); + } + const [nameTable] = readNameTable(potentialTables.name); + for (let j = 0, jj = nameTable.length; j < jj; j++) { + for (let k = 0, kk = nameTable[j].length; k < kk; k++) { + const nameEntry = nameTable[j][k]?.replaceAll(/\s/g, ""); + if (!nameEntry) { + continue; + } + if (nameEntry === fontName) { + return { + header: potentialHeader, + tables: potentialTables + }; + } + if (fontNameParts.length < 2) { + continue; + } + for (const part of fontNameParts) { + if (nameEntry === part) { + fallbackData = { + name: part, + header: potentialHeader, + tables: potentialTables + }; + } + } + } + } + } + if (fallbackData) { + warn(`TrueType Collection does not contain "${fontName}" font, ` + `falling back to "${fallbackData.name}" font instead.`); + return { + header: fallbackData.header, + tables: fallbackData.tables + }; + } + throw new FormatError(`TrueType Collection does not contain "${fontName}" font.`); + } + function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) { + if (!cmap) { + warn("No cmap table available."); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + let segment; + let start = (file.start || 0) + cmap.offset; + file.pos = start; + file.skip(2); + const numTables = file.getUint16(); + let potentialTable; + let canBreak = false; + for (let i = 0; i < numTables; i++) { + const platformId = file.getUint16(); + const encodingId = file.getUint16(); + const offset = file.getInt32() >>> 0; + let useTable = false; + if (potentialTable?.platformId === platformId && potentialTable?.encodingId === encodingId) { + continue; + } + if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) { + useTable = true; + } else if (platformId === 1 && encodingId === 0) { + useTable = true; + } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) { + useTable = true; + if (!isSymbolicFont) { + canBreak = true; + } + } else if (isSymbolicFont && platformId === 3 && encodingId === 0) { + useTable = true; + let correctlySorted = true; + if (i < numTables - 1) { + const nextBytes = file.peekBytes(2), + nextPlatformId = int16(nextBytes[0], nextBytes[1]); + if (nextPlatformId < platformId) { + correctlySorted = false; + } + } + if (correctlySorted) { + canBreak = true; + } + } + if (useTable) { + potentialTable = { + platformId, + encodingId, + offset + }; + } + if (canBreak) { + break; + } + } + if (potentialTable) { + file.pos = start + potentialTable.offset; + } + if (!potentialTable || file.peekByte() === -1) { + warn("Could not find a preferred cmap table."); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + const format = file.getUint16(); + let hasShortCmap = false; + const mappings = []; + let j, glyphId; + if (format === 0) { + file.skip(2 + 2); + for (j = 0; j < 256; j++) { + const index = file.getByte(); + if (!index) { + continue; + } + mappings.push({ + charCode: j, + glyphId: index + }); + } + hasShortCmap = true; + } else if (format === 2) { + file.skip(2 + 2); + const subHeaderKeys = []; + let maxSubHeaderKey = 0; + for (let i = 0; i < 256; i++) { + const subHeaderKey = file.getUint16() >> 3; + subHeaderKeys.push(subHeaderKey); + maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey); + } + const subHeaders = []; + for (let i = 0; i <= maxSubHeaderKey; i++) { + subHeaders.push({ + firstCode: file.getUint16(), + entryCount: file.getUint16(), + idDelta: signedInt16(file.getByte(), file.getByte()), + idRangePos: file.pos + file.getUint16() + }); + } + for (let i = 0; i < 256; i++) { + if (subHeaderKeys[i] === 0) { + file.pos = subHeaders[0].idRangePos + 2 * i; + glyphId = file.getUint16(); + mappings.push({ + charCode: i, + glyphId + }); + } else { + const s = subHeaders[subHeaderKeys[i]]; + for (j = 0; j < s.entryCount; j++) { + const charCode = (i << 8) + j + s.firstCode; + file.pos = s.idRangePos + 2 * j; + glyphId = file.getUint16(); + if (glyphId !== 0) { + glyphId = (glyphId + s.idDelta) % 65536; + } + mappings.push({ + charCode, + glyphId + }); + } + } + } + } else if (format === 4) { + file.skip(2 + 2); + const segCount = file.getUint16() >> 1; + file.skip(6); + const segments = []; + let segIndex; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments.push({ + end: file.getUint16() + }); + } + file.skip(2); + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].start = file.getUint16(); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].delta = file.getUint16(); + } + let offsetsCount = 0, + offsetIndex; + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + const rangeOffset = file.getUint16(); + if (!rangeOffset) { + segment.offsetIndex = -1; + continue; + } + offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); + segment.offsetIndex = offsetIndex; + offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1); + } + const offsets = []; + for (j = 0; j < offsetsCount; j++) { + offsets.push(file.getUint16()); + } + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + start = segment.start; + const end = segment.end; + const delta = segment.delta; + offsetIndex = segment.offsetIndex; + for (j = start; j <= end; j++) { + if (j === 0xffff) { + continue; + } + glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; + glyphId = glyphId + delta & 0xffff; + mappings.push({ + charCode: j, + glyphId + }); + } + } + } else if (format === 6) { + file.skip(2 + 2); + const firstCode = file.getUint16(); + const entryCount = file.getUint16(); + for (j = 0; j < entryCount; j++) { + glyphId = file.getUint16(); + const charCode = firstCode + j; + mappings.push({ + charCode, + glyphId + }); + } + } else if (format === 12) { + file.skip(2 + 4 + 4); + const nGroups = file.getInt32() >>> 0; + for (j = 0; j < nGroups; j++) { + const startCharCode = file.getInt32() >>> 0; + const endCharCode = file.getInt32() >>> 0; + let glyphCode = file.getInt32() >>> 0; + for (let charCode = startCharCode; charCode <= endCharCode; charCode++) { + mappings.push({ + charCode, + glyphId: glyphCode++ + }); + } + } + } else { + warn("cmap table has unsupported format: " + format); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + mappings.sort(function (a, b) { + return a.charCode - b.charCode; + }); + for (let i = 1; i < mappings.length; i++) { + if (mappings[i - 1].charCode === mappings[i].charCode) { + mappings.splice(i, 1); + i--; + } + } + return { + platformId: potentialTable.platformId, + encodingId: potentialTable.encodingId, + mappings, + hasShortCmap + }; + } + function sanitizeMetrics(file, header, metrics, headTable, numGlyphs, dupFirstEntry) { + if (!header) { + if (metrics) { + metrics.data = null; + } + return; + } + file.pos = (file.start || 0) + header.offset; + file.pos += 4; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + file.pos += 2; + const caretOffset = file.getUint16(); + file.pos += 8; + file.pos += 2; + let numOfMetrics = file.getUint16(); + if (caretOffset !== 0) { + const macStyle = int16(headTable.data[44], headTable.data[45]); + if (!(macStyle & 2)) { + header.data[22] = 0; + header.data[23] = 0; + } + } + if (numOfMetrics > numGlyphs) { + info(`The numOfMetrics (${numOfMetrics}) should not be ` + `greater than the numGlyphs (${numGlyphs}).`); + numOfMetrics = numGlyphs; + header.data[34] = (numOfMetrics & 0xff00) >> 8; + header.data[35] = numOfMetrics & 0x00ff; + } + const numOfSidebearings = numGlyphs - numOfMetrics; + const numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1); + if (numMissing > 0) { + const entries = new Uint8Array(metrics.length + numMissing * 2); + entries.set(metrics.data); + if (dupFirstEntry) { + entries[metrics.length] = metrics.data[2]; + entries[metrics.length + 1] = metrics.data[3]; + } + metrics.data = entries; + } + } + function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) { + const glyphProfile = { + length: 0, + sizeOfInstructions: 0 + }; + if (sourceStart < 0 || sourceStart >= source.length || sourceEnd > source.length || sourceEnd - sourceStart <= 12) { + return glyphProfile; + } + const glyf = source.subarray(sourceStart, sourceEnd); + const xMin = signedInt16(glyf[2], glyf[3]); + const yMin = signedInt16(glyf[4], glyf[5]); + const xMax = signedInt16(glyf[6], glyf[7]); + const yMax = signedInt16(glyf[8], glyf[9]); + if (xMin > xMax) { + writeSignedInt16(glyf, 2, xMax); + writeSignedInt16(glyf, 6, xMin); + } + if (yMin > yMax) { + writeSignedInt16(glyf, 4, yMax); + writeSignedInt16(glyf, 8, yMin); + } + const contoursCount = signedInt16(glyf[0], glyf[1]); + if (contoursCount < 0) { + if (contoursCount < -1) { + return glyphProfile; + } + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + let i, + j = 10, + flagsCount = 0; + for (i = 0; i < contoursCount; i++) { + const endPoint = glyf[j] << 8 | glyf[j + 1]; + flagsCount = endPoint + 1; + j += 2; + } + const instructionsStart = j; + const instructionsLength = glyf[j] << 8 | glyf[j + 1]; + glyphProfile.sizeOfInstructions = instructionsLength; + j += 2 + instructionsLength; + const instructionsEnd = j; + let coordinatesLength = 0; + for (i = 0; i < flagsCount; i++) { + const flag = glyf[j++]; + if (flag & 0xc0) { + glyf[j - 1] = flag & 0x3f; + } + let xLength = 2; + if (flag & 2) { + xLength = 1; + } else if (flag & 16) { + xLength = 0; + } + let yLength = 2; + if (flag & 4) { + yLength = 1; + } else if (flag & 32) { + yLength = 0; + } + const xyLength = xLength + yLength; + coordinatesLength += xyLength; + if (flag & 8) { + const repeat = glyf[j++]; + if (repeat === 0) { + glyf[j - 1] ^= 8; + } + i += repeat; + coordinatesLength += repeat * xyLength; + } + } + if (coordinatesLength === 0) { + return glyphProfile; + } + let glyphDataLength = j + coordinatesLength; + if (glyphDataLength > glyf.length) { + return glyphProfile; + } + if (!hintsValid && instructionsLength > 0) { + dest.set(glyf.subarray(0, instructionsStart), destStart); + dest.set([0, 0], destStart + instructionsStart); + dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2); + glyphDataLength -= instructionsLength; + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + } + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + dest.set(glyf.subarray(0, glyphDataLength), destStart); + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + function sanitizeHead(head, numGlyphs, locaLength) { + const data = head.data; + const version = int32(data[0], data[1], data[2], data[3]); + if (version >> 16 !== 1) { + info("Attempting to fix invalid version in head table: " + version); + data[0] = 0; + data[1] = 1; + data[2] = 0; + data[3] = 0; + } + const indexToLocFormat = int16(data[50], data[51]); + if (indexToLocFormat < 0 || indexToLocFormat > 1) { + info("Attempting to fix invalid indexToLocFormat in head table: " + indexToLocFormat); + const numGlyphsPlusOne = numGlyphs + 1; + if (locaLength === numGlyphsPlusOne << 1) { + data[50] = 0; + data[51] = 0; + } else if (locaLength === numGlyphsPlusOne << 2) { + data[50] = 0; + data[51] = 1; + } else { + throw new FormatError("Could not fix indexToLocFormat: " + indexToLocFormat); + } + } + } + function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) { + let itemSize, itemDecode, itemEncode; + if (isGlyphLocationsLong) { + itemSize = 4; + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + itemEncode = function fontItemEncodeLong(data, offset, value) { + data[offset] = value >>> 24 & 0xff; + data[offset + 1] = value >> 16 & 0xff; + data[offset + 2] = value >> 8 & 0xff; + data[offset + 3] = value & 0xff; + }; + } else { + itemSize = 2; + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + itemEncode = function fontItemEncode(data, offset, value) { + data[offset] = value >> 9 & 0xff; + data[offset + 1] = value >> 1 & 0xff; + }; + } + const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs; + const locaDataSize = itemSize * (1 + numGlyphsOut); + const locaData = new Uint8Array(locaDataSize); + locaData.set(loca.data.subarray(0, locaDataSize)); + loca.data = locaData; + const oldGlyfData = glyf.data; + const oldGlyfDataLength = oldGlyfData.length; + const newGlyfData = new Uint8Array(oldGlyfDataLength); + let i, j; + const locaEntries = []; + for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) { + let offset = itemDecode(locaData, j); + if (offset > oldGlyfDataLength) { + offset = oldGlyfDataLength; + } + locaEntries.push({ + index: i, + offset, + endOffset: 0 + }); + } + locaEntries.sort((a, b) => a.offset - b.offset); + for (i = 0; i < numGlyphs; i++) { + locaEntries[i].endOffset = locaEntries[i + 1].offset; + } + locaEntries.sort((a, b) => a.index - b.index); + for (i = 0; i < numGlyphs; i++) { + const { + offset, + endOffset + } = locaEntries[i]; + if (offset !== 0 || endOffset !== 0) { + break; + } + const nextOffset = locaEntries[i + 1].offset; + if (nextOffset === 0) { + continue; + } + locaEntries[i].endOffset = nextOffset; + break; + } + const last = locaEntries.at(-2); + if (last.offset !== 0 && last.endOffset === 0) { + last.endOffset = oldGlyfDataLength; + } + const missingGlyphs = Object.create(null); + let writeOffset = 0; + itemEncode(locaData, 0, writeOffset); + for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { + const glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid); + const newLength = glyphProfile.length; + if (newLength === 0) { + missingGlyphs[i] = true; + } + if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) { + maxSizeOfInstructions = glyphProfile.sizeOfInstructions; + } + writeOffset += newLength; + itemEncode(locaData, j, writeOffset); + } + if (writeOffset === 0) { + const simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); + for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) { + itemEncode(locaData, j, simpleGlyph.length); + } + glyf.data = simpleGlyph; + } else if (dupFirstEntry) { + const firstEntryLength = itemDecode(locaData, itemSize); + if (newGlyfData.length > firstEntryLength + writeOffset) { + glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset); + } else { + glyf.data = new Uint8Array(firstEntryLength + writeOffset); + glyf.data.set(newGlyfData.subarray(0, writeOffset)); + } + glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); + itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength); + } else { + glyf.data = newGlyfData.subarray(0, writeOffset); + } + return { + missingGlyphs, + maxSizeOfInstructions + }; + } + function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) { + const start = (font.start || 0) + post.offset; + font.pos = start; + const length = post.length, + end = start + length; + const version = font.getInt32(); + font.skip(28); + let glyphNames; + let valid = true; + let i; + switch (version) { + case 0x00010000: + glyphNames = MacStandardGlyphOrdering; + break; + case 0x00020000: + const numGlyphs = font.getUint16(); + if (numGlyphs !== maxpNumGlyphs) { + valid = false; + break; + } + const glyphNameIndexes = []; + for (i = 0; i < numGlyphs; ++i) { + const index = font.getUint16(); + if (index >= 32768) { + valid = false; + break; + } + glyphNameIndexes.push(index); + } + if (!valid) { + break; + } + const customNames = [], + strBuf = []; + while (font.pos < end) { + const stringLength = font.getByte(); + strBuf.length = stringLength; + for (i = 0; i < stringLength; ++i) { + strBuf[i] = String.fromCharCode(font.getByte()); + } + customNames.push(strBuf.join("")); + } + glyphNames = []; + for (i = 0; i < numGlyphs; ++i) { + const j = glyphNameIndexes[i]; + if (j < 258) { + glyphNames.push(MacStandardGlyphOrdering[j]); + continue; + } + glyphNames.push(customNames[j - 258]); + } + break; + case 0x00030000: + break; + default: + warn("Unknown/unsupported post table version " + version); + valid = false; + if (propertiesObj.defaultEncoding) { + glyphNames = propertiesObj.defaultEncoding; + } + break; + } + propertiesObj.glyphNames = glyphNames; + return valid; + } + function readNameTable(nameTable) { + const start = (font.start || 0) + nameTable.offset; + font.pos = start; + const names = [[], []], + records = []; + const length = nameTable.length, + end = start + length; + const format = font.getUint16(); + const FORMAT_0_HEADER_LENGTH = 6; + if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) { + return [names, records]; + } + const numRecords = font.getUint16(); + const stringsStart = font.getUint16(); + const NAME_RECORD_LENGTH = 12; + let i, ii; + for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) { + const r = { + platform: font.getUint16(), + encoding: font.getUint16(), + language: font.getUint16(), + name: font.getUint16(), + length: font.getUint16(), + offset: font.getUint16() + }; + if (isMacNameRecord(r) || isWinNameRecord(r)) { + records.push(r); + } + } + for (i = 0, ii = records.length; i < ii; i++) { + const record = records[i]; + if (record.length <= 0) { + continue; + } + const pos = start + stringsStart + record.offset; + if (pos + record.length > end) { + continue; + } + font.pos = pos; + const nameIndex = record.name; + if (record.encoding) { + let str = ""; + for (let j = 0, jj = record.length; j < jj; j += 2) { + str += String.fromCharCode(font.getUint16()); + } + names[1][nameIndex] = str; + } else { + names[0][nameIndex] = font.getString(record.length); + } + } + return [names, records]; + } + const TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2]; + function sanitizeTTProgram(table, ttContext) { + let data = table.data; + let i = 0, + j, + n, + b, + funcId, + pc, + lastEndf = 0, + lastDeff = 0; + const stack = []; + const callstack = []; + const functionsCalled = []; + let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions; + let inFDEF = false, + ifLevel = 0, + inELSE = 0; + for (let ii = data.length; i < ii;) { + const op = data[i++]; + if (op === 0x40) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if (op === 0x41) { + n = data[i++]; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if ((op & 0xf8) === 0xb0) { + n = op - 0xb0 + 1; + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if ((op & 0xf8) === 0xb8) { + n = op - 0xb8 + 1; + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(signedInt16(b, data[i++])); + } + } + } else if (op === 0x2b && !tooComplexToFollowFunctions) { + if (!inFDEF && !inELSE) { + funcId = stack.at(-1); + if (isNaN(funcId)) { + info("TT: CALL empty stack (or invalid entry)."); + } else { + ttContext.functionsUsed[funcId] = true; + if (funcId in ttContext.functionsStackDeltas) { + const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId]; + if (newStackLength < 0) { + warn("TT: CALL invalid functions stack delta."); + ttContext.hintsValid = false; + return; + } + stack.length = newStackLength; + } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) { + callstack.push({ + data, + i, + stackTop: stack.length - 1 + }); + functionsCalled.push(funcId); + pc = ttContext.functionsDefined[funcId]; + if (!pc) { + warn("TT: CALL non-existent function"); + ttContext.hintsValid = false; + return; + } + data = pc.data; + i = pc.i; + } + } + } + } else if (op === 0x2c && !tooComplexToFollowFunctions) { + if (inFDEF || inELSE) { + warn("TT: nested FDEFs not allowed"); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + funcId = stack.pop(); + ttContext.functionsDefined[funcId] = { + data, + i + }; + } else if (op === 0x2d) { + if (inFDEF) { + inFDEF = false; + lastEndf = i; + } else { + pc = callstack.pop(); + if (!pc) { + warn("TT: ENDF bad stack"); + ttContext.hintsValid = false; + return; + } + funcId = functionsCalled.pop(); + data = pc.data; + i = pc.i; + ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop; + } + } else if (op === 0x89) { + if (inFDEF || inELSE) { + warn("TT: nested IDEFs not allowed"); + tooComplexToFollowFunctions = true; + } + inFDEF = true; + lastDeff = i; + } else if (op === 0x58) { + ++ifLevel; + } else if (op === 0x1b) { + inELSE = ifLevel; + } else if (op === 0x59) { + if (inELSE === ifLevel) { + inELSE = 0; + } + --ifLevel; + } else if (op === 0x1c) { + if (!inFDEF && !inELSE) { + const offset = stack.at(-1); + if (offset > 0) { + i += offset - 1; + } + } + } + if (!inFDEF && !inELSE) { + let stackDelta = 0; + if (op <= 0x8e) { + stackDelta = TTOpsStackDeltas[op]; + } else if (op >= 0xc0 && op <= 0xdf) { + stackDelta = -1; + } else if (op >= 0xe0) { + stackDelta = -2; + } + if (op >= 0x71 && op <= 0x75) { + n = stack.pop(); + if (!isNaN(n)) { + stackDelta = -n * 2; + } + } + while (stackDelta < 0 && stack.length > 0) { + stack.pop(); + stackDelta++; + } + while (stackDelta > 0) { + stack.push(NaN); + stackDelta--; + } + } + } + ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions; + const content = [data]; + if (i > data.length) { + content.push(new Uint8Array(i - data.length)); + } + if (lastDeff > lastEndf) { + warn("TT: complementing a missing function tail"); + content.push(new Uint8Array([0x22, 0x2d])); + } + foldTTTable(table, content); + } + function checkInvalidFunctions(ttContext, maxFunctionDefs) { + if (ttContext.tooComplexToFollowFunctions) { + return; + } + if (ttContext.functionsDefined.length > maxFunctionDefs) { + warn("TT: more functions defined than expected"); + ttContext.hintsValid = false; + return; + } + for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) { + if (j > maxFunctionDefs) { + warn("TT: invalid function id: " + j); + ttContext.hintsValid = false; + return; + } + if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { + warn("TT: undefined function: " + j); + ttContext.hintsValid = false; + return; + } + } + } + function foldTTTable(table, content) { + if (content.length > 1) { + let newLength = 0; + let j, jj; + for (j = 0, jj = content.length; j < jj; j++) { + newLength += content[j].length; + } + newLength = newLength + 3 & ~3; + const result = new Uint8Array(newLength); + let pos = 0; + for (j = 0, jj = content.length; j < jj; j++) { + result.set(content[j], pos); + pos += content[j].length; + } + table.data = result; + table.length = newLength; + } + } + function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) { + const ttContext = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: false, + hintsValid: true + }; + if (fpgm) { + sanitizeTTProgram(fpgm, ttContext); + } + if (prep) { + sanitizeTTProgram(prep, ttContext); + } + if (fpgm) { + checkInvalidFunctions(ttContext, maxFunctionDefs); + } + if (cvt && cvt.length & 1) { + const cvtData = new Uint8Array(cvt.length + 1); + cvtData.set(cvt.data); + cvt.data = cvtData; + } + return ttContext.hintsValid; + } + font = new Stream(new Uint8Array(font.getBytes())); + let header, tables; + if (isTrueTypeCollectionFile(font)) { + const ttcData = readTrueTypeCollectionData(font, this.name); + header = ttcData.header; + tables = ttcData.tables; + } else { + header = readOpenTypeHeader(font); + tables = readTables(font, header.numTables); + } + let cff, cffFile; + const isTrueType = !tables["CFF "]; + if (!isTrueType) { + const isComposite = properties.composite && (properties.cidToGidMap?.length > 0 || !(properties.cMap instanceof IdentityCMap)); + if (header.version === "OTTO" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) { + cffFile = new Stream(tables["CFF "].data); + cff = new CFFFont(cffFile, properties); + adjustWidths(properties); + return this.convert(name, cff, properties); + } + delete tables.glyf; + delete tables.loca; + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; + this.isOpenType = true; + } else { + if (!tables.loca) { + throw new FormatError('Required "loca" table is not found'); + } + if (!tables.glyf) { + warn('Required "glyf" table is not found -- trying to recover.'); + tables.glyf = { + tag: "glyf", + data: new Uint8Array(0) + }; + } + this.isOpenType = false; + } + if (!tables.maxp) { + throw new FormatError('Required "maxp" table is not found'); + } + font.pos = (font.start || 0) + tables.maxp.offset; + let version = font.getInt32(); + const numGlyphs = font.getUint16(); + if (version !== 0x00010000 && version !== 0x00005000) { + if (tables.maxp.length === 6) { + version = 0x0005000; + } else if (tables.maxp.length >= 32) { + version = 0x00010000; + } else { + throw new FormatError(`"maxp" table has a wrong version number`); + } + writeUint32(tables.maxp.data, 0, version); + } + if (properties.scaleFactors?.length === numGlyphs && isTrueType) { + const { + scaleFactors + } = properties; + const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]); + const glyphs = new GlyfTable({ + glyfTable: tables.glyf.data, + isGlyphLocationsLong, + locaTable: tables.loca.data, + numGlyphs + }); + glyphs.scale(scaleFactors); + const { + glyf, + loca, + isLocationLong + } = glyphs.write(); + tables.glyf.data = glyf; + tables.loca.data = loca; + if (isLocationLong !== !!isGlyphLocationsLong) { + tables.head.data[50] = 0; + tables.head.data[51] = isLocationLong ? 1 : 0; + } + const metrics = tables.hmtx.data; + for (let i = 0; i < numGlyphs; i++) { + const j = 4 * i; + const advanceWidth = Math.round(scaleFactors[i] * int16(metrics[j], metrics[j + 1])); + metrics[j] = advanceWidth >> 8 & 0xff; + metrics[j + 1] = advanceWidth & 0xff; + const lsb = Math.round(scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])); + writeSignedInt16(metrics, j + 2, lsb); + } + } + let numGlyphsOut = numGlyphs + 1; + let dupFirstEntry = true; + if (numGlyphsOut > 0xffff) { + dupFirstEntry = false; + numGlyphsOut = numGlyphs; + warn("Not enough space in glyfs to duplicate first glyph."); + } + let maxFunctionDefs = 0; + let maxSizeOfInstructions = 0; + if (version >= 0x00010000 && tables.maxp.length >= 32) { + font.pos += 8; + const maxZones = font.getUint16(); + if (maxZones > 2) { + tables.maxp.data[14] = 0; + tables.maxp.data[15] = 2; + } + font.pos += 4; + maxFunctionDefs = font.getUint16(); + font.pos += 4; + maxSizeOfInstructions = font.getUint16(); + } + tables.maxp.data[4] = numGlyphsOut >> 8; + tables.maxp.data[5] = numGlyphsOut & 255; + const hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables["cvt "], maxFunctionDefs); + if (!hintsValid) { + delete tables.fpgm; + delete tables.prep; + delete tables["cvt "]; + } + sanitizeMetrics(font, tables.hhea, tables.hmtx, tables.head, numGlyphsOut, dupFirstEntry); + if (!tables.head) { + throw new FormatError('Required "head" table is not found'); + } + sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0); + let missingGlyphs = Object.create(null); + if (isTrueType) { + const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]); + const glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions); + missingGlyphs = glyphsInfo.missingGlyphs; + if (version >= 0x00010000 && tables.maxp.length >= 32) { + tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8; + tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255; + } + } + if (!tables.hhea) { + throw new FormatError('Required "hhea" table is not found'); + } + if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) { + tables.hhea.data[10] = 0xff; + tables.hhea.data[11] = 0xff; + } + const metricsOverride = { + unitsPerEm: int16(tables.head.data[18], tables.head.data[19]), + yMax: signedInt16(tables.head.data[42], tables.head.data[43]), + yMin: signedInt16(tables.head.data[38], tables.head.data[39]), + ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]), + descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]), + lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]) + }; + this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm; + this.descent = metricsOverride.descent / metricsOverride.unitsPerEm; + this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm; + if (this.cssFontInfo?.lineHeight) { + this.lineHeight = this.cssFontInfo.metrics.lineHeight; + this.lineGap = this.cssFontInfo.metrics.lineGap; + } else { + this.lineHeight = this.ascent - this.descent + this.lineGap; + } + if (tables.post) { + readPostScriptTable(tables.post, properties, numGlyphs); + } + tables.post = { + tag: "post", + data: createPostTable(properties) + }; + const charCodeToGlyphId = Object.create(null); + function hasGlyph(glyphId) { + return !missingGlyphs[glyphId]; + } + if (properties.composite) { + const cidToGidMap = properties.cidToGidMap || []; + const isCidToGidMapEmpty = cidToGidMap.length === 0; + properties.cMap.forEach(function (charCode, cid) { + if (typeof cid === "string") { + cid = convertCidString(charCode, cid, true); + } + if (cid > 0xffff) { + throw new FormatError("Max size of CID is 65,535"); + } + let glyphId = -1; + if (isCidToGidMapEmpty) { + glyphId = cid; + } else if (cidToGidMap[cid] !== undefined) { + glyphId = cidToGidMap[cid]; + } + if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) { + charCodeToGlyphId[charCode] = glyphId; + } + }); + } else { + const cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding); + const cmapPlatformId = cmapTable.platformId; + const cmapEncodingId = cmapTable.encodingId; + const cmapMappings = cmapTable.mappings; + let baseEncoding = [], + forcePostTable = false; + if (properties.hasEncoding && (properties.baseEncodingName === "MacRomanEncoding" || properties.baseEncodingName === "WinAnsiEncoding")) { + baseEncoding = getEncoding(properties.baseEncodingName); + } + if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) { + const glyphsUnicodeMap = getGlyphsUnicode(); + for (let charCode = 0; charCode < 256; charCode++) { + let glyphName; + if (this.differences[charCode] !== undefined) { + glyphName = this.differences[charCode]; + } else if (baseEncoding.length && baseEncoding[charCode] !== "") { + glyphName = baseEncoding[charCode]; + } else { + glyphName = StandardEncoding[charCode]; + } + if (!glyphName) { + continue; + } + const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + let unicodeOrCharCode; + if (cmapPlatformId === 3 && cmapEncodingId === 1) { + unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName]; + } else if (cmapPlatformId === 1 && cmapEncodingId === 0) { + unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName); + } + if (unicodeOrCharCode === undefined) { + if (!properties.glyphNames && properties.hasIncludedToUnicodeMap && !(this.toUnicode instanceof IdentityToUnicodeMap)) { + const unicode = this.toUnicode.get(charCode); + if (unicode) { + unicodeOrCharCode = unicode.codePointAt(0); + } + } + if (unicodeOrCharCode === undefined) { + continue; + } + } + for (const mapping of cmapMappings) { + if (mapping.charCode !== unicodeOrCharCode) { + continue; + } + charCodeToGlyphId[charCode] = mapping.glyphId; + break; + } + } + } else if (cmapPlatformId === 0) { + for (const mapping of cmapMappings) { + charCodeToGlyphId[mapping.charCode] = mapping.glyphId; + } + forcePostTable = true; + } else if (cmapPlatformId === 3 && cmapEncodingId === 0) { + for (const mapping of cmapMappings) { + let charCode = mapping.charCode; + if (charCode >= 0xf000 && charCode <= 0xf0ff) { + charCode &= 0xff; + } + charCodeToGlyphId[charCode] = mapping.glyphId; + } + } else { + for (const mapping of cmapMappings) { + charCodeToGlyphId[mapping.charCode] = mapping.glyphId; + } + } + if (properties.glyphNames && (baseEncoding.length || this.differences.length)) { + for (let i = 0; i < 256; ++i) { + if (!forcePostTable && charCodeToGlyphId[i] !== undefined) { + continue; + } + const glyphName = this.differences[i] || baseEncoding[i]; + if (!glyphName) { + continue; + } + const glyphId = properties.glyphNames.indexOf(glyphName); + if (glyphId > 0 && hasGlyph(glyphId)) { + charCodeToGlyphId[i] = glyphId; + } + } + } + } + if (charCodeToGlyphId.length === 0) { + charCodeToGlyphId[0] = 0; + } + let glyphZeroId = numGlyphsOut - 1; + if (!dupFirstEntry) { + glyphZeroId = 0; + } + if (!properties.cssFontInfo) { + const newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId, this.toUnicode); + this.toFontChar = newMapping.toFontChar; + tables.cmap = { + tag: "cmap", + data: createCmapTable(newMapping.charCodeToGlyphId, newMapping.toUnicodeExtraMap, numGlyphsOut) + }; + if (!tables["OS/2"] || !validateOS2Table(tables["OS/2"], font)) { + tables["OS/2"] = { + tag: "OS/2", + data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride) + }; + } + } + if (!isTrueType) { + try { + cffFile = new Stream(tables["CFF "].data); + const parser = new CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED); + cff = parser.parse(); + cff.duplicateFirstGlyph(); + const compiler = new CFFCompiler(cff); + tables["CFF "].data = compiler.compile(); + } catch { + warn("Failed to compile font " + properties.loadedName); + } + } + if (!tables.name) { + tables.name = { + tag: "name", + data: createNameTable(this.name) + }; + } else { + const [namePrototype, nameRecords] = readNameTable(tables.name); + tables.name.data = createNameTable(name, namePrototype); + this.psName = namePrototype[0][6] || null; + if (!properties.composite) { + adjustTrueTypeToUnicode(properties, this.isSymbolicFont, nameRecords); + } + } + const builder = new OpenTypeFileBuilder(header.version); + for (const tableTag in tables) { + builder.addTable(tableTag, tables[tableTag].data); + } + return builder.toArray(); + } + convert(fontName, font, properties) { + properties.fixedPitch = false; + if (properties.builtInEncoding) { + adjustType1ToUnicode(properties, properties.builtInEncoding); + } + let glyphZeroId = 1; + if (font instanceof CFFFont) { + glyphZeroId = font.numGlyphs - 1; + } + const mapping = font.getGlyphMapping(properties); + let newMapping = null; + let newCharCodeToGlyphId = mapping; + let toUnicodeExtraMap = null; + if (!properties.cssFontInfo) { + newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId, this.toUnicode); + this.toFontChar = newMapping.toFontChar; + newCharCodeToGlyphId = newMapping.charCodeToGlyphId; + toUnicodeExtraMap = newMapping.toUnicodeExtraMap; + } + const numGlyphs = font.numGlyphs; + function getCharCodes(charCodeToGlyphId, glyphId) { + let charCodes = null; + for (const charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + (charCodes ||= []).push(charCode | 0); + } + } + return charCodes; + } + function createCharCode(charCodeToGlyphId, glyphId) { + for (const charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + return charCode | 0; + } + } + newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId; + return newMapping.nextAvailableFontCharCode++; + } + const seacs = font.seacs; + if (newMapping && SEAC_ANALYSIS_ENABLED && seacs?.length) { + const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX; + const charset = font.getCharset(); + const seacMap = Object.create(null); + for (let glyphId in seacs) { + glyphId |= 0; + const seac = seacs[glyphId]; + const baseGlyphName = StandardEncoding[seac[2]]; + const accentGlyphName = StandardEncoding[seac[3]]; + const baseGlyphId = charset.indexOf(baseGlyphName); + const accentGlyphId = charset.indexOf(accentGlyphName); + if (baseGlyphId < 0 || accentGlyphId < 0) { + continue; + } + const accentOffset = { + x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4], + y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5] + }; + const charCodes = getCharCodes(mapping, glyphId); + if (!charCodes) { + continue; + } + for (const charCode of charCodes) { + const charCodeToGlyphId = newMapping.charCodeToGlyphId; + const baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId); + const accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId); + seacMap[charCode] = { + baseFontCharCode, + accentFontCharCode, + accentOffset + }; + } + } + properties.seacMap = seacMap; + } + const unitsPerEm = properties.fontMatrix ? 1 / Math.max(...properties.fontMatrix.slice(0, 4).map(Math.abs)) : 1000; + const builder = new OpenTypeFileBuilder("\x4F\x54\x54\x4F"); + builder.addTable("CFF ", font.data); + builder.addTable("OS/2", createOS2Table(properties, newCharCodeToGlyphId)); + builder.addTable("cmap", createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs)); + builder.addTable("head", "\x00\x01\x00\x00" + "\x00\x00\x10\x00" + "\x00\x00\x00\x00" + "\x5F\x0F\x3C\xF5" + "\x00\x00" + safeString16(unitsPerEm) + "\x00\x00\x00\x00\x9e\x0b\x7e\x27" + "\x00\x00\x00\x00\x9e\x0b\x7e\x27" + "\x00\x00" + safeString16(properties.descent) + "\x0F\xFF" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + "\x00\x11" + "\x00\x00" + "\x00\x00" + "\x00\x00"); + builder.addTable("hhea", "\x00\x01\x00\x00" + safeString16(properties.ascent) + safeString16(properties.descent) + "\x00\x00" + "\xFF\xFF" + "\x00\x00" + "\x00\x00" + "\x00\x00" + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + "\x00\x00" + string16(numGlyphs)); + builder.addTable("hmtx", function fontFieldsHmtx() { + const charstrings = font.charstrings; + const cffWidths = font.cff ? font.cff.widths : null; + let hmtx = "\x00\x00\x00\x00"; + for (let i = 1, ii = numGlyphs; i < ii; i++) { + let width = 0; + if (charstrings) { + const charstring = charstrings[i - 1]; + width = "width" in charstring ? charstring.width : 0; + } else if (cffWidths) { + width = Math.ceil(cffWidths[i] || 0); + } + hmtx += string16(width) + string16(0); + } + return hmtx; + }()); + builder.addTable("maxp", "\x00\x00\x50\x00" + string16(numGlyphs)); + builder.addTable("name", createNameTable(fontName)); + builder.addTable("post", createPostTable(properties)); + return builder.toArray(); + } + get _spaceWidth() { + const possibleSpaceReplacements = ["space", "minus", "one", "i", "I"]; + let width; + for (const glyphName of possibleSpaceReplacements) { + if (glyphName in this.widths) { + width = this.widths[glyphName]; + break; + } + const glyphsUnicodeMap = getGlyphsUnicode(); + const glyphUnicode = glyphsUnicodeMap[glyphName]; + let charcode = 0; + if (this.composite && this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); + if (typeof charcode === "string") { + charcode = convertCidString(glyphUnicode, charcode); + } + } + if (!charcode && this.toUnicode) { + charcode = this.toUnicode.charCodeOf(glyphUnicode); + } + if (charcode <= 0) { + charcode = glyphUnicode; + } + width = this.widths[charcode]; + if (width) { + break; + } + } + return shadow(this, "_spaceWidth", width || this.defaultWidth); + } + _charToGlyph(charcode, isSpace = false) { + let glyph = this._glyphCache[charcode]; + if (glyph?.isSpace === isSpace) { + return glyph; + } + let fontCharCode, width, operatorListId; + let widthCode = charcode; + if (this.cMap?.contains(charcode)) { + widthCode = this.cMap.lookup(charcode); + if (typeof widthCode === "string") { + widthCode = convertCidString(charcode, widthCode); + } + } + width = this.widths[widthCode]; + if (typeof width !== "number") { + width = this.defaultWidth; + } + const vmetric = this.vmetrics?.[widthCode]; + let unicode = this.toUnicode.get(charcode) || charcode; + if (typeof unicode === "number") { + unicode = String.fromCharCode(unicode); + } + let isInFont = this.toFontChar[charcode] !== undefined; + fontCharCode = this.toFontChar[charcode] || charcode; + if (this.missingFile) { + const glyphName = this.differences[charcode] || this.defaultEncoding[charcode]; + if ((glyphName === ".notdef" || glyphName === "") && this.type === "Type1") { + fontCharCode = 0x20; + if (glyphName === "") { + width ||= this._spaceWidth; + unicode = String.fromCharCode(fontCharCode); + } + } + fontCharCode = mapSpecialUnicodeValues(fontCharCode); + } + if (this.isType3Font) { + operatorListId = fontCharCode; + } + let accent = null; + if (this.seacMap?.[charcode]) { + isInFont = true; + const seac = this.seacMap[charcode]; + fontCharCode = seac.baseFontCharCode; + accent = { + fontChar: String.fromCodePoint(seac.accentFontCharCode), + offset: seac.accentOffset + }; + } + let fontChar = ""; + if (typeof fontCharCode === "number") { + if (fontCharCode <= 0x10ffff) { + fontChar = String.fromCodePoint(fontCharCode); + } else { + warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`); + } + } + if (this.missingFile && this.vertical && fontChar.length === 1) { + const vertical = getVerticalPresentationForm()[fontChar.charCodeAt(0)]; + if (vertical) { + fontChar = unicode = String.fromCharCode(vertical); + } + } + glyph = new fonts_Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont); + return this._glyphCache[charcode] = glyph; + } + charsToGlyphs(chars) { + let glyphs = this._charsCache[chars]; + if (glyphs) { + return glyphs; + } + glyphs = []; + if (this.cMap) { + const c = Object.create(null), + ii = chars.length; + let i = 0; + while (i < ii) { + this.cMap.readCharCode(chars, i, c); + const { + charcode, + length + } = c; + i += length; + const glyph = this._charToGlyph(charcode, length === 1 && chars.charCodeAt(i - 1) === 0x20); + glyphs.push(glyph); + } + } else { + for (let i = 0, ii = chars.length; i < ii; ++i) { + const charcode = chars.charCodeAt(i); + const glyph = this._charToGlyph(charcode, charcode === 0x20); + glyphs.push(glyph); + } + } + return this._charsCache[chars] = glyphs; + } + getCharPositions(chars) { + const positions = []; + if (this.cMap) { + const c = Object.create(null); + let i = 0; + while (i < chars.length) { + this.cMap.readCharCode(chars, i, c); + const length = c.length; + positions.push([i, i + length]); + i += length; + } + } else { + for (let i = 0, ii = chars.length; i < ii; ++i) { + positions.push([i, i + 1]); + } + } + return positions; + } + get glyphCacheValues() { + return Object.values(this._glyphCache); + } + encodeString(str) { + const buffers = []; + const currentBuf = []; + const hasCurrentBufErrors = () => buffers.length % 2 === 1; + const getCharCode = this.toUnicode instanceof IdentityToUnicodeMap ? unicode => this.toUnicode.charCodeOf(unicode) : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode)); + for (let i = 0, ii = str.length; i < ii; i++) { + const unicode = str.codePointAt(i); + if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) { + i++; + } + if (this.toUnicode) { + const charCode = getCharCode(unicode); + if (charCode !== -1) { + if (hasCurrentBufErrors()) { + buffers.push(currentBuf.join("")); + currentBuf.length = 0; + } + const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1; + for (let j = charCodeLength - 1; j >= 0; j--) { + currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff)); + } + continue; + } + } + if (!hasCurrentBufErrors()) { + buffers.push(currentBuf.join("")); + currentBuf.length = 0; + } + currentBuf.push(String.fromCodePoint(unicode)); + } + buffers.push(currentBuf.join("")); + return buffers; + } +} +class ErrorFont { + constructor(error) { + this.error = error; + this.loadedName = "g_font_error"; + this.missingFile = true; + } + charsToGlyphs() { + return []; + } + encodeString(chars) { + return [chars]; + } + exportData(extraProperties = false) { + return { + error: this.error + }; + } +} + +;// ./src/core/pattern.js + + + + +const ShadingType = { + FUNCTION_BASED: 1, + AXIAL: 2, + RADIAL: 3, + FREE_FORM_MESH: 4, + LATTICE_FORM_MESH: 5, + COONS_PATCH_MESH: 6, + TENSOR_PATCH_MESH: 7 +}; +class Pattern { + constructor() { + unreachable("Cannot initialize Pattern."); + } + static parseShading(shading, xref, res, pdfFunctionFactory, localColorSpaceCache) { + const dict = shading instanceof BaseStream ? shading.dict : shading; + const type = dict.get("ShadingType"); + try { + switch (type) { + case ShadingType.AXIAL: + case ShadingType.RADIAL: + return new RadialAxialShading(dict, xref, res, pdfFunctionFactory, localColorSpaceCache); + case ShadingType.FREE_FORM_MESH: + case ShadingType.LATTICE_FORM_MESH: + case ShadingType.COONS_PATCH_MESH: + case ShadingType.TENSOR_PATCH_MESH: + return new MeshShading(shading, xref, res, pdfFunctionFactory, localColorSpaceCache); + default: + throw new FormatError("Unsupported ShadingType: " + type); + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(ex); + return new DummyShading(); + } + } +} +class BaseShading { + static SMALL_NUMBER = 1e-6; + getIR() { + unreachable("Abstract method `getIR` called."); + } +} +class RadialAxialShading extends BaseShading { + constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) { + super(); + this.shadingType = dict.get("ShadingType"); + let coordsLen = 0; + if (this.shadingType === ShadingType.AXIAL) { + coordsLen = 4; + } else if (this.shadingType === ShadingType.RADIAL) { + coordsLen = 6; + } + this.coordsArr = dict.getArray("Coords"); + if (!isNumberArray(this.coordsArr, coordsLen)) { + throw new FormatError("RadialAxialShading: Invalid /Coords array."); + } + const cs = ColorSpace.parse({ + cs: dict.getRaw("CS") || dict.getRaw("ColorSpace"), + xref, + resources, + pdfFunctionFactory, + localColorSpaceCache + }); + this.bbox = lookupNormalRect(dict.getArray("BBox"), null); + let t0 = 0.0, + t1 = 1.0; + const domainArr = dict.getArray("Domain"); + if (isNumberArray(domainArr, 2)) { + [t0, t1] = domainArr; + } + let extendStart = false, + extendEnd = false; + const extendArr = dict.getArray("Extend"); + if (isBooleanArray(extendArr, 2)) { + [extendStart, extendEnd] = extendArr; + } + if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) { + const [x1, y1, r1, x2, y2, r2] = this.coordsArr; + const distance = Math.hypot(x1 - x2, y1 - y2); + if (r1 <= r2 + distance && r2 <= r1 + distance) { + warn("Unsupported radial gradient."); + } + } + this.extendStart = extendStart; + this.extendEnd = extendEnd; + const fnObj = dict.getRaw("Function"); + const fn = pdfFunctionFactory.createFromArray(fnObj); + const NUMBER_OF_SAMPLES = 840; + const step = (t1 - t0) / NUMBER_OF_SAMPLES; + const colorStops = this.colorStops = []; + if (t0 >= t1 || step <= 0) { + info("Bad shading domain."); + return; + } + const color = new Float32Array(cs.numComps), + ratio = new Float32Array(1); + let rgbColor; + let iBase = 0; + ratio[0] = t0; + fn(ratio, 0, color, 0); + let rgbBase = cs.getRgb(color, 0); + const cssColorBase = Util.makeHexColor(rgbBase[0], rgbBase[1], rgbBase[2]); + colorStops.push([0, cssColorBase]); + let iPrev = 1; + ratio[0] = t0 + step; + fn(ratio, 0, color, 0); + let rgbPrev = cs.getRgb(color, 0); + let maxSlopeR = rgbPrev[0] - rgbBase[0] + 1; + let maxSlopeG = rgbPrev[1] - rgbBase[1] + 1; + let maxSlopeB = rgbPrev[2] - rgbBase[2] + 1; + let minSlopeR = rgbPrev[0] - rgbBase[0] - 1; + let minSlopeG = rgbPrev[1] - rgbBase[1] - 1; + let minSlopeB = rgbPrev[2] - rgbBase[2] - 1; + for (let i = 2; i < NUMBER_OF_SAMPLES; i++) { + ratio[0] = t0 + i * step; + fn(ratio, 0, color, 0); + rgbColor = cs.getRgb(color, 0); + const run = i - iBase; + maxSlopeR = Math.min(maxSlopeR, (rgbColor[0] - rgbBase[0] + 1) / run); + maxSlopeG = Math.min(maxSlopeG, (rgbColor[1] - rgbBase[1] + 1) / run); + maxSlopeB = Math.min(maxSlopeB, (rgbColor[2] - rgbBase[2] + 1) / run); + minSlopeR = Math.max(minSlopeR, (rgbColor[0] - rgbBase[0] - 1) / run); + minSlopeG = Math.max(minSlopeG, (rgbColor[1] - rgbBase[1] - 1) / run); + minSlopeB = Math.max(minSlopeB, (rgbColor[2] - rgbBase[2] - 1) / run); + const slopesExist = minSlopeR <= maxSlopeR && minSlopeG <= maxSlopeG && minSlopeB <= maxSlopeB; + if (!slopesExist) { + const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]); + colorStops.push([iPrev / NUMBER_OF_SAMPLES, cssColor]); + maxSlopeR = rgbColor[0] - rgbPrev[0] + 1; + maxSlopeG = rgbColor[1] - rgbPrev[1] + 1; + maxSlopeB = rgbColor[2] - rgbPrev[2] + 1; + minSlopeR = rgbColor[0] - rgbPrev[0] - 1; + minSlopeG = rgbColor[1] - rgbPrev[1] - 1; + minSlopeB = rgbColor[2] - rgbPrev[2] - 1; + iBase = iPrev; + rgbBase = rgbPrev; + } + iPrev = i; + rgbPrev = rgbColor; + } + const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]); + colorStops.push([1, cssColor]); + let background = "transparent"; + if (dict.has("Background")) { + rgbColor = cs.getRgb(dict.get("Background"), 0); + background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]); + } + if (!extendStart) { + colorStops.unshift([0, background]); + colorStops[1][0] += BaseShading.SMALL_NUMBER; + } + if (!extendEnd) { + colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER; + colorStops.push([1, background]); + } + this.colorStops = colorStops; + } + getIR() { + const { + coordsArr, + shadingType + } = this; + let type, p0, p1, r0, r1; + if (shadingType === ShadingType.AXIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[2], coordsArr[3]]; + r0 = null; + r1 = null; + type = "axial"; + } else if (shadingType === ShadingType.RADIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[3], coordsArr[4]]; + r0 = coordsArr[2]; + r1 = coordsArr[5]; + type = "radial"; + } else { + unreachable(`getPattern type unknown: ${shadingType}`); + } + return ["RadialAxial", type, this.bbox, this.colorStops, p0, p1, r0, r1]; + } +} +class MeshStreamReader { + constructor(stream, context) { + this.stream = stream; + this.context = context; + this.buffer = 0; + this.bufferLength = 0; + const numComps = context.numComps; + this.tmpCompsBuf = new Float32Array(numComps); + const csNumComps = context.colorSpace.numComps; + this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf; + } + get hasData() { + if (this.stream.end) { + return this.stream.pos < this.stream.end; + } + if (this.bufferLength > 0) { + return true; + } + const nextByte = this.stream.getByte(); + if (nextByte < 0) { + return false; + } + this.buffer = nextByte; + this.bufferLength = 8; + return true; + } + readBits(n) { + let buffer = this.buffer; + let bufferLength = this.bufferLength; + if (n === 32) { + if (bufferLength === 0) { + return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0; + } + buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte(); + const nextByte = this.stream.getByte(); + this.buffer = nextByte & (1 << bufferLength) - 1; + return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0; + } + if (n === 8 && bufferLength === 0) { + return this.stream.getByte(); + } + while (bufferLength < n) { + buffer = buffer << 8 | this.stream.getByte(); + bufferLength += 8; + } + bufferLength -= n; + this.bufferLength = bufferLength; + this.buffer = buffer & (1 << bufferLength) - 1; + return buffer >> bufferLength; + } + align() { + this.buffer = 0; + this.bufferLength = 0; + } + readFlag() { + return this.readBits(this.context.bitsPerFlag); + } + readCoordinate() { + const bitsPerCoordinate = this.context.bitsPerCoordinate; + const xi = this.readBits(bitsPerCoordinate); + const yi = this.readBits(bitsPerCoordinate); + const decode = this.context.decode; + const scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10; + return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]]; + } + readComponents() { + const numComps = this.context.numComps; + const bitsPerComponent = this.context.bitsPerComponent; + const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10; + const decode = this.context.decode; + const components = this.tmpCompsBuf; + for (let i = 0, j = 4; i < numComps; i++, j += 2) { + const ci = this.readBits(bitsPerComponent); + components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j]; + } + const color = this.tmpCsCompsBuf; + if (this.context.colorFn) { + this.context.colorFn(components, 0, color, 0); + } + return this.context.colorSpace.getRgb(color, 0); + } +} +let bCache = Object.create(null); +function buildB(count) { + const lut = []; + for (let i = 0; i <= count; i++) { + const t = i / count, + t_ = 1 - t; + lut.push(new Float32Array([t_ ** 3, 3 * t * t_ ** 2, 3 * t ** 2 * t_, t ** 3])); + } + return lut; +} +function getB(count) { + return bCache[count] ||= buildB(count); +} +function clearPatternCaches() { + bCache = Object.create(null); +} +class MeshShading extends BaseShading { + static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + static TRIANGLE_DENSITY = 20; + constructor(stream, xref, resources, pdfFunctionFactory, localColorSpaceCache) { + super(); + if (!(stream instanceof BaseStream)) { + throw new FormatError("Mesh data is not a stream"); + } + const dict = stream.dict; + this.shadingType = dict.get("ShadingType"); + this.bbox = lookupNormalRect(dict.getArray("BBox"), null); + const cs = ColorSpace.parse({ + cs: dict.getRaw("CS") || dict.getRaw("ColorSpace"), + xref, + resources, + pdfFunctionFactory, + localColorSpaceCache + }); + this.background = dict.has("Background") ? cs.getRgb(dict.get("Background"), 0) : null; + const fnObj = dict.getRaw("Function"); + const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null; + this.coords = []; + this.colors = []; + this.figures = []; + const decodeContext = { + bitsPerCoordinate: dict.get("BitsPerCoordinate"), + bitsPerComponent: dict.get("BitsPerComponent"), + bitsPerFlag: dict.get("BitsPerFlag"), + decode: dict.getArray("Decode"), + colorFn: fn, + colorSpace: cs, + numComps: fn ? 1 : cs.numComps + }; + const reader = new MeshStreamReader(stream, decodeContext); + let patchMesh = false; + switch (this.shadingType) { + case ShadingType.FREE_FORM_MESH: + this._decodeType4Shading(reader); + break; + case ShadingType.LATTICE_FORM_MESH: + const verticesPerRow = dict.get("VerticesPerRow") | 0; + if (verticesPerRow < 2) { + throw new FormatError("Invalid VerticesPerRow"); + } + this._decodeType5Shading(reader, verticesPerRow); + break; + case ShadingType.COONS_PATCH_MESH: + this._decodeType6Shading(reader); + patchMesh = true; + break; + case ShadingType.TENSOR_PATCH_MESH: + this._decodeType7Shading(reader); + patchMesh = true; + break; + default: + unreachable("Unsupported mesh type."); + break; + } + if (patchMesh) { + this._updateBounds(); + for (let i = 0, ii = this.figures.length; i < ii; i++) { + this._buildFigureFromPatch(i); + } + } + this._updateBounds(); + this._packData(); + } + _decodeType4Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const operators = []; + const ps = []; + let verticesLeft = 0; + while (reader.hasData) { + const f = reader.readFlag(); + const coord = reader.readCoordinate(); + const color = reader.readComponents(); + if (verticesLeft === 0) { + if (!(0 <= f && f <= 2)) { + throw new FormatError("Unknown type4 flag"); + } + switch (f) { + case 0: + verticesLeft = 3; + break; + case 1: + ps.push(ps.at(-2), ps.at(-1)); + verticesLeft = 1; + break; + case 2: + ps.push(ps.at(-3), ps.at(-1)); + verticesLeft = 1; + break; + } + operators.push(f); + } + ps.push(coords.length); + coords.push(coord); + colors.push(color); + verticesLeft--; + reader.align(); + } + this.figures.push({ + type: "triangles", + coords: new Int32Array(ps), + colors: new Int32Array(ps) + }); + } + _decodeType5Shading(reader, verticesPerRow) { + const coords = this.coords; + const colors = this.colors; + const ps = []; + while (reader.hasData) { + const coord = reader.readCoordinate(); + const color = reader.readComponents(); + ps.push(coords.length); + coords.push(coord); + colors.push(color); + } + this.figures.push({ + type: "lattice", + coords: new Int32Array(ps), + colors: new Int32Array(ps), + verticesPerRow + }); + } + _decodeType6Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const ps = new Int32Array(16); + const cs = new Int32Array(4); + while (reader.hasData) { + const f = reader.readFlag(); + if (!(0 <= f && f <= 3)) { + throw new FormatError("Unknown type6 flag"); + } + const pi = coords.length; + for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + const ci = colors.length; + for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + let tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + ps[5] = coords.length; + coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]); + ps[6] = coords.length; + coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]); + ps[9] = coords.length; + coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]); + ps[10] = coords.length; + coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]); + this.figures.push({ + type: "patch", + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + _decodeType7Shading(reader) { + const coords = this.coords; + const colors = this.colors; + const ps = new Int32Array(16); + const cs = new Int32Array(4); + while (reader.hasData) { + const f = reader.readFlag(); + if (!(0 <= f && f <= 3)) { + throw new FormatError("Unknown type7 flag"); + } + const pi = coords.length; + for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + const ci = colors.length; + for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + let tmp1, tmp2, tmp3, tmp4; + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[9] = pi + 13; + ps[10] = pi + 14; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[5] = pi + 12; + ps[6] = pi + 15; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + this.figures.push({ + type: "patch", + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + _buildFigureFromPatch(index) { + const figure = this.figures[index]; + assert(figure.type === "patch", "Unexpected patch mesh figure"); + const coords = this.coords, + colors = this.colors; + const pi = figure.coords; + const ci = figure.colors; + const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + let splitXBy = Math.ceil((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0])); + splitXBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)); + let splitYBy = Math.ceil((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1])); + splitYBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)); + const verticesPerRow = splitXBy + 1; + const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow); + const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow); + let k = 0; + const cl = new Uint8Array(3), + cr = new Uint8Array(3); + const c0 = colors[ci[0]], + c1 = colors[ci[1]], + c2 = colors[ci[2]], + c3 = colors[ci[3]]; + const bRow = getB(splitYBy), + bCol = getB(splitXBy); + for (let row = 0; row <= splitYBy; row++) { + cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0; + cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0; + cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0; + cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0; + cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0; + cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0; + for (let col = 0; col <= splitXBy; col++, k++) { + if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) { + continue; + } + let x = 0, + y = 0; + let q = 0; + for (let i = 0; i <= 3; i++) { + for (let j = 0; j <= 3; j++, q++) { + const m = bRow[row][i] * bCol[col][j]; + x += coords[pi[q]][0] * m; + y += coords[pi[q]][1] * m; + } + } + figureCoords[k] = coords.length; + coords.push([x, y]); + figureColors[k] = colors.length; + const newColor = new Uint8Array(3); + newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0; + newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0; + newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0; + colors.push(newColor); + } + } + figureCoords[0] = pi[0]; + figureColors[0] = ci[0]; + figureCoords[splitXBy] = pi[3]; + figureColors[splitXBy] = ci[1]; + figureCoords[verticesPerRow * splitYBy] = pi[12]; + figureColors[verticesPerRow * splitYBy] = ci[2]; + figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; + figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; + this.figures[index] = { + type: "lattice", + coords: figureCoords, + colors: figureColors, + verticesPerRow + }; + } + _updateBounds() { + let minX = this.coords[0][0], + minY = this.coords[0][1], + maxX = minX, + maxY = minY; + for (let i = 1, ii = this.coords.length; i < ii; i++) { + const x = this.coords[i][0], + y = this.coords[i][1]; + minX = minX > x ? x : minX; + minY = minY > y ? y : minY; + maxX = maxX < x ? x : maxX; + maxY = maxY < y ? y : maxY; + } + this.bounds = [minX, minY, maxX, maxY]; + } + _packData() { + let i, ii, j, jj; + const coords = this.coords; + const coordsPacked = new Float32Array(coords.length * 2); + for (i = 0, j = 0, ii = coords.length; i < ii; i++) { + const xy = coords[i]; + coordsPacked[j++] = xy[0]; + coordsPacked[j++] = xy[1]; + } + this.coords = coordsPacked; + const colors = this.colors; + const colorsPacked = new Uint8Array(colors.length * 3); + for (i = 0, j = 0, ii = colors.length; i < ii; i++) { + const c = colors[i]; + colorsPacked[j++] = c[0]; + colorsPacked[j++] = c[1]; + colorsPacked[j++] = c[2]; + } + this.colors = colorsPacked; + const figures = this.figures; + for (i = 0, ii = figures.length; i < ii; i++) { + const figure = figures[i], + ps = figure.coords, + cs = figure.colors; + for (j = 0, jj = ps.length; j < jj; j++) { + ps[j] *= 2; + cs[j] *= 3; + } + } + } + getIR() { + const { + bounds + } = this; + if (bounds[2] - bounds[0] === 0 || bounds[3] - bounds[1] === 0) { + throw new FormatError(`Invalid MeshShading bounds: [${bounds}].`); + } + return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, bounds, this.bbox, this.background]; + } +} +class DummyShading extends BaseShading { + getIR() { + return ["Dummy"]; + } +} +function getTilingPatternIR(operatorList, dict, color) { + const matrix = lookupMatrix(dict.getArray("Matrix"), IDENTITY_MATRIX); + const bbox = lookupNormalRect(dict.getArray("BBox"), null); + if (!bbox || bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) { + throw new FormatError(`Invalid getTilingPatternIR /BBox array.`); + } + const xstep = dict.get("XStep"); + if (typeof xstep !== "number") { + throw new FormatError(`Invalid getTilingPatternIR /XStep value.`); + } + const ystep = dict.get("YStep"); + if (typeof ystep !== "number") { + throw new FormatError(`Invalid getTilingPatternIR /YStep value.`); + } + const paintType = dict.get("PaintType"); + if (!Number.isInteger(paintType)) { + throw new FormatError(`Invalid getTilingPatternIR /PaintType value.`); + } + const tilingType = dict.get("TilingType"); + if (!Number.isInteger(tilingType)) { + throw new FormatError(`Invalid getTilingPatternIR /TilingType value.`); + } + return ["TilingPattern", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType]; +} + +;// ./src/core/calibri_factors.js +const CalibriBoldFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriBoldMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriBoldItalicFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriBoldItalicMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriItalicFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriItalicMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; +const CalibriRegularFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const CalibriRegularMetrics = { + lineHeight: 1.2207, + lineGap: 0.2207 +}; + +;// ./src/core/helvetica_factors.js +const HelveticaBoldFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaBoldMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const HelveticaBoldItalicFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaBoldItalicMetrics = { + lineHeight: 1.35, + lineGap: 0.2 +}; +const HelveticaItalicFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaItalicMetrics = { + lineHeight: 1.35, + lineGap: 0.2 +}; +const HelveticaRegularFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const HelveticaRegularMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; + +;// ./src/core/liberationsans_widths.js +const LiberationSansBoldWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333]; +const LiberationSansBoldMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansBoldItalicWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600, 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333]; +const LiberationSansBoldItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansItalicWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285]; +const LiberationSansItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; +const LiberationSansRegularWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285]; +const LiberationSansRegularMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; + +;// ./src/core/myriadpro_factors.js +const MyriadProBoldFactors = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProBoldMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProBoldItalicFactors = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProBoldItalicMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProItalicFactors = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProItalicMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; +const MyriadProRegularFactors = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const MyriadProRegularMetrics = { + lineHeight: 1.2, + lineGap: 0.2 +}; + +;// ./src/core/segoeui_factors.js +const SegoeuiBoldFactors = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiBoldMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiBoldItalicFactors = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiBoldItalicMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiItalicFactors = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiItalicMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; +const SegoeuiRegularFactors = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; +const SegoeuiRegularMetrics = { + lineHeight: 1.33008, + lineGap: 0 +}; + +;// ./src/core/xfa_fonts.js + + + + + + + + +const getXFAFontMap = getLookupTableFactory(function (t) { + t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = { + name: "LiberationSans-Regular", + factors: MyriadProRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: MyriadProRegularMetrics + }; + t["MyriadPro-Bold"] = t["PdfJS-Fallback-Bold"] = { + name: "LiberationSans-Bold", + factors: MyriadProBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: MyriadProBoldMetrics + }; + t["MyriadPro-It"] = t["MyriadPro-Italic"] = t["PdfJS-Fallback-Italic"] = { + name: "LiberationSans-Italic", + factors: MyriadProItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: MyriadProItalicMetrics + }; + t["MyriadPro-BoldIt"] = t["MyriadPro-BoldItalic"] = t["PdfJS-Fallback-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: MyriadProBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: MyriadProBoldItalicMetrics + }; + t.ArialMT = t.Arial = t["Arial-Regular"] = { + name: "LiberationSans-Regular", + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping + }; + t["Arial-BoldMT"] = t["Arial-Bold"] = { + name: "LiberationSans-Bold", + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping + }; + t["Arial-ItalicMT"] = t["Arial-Italic"] = { + name: "LiberationSans-Italic", + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping + }; + t["Arial-BoldItalicMT"] = t["Arial-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping + }; + t["Calibri-Regular"] = { + name: "LiberationSans-Regular", + factors: CalibriRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: CalibriRegularMetrics + }; + t["Calibri-Bold"] = { + name: "LiberationSans-Bold", + factors: CalibriBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: CalibriBoldMetrics + }; + t["Calibri-Italic"] = { + name: "LiberationSans-Italic", + factors: CalibriItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: CalibriItalicMetrics + }; + t["Calibri-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: CalibriBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: CalibriBoldItalicMetrics + }; + t["Segoeui-Regular"] = { + name: "LiberationSans-Regular", + factors: SegoeuiRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: SegoeuiRegularMetrics + }; + t["Segoeui-Bold"] = { + name: "LiberationSans-Bold", + factors: SegoeuiBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: SegoeuiBoldMetrics + }; + t["Segoeui-Italic"] = { + name: "LiberationSans-Italic", + factors: SegoeuiItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: SegoeuiItalicMetrics + }; + t["Segoeui-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: SegoeuiBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: SegoeuiBoldItalicMetrics + }; + t["Helvetica-Regular"] = t.Helvetica = { + name: "LiberationSans-Regular", + factors: HelveticaRegularFactors, + baseWidths: LiberationSansRegularWidths, + baseMapping: LiberationSansRegularMapping, + metrics: HelveticaRegularMetrics + }; + t["Helvetica-Bold"] = { + name: "LiberationSans-Bold", + factors: HelveticaBoldFactors, + baseWidths: LiberationSansBoldWidths, + baseMapping: LiberationSansBoldMapping, + metrics: HelveticaBoldMetrics + }; + t["Helvetica-Italic"] = { + name: "LiberationSans-Italic", + factors: HelveticaItalicFactors, + baseWidths: LiberationSansItalicWidths, + baseMapping: LiberationSansItalicMapping, + metrics: HelveticaItalicMetrics + }; + t["Helvetica-BoldItalic"] = { + name: "LiberationSans-BoldItalic", + factors: HelveticaBoldItalicFactors, + baseWidths: LiberationSansBoldItalicWidths, + baseMapping: LiberationSansBoldItalicMapping, + metrics: HelveticaBoldItalicMetrics + }; +}); +function getXfaFontName(name) { + const fontName = normalizeFontName(name); + const fontMap = getXFAFontMap(); + return fontMap[fontName]; +} +function getXfaFontWidths(name) { + const info = getXfaFontName(name); + if (!info) { + return null; + } + const { + baseWidths, + baseMapping, + factors + } = info; + const rescaledBaseWidths = !factors ? baseWidths : baseWidths.map((w, i) => w * factors[i]); + let currentCode = -2; + let currentArray; + const newWidths = []; + for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort(([unicode1], [unicode2]) => unicode1 - unicode2)) { + if (unicode === -1) { + continue; + } + if (unicode === currentCode + 1) { + currentArray.push(rescaledBaseWidths[glyphIndex]); + currentCode += 1; + } else { + currentCode = unicode; + currentArray = [rescaledBaseWidths[glyphIndex]]; + newWidths.push(unicode, currentArray); + } + } + return newWidths; +} +function getXfaFontDict(name) { + const widths = getXfaFontWidths(name); + const dict = new Dict(null); + dict.set("BaseFont", Name.get(name)); + dict.set("Type", Name.get("Font")); + dict.set("Subtype", Name.get("CIDFontType2")); + dict.set("Encoding", Name.get("Identity-H")); + dict.set("CIDToGIDMap", Name.get("Identity")); + dict.set("W", widths); + dict.set("FirstChar", widths[0]); + dict.set("LastChar", widths.at(-2) + widths.at(-1).length - 1); + const descriptor = new Dict(null); + dict.set("FontDescriptor", descriptor); + const systemInfo = new Dict(null); + systemInfo.set("Ordering", "Identity"); + systemInfo.set("Registry", "Adobe"); + systemInfo.set("Supplement", 0); + dict.set("CIDSystemInfo", systemInfo); + return dict; +} + +;// ./src/core/ps_parser.js + + + +class PostScriptParser { + constructor(lexer) { + this.lexer = lexer; + this.operators = []; + this.token = null; + this.prev = null; + } + nextToken() { + this.prev = this.token; + this.token = this.lexer.getToken(); + } + accept(type) { + if (this.token.type === type) { + this.nextToken(); + return true; + } + return false; + } + expect(type) { + if (this.accept(type)) { + return true; + } + throw new FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`); + } + parse() { + this.nextToken(); + this.expect(PostScriptTokenTypes.LBRACE); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + return this.operators; + } + parseBlock() { + while (true) { + if (this.accept(PostScriptTokenTypes.NUMBER)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + this.parseCondition(); + } else { + return; + } + } + } + parseCondition() { + const conditionLocation = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + if (this.accept(PostScriptTokenTypes.IF)) { + this.operators[conditionLocation] = this.operators.length; + this.operators[conditionLocation + 1] = "jz"; + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + const jumpLocation = this.operators.length; + this.operators.push(null, null); + const endOfTrue = this.operators.length; + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + this.expect(PostScriptTokenTypes.IFELSE); + this.operators[jumpLocation] = this.operators.length; + this.operators[jumpLocation + 1] = "j"; + this.operators[conditionLocation] = endOfTrue; + this.operators[conditionLocation + 1] = "jz"; + } else { + throw new FormatError("PS Function: error parsing conditional."); + } + } +} +const PostScriptTokenTypes = { + LBRACE: 0, + RBRACE: 1, + NUMBER: 2, + OPERATOR: 3, + IF: 4, + IFELSE: 5 +}; +class PostScriptToken { + static get opCache() { + return shadow(this, "opCache", Object.create(null)); + } + constructor(type, value) { + this.type = type; + this.value = value; + } + static getOperator(op) { + return PostScriptToken.opCache[op] ||= new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); + } + static get LBRACE() { + return shadow(this, "LBRACE", new PostScriptToken(PostScriptTokenTypes.LBRACE, "{")); + } + static get RBRACE() { + return shadow(this, "RBRACE", new PostScriptToken(PostScriptTokenTypes.RBRACE, "}")); + } + static get IF() { + return shadow(this, "IF", new PostScriptToken(PostScriptTokenTypes.IF, "IF")); + } + static get IFELSE() { + return shadow(this, "IFELSE", new PostScriptToken(PostScriptTokenTypes.IFELSE, "IFELSE")); + } +} +class PostScriptLexer { + constructor(stream) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + } + nextChar() { + return this.currentChar = this.stream.getByte(); + } + getToken() { + let comment = false; + let ch = this.currentChar; + while (true) { + if (ch < 0) { + return EOF; + } + if (comment) { + if (ch === 0x0a || ch === 0x0d) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!isWhiteSpace(ch)) { + break; + } + ch = this.nextChar(); + } + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2b: + case 0x2d: + case 0x2e: + return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber()); + case 0x7b: + this.nextChar(); + return PostScriptToken.LBRACE; + case 0x7d: + this.nextChar(); + return PostScriptToken.RBRACE; + } + const strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) { + strBuf.push(String.fromCharCode(ch)); + } + const str = strBuf.join(""); + switch (str.toLowerCase()) { + case "if": + return PostScriptToken.IF; + case "ifelse": + return PostScriptToken.IFELSE; + default: + return PostScriptToken.getOperator(str); + } + } + getNumber() { + let ch = this.currentChar; + const strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) { + strBuf.push(String.fromCharCode(ch)); + } else { + break; + } + } + const value = parseFloat(strBuf.join("")); + if (isNaN(value)) { + throw new FormatError(`Invalid floating point number: ${value}`); + } + return value; + } +} + +;// ./src/core/image_utils.js + + +class BaseLocalCache { + constructor(options) { + this._onlyRefs = options?.onlyRefs === true; + if (!this._onlyRefs) { + this._nameRefMap = new Map(); + this._imageMap = new Map(); + } + this._imageCache = new RefSetCache(); + } + getByName(name) { + if (this._onlyRefs) { + unreachable("Should not call `getByName` method."); + } + const ref = this._nameRefMap.get(name); + if (ref) { + return this.getByRef(ref); + } + return this._imageMap.get(name) || null; + } + getByRef(ref) { + return this._imageCache.get(ref) || null; + } + set(name, ref, data) { + unreachable("Abstract method `set` called."); + } +} +class LocalImageCache extends BaseLocalCache { + set(name, ref = null, data) { + if (typeof name !== "string") { + throw new Error('LocalImageCache.set - expected "name" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + this._nameRefMap.set(name, ref); + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalColorSpaceCache extends BaseLocalCache { + set(name = null, ref = null, data) { + if (typeof name !== "string" && !ref) { + throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + if (name !== null) { + this._nameRefMap.set(name, ref); + } + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalFunctionCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('LocalFunctionCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class LocalGStateCache extends BaseLocalCache { + set(name, ref = null, data) { + if (typeof name !== "string") { + throw new Error('LocalGStateCache.set - expected "name" argument.'); + } + if (ref) { + if (this._imageCache.has(ref)) { + return; + } + this._nameRefMap.set(name, ref); + this._imageCache.put(ref, data); + return; + } + if (this._imageMap.has(name)) { + return; + } + this._imageMap.set(name, data); + } +} +class LocalTilingPatternCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('LocalTilingPatternCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class RegionalImageCache extends BaseLocalCache { + constructor(options) { + super({ + onlyRefs: true + }); + } + set(name = null, ref, data) { + if (!ref) { + throw new Error('RegionalImageCache.set - expected "ref" argument.'); + } + if (this._imageCache.has(ref)) { + return; + } + this._imageCache.put(ref, data); + } +} +class GlobalImageCache { + static NUM_PAGES_THRESHOLD = 2; + static MIN_IMAGES_TO_CACHE = 10; + static MAX_BYTE_SIZE = 5 * MAX_IMAGE_SIZE_TO_CACHE; + #decodeFailedSet = new RefSet(); + constructor() { + this._refCache = new RefSetCache(); + this._imageCache = new RefSetCache(); + } + get #byteSize() { + let byteSize = 0; + for (const imageData of this._imageCache) { + byteSize += imageData.byteSize; + } + return byteSize; + } + get #cacheLimitReached() { + if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) { + return false; + } + if (this.#byteSize < GlobalImageCache.MAX_BYTE_SIZE) { + return false; + } + return true; + } + shouldCache(ref, pageIndex) { + let pageIndexSet = this._refCache.get(ref); + if (!pageIndexSet) { + pageIndexSet = new Set(); + this._refCache.put(ref, pageIndexSet); + } + pageIndexSet.add(pageIndex); + if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return false; + } + if (!this._imageCache.has(ref) && this.#cacheLimitReached) { + return false; + } + return true; + } + addDecodeFailed(ref) { + this.#decodeFailedSet.put(ref); + } + hasDecodeFailed(ref) { + return this.#decodeFailedSet.has(ref); + } + addByteSize(ref, byteSize) { + const imageData = this._imageCache.get(ref); + if (!imageData) { + return; + } + if (imageData.byteSize) { + return; + } + imageData.byteSize = byteSize; + } + getData(ref, pageIndex) { + const pageIndexSet = this._refCache.get(ref); + if (!pageIndexSet) { + return null; + } + if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) { + return null; + } + const imageData = this._imageCache.get(ref); + if (!imageData) { + return null; + } + pageIndexSet.add(pageIndex); + return imageData; + } + setData(ref, data) { + if (!this._refCache.has(ref)) { + throw new Error('GlobalImageCache.setData - expected "shouldCache" to have been called.'); + } + if (this._imageCache.has(ref)) { + return; + } + if (this.#cacheLimitReached) { + warn("GlobalImageCache.setData - cache limit reached."); + return; + } + this._imageCache.put(ref, data); + } + clear(onlyData = false) { + if (!onlyData) { + this.#decodeFailedSet.clear(); + this._refCache.clear(); + } + this._imageCache.clear(); + } +} + +;// ./src/core/function.js + + + + + + +class PDFFunctionFactory { + constructor({ + xref, + isEvalSupported = true + }) { + this.xref = xref; + this.isEvalSupported = isEvalSupported !== false; + } + create(fn) { + const cachedFunction = this.getCached(fn); + if (cachedFunction) { + return cachedFunction; + } + const parsedFunction = PDFFunction.parse({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fn: fn instanceof Ref ? this.xref.fetch(fn) : fn + }); + this._cache(fn, parsedFunction); + return parsedFunction; + } + createFromArray(fnObj) { + const cachedFunction = this.getCached(fnObj); + if (cachedFunction) { + return cachedFunction; + } + const parsedFunction = PDFFunction.parseArray({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj + }); + this._cache(fnObj, parsedFunction); + return parsedFunction; + } + getCached(cacheKey) { + let fnRef; + if (cacheKey instanceof Ref) { + fnRef = cacheKey; + } else if (cacheKey instanceof Dict) { + fnRef = cacheKey.objId; + } else if (cacheKey instanceof BaseStream) { + fnRef = cacheKey.dict?.objId; + } + if (fnRef) { + const localFunction = this._localFunctionCache.getByRef(fnRef); + if (localFunction) { + return localFunction; + } + } + return null; + } + _cache(cacheKey, parsedFunction) { + if (!parsedFunction) { + throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.'); + } + let fnRef; + if (cacheKey instanceof Ref) { + fnRef = cacheKey; + } else if (cacheKey instanceof Dict) { + fnRef = cacheKey.objId; + } else if (cacheKey instanceof BaseStream) { + fnRef = cacheKey.dict?.objId; + } + if (fnRef) { + this._localFunctionCache.set(null, fnRef, parsedFunction); + } + } + get _localFunctionCache() { + return shadow(this, "_localFunctionCache", new LocalFunctionCache()); + } +} +function toNumberArray(arr) { + if (!Array.isArray(arr)) { + return null; + } + if (!isNumberArray(arr, null)) { + return arr.map(x => +x); + } + return arr; +} +class PDFFunction { + static getSampleArray(size, outputSize, bps, stream) { + let i, ii; + let length = 1; + for (i = 0, ii = size.length; i < ii; i++) { + length *= size[i]; + } + length *= outputSize; + const array = new Array(length); + let codeSize = 0; + let codeBuf = 0; + const sampleMul = 1.0 / (2.0 ** bps - 1); + const strBytes = stream.getBytes((length * bps + 7) / 8); + let strIdx = 0; + for (i = 0; i < length; i++) { + while (codeSize < bps) { + codeBuf <<= 8; + codeBuf |= strBytes[strIdx++]; + codeSize += 8; + } + codeSize -= bps; + array[i] = (codeBuf >> codeSize) * sampleMul; + codeBuf &= (1 << codeSize) - 1; + } + return array; + } + static parse({ + xref, + isEvalSupported, + fn + }) { + const dict = fn.dict || fn; + const typeNum = dict.get("FunctionType"); + switch (typeNum) { + case 0: + return this.constructSampled({ + xref, + isEvalSupported, + fn, + dict + }); + case 1: + break; + case 2: + return this.constructInterpolated({ + xref, + isEvalSupported, + dict + }); + case 3: + return this.constructStiched({ + xref, + isEvalSupported, + dict + }); + case 4: + return this.constructPostScript({ + xref, + isEvalSupported, + fn, + dict + }); + } + throw new FormatError("Unknown type of function"); + } + static parseArray({ + xref, + isEvalSupported, + fnObj + }) { + if (!Array.isArray(fnObj)) { + return this.parse({ + xref, + isEvalSupported, + fn: fnObj + }); + } + const fnArray = []; + for (const fn of fnObj) { + fnArray.push(this.parse({ + xref, + isEvalSupported, + fn: xref.fetchIfRef(fn) + })); + } + return function (src, srcOffset, dest, destOffset) { + for (let i = 0, ii = fnArray.length; i < ii; i++) { + fnArray[i](src, srcOffset, dest, destOffset + i); + } + }; + } + static constructSampled({ + xref, + isEvalSupported, + fn, + dict + }) { + function toMultiArray(arr) { + const inputLength = arr.length; + const out = []; + let index = 0; + for (let i = 0; i < inputLength; i += 2) { + out[index++] = [arr[i], arr[i + 1]]; + } + return out; + } + function interpolate(x, xmin, xmax, ymin, ymax) { + return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin)); + } + let domain = toNumberArray(dict.getArray("Domain")); + let range = toNumberArray(dict.getArray("Range")); + if (!domain || !range) { + throw new FormatError("No domain or range"); + } + const inputSize = domain.length / 2; + const outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); + const size = toNumberArray(dict.getArray("Size")); + const bps = dict.get("BitsPerSample"); + const order = dict.get("Order") || 1; + if (order !== 1) { + info("No support for cubic spline interpolation: " + order); + } + let encode = toNumberArray(dict.getArray("Encode")); + if (!encode) { + encode = []; + for (let i = 0; i < inputSize; ++i) { + encode.push([0, size[i] - 1]); + } + } else { + encode = toMultiArray(encode); + } + let decode = toNumberArray(dict.getArray("Decode")); + decode = !decode ? range : toMultiArray(decode); + const samples = this.getSampleArray(size, outputSize, bps, fn); + return function constructSampledFn(src, srcOffset, dest, destOffset) { + const cubeVertices = 1 << inputSize; + const cubeN = new Float64Array(cubeVertices); + const cubeVertex = new Uint32Array(cubeVertices); + let i, j; + for (j = 0; j < cubeVertices; j++) { + cubeN[j] = 1; + } + let k = outputSize, + pos = 1; + for (i = 0; i < inputSize; ++i) { + const domain_2i = domain[i][0]; + const domain_2i_1 = domain[i][1]; + const xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1); + let e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]); + const size_i = size[i]; + e = Math.min(Math.max(e, 0), size_i - 1); + const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; + const n0 = e0 + 1 - e; + const n1 = e - e0; + const offset0 = e0 * k; + const offset1 = offset0 + k; + for (j = 0; j < cubeVertices; j++) { + if (j & pos) { + cubeN[j] *= n1; + cubeVertex[j] += offset1; + } else { + cubeN[j] *= n0; + cubeVertex[j] += offset0; + } + } + k *= size_i; + pos <<= 1; + } + for (j = 0; j < outputSize; ++j) { + let rj = 0; + for (i = 0; i < cubeVertices; i++) { + rj += samples[cubeVertex[i] + j] * cubeN[i]; + } + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); + } + }; + } + static constructInterpolated({ + xref, + isEvalSupported, + dict + }) { + const c0 = toNumberArray(dict.getArray("C0")) || [0]; + const c1 = toNumberArray(dict.getArray("C1")) || [1]; + const n = dict.get("N"); + const diff = []; + for (let i = 0, ii = c0.length; i < ii; ++i) { + diff.push(c1[i] - c0[i]); + } + const length = diff.length; + return function constructInterpolatedFn(src, srcOffset, dest, destOffset) { + const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n; + for (let j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + } + static constructStiched({ + xref, + isEvalSupported, + dict + }) { + const domain = toNumberArray(dict.getArray("Domain")); + if (!domain) { + throw new FormatError("No domain"); + } + const inputSize = domain.length / 2; + if (inputSize !== 1) { + throw new FormatError("Bad domain for stiched function"); + } + const fns = []; + for (const fn of dict.get("Functions")) { + fns.push(this.parse({ + xref, + isEvalSupported, + fn: xref.fetchIfRef(fn) + })); + } + const bounds = toNumberArray(dict.getArray("Bounds")); + const encode = toNumberArray(dict.getArray("Encode")); + const tmpBuf = new Float32Array(1); + return function constructStichedFn(src, srcOffset, dest, destOffset) { + const clip = function constructStichedFromIRClip(v, min, max) { + if (v > max) { + v = max; + } else if (v < min) { + v = min; + } + return v; + }; + const v = clip(src[srcOffset], domain[0], domain[1]); + const length = bounds.length; + let i; + for (i = 0; i < length; ++i) { + if (v < bounds[i]) { + break; + } + } + let dmin = domain[0]; + if (i > 0) { + dmin = bounds[i - 1]; + } + let dmax = domain[1]; + if (i < bounds.length) { + dmax = bounds[i]; + } + const rmin = encode[2 * i]; + const rmax = encode[2 * i + 1]; + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + fns[i](tmpBuf, 0, dest, destOffset); + }; + } + static constructPostScript({ + xref, + isEvalSupported, + fn, + dict + }) { + const domain = toNumberArray(dict.getArray("Domain")); + const range = toNumberArray(dict.getArray("Range")); + if (!domain) { + throw new FormatError("No domain."); + } + if (!range) { + throw new FormatError("No range."); + } + const lexer = new PostScriptLexer(fn); + const parser = new PostScriptParser(lexer); + const code = parser.parse(); + if (isEvalSupported && FeatureTest.isEvalSupported) { + const compiled = new PostScriptCompiler().compile(code, domain, range); + if (compiled) { + return new Function("src", "srcOffset", "dest", "destOffset", compiled); + } + } + info("Unable to compile PS function"); + const numOutputs = range.length >> 1; + const numInputs = domain.length >> 1; + const evaluator = new PostScriptEvaluator(code); + const cache = Object.create(null); + const MAX_CACHE_SIZE = 2048 * 4; + let cache_available = MAX_CACHE_SIZE; + const tmpBuf = new Float32Array(numInputs); + return function constructPostScriptFn(src, srcOffset, dest, destOffset) { + let i, value; + let key = ""; + const input = tmpBuf; + for (i = 0; i < numInputs; i++) { + value = src[srcOffset + i]; + input[i] = value; + key += value + "_"; + } + const cachedValue = cache[key]; + if (cachedValue !== undefined) { + dest.set(cachedValue, destOffset); + return; + } + const output = new Float32Array(numOutputs); + const stack = evaluator.execute(input); + const stackIndex = stack.length - numOutputs; + for (i = 0; i < numOutputs; i++) { + value = stack[stackIndex + i]; + let bound = range[i * 2]; + if (value < bound) { + value = bound; + } else { + bound = range[i * 2 + 1]; + if (value > bound) { + value = bound; + } + } + output[i] = value; + } + if (cache_available > 0) { + cache_available--; + cache[key] = output; + } + dest.set(output, destOffset); + }; + } +} +function isPDFFunction(v) { + let fnDict; + if (v instanceof Dict) { + fnDict = v; + } else if (v instanceof BaseStream) { + fnDict = v.dict; + } else { + return false; + } + return fnDict.has("FunctionType"); +} +class PostScriptStack { + static MAX_STACK_SIZE = 100; + constructor(initialStack) { + this.stack = initialStack ? Array.from(initialStack) : []; + } + push(value) { + if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) { + throw new Error("PostScript function stack overflow."); + } + this.stack.push(value); + } + pop() { + if (this.stack.length <= 0) { + throw new Error("PostScript function stack underflow."); + } + return this.stack.pop(); + } + copy(n) { + if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) { + throw new Error("PostScript function stack overflow."); + } + const stack = this.stack; + for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) { + stack.push(stack[i]); + } + } + index(n) { + this.push(this.stack[this.stack.length - n - 1]); + } + roll(n, p) { + const stack = this.stack; + const l = stack.length - n; + const r = stack.length - 1; + const c = l + (p - Math.floor(p / n) * n); + for (let i = l, j = r; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (let i = l, j = c - 1; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + for (let i = c, j = r; i < j; i++, j--) { + const t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + } +} +class PostScriptEvaluator { + constructor(operators) { + this.operators = operators; + } + execute(initialStack) { + const stack = new PostScriptStack(initialStack); + let counter = 0; + const operators = this.operators; + const length = operators.length; + let operator, a, b; + while (counter < length) { + operator = operators[counter++]; + if (typeof operator === "number") { + stack.push(operator); + continue; + } + switch (operator) { + case "jz": + b = stack.pop(); + a = stack.pop(); + if (!a) { + counter = b; + } + break; + case "j": + a = stack.pop(); + counter = a; + break; + case "abs": + a = stack.pop(); + stack.push(Math.abs(a)); + break; + case "add": + b = stack.pop(); + a = stack.pop(); + stack.push(a + b); + break; + case "and": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a && b); + } else { + stack.push(a & b); + } + break; + case "atan": + b = stack.pop(); + a = stack.pop(); + a = Math.atan2(a, b) / Math.PI * 180; + if (a < 0) { + a += 360; + } + stack.push(a); + break; + case "bitshift": + b = stack.pop(); + a = stack.pop(); + if (a > 0) { + stack.push(a << b); + } else { + stack.push(a >> b); + } + break; + case "ceiling": + a = stack.pop(); + stack.push(Math.ceil(a)); + break; + case "copy": + a = stack.pop(); + stack.copy(a); + break; + case "cos": + a = stack.pop(); + stack.push(Math.cos(a % 360 / 180 * Math.PI)); + break; + case "cvi": + a = stack.pop() | 0; + stack.push(a); + break; + case "cvr": + break; + case "div": + b = stack.pop(); + a = stack.pop(); + stack.push(a / b); + break; + case "dup": + stack.copy(1); + break; + case "eq": + b = stack.pop(); + a = stack.pop(); + stack.push(a === b); + break; + case "exch": + stack.roll(2, 1); + break; + case "exp": + b = stack.pop(); + a = stack.pop(); + stack.push(a ** b); + break; + case "false": + stack.push(false); + break; + case "floor": + a = stack.pop(); + stack.push(Math.floor(a)); + break; + case "ge": + b = stack.pop(); + a = stack.pop(); + stack.push(a >= b); + break; + case "gt": + b = stack.pop(); + a = stack.pop(); + stack.push(a > b); + break; + case "idiv": + b = stack.pop(); + a = stack.pop(); + stack.push(a / b | 0); + break; + case "index": + a = stack.pop(); + stack.index(a); + break; + case "le": + b = stack.pop(); + a = stack.pop(); + stack.push(a <= b); + break; + case "ln": + a = stack.pop(); + stack.push(Math.log(a)); + break; + case "log": + a = stack.pop(); + stack.push(Math.log10(a)); + break; + case "lt": + b = stack.pop(); + a = stack.pop(); + stack.push(a < b); + break; + case "mod": + b = stack.pop(); + a = stack.pop(); + stack.push(a % b); + break; + case "mul": + b = stack.pop(); + a = stack.pop(); + stack.push(a * b); + break; + case "ne": + b = stack.pop(); + a = stack.pop(); + stack.push(a !== b); + break; + case "neg": + a = stack.pop(); + stack.push(-a); + break; + case "not": + a = stack.pop(); + if (typeof a === "boolean") { + stack.push(!a); + } else { + stack.push(~a); + } + break; + case "or": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a || b); + } else { + stack.push(a | b); + } + break; + case "pop": + stack.pop(); + break; + case "roll": + b = stack.pop(); + a = stack.pop(); + stack.roll(a, b); + break; + case "round": + a = stack.pop(); + stack.push(Math.round(a)); + break; + case "sin": + a = stack.pop(); + stack.push(Math.sin(a % 360 / 180 * Math.PI)); + break; + case "sqrt": + a = stack.pop(); + stack.push(Math.sqrt(a)); + break; + case "sub": + b = stack.pop(); + a = stack.pop(); + stack.push(a - b); + break; + case "true": + stack.push(true); + break; + case "truncate": + a = stack.pop(); + a = a < 0 ? Math.ceil(a) : Math.floor(a); + stack.push(a); + break; + case "xor": + b = stack.pop(); + a = stack.pop(); + if (typeof a === "boolean" && typeof b === "boolean") { + stack.push(a !== b); + } else { + stack.push(a ^ b); + } + break; + default: + throw new FormatError(`Unknown operator ${operator}`); + } + } + return stack.stack; + } +} +class AstNode { + constructor(type) { + this.type = type; + } + visit(visitor) { + unreachable("abstract method"); + } +} +class AstArgument extends AstNode { + constructor(index, min, max) { + super("args"); + this.index = index; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitArgument(this); + } +} +class AstLiteral extends AstNode { + constructor(number) { + super("literal"); + this.number = number; + this.min = number; + this.max = number; + } + visit(visitor) { + visitor.visitLiteral(this); + } +} +class AstBinaryOperation extends AstNode { + constructor(op, arg1, arg2, min, max) { + super("binary"); + this.op = op; + this.arg1 = arg1; + this.arg2 = arg2; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitBinaryOperation(this); + } +} +class AstMin extends AstNode { + constructor(arg, max) { + super("max"); + this.arg = arg; + this.min = arg.min; + this.max = max; + } + visit(visitor) { + visitor.visitMin(this); + } +} +class AstVariable extends AstNode { + constructor(index, min, max) { + super("var"); + this.index = index; + this.min = min; + this.max = max; + } + visit(visitor) { + visitor.visitVariable(this); + } +} +class AstVariableDefinition extends AstNode { + constructor(variable, arg) { + super("definition"); + this.variable = variable; + this.arg = arg; + } + visit(visitor) { + visitor.visitVariableDefinition(this); + } +} +class ExpressionBuilderVisitor { + constructor() { + this.parts = []; + } + visitArgument(arg) { + this.parts.push("Math.max(", arg.min, ", Math.min(", arg.max, ", src[srcOffset + ", arg.index, "]))"); + } + visitVariable(variable) { + this.parts.push("v", variable.index); + } + visitLiteral(literal) { + this.parts.push(literal.number); + } + visitBinaryOperation(operation) { + this.parts.push("("); + operation.arg1.visit(this); + this.parts.push(" ", operation.op, " "); + operation.arg2.visit(this); + this.parts.push(")"); + } + visitVariableDefinition(definition) { + this.parts.push("var "); + definition.variable.visit(this); + this.parts.push(" = "); + definition.arg.visit(this); + this.parts.push(";"); + } + visitMin(max) { + this.parts.push("Math.min("); + max.arg.visit(this); + this.parts.push(", ", max.max, ")"); + } + toString() { + return this.parts.join(""); + } +} +function buildAddOperation(num1, num2) { + if (num2.type === "literal" && num2.number === 0) { + return num1; + } + if (num1.type === "literal" && num1.number === 0) { + return num2; + } + if (num2.type === "literal" && num1.type === "literal") { + return new AstLiteral(num1.number + num2.number); + } + return new AstBinaryOperation("+", num1, num2, num1.min + num2.min, num1.max + num2.max); +} +function buildMulOperation(num1, num2) { + if (num2.type === "literal") { + if (num2.number === 0) { + return new AstLiteral(0); + } else if (num2.number === 1) { + return num1; + } else if (num1.type === "literal") { + return new AstLiteral(num1.number * num2.number); + } + } + if (num1.type === "literal") { + if (num1.number === 0) { + return new AstLiteral(0); + } else if (num1.number === 1) { + return num2; + } + } + const min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + const max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + return new AstBinaryOperation("*", num1, num2, min, max); +} +function buildSubOperation(num1, num2) { + if (num2.type === "literal") { + if (num2.number === 0) { + return num1; + } else if (num1.type === "literal") { + return new AstLiteral(num1.number - num2.number); + } + } + if (num2.type === "binary" && num2.op === "-" && num1.type === "literal" && num1.number === 1 && num2.arg1.type === "literal" && num2.arg1.number === 1) { + return num2.arg2; + } + return new AstBinaryOperation("-", num1, num2, num1.min - num2.max, num1.max - num2.min); +} +function buildMinOperation(num1, max) { + if (num1.min >= max) { + return new AstLiteral(max); + } else if (num1.max <= max) { + return num1; + } + return new AstMin(num1, max); +} +class PostScriptCompiler { + compile(code, domain, range) { + const stack = []; + const instructions = []; + const inputSize = domain.length >> 1, + outputSize = range.length >> 1; + let lastRegister = 0; + let n, j; + let num1, num2, ast1, ast2, tmpVar, item; + for (let i = 0; i < inputSize; i++) { + stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1])); + } + for (let i = 0, ii = code.length; i < ii; i++) { + item = code[i]; + if (typeof item === "number") { + stack.push(new AstLiteral(item)); + continue; + } + switch (item) { + case "add": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildAddOperation(num1, num2)); + break; + case "cvr": + if (stack.length < 1) { + return null; + } + break; + case "mul": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildMulOperation(num1, num2)); + break; + case "sub": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildSubOperation(num1, num2)); + break; + case "exch": + if (stack.length < 2) { + return null; + } + ast1 = stack.pop(); + ast2 = stack.pop(); + stack.push(ast1, ast2); + break; + case "pop": + if (stack.length < 1) { + return null; + } + stack.pop(); + break; + case "index": + if (stack.length < 1) { + return null; + } + num1 = stack.pop(); + if (num1.type !== "literal") { + return null; + } + n = num1.number; + if (n < 0 || !Number.isInteger(n) || stack.length < n) { + return null; + } + ast1 = stack[stack.length - n - 1]; + if (ast1.type === "literal" || ast1.type === "var") { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - n - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case "dup": + if (stack.length < 1) { + return null; + } + if (typeof code[i + 1] === "number" && code[i + 2] === "gt" && code[i + 3] === i + 7 && code[i + 4] === "jz" && code[i + 5] === "pop" && code[i + 6] === code[i + 1]) { + num1 = stack.pop(); + stack.push(buildMinOperation(num1, code[i + 1])); + i += 6; + break; + } + ast1 = stack.at(-1); + if (ast1.type === "literal" || ast1.type === "var") { + stack.push(ast1); + break; + } + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + case "roll": + if (stack.length < 2) { + return null; + } + num2 = stack.pop(); + num1 = stack.pop(); + if (num2.type !== "literal" || num1.type !== "literal") { + return null; + } + j = num2.number; + n = num1.number; + if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) { + return null; + } + j = (j % n + n) % n; + if (j === 0) { + break; + } + stack.push(...stack.splice(stack.length - n, n - j)); + break; + default: + return null; + } + } + if (stack.length !== outputSize) { + return null; + } + const result = []; + for (const instruction of instructions) { + const statementBuilder = new ExpressionBuilderVisitor(); + instruction.visit(statementBuilder); + result.push(statementBuilder.toString()); + } + for (let i = 0, ii = stack.length; i < ii; i++) { + const expr = stack[i], + statementBuilder = new ExpressionBuilderVisitor(); + expr.visit(statementBuilder); + const min = range[i * 2], + max = range[i * 2 + 1]; + const out = [statementBuilder.toString()]; + if (min > expr.min) { + out.unshift("Math.max(", min, ", "); + out.push(")"); + } + if (max < expr.max) { + out.unshift("Math.min(", max, ", "); + out.push(")"); + } + out.unshift("dest[destOffset + ", i, "] = "); + out.push(";"); + result.push(out.join("")); + } + return result.join("\n"); + } +} + +;// ./src/core/bidi.js + +const baseTypes = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "ON", "ON", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "ON", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "ON", "ET", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "L", "ON", "ON", "BN", "ON", "ON", "ET", "ET", "EN", "EN", "ON", "L", "ON", "ON", "ON", "EN", "L", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L"]; +const arabicTypes = ["AN", "AN", "AN", "AN", "AN", "AN", "ON", "ON", "AL", "ET", "ET", "AL", "CS", "AL", "ON", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "ON", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL"]; +function isOdd(i) { + return (i & 1) !== 0; +} +function isEven(i) { + return (i & 1) === 0; +} +function findUnequal(arr, start, value) { + let j, jj; + for (j = start, jj = arr.length; j < jj; ++j) { + if (arr[j] !== value) { + return j; + } + } + return j; +} +function setValues(arr, start, end, value) { + for (let j = start; j < end; ++j) { + arr[j] = value; + } +} +function reverseValues(arr, start, end) { + for (let i = start, j = end - 1; i < j; ++i, --j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } +} +function createBidiText(str, isLTR, vertical = false) { + let dir = "ltr"; + if (vertical) { + dir = "ttb"; + } else if (!isLTR) { + dir = "rtl"; + } + return { + str, + dir + }; +} +const chars = []; +const types = []; +function bidi(str, startLevel = -1, vertical = false) { + let isLTR = true; + const strLength = str.length; + if (strLength === 0 || vertical) { + return createBidiText(str, isLTR, vertical); + } + chars.length = strLength; + types.length = strLength; + let numBidi = 0; + let i, ii; + for (i = 0; i < strLength; ++i) { + chars[i] = str.charAt(i); + const charCode = str.charCodeAt(i); + let charType = "L"; + if (charCode <= 0x00ff) { + charType = baseTypes[charCode]; + } else if (0x0590 <= charCode && charCode <= 0x05f4) { + charType = "R"; + } else if (0x0600 <= charCode && charCode <= 0x06ff) { + charType = arabicTypes[charCode & 0xff]; + if (!charType) { + warn("Bidi: invalid Unicode character " + charCode.toString(16)); + } + } else if (0x0700 <= charCode && charCode <= 0x08ac || 0xfb50 <= charCode && charCode <= 0xfdff || 0xfe70 <= charCode && charCode <= 0xfeff) { + charType = "AL"; + } + if (charType === "R" || charType === "AL" || charType === "AN") { + numBidi++; + } + types[i] = charType; + } + if (numBidi === 0) { + isLTR = true; + return createBidiText(str, isLTR); + } + if (startLevel === -1) { + if (numBidi / strLength < 0.3 && strLength > 4) { + isLTR = true; + startLevel = 0; + } else { + isLTR = false; + startLevel = 1; + } + } + const levels = []; + for (i = 0; i < strLength; ++i) { + levels[i] = startLevel; + } + const e = isOdd(startLevel) ? "R" : "L"; + const sor = e; + const eor = sor; + let lastType = sor; + for (i = 0; i < strLength; ++i) { + if (types[i] === "NSM") { + types[i] = lastType; + } else { + lastType = types[i]; + } + } + lastType = sor; + let t; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "EN") { + types[i] = lastType === "AL" ? "AN" : "EN"; + } else if (t === "R" || t === "L" || t === "AL") { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "AL") { + types[i] = "R"; + } + } + for (i = 1; i < strLength - 1; ++i) { + if (types[i] === "ES" && types[i - 1] === "EN" && types[i + 1] === "EN") { + types[i] = "EN"; + } + if (types[i] === "CS" && (types[i - 1] === "EN" || types[i - 1] === "AN") && types[i + 1] === types[i - 1]) { + types[i] = types[i - 1]; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "EN") { + for (let j = i - 1; j >= 0; --j) { + if (types[j] !== "ET") { + break; + } + types[j] = "EN"; + } + for (let j = i + 1; j < strLength; ++j) { + if (types[j] !== "ET") { + break; + } + types[j] = "EN"; + } + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "WS" || t === "ES" || t === "ET" || t === "CS") { + types[i] = "ON"; + } + } + lastType = sor; + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (t === "EN") { + types[i] = lastType === "L" ? "L" : "EN"; + } else if (t === "R" || t === "L") { + lastType = t; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "ON") { + const end = findUnequal(types, i + 1, "ON"); + let before = sor; + if (i > 0) { + before = types[i - 1]; + } + let after = eor; + if (end + 1 < strLength) { + after = types[end + 1]; + } + if (before !== "L") { + before = "R"; + } + if (after !== "L") { + after = "R"; + } + if (before === after) { + setValues(types, i, end, before); + } + i = end - 1; + } + } + for (i = 0; i < strLength; ++i) { + if (types[i] === "ON") { + types[i] = e; + } + } + for (i = 0; i < strLength; ++i) { + t = types[i]; + if (isEven(levels[i])) { + if (t === "R") { + levels[i] += 1; + } else if (t === "AN" || t === "EN") { + levels[i] += 2; + } + } else if (t === "L" || t === "AN" || t === "EN") { + levels[i] += 1; + } + } + let highestLevel = -1; + let lowestOddLevel = 99; + let level; + for (i = 0, ii = levels.length; i < ii; ++i) { + level = levels[i]; + if (highestLevel < level) { + highestLevel = level; + } + if (lowestOddLevel > level && isOdd(level)) { + lowestOddLevel = level; + } + } + for (level = highestLevel; level >= lowestOddLevel; --level) { + let start = -1; + for (i = 0, ii = levels.length; i < ii; ++i) { + if (levels[i] < level) { + if (start >= 0) { + reverseValues(chars, start, i); + start = -1; + } + } else if (start < 0) { + start = i; + } + } + if (start >= 0) { + reverseValues(chars, start, levels.length); + } + } + for (i = 0, ii = chars.length; i < ii; ++i) { + const ch = chars[i]; + if (ch === "<" || ch === ">") { + chars[i] = ""; + } + } + return createBidiText(chars.join(""), isLTR); +} + +;// ./src/core/font_substitutions.js + + + +const NORMAL = { + style: "normal", + weight: "normal" +}; +const BOLD = { + style: "normal", + weight: "bold" +}; +const ITALIC = { + style: "italic", + weight: "normal" +}; +const BOLDITALIC = { + style: "italic", + weight: "bold" +}; +const substitutionMap = new Map([["Times-Roman", { + local: ["Times New Roman", "Times-Roman", "Times", "Liberation Serif", "Nimbus Roman", "Nimbus Roman L", "Tinos", "Thorndale", "TeX Gyre Termes", "FreeSerif", "Linux Libertine O", "Libertinus Serif", "DejaVu Serif", "Bitstream Vera Serif", "Ubuntu"], + style: NORMAL, + ultimate: "serif" +}], ["Times-Bold", { + alias: "Times-Roman", + style: BOLD, + ultimate: "serif" +}], ["Times-Italic", { + alias: "Times-Roman", + style: ITALIC, + ultimate: "serif" +}], ["Times-BoldItalic", { + alias: "Times-Roman", + style: BOLDITALIC, + ultimate: "serif" +}], ["Helvetica", { + local: ["Helvetica", "Helvetica Neue", "Arial", "Arial Nova", "Liberation Sans", "Arimo", "Nimbus Sans", "Nimbus Sans L", "A030", "TeX Gyre Heros", "FreeSans", "DejaVu Sans", "Albany", "Bitstream Vera Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Apple Symbols", "Cantarell"], + path: "LiberationSans-Regular.ttf", + style: NORMAL, + ultimate: "sans-serif" +}], ["Helvetica-Bold", { + alias: "Helvetica", + path: "LiberationSans-Bold.ttf", + style: BOLD, + ultimate: "sans-serif" +}], ["Helvetica-Oblique", { + alias: "Helvetica", + path: "LiberationSans-Italic.ttf", + style: ITALIC, + ultimate: "sans-serif" +}], ["Helvetica-BoldOblique", { + alias: "Helvetica", + path: "LiberationSans-BoldItalic.ttf", + style: BOLDITALIC, + ultimate: "sans-serif" +}], ["Courier", { + local: ["Courier", "Courier New", "Liberation Mono", "Nimbus Mono", "Nimbus Mono L", "Cousine", "Cumberland", "TeX Gyre Cursor", "FreeMono", "Linux Libertine Mono O", "Libertinus Mono"], + style: NORMAL, + ultimate: "monospace" +}], ["Courier-Bold", { + alias: "Courier", + style: BOLD, + ultimate: "monospace" +}], ["Courier-Oblique", { + alias: "Courier", + style: ITALIC, + ultimate: "monospace" +}], ["Courier-BoldOblique", { + alias: "Courier", + style: BOLDITALIC, + ultimate: "monospace" +}], ["ArialBlack", { + local: ["Arial Black"], + style: { + style: "normal", + weight: "900" + }, + fallback: "Helvetica-Bold" +}], ["ArialBlack-Bold", { + alias: "ArialBlack" +}], ["ArialBlack-Italic", { + alias: "ArialBlack", + style: { + style: "italic", + weight: "900" + }, + fallback: "Helvetica-BoldOblique" +}], ["ArialBlack-BoldItalic", { + alias: "ArialBlack-Italic" +}], ["ArialNarrow", { + local: ["Arial Narrow", "Liberation Sans Narrow", "Helvetica Condensed", "Nimbus Sans Narrow", "TeX Gyre Heros Cn"], + style: NORMAL, + fallback: "Helvetica" +}], ["ArialNarrow-Bold", { + alias: "ArialNarrow", + style: BOLD, + fallback: "Helvetica-Bold" +}], ["ArialNarrow-Italic", { + alias: "ArialNarrow", + style: ITALIC, + fallback: "Helvetica-Oblique" +}], ["ArialNarrow-BoldItalic", { + alias: "ArialNarrow", + style: BOLDITALIC, + fallback: "Helvetica-BoldOblique" +}], ["Calibri", { + local: ["Calibri", "Carlito"], + style: NORMAL, + fallback: "Helvetica" +}], ["Calibri-Bold", { + alias: "Calibri", + style: BOLD, + fallback: "Helvetica-Bold" +}], ["Calibri-Italic", { + alias: "Calibri", + style: ITALIC, + fallback: "Helvetica-Oblique" +}], ["Calibri-BoldItalic", { + alias: "Calibri", + style: BOLDITALIC, + fallback: "Helvetica-BoldOblique" +}], ["Wingdings", { + local: ["Wingdings", "URW Dingbats"], + style: NORMAL +}], ["Wingdings-Regular", { + alias: "Wingdings" +}], ["Wingdings-Bold", { + alias: "Wingdings" +}]]); +const fontAliases = new Map([["Arial-Black", "ArialBlack"]]); +function getStyleToAppend(style) { + switch (style) { + case BOLD: + return "Bold"; + case ITALIC: + return "Italic"; + case BOLDITALIC: + return "Bold Italic"; + default: + if (style?.weight === "bold") { + return "Bold"; + } + if (style?.style === "italic") { + return "Italic"; + } + } + return ""; +} +function getFamilyName(str) { + const keywords = new Set(["thin", "extralight", "ultralight", "demilight", "semilight", "light", "book", "regular", "normal", "medium", "demibold", "semibold", "bold", "extrabold", "ultrabold", "black", "heavy", "extrablack", "ultrablack", "roman", "italic", "oblique", "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "bolditalic"]); + return str.split(/[- ,+]+/g).filter(tok => !keywords.has(tok.toLowerCase())).join(" "); +} +function generateFont({ + alias, + local, + path, + fallback, + style, + ultimate +}, src, localFontPath, useFallback = true, usePath = true, append = "") { + const result = { + style: null, + ultimate: null + }; + if (local) { + const extra = append ? ` ${append}` : ""; + for (const name of local) { + src.push(`local(${name}${extra})`); + } + } + if (alias) { + const substitution = substitutionMap.get(alias); + const aliasAppend = append || getStyleToAppend(style); + Object.assign(result, generateFont(substitution, src, localFontPath, useFallback && !fallback, usePath && !path, aliasAppend)); + } + if (style) { + result.style = style; + } + if (ultimate) { + result.ultimate = ultimate; + } + if (useFallback && fallback) { + const fallbackInfo = substitutionMap.get(fallback); + const { + ultimate: fallbackUltimate + } = generateFont(fallbackInfo, src, localFontPath, useFallback, usePath && !path, append); + result.ultimate ||= fallbackUltimate; + } + if (usePath && path && localFontPath) { + src.push(`url(${localFontPath}${path})`); + } + return result; +} +function getFontSubstitution(systemFontCache, idFactory, localFontPath, baseFontName, standardFontName, type) { + if (baseFontName.startsWith("InvalidPDFjsFont_")) { + return null; + } + if ((type === "TrueType" || type === "Type1") && /^[A-Z]{6}\+/.test(baseFontName)) { + baseFontName = baseFontName.slice(7); + } + baseFontName = normalizeFontName(baseFontName); + const key = baseFontName; + let substitutionInfo = systemFontCache.get(key); + if (substitutionInfo) { + return substitutionInfo; + } + let substitution = substitutionMap.get(baseFontName); + if (!substitution) { + for (const [alias, subst] of fontAliases) { + if (baseFontName.startsWith(alias)) { + baseFontName = `${subst}${baseFontName.substring(alias.length)}`; + substitution = substitutionMap.get(baseFontName); + break; + } + } + } + let mustAddBaseFont = false; + if (!substitution) { + substitution = substitutionMap.get(standardFontName); + mustAddBaseFont = true; + } + const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`; + if (!substitution) { + if (!validateFontName(baseFontName)) { + warn(`Cannot substitute the font because of its name: ${baseFontName}`); + systemFontCache.set(key, null); + return null; + } + const bold = /bold/gi.test(baseFontName); + const italic = /oblique|italic/gi.test(baseFontName); + const style = bold && italic && BOLDITALIC || bold && BOLD || italic && ITALIC || NORMAL; + substitutionInfo = { + css: `"${getFamilyName(baseFontName)}",${loadedName}`, + guessFallback: true, + loadedName, + baseFontName, + src: `local(${baseFontName})`, + style + }; + systemFontCache.set(key, substitutionInfo); + return substitutionInfo; + } + const src = []; + if (mustAddBaseFont && validateFontName(baseFontName)) { + src.push(`local(${baseFontName})`); + } + const { + style, + ultimate + } = generateFont(substitution, src, localFontPath); + const guessFallback = ultimate === null; + const fallback = guessFallback ? "" : `,${ultimate}`; + substitutionInfo = { + css: `"${getFamilyName(baseFontName)}",${loadedName}${fallback}`, + guessFallback, + loadedName, + baseFontName, + src: src.join(","), + style + }; + systemFontCache.set(key, substitutionInfo); + return substitutionInfo; +} + +;// ./src/core/image_resizer.js + + + +const MIN_IMAGE_DIM = 2048; +const MAX_IMAGE_DIM = 65537; +const MAX_ERROR = 128; +class ImageResizer { + static #goodSquareLength = MIN_IMAGE_DIM; + static #isImageDecoderSupported = FeatureTest.isImageDecoderSupported; + constructor(imgData, isMask) { + this._imgData = imgData; + this._isMask = isMask; + } + static get canUseImageDecoder() { + return shadow(this, "canUseImageDecoder", this.#isImageDecoderSupported ? ImageDecoder.isTypeSupported("image/bmp") : Promise.resolve(false)); + } + static needsToBeResized(width, height) { + if (width <= this.#goodSquareLength && height <= this.#goodSquareLength) { + return false; + } + const { + MAX_DIM + } = this; + if (width > MAX_DIM || height > MAX_DIM) { + return true; + } + const area = width * height; + if (this._hasMaxArea) { + return area > this.MAX_AREA; + } + if (area < this.#goodSquareLength ** 2) { + return false; + } + if (this._areGoodDims(width, height)) { + this.#goodSquareLength = Math.max(this.#goodSquareLength, Math.floor(Math.sqrt(width * height))); + return false; + } + this.#goodSquareLength = this._guessMax(this.#goodSquareLength, MAX_DIM, MAX_ERROR, 0); + const maxArea = this.MAX_AREA = this.#goodSquareLength ** 2; + return area > maxArea; + } + static get MAX_DIM() { + return shadow(this, "MAX_DIM", this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1)); + } + static get MAX_AREA() { + this._hasMaxArea = true; + return shadow(this, "MAX_AREA", this._guessMax(this.#goodSquareLength, this.MAX_DIM, MAX_ERROR, 0) ** 2); + } + static set MAX_AREA(area) { + if (area >= 0) { + this._hasMaxArea = true; + shadow(this, "MAX_AREA", area); + } + } + static setOptions({ + canvasMaxAreaInBytes = -1, + isImageDecoderSupported = false + }) { + if (!this._hasMaxArea) { + this.MAX_AREA = canvasMaxAreaInBytes >> 2; + } + this.#isImageDecoderSupported = isImageDecoderSupported; + } + static _areGoodDims(width, height) { + try { + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + ctx.fillRect(0, 0, 1, 1); + const opacity = ctx.getImageData(0, 0, 1, 1).data[3]; + canvas.width = canvas.height = 1; + return opacity !== 0; + } catch { + return false; + } + } + static _guessMax(start, end, tolerance, defaultHeight) { + while (start + tolerance + 1 < end) { + const middle = Math.floor((start + end) / 2); + const height = defaultHeight || middle; + if (this._areGoodDims(middle, height)) { + start = middle; + } else { + end = middle; + } + } + return start; + } + static async createImage(imgData, isMask = false) { + return new ImageResizer(imgData, isMask)._createImage(); + } + async _createImage() { + const { + _imgData: imgData + } = this; + const { + width, + height + } = imgData; + if (width * height * 4 > MAX_INT_32) { + const result = this.#rescaleImageData(); + if (result) { + return result; + } + } + const data = this._encodeBMP(); + let decoder, imagePromise; + if (await ImageResizer.canUseImageDecoder) { + decoder = new ImageDecoder({ + data, + type: "image/bmp", + preferAnimation: false, + transfer: [data.buffer] + }); + imagePromise = decoder.decode().catch(reason => { + warn(`BMP image decoding failed: ${reason}`); + return createImageBitmap(new Blob([this._encodeBMP().buffer], { + type: "image/bmp" + })); + }).finally(() => { + decoder.close(); + }); + } else { + imagePromise = createImageBitmap(new Blob([data.buffer], { + type: "image/bmp" + })); + } + const { + MAX_AREA, + MAX_DIM + } = ImageResizer; + const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(width * height / MAX_AREA)); + const firstFactor = Math.max(minFactor, 2); + const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor; + const N = Math.floor(Math.log2(factor)); + const steps = new Array(N + 2).fill(2); + steps[0] = firstFactor; + steps.splice(-1, 1, factor / (1 << N)); + let newWidth = width; + let newHeight = height; + const result = await imagePromise; + let bitmap = result.image || result; + for (const step of steps) { + const prevWidth = newWidth; + const prevHeight = newHeight; + newWidth = Math.floor(newWidth / step) - 1; + newHeight = Math.floor(newHeight / step) - 1; + const canvas = new OffscreenCanvas(newWidth, newHeight); + const ctx = canvas.getContext("2d"); + ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight); + bitmap.close(); + bitmap = canvas.transferToImageBitmap(); + } + imgData.data = null; + imgData.bitmap = bitmap; + imgData.width = newWidth; + imgData.height = newHeight; + return imgData; + } + #rescaleImageData() { + const { + _imgData: imgData + } = this; + const { + data, + width, + height, + kind + } = imgData; + const rgbaSize = width * height * 4; + const K = Math.ceil(Math.log2(rgbaSize / MAX_INT_32)); + const newWidth = width >> K; + const newHeight = height >> K; + let rgbaData; + let maxHeight = height; + try { + rgbaData = new Uint8Array(rgbaSize); + } catch { + let n = Math.floor(Math.log2(rgbaSize + 1)); + while (true) { + try { + rgbaData = new Uint8Array(2 ** n - 1); + break; + } catch { + n -= 1; + } + } + maxHeight = Math.floor((2 ** n - 1) / (width * 4)); + const newSize = width * maxHeight * 4; + if (newSize < rgbaData.length) { + rgbaData = new Uint8Array(newSize); + } + } + const src32 = new Uint32Array(rgbaData.buffer); + const dest32 = new Uint32Array(newWidth * newHeight); + let srcPos = 0; + let newIndex = 0; + const step = Math.ceil(height / maxHeight); + const remainder = height % maxHeight === 0 ? height : height % maxHeight; + for (let k = 0; k < step; k++) { + const h = k < step - 1 ? maxHeight : remainder; + ({ + srcPos + } = convertToRGBA({ + kind, + src: data, + dest: src32, + width, + height: h, + inverseDecode: this._isMask, + srcPos + })); + for (let i = 0, ii = h >> K; i < ii; i++) { + const buf = src32.subarray((i << K) * width); + for (let j = 0; j < newWidth; j++) { + dest32[newIndex++] = buf[j << K]; + } + } + } + if (ImageResizer.needsToBeResized(newWidth, newHeight)) { + imgData.data = dest32; + imgData.width = newWidth; + imgData.height = newHeight; + imgData.kind = ImageKind.RGBA_32BPP; + return null; + } + const canvas = new OffscreenCanvas(newWidth, newHeight); + const ctx = canvas.getContext("2d", { + willReadFrequently: true + }); + ctx.putImageData(new ImageData(new Uint8ClampedArray(dest32.buffer), newWidth, newHeight), 0, 0); + imgData.data = null; + imgData.bitmap = canvas.transferToImageBitmap(); + imgData.width = newWidth; + imgData.height = newHeight; + return imgData; + } + _encodeBMP() { + const { + width, + height, + kind + } = this._imgData; + let data = this._imgData.data; + let bitPerPixel; + let colorTable = new Uint8Array(0); + let maskTable = colorTable; + let compression = 0; + switch (kind) { + case ImageKind.GRAYSCALE_1BPP: + { + bitPerPixel = 1; + colorTable = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]); + const rowLen = width + 7 >> 3; + const rowSize = rowLen + 3 & -4; + if (rowLen !== rowSize) { + const newData = new Uint8Array(rowSize * height); + let k = 0; + for (let i = 0, ii = height * rowLen; i < ii; i += rowLen, k += rowSize) { + newData.set(data.subarray(i, i + rowLen), k); + } + data = newData; + } + break; + } + case ImageKind.RGB_24BPP: + { + bitPerPixel = 24; + if (width & 3) { + const rowLen = 3 * width; + const rowSize = rowLen + 3 & -4; + const extraLen = rowSize - rowLen; + const newData = new Uint8Array(rowSize * height); + let k = 0; + for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) { + const row = data.subarray(i, i + rowLen); + for (let j = 0; j < rowLen; j += 3) { + newData[k++] = row[j + 2]; + newData[k++] = row[j + 1]; + newData[k++] = row[j]; + } + k += extraLen; + } + data = newData; + } else { + for (let i = 0, ii = data.length; i < ii; i += 3) { + const tmp = data[i]; + data[i] = data[i + 2]; + data[i + 2] = tmp; + } + } + break; + } + case ImageKind.RGBA_32BPP: + bitPerPixel = 32; + compression = 3; + maskTable = new Uint8Array(4 + 4 + 4 + 4 + 52); + const view = new DataView(maskTable.buffer); + if (FeatureTest.isLittleEndian) { + view.setUint32(0, 0x000000ff, true); + view.setUint32(4, 0x0000ff00, true); + view.setUint32(8, 0x00ff0000, true); + view.setUint32(12, 0xff000000, true); + } else { + view.setUint32(0, 0xff000000, true); + view.setUint32(4, 0x00ff0000, true); + view.setUint32(8, 0x0000ff00, true); + view.setUint32(12, 0x000000ff, true); + } + break; + default: + throw new Error("invalid format"); + } + let i = 0; + const headerLength = 40 + maskTable.length; + const fileLength = 14 + headerLength + colorTable.length + data.length; + const bmpData = new Uint8Array(fileLength); + const view = new DataView(bmpData.buffer); + view.setUint16(i, 0x4d42, true); + i += 2; + view.setUint32(i, fileLength, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + view.setUint32(i, 14 + headerLength + colorTable.length, true); + i += 4; + view.setUint32(i, headerLength, true); + i += 4; + view.setInt32(i, width, true); + i += 4; + view.setInt32(i, -height, true); + i += 4; + view.setUint16(i, 1, true); + i += 2; + view.setUint16(i, bitPerPixel, true); + i += 2; + view.setUint32(i, compression, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + view.setInt32(i, 0, true); + i += 4; + view.setInt32(i, 0, true); + i += 4; + view.setUint32(i, colorTable.length / 4, true); + i += 4; + view.setUint32(i, 0, true); + i += 4; + bmpData.set(maskTable, i); + i += maskTable.length; + bmpData.set(colorTable, i); + i += colorTable.length; + bmpData.set(data, i); + return bmpData; + } +} + +;// ./src/shared/murmurhash3.js +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + update(input) { + let data, length; + if (typeof input === "string") { + data = new Uint8Array(input.length * 2); + length = 0; + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if (ArrayBuffer.isView(input)) { + data = input.slice(); + length = data.byteLength; + } else { + throw new Error("Invalid data format, must be a string or TypedArray."); + } + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, + C2 = 0x1b873593; + const C1_LOW = C1 & MASK_LOW, + C2_LOW = C2 & MASK_LOW; + for (let i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + } + hexdigest() { + let h1 = this.h1, + h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0"); + } +} + +;// ./src/core/operator_list.js + +function addState(parentState, pattern, checkFn, iterateFn, processFn) { + let state = parentState; + for (let i = 0, ii = pattern.length - 1; i < ii; i++) { + const item = pattern[i]; + state = state[item] ||= []; + } + state[pattern.at(-1)] = { + checkFn, + iterateFn, + processFn + }; +} +const InitialState = []; +addState(InitialState, [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore], null, function iterateInlineImageGroup(context, i) { + const fnArray = context.fnArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + return fnArray[i] === OPS.transform; + case 2: + return fnArray[i] === OPS.paintInlineImageXObject; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`); +}, function foundInlineImageGroup(context, i) { + const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; + const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; + const MAX_WIDTH = 1000; + const IMAGE_PADDING = 1; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIIXO = curr - 1; + const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK); + if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) { + return i - (i - iFirstSave) % 4; + } + let maxX = 0; + const map = []; + let maxLineHeight = 0; + let currentX = IMAGE_PADDING, + currentY = IMAGE_PADDING; + for (let q = 0; q < count; q++) { + const transform = argsArray[iFirstTransform + (q << 2)]; + const img = argsArray[iFirstPIIXO + (q << 2)][0]; + if (currentX + img.width > MAX_WIDTH) { + maxX = Math.max(maxX, currentX); + currentY += maxLineHeight + 2 * IMAGE_PADDING; + currentX = 0; + maxLineHeight = 0; + } + map.push({ + transform, + x: currentX, + y: currentY, + w: img.width, + h: img.height + }); + currentX += img.width + 2 * IMAGE_PADDING; + maxLineHeight = Math.max(maxLineHeight, img.height); + } + const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; + const imgHeight = currentY + maxLineHeight + IMAGE_PADDING; + const imgData = new Uint8Array(imgWidth * imgHeight * 4); + const imgRowSize = imgWidth << 2; + for (let q = 0; q < count; q++) { + const data = argsArray[iFirstPIIXO + (q << 2)][0].data; + const rowSize = map[q].w << 2; + let dataOffset = 0; + let offset = map[q].x + map[q].y * imgWidth << 2; + imgData.set(data.subarray(0, rowSize), offset - imgRowSize); + for (let k = 0, kk = map[q].h; k < kk; k++) { + imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset); + dataOffset += rowSize; + offset += imgRowSize; + } + imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset); + while (offset >= 0) { + data[offset - 4] = data[offset]; + data[offset - 3] = data[offset + 1]; + data[offset - 2] = data[offset + 2]; + data[offset - 1] = data[offset + 3]; + data[offset + rowSize] = data[offset + rowSize - 4]; + data[offset + rowSize + 1] = data[offset + rowSize - 3]; + data[offset + rowSize + 2] = data[offset + rowSize - 2]; + data[offset + rowSize + 3] = data[offset + rowSize - 1]; + offset -= imgRowSize; + } + } + const img = { + width: imgWidth, + height: imgHeight + }; + if (context.isOffscreenCanvasSupported) { + const canvas = new OffscreenCanvas(imgWidth, imgHeight); + const ctx = canvas.getContext("2d"); + ctx.putImageData(new ImageData(new Uint8ClampedArray(imgData.buffer), imgWidth, imgHeight), 0, 0); + img.bitmap = canvas.transferToImageBitmap(); + img.data = null; + } else { + img.kind = ImageKind.RGBA_32BPP; + img.data = imgData; + } + fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [img, map]); + return iFirstSave + 1; +}); +addState(InitialState, [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore], null, function iterateImageMaskGroup(context, i) { + const fnArray = context.fnArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + return fnArray[i] === OPS.transform; + case 2: + return fnArray[i] === OPS.paintImageMaskXObject; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`); +}, function foundImageMaskGroup(context, i) { + const MIN_IMAGES_IN_MASKS_BLOCK = 10; + const MAX_IMAGES_IN_MASKS_BLOCK = 100; + const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIMXO = curr - 1; + let count = Math.floor((i - iFirstSave) / 4); + if (count < MIN_IMAGES_IN_MASKS_BLOCK) { + return i - (i - iFirstSave) % 4; + } + let isSameImage = false; + let iTransform, transformArgs; + const firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; + const firstTransformArg0 = argsArray[iFirstTransform][0], + firstTransformArg1 = argsArray[iFirstTransform][1], + firstTransformArg2 = argsArray[iFirstTransform][2], + firstTransformArg3 = argsArray[iFirstTransform][3]; + if (firstTransformArg1 === firstTransformArg2) { + isSameImage = true; + iTransform = iFirstTransform + 4; + let iPIMXO = iFirstPIMXO + 4; + for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) { + transformArgs = argsArray[iTransform]; + if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) { + if (q < MIN_IMAGES_IN_MASKS_BLOCK) { + isSameImage = false; + } else { + count = q; + } + break; + } + } + } + if (isSameImage) { + count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK); + const positions = new Float32Array(count * 2); + iTransform = iFirstTransform; + for (let q = 0; q < count; q++, iTransform += 4) { + transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]); + } else { + count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); + const images = []; + for (let q = 0; q < count; q++) { + transformArgs = argsArray[iFirstTransform + (q << 2)]; + const maskParams = argsArray[iFirstPIMXO + (q << 2)][0]; + images.push({ + data: maskParams.data, + width: maskParams.width, + height: maskParams.height, + interpolate: maskParams.interpolate, + count: maskParams.count, + transform: transformArgs + }); + } + fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [images]); + } + return iFirstSave + 1; +}); +addState(InitialState, [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore], function (context) { + const argsArray = context.argsArray; + const iFirstTransform = context.iCurr - 2; + return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0; +}, function iterateImageGroup(context, i) { + const fnArray = context.fnArray, + argsArray = context.argsArray; + const iFirstSave = context.iCurr - 3; + const pos = (i - iFirstSave) % 4; + switch (pos) { + case 0: + return fnArray[i] === OPS.save; + case 1: + if (fnArray[i] !== OPS.transform) { + return false; + } + const iFirstTransform = context.iCurr - 2; + const firstTransformArg0 = argsArray[iFirstTransform][0]; + const firstTransformArg3 = argsArray[iFirstTransform][3]; + if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) { + return false; + } + return true; + case 2: + if (fnArray[i] !== OPS.paintImageXObject) { + return false; + } + const iFirstPIXO = context.iCurr - 1; + const firstPIXOArg0 = argsArray[iFirstPIXO][0]; + if (argsArray[i][0] !== firstPIXOArg0) { + return false; + } + return true; + case 3: + return fnArray[i] === OPS.restore; + } + throw new Error(`iterateImageGroup - invalid pos: ${pos}`); +}, function (context, i) { + const MIN_IMAGES_IN_BLOCK = 3; + const MAX_IMAGES_IN_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstSave = curr - 3; + const iFirstTransform = curr - 2; + const iFirstPIXO = curr - 1; + const firstPIXOArg0 = argsArray[iFirstPIXO][0]; + const firstTransformArg0 = argsArray[iFirstTransform][0]; + const firstTransformArg3 = argsArray[iFirstTransform][3]; + const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK); + if (count < MIN_IMAGES_IN_BLOCK) { + return i - (i - iFirstSave) % 4; + } + const positions = new Float32Array(count * 2); + let iTransform = iFirstTransform; + for (let q = 0; q < count; q++, iTransform += 4) { + const transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + const args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions]; + fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, args); + return iFirstSave + 1; +}); +addState(InitialState, [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText], null, function iterateShowTextGroup(context, i) { + const fnArray = context.fnArray, + argsArray = context.argsArray; + const iFirstSave = context.iCurr - 4; + const pos = (i - iFirstSave) % 5; + switch (pos) { + case 0: + return fnArray[i] === OPS.beginText; + case 1: + return fnArray[i] === OPS.setFont; + case 2: + return fnArray[i] === OPS.setTextMatrix; + case 3: + if (fnArray[i] !== OPS.showText) { + return false; + } + const iFirstSetFont = context.iCurr - 3; + const firstSetFontArg0 = argsArray[iFirstSetFont][0]; + const firstSetFontArg1 = argsArray[iFirstSetFont][1]; + if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) { + return false; + } + return true; + case 4: + return fnArray[i] === OPS.endText; + } + throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`); +}, function (context, i) { + const MIN_CHARS_IN_BLOCK = 3; + const MAX_CHARS_IN_BLOCK = 1000; + const fnArray = context.fnArray, + argsArray = context.argsArray; + const curr = context.iCurr; + const iFirstBeginText = curr - 4; + const iFirstSetFont = curr - 3; + const iFirstSetTextMatrix = curr - 2; + const iFirstShowText = curr - 1; + const iFirstEndText = curr; + const firstSetFontArg0 = argsArray[iFirstSetFont][0]; + const firstSetFontArg1 = argsArray[iFirstSetFont][1]; + let count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK); + if (count < MIN_CHARS_IN_BLOCK) { + return i - (i - iFirstBeginText) % 5; + } + let iFirst = iFirstBeginText; + if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) { + count++; + iFirst -= 5; + } + let iEndText = iFirst + 4; + for (let q = 1; q < count; q++) { + fnArray.splice(iEndText, 3); + argsArray.splice(iEndText, 3); + iEndText += 2; + } + return iEndText + 1; +}); +class NullOptimizer { + constructor(queue) { + this.queue = queue; + } + _optimize() {} + push(fn, args) { + this.queue.fnArray.push(fn); + this.queue.argsArray.push(args); + this._optimize(); + } + flush() {} + reset() {} +} +class QueueOptimizer extends NullOptimizer { + constructor(queue) { + super(queue); + this.state = null; + this.context = { + iCurr: 0, + fnArray: queue.fnArray, + argsArray: queue.argsArray, + isOffscreenCanvasSupported: false + }; + this.match = null; + this.lastProcessed = 0; + } + set isOffscreenCanvasSupported(value) { + this.context.isOffscreenCanvasSupported = value; + } + _optimize() { + const fnArray = this.queue.fnArray; + let i = this.lastProcessed, + ii = fnArray.length; + let state = this.state; + let match = this.match; + if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) { + this.lastProcessed = ii; + return; + } + const context = this.context; + while (i < ii) { + if (match) { + const iterate = (0, match.iterateFn)(context, i); + if (iterate) { + i++; + continue; + } + i = (0, match.processFn)(context, i + 1); + ii = fnArray.length; + match = null; + state = null; + if (i >= ii) { + break; + } + } + state = (state || InitialState)[fnArray[i]]; + if (!state || Array.isArray(state)) { + i++; + continue; + } + context.iCurr = i; + i++; + if (state.checkFn && !(0, state.checkFn)(context)) { + state = null; + continue; + } + match = state; + state = null; + } + this.state = state; + this.match = match; + this.lastProcessed = i; + } + flush() { + while (this.match) { + const length = this.queue.fnArray.length; + this.lastProcessed = (0, this.match.processFn)(this.context, length); + this.match = null; + this.state = null; + this._optimize(); + } + } + reset() { + this.state = null; + this.match = null; + this.lastProcessed = 0; + } +} +class OperatorList { + static CHUNK_SIZE = 1000; + static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5; + constructor(intent = 0, streamSink) { + this._streamSink = streamSink; + this.fnArray = []; + this.argsArray = []; + this.optimizer = streamSink && !(intent & RenderingIntentFlag.OPLIST) ? new QueueOptimizer(this) : new NullOptimizer(this); + this.dependencies = new Set(); + this._totalLength = 0; + this.weight = 0; + this._resolved = streamSink ? null : Promise.resolve(); + } + set isOffscreenCanvasSupported(value) { + this.optimizer.isOffscreenCanvasSupported = value; + } + get length() { + return this.argsArray.length; + } + get ready() { + return this._resolved || this._streamSink.ready; + } + get totalLength() { + return this._totalLength + this.length; + } + addOp(fn, args) { + this.optimizer.push(fn, args); + this.weight++; + if (this._streamSink) { + if (this.weight >= OperatorList.CHUNK_SIZE) { + this.flush(); + } else if (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (fn === OPS.restore || fn === OPS.endText)) { + this.flush(); + } + } + } + addImageOps(fn, args, optionalContent, hasMask = false) { + if (hasMask) { + this.addOp(OPS.save); + this.addOp(OPS.setGState, [[["SMask", false]]]); + } + if (optionalContent !== undefined) { + this.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + this.addOp(fn, args); + if (optionalContent !== undefined) { + this.addOp(OPS.endMarkedContent, []); + } + if (hasMask) { + this.addOp(OPS.restore); + } + } + addDependency(dependency) { + if (this.dependencies.has(dependency)) { + return; + } + this.dependencies.add(dependency); + this.addOp(OPS.dependency, [dependency]); + } + addDependencies(dependencies) { + for (const dependency of dependencies) { + this.addDependency(dependency); + } + } + addOpList(opList) { + if (!(opList instanceof OperatorList)) { + warn('addOpList - ignoring invalid "opList" parameter.'); + return; + } + for (const dependency of opList.dependencies) { + this.dependencies.add(dependency); + } + for (let i = 0, ii = opList.length; i < ii; i++) { + this.addOp(opList.fnArray[i], opList.argsArray[i]); + } + } + getIR() { + return { + fnArray: this.fnArray, + argsArray: this.argsArray, + length: this.length + }; + } + get _transfers() { + const transfers = []; + const { + fnArray, + argsArray, + length + } = this; + for (let i = 0; i < length; i++) { + switch (fnArray[i]) { + case OPS.paintInlineImageXObject: + case OPS.paintInlineImageXObjectGroup: + case OPS.paintImageMaskXObject: + const arg = argsArray[i][0]; + if (!arg.cached && arg.data?.buffer instanceof ArrayBuffer) { + transfers.push(arg.data.buffer); + } + break; + } + } + return transfers; + } + flush(lastChunk = false, separateAnnots = null) { + this.optimizer.flush(); + const length = this.length; + this._totalLength += length; + this._streamSink.enqueue({ + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk, + separateAnnots, + length + }, 1, this._transfers); + this.dependencies.clear(); + this.fnArray.length = 0; + this.argsArray.length = 0; + this.weight = 0; + this.optimizer.reset(); + } +} + +;// ./src/core/image.js + + + + + + + + + +function decodeAndClamp(value, addend, coefficient, max) { + value = addend + value * coefficient; + if (value < 0) { + value = 0; + } else if (value > max) { + value = max; + } + return value; +} +function resizeImageMask(src, bpc, w1, h1, w2, h2) { + const length = w2 * h2; + let dest; + if (bpc <= 8) { + dest = new Uint8Array(length); + } else if (bpc <= 16) { + dest = new Uint16Array(length); + } else { + dest = new Uint32Array(length); + } + const xRatio = w1 / w2; + const yRatio = h1 / h2; + let i, + j, + py, + newIndex = 0, + oldIndex; + const xScaled = new Uint16Array(w2); + const w1Scanline = w1; + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + for (i = 0; i < h2; i++) { + py = Math.floor(i * yRatio) * w1Scanline; + for (j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex]; + } + } + return dest; +} +class PDFImage { + constructor({ + xref, + res, + image, + isInline = false, + smask = null, + mask = null, + isMask = false, + pdfFunctionFactory, + localColorSpaceCache + }) { + this.image = image; + const dict = image.dict; + const filter = dict.get("F", "Filter"); + let filterName; + if (filter instanceof Name) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + const filterZero = xref.fetchIfRef(filter[0]); + if (filterZero instanceof Name) { + filterName = filterZero.name; + } + } + switch (filterName) { + case "JPXDecode": + ({ + width: image.width, + height: image.height, + componentsCount: image.numComps, + bitsPerComponent: image.bitsPerComponent + } = JpxImage.parseImageProperties(image.stream)); + image.stream.reset(); + this.jpxDecoderOptions = { + numComponents: 0, + isIndexedColormap: false, + smaskInData: dict.has("SMaskInData") + }; + break; + case "JBIG2Decode": + image.bitsPerComponent = 1; + image.numComps = 1; + break; + } + let width = dict.get("W", "Width"); + let height = dict.get("H", "Height"); + if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) { + warn("PDFImage - using the Width/Height of the image data, " + "rather than the image dictionary."); + width = image.width; + height = image.height; + } + if (width < 1 || height < 1) { + throw new FormatError(`Invalid image width: ${width} or height: ${height}`); + } + this.width = width; + this.height = height; + this.interpolate = dict.get("I", "Interpolate"); + this.imageMask = dict.get("IM", "ImageMask") || false; + this.matte = dict.get("Matte") || false; + let bitsPerComponent = image.bitsPerComponent; + if (!bitsPerComponent) { + bitsPerComponent = dict.get("BPC", "BitsPerComponent"); + if (!bitsPerComponent) { + if (this.imageMask) { + bitsPerComponent = 1; + } else { + throw new FormatError(`Bits per component missing in image: ${this.imageMask}`); + } + } + } + this.bpc = bitsPerComponent; + if (!this.imageMask) { + let colorSpace = dict.getRaw("CS") || dict.getRaw("ColorSpace"); + const hasColorSpace = !!colorSpace; + if (!hasColorSpace) { + if (this.jpxDecoderOptions) { + colorSpace = Name.get("DeviceRGBA"); + } else { + switch (image.numComps) { + case 1: + colorSpace = Name.get("DeviceGray"); + break; + case 3: + colorSpace = Name.get("DeviceRGB"); + break; + case 4: + colorSpace = Name.get("DeviceCMYK"); + break; + default: + throw new Error(`Images with ${image.numComps} color components not supported.`); + } + } + } else if (this.jpxDecoderOptions?.smaskInData) { + colorSpace = Name.get("DeviceRGBA"); + } + this.colorSpace = ColorSpace.parse({ + cs: colorSpace, + xref, + resources: isInline ? res : null, + pdfFunctionFactory, + localColorSpaceCache + }); + this.numComps = this.colorSpace.numComps; + if (this.jpxDecoderOptions) { + this.jpxDecoderOptions.numComponents = hasColorSpace ? this.numComp : 0; + this.jpxDecoderOptions.isIndexedColormap = this.colorSpace.name === "Indexed"; + } + } + this.decode = dict.getArray("D", "Decode"); + this.needsDecode = false; + if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !ColorSpace.isDefaultDecode(this.decode, 1))) { + this.needsDecode = true; + const max = (1 << bitsPerComponent) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + const isIndexed = this.colorSpace?.name === "Indexed"; + for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) { + const dmin = this.decode[i]; + const dmax = this.decode[i + 1]; + this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin; + this.decodeAddends[j] = isIndexed ? dmin : max * dmin; + } + } + if (smask) { + this.smask = new PDFImage({ + xref, + res, + image: smask, + isInline, + pdfFunctionFactory, + localColorSpaceCache + }); + } else if (mask) { + if (mask instanceof BaseStream) { + const maskDict = mask.dict, + imageMask = maskDict.get("IM", "ImageMask"); + if (!imageMask) { + warn("Ignoring /Mask in image without /ImageMask."); + } else { + this.mask = new PDFImage({ + xref, + res, + image: mask, + isInline, + isMask: true, + pdfFunctionFactory, + localColorSpaceCache + }); + } + } else { + this.mask = mask; + } + } + } + static async buildImage({ + xref, + res, + image, + isInline = false, + pdfFunctionFactory, + localColorSpaceCache + }) { + const imageData = image; + let smaskData = null; + let maskData = null; + const smask = image.dict.get("SMask"); + const mask = image.dict.get("Mask"); + if (smask) { + if (smask instanceof BaseStream) { + smaskData = smask; + } else { + warn("Unsupported /SMask format."); + } + } else if (mask) { + if (mask instanceof BaseStream || Array.isArray(mask)) { + maskData = mask; + } else { + warn("Unsupported /Mask format."); + } + } + return new PDFImage({ + xref, + res, + image: imageData, + isInline, + smask: smaskData, + mask: maskData, + pdfFunctionFactory, + localColorSpaceCache + }); + } + static createRawMask({ + imgArray, + width, + height, + imageIsFromDecodeStream, + inverseDecode, + interpolate + }) { + const computedLength = (width + 7 >> 3) * height; + const actualLength = imgArray.byteLength; + const haveFullData = computedLength === actualLength; + let data, i; + if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) { + data = imgArray; + } else if (!inverseDecode) { + data = new Uint8Array(imgArray); + } else { + data = new Uint8Array(computedLength); + data.set(imgArray); + data.fill(0xff, actualLength); + } + if (inverseDecode) { + for (i = 0; i < actualLength; i++) { + data[i] ^= 0xff; + } + } + return { + data, + width, + height, + interpolate + }; + } + static async createMask({ + imgArray, + width, + height, + imageIsFromDecodeStream, + inverseDecode, + interpolate, + isOffscreenCanvasSupported = false + }) { + const isSingleOpaquePixel = width === 1 && height === 1 && inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128)); + if (isSingleOpaquePixel) { + return { + isSingleOpaquePixel + }; + } + if (isOffscreenCanvasSupported) { + if (ImageResizer.needsToBeResized(width, height)) { + const data = new Uint8ClampedArray(width * height * 4); + convertBlackAndWhiteToRGBA({ + src: imgArray, + dest: data, + width, + height, + nonBlackColor: 0, + inverseDecode + }); + return ImageResizer.createImage({ + kind: ImageKind.RGBA_32BPP, + data, + width, + height, + interpolate + }); + } + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + const imgData = ctx.createImageData(width, height); + convertBlackAndWhiteToRGBA({ + src: imgArray, + dest: imgData.data, + width, + height, + nonBlackColor: 0, + inverseDecode + }); + ctx.putImageData(imgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width, + height, + interpolate, + bitmap + }; + } + return this.createRawMask({ + imgArray, + width, + height, + inverseDecode, + imageIsFromDecodeStream, + interpolate + }); + } + get drawWidth() { + return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0); + } + get drawHeight() { + return Math.max(this.height, this.smask?.height || 0, this.mask?.height || 0); + } + decodeBuffer(buffer) { + const bpc = this.bpc; + const numComps = this.numComps; + const decodeAddends = this.decodeAddends; + const decodeCoefficients = this.decodeCoefficients; + const max = (1 << bpc) - 1; + let i, ii; + if (bpc === 1) { + for (i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = +!buffer[i]; + } + return; + } + let index = 0; + for (i = 0, ii = this.width * this.height; i < ii; i++) { + for (let j = 0; j < numComps; j++) { + buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max); + index++; + } + } + } + getComponents(buffer) { + const bpc = this.bpc; + if (bpc === 8) { + return buffer; + } + const width = this.width; + const height = this.height; + const numComps = this.numComps; + const length = width * height * numComps; + let bufferPos = 0; + let output; + if (bpc <= 8) { + output = new Uint8Array(length); + } else if (bpc <= 16) { + output = new Uint16Array(length); + } else { + output = new Uint32Array(length); + } + const rowComps = width * numComps; + const max = (1 << bpc) - 1; + let i = 0, + ii, + buf; + if (bpc === 1) { + let mask, loop1End, loop2End; + for (let j = 0; j < height; j++) { + loop1End = i + (rowComps & ~7); + loop2End = i + rowComps; + while (i < loop1End) { + buf = buffer[bufferPos++]; + output[i] = buf >> 7 & 1; + output[i + 1] = buf >> 6 & 1; + output[i + 2] = buf >> 5 & 1; + output[i + 3] = buf >> 4 & 1; + output[i + 4] = buf >> 3 & 1; + output[i + 5] = buf >> 2 & 1; + output[i + 6] = buf >> 1 & 1; + output[i + 7] = buf & 1; + i += 8; + } + if (i < loop2End) { + buf = buffer[bufferPos++]; + mask = 128; + while (i < loop2End) { + output[i++] = +!!(buf & mask); + mask >>= 1; + } + } + } + } else { + let bits = 0; + buf = 0; + for (i = 0, ii = length; i < ii; ++i) { + if (i % rowComps === 0) { + buf = 0; + bits = 0; + } + while (bits < bpc) { + buf = buf << 8 | buffer[bufferPos++]; + bits += 8; + } + const remainingBits = bits - bpc; + let value = buf >> remainingBits; + if (value < 0) { + value = 0; + } else if (value > max) { + value = max; + } + output[i] = value; + buf &= (1 << remainingBits) - 1; + bits = remainingBits; + } + } + return output; + } + async fillOpacity(rgbaBuf, width, height, actualHeight, image) { + const smask = this.smask; + const mask = this.mask; + let alphaBuf, sw, sh, i, ii, j; + if (smask) { + sw = smask.width; + sh = smask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + await smask.fillGrayBuffer(alphaBuf); + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height); + } + } else if (mask) { + if (mask instanceof PDFImage) { + sw = mask.width; + sh = mask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + mask.numComps = 1; + await mask.fillGrayBuffer(alphaBuf); + for (i = 0, ii = sw * sh; i < ii; ++i) { + alphaBuf[i] = 255 - alphaBuf[i]; + } + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); + } + } else if (Array.isArray(mask)) { + alphaBuf = new Uint8ClampedArray(width * height); + const numComps = this.numComps; + for (i = 0, ii = width * height; i < ii; ++i) { + let opacity = 0; + const imageOffset = i * numComps; + for (j = 0; j < numComps; ++j) { + const color = image[imageOffset + j]; + const maskOffset = j * 2; + if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { + opacity = 255; + break; + } + } + alphaBuf[i] = opacity; + } + } else { + throw new FormatError("Unknown mask format."); + } + } + if (alphaBuf) { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = alphaBuf[i]; + } + } else { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = 255; + } + } + } + undoPreblend(buffer, width, height) { + const matte = this.smask?.matte; + if (!matte) { + return; + } + const matteRgb = this.colorSpace.getRgb(matte, 0); + const matteR = matteRgb[0]; + const matteG = matteRgb[1]; + const matteB = matteRgb[2]; + const length = width * height * 4; + for (let i = 0; i < length; i += 4) { + const alpha = buffer[i + 3]; + if (alpha === 0) { + buffer[i] = 255; + buffer[i + 1] = 255; + buffer[i + 2] = 255; + continue; + } + const k = 255 / alpha; + buffer[i] = (buffer[i] - matteR) * k + matteR; + buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG; + buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB; + } + } + async createImageData(forceRGBA = false, isOffscreenCanvasSupported = false) { + const drawWidth = this.drawWidth; + const drawHeight = this.drawHeight; + const imgData = { + width: drawWidth, + height: drawHeight, + interpolate: this.interpolate, + kind: 0, + data: null + }; + const numComps = this.numComps; + const originalWidth = this.width; + const originalHeight = this.height; + const bpc = this.bpc; + const rowBytes = originalWidth * numComps * bpc + 7 >> 3; + const mustBeResized = isOffscreenCanvasSupported && ImageResizer.needsToBeResized(drawWidth, drawHeight); + if (!this.smask && !this.mask && this.colorSpace.name === "DeviceRGBA") { + imgData.kind = ImageKind.RGBA_32BPP; + const imgArray = imgData.data = await this.getImageBytes(originalHeight * originalWidth * 4, {}); + if (isOffscreenCanvasSupported) { + if (!mustBeResized) { + return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, imgArray); + } + return ImageResizer.createImage(imgData, false); + } + return imgData; + } + if (!forceRGBA) { + let kind; + if (this.colorSpace.name === "DeviceGray" && bpc === 1) { + kind = ImageKind.GRAYSCALE_1BPP; + } else if (this.colorSpace.name === "DeviceRGB" && bpc === 8 && !this.needsDecode) { + kind = ImageKind.RGB_24BPP; + } + if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) { + const image = await this.#getImage(originalWidth, originalHeight); + if (image) { + return image; + } + const data = await this.getImageBytes(originalHeight * rowBytes, {}); + if (isOffscreenCanvasSupported) { + if (mustBeResized) { + return ImageResizer.createImage({ + data, + kind, + width: drawWidth, + height: drawHeight, + interpolate: this.interpolate + }, this.needsDecode); + } + return this.createBitmap(kind, originalWidth, originalHeight, data); + } + imgData.kind = kind; + imgData.data = data; + if (this.needsDecode) { + assert(kind === ImageKind.GRAYSCALE_1BPP, "PDFImage.createImageData: The image must be grayscale."); + const buffer = imgData.data; + for (let i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] ^= 0xff; + } + } + return imgData; + } + if (this.image instanceof JpegStream && !this.smask && !this.mask && !this.needsDecode) { + let imageLength = originalHeight * rowBytes; + if (isOffscreenCanvasSupported && !mustBeResized) { + let isHandled = false; + switch (this.colorSpace.name) { + case "DeviceGray": + imageLength *= 4; + isHandled = true; + break; + case "DeviceRGB": + imageLength = imageLength / 3 * 4; + isHandled = true; + break; + case "DeviceCMYK": + isHandled = true; + break; + } + if (isHandled) { + const image = await this.#getImage(drawWidth, drawHeight); + if (image) { + return image; + } + const rgba = await this.getImageBytes(imageLength, { + drawWidth, + drawHeight, + forceRGBA: true + }); + return this.createBitmap(ImageKind.RGBA_32BPP, drawWidth, drawHeight, rgba); + } + } else { + switch (this.colorSpace.name) { + case "DeviceGray": + imageLength *= 3; + case "DeviceRGB": + case "DeviceCMYK": + imgData.kind = ImageKind.RGB_24BPP; + imgData.data = await this.getImageBytes(imageLength, { + drawWidth, + drawHeight, + forceRGB: true + }); + if (mustBeResized) { + return ImageResizer.createImage(imgData); + } + return imgData; + } + } + } + } + const imgArray = await this.getImageBytes(originalHeight * rowBytes, { + internal: true + }); + const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight; + const comps = this.getComponents(imgArray); + let alpha01, maybeUndoPreblend; + let canvas, ctx, canvasImgData, data; + if (isOffscreenCanvasSupported && !mustBeResized) { + canvas = new OffscreenCanvas(drawWidth, drawHeight); + ctx = canvas.getContext("2d"); + canvasImgData = ctx.createImageData(drawWidth, drawHeight); + data = canvasImgData.data; + } + imgData.kind = ImageKind.RGBA_32BPP; + if (!forceRGBA && !this.smask && !this.mask) { + if (!isOffscreenCanvasSupported || mustBeResized) { + imgData.kind = ImageKind.RGB_24BPP; + data = new Uint8ClampedArray(drawWidth * drawHeight * 3); + alpha01 = 0; + } else { + const arr = new Uint32Array(data.buffer); + arr.fill(FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff); + alpha01 = 1; + } + maybeUndoPreblend = false; + } else { + if (!isOffscreenCanvasSupported || mustBeResized) { + data = new Uint8ClampedArray(drawWidth * drawHeight * 4); + } + alpha01 = 1; + maybeUndoPreblend = true; + await this.fillOpacity(data, drawWidth, drawHeight, actualHeight, comps); + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + this.colorSpace.fillRgb(data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01); + if (maybeUndoPreblend) { + this.undoPreblend(data, drawWidth, actualHeight); + } + if (isOffscreenCanvasSupported && !mustBeResized) { + ctx.putImageData(canvasImgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width: drawWidth, + height: drawHeight, + bitmap, + interpolate: this.interpolate + }; + } + imgData.data = data; + if (mustBeResized) { + return ImageResizer.createImage(imgData); + } + return imgData; + } + async fillGrayBuffer(buffer) { + const numComps = this.numComps; + if (numComps !== 1) { + throw new FormatError(`Reading gray scale from a color image: ${numComps}`); + } + const width = this.width; + const height = this.height; + const bpc = this.bpc; + const rowBytes = width * numComps * bpc + 7 >> 3; + const imgArray = await this.getImageBytes(height * rowBytes, { + internal: true + }); + const comps = this.getComponents(imgArray); + let i, length; + if (bpc === 1) { + length = width * height; + if (this.needsDecode) { + for (i = 0; i < length; ++i) { + buffer[i] = comps[i] - 1 & 255; + } + } else { + for (i = 0; i < length; ++i) { + buffer[i] = -comps[i] & 255; + } + } + return; + } + if (this.needsDecode) { + this.decodeBuffer(comps); + } + length = width * height; + const scale = 255 / ((1 << bpc) - 1); + for (i = 0; i < length; ++i) { + buffer[i] = scale * comps[i]; + } + } + createBitmap(kind, width, height, src) { + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + let imgData; + if (kind === ImageKind.RGBA_32BPP) { + imgData = new ImageData(src, width, height); + } else { + imgData = ctx.createImageData(width, height); + convertToRGBA({ + kind, + src, + dest: new Uint32Array(imgData.data.buffer), + width, + height, + inverseDecode: this.needsDecode + }); + } + ctx.putImageData(imgData, 0, 0); + const bitmap = canvas.transferToImageBitmap(); + return { + data: null, + width, + height, + bitmap, + interpolate: this.interpolate + }; + } + async #getImage(width, height) { + const bitmap = await this.image.getTransferableImage(); + if (!bitmap) { + return null; + } + return { + data: null, + width, + height, + bitmap, + interpolate: this.interpolate + }; + } + async getImageBytes(length, { + drawWidth, + drawHeight, + forceRGBA = false, + forceRGB = false, + internal = false + }) { + this.image.reset(); + this.image.drawWidth = drawWidth || this.width; + this.image.drawHeight = drawHeight || this.height; + this.image.forceRGBA = !!forceRGBA; + this.image.forceRGB = !!forceRGB; + const imageBytes = await this.image.getImageData(length, this.jpxDecoderOptions); + if (internal || this.image instanceof DecodeStream) { + return imageBytes; + } + assert(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported "imageBytes" type.'); + return new Uint8Array(imageBytes); + } +} + +;// ./src/core/evaluator.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + +const DefaultPartialEvaluatorOptions = Object.freeze({ + maxImageSize: -1, + disableFontFace: false, + ignoreErrors: false, + isEvalSupported: true, + isOffscreenCanvasSupported: false, + isImageDecoderSupported: false, + canvasMaxAreaInBytes: -1, + fontExtraProperties: false, + useSystemFonts: true, + cMapUrl: null, + standardFontDataUrl: null +}); +const PatternType = { + TILING: 1, + SHADING: 2 +}; +const TEXT_CHUNK_BATCH_SIZE = 10; +const deferred = Promise.resolve(); +function normalizeBlendMode(value, parsingArray = false) { + if (Array.isArray(value)) { + for (const val of value) { + const maybeBM = normalizeBlendMode(val, true); + if (maybeBM) { + return maybeBM; + } + } + warn(`Unsupported blend mode Array: ${value}`); + return "source-over"; + } + if (!(value instanceof Name)) { + if (parsingArray) { + return null; + } + return "source-over"; + } + switch (value.name) { + case "Normal": + case "Compatible": + return "source-over"; + case "Multiply": + return "multiply"; + case "Screen": + return "screen"; + case "Overlay": + return "overlay"; + case "Darken": + return "darken"; + case "Lighten": + return "lighten"; + case "ColorDodge": + return "color-dodge"; + case "ColorBurn": + return "color-burn"; + case "HardLight": + return "hard-light"; + case "SoftLight": + return "soft-light"; + case "Difference": + return "difference"; + case "Exclusion": + return "exclusion"; + case "Hue": + return "hue"; + case "Saturation": + return "saturation"; + case "Color": + return "color"; + case "Luminosity": + return "luminosity"; + } + if (parsingArray) { + return null; + } + warn(`Unsupported blend mode: ${value.name}`); + return "source-over"; +} +function addLocallyCachedImageOps(opList, data) { + if (data.objId) { + opList.addDependency(data.objId); + } + opList.addImageOps(data.fn, data.args, data.optionalContent, data.hasMask); + if (data.fn === OPS.paintImageMaskXObject && data.args[0]?.count > 0) { + data.args[0].count++; + } +} +class TimeSlotManager { + static TIME_SLOT_DURATION_MS = 20; + static CHECK_TIME_EVERY = 100; + constructor() { + this.reset(); + } + check() { + if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) { + return false; + } + this.checked = 0; + return this.endTime <= Date.now(); + } + reset() { + this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; + this.checked = 0; + } +} +class PartialEvaluator { + constructor({ + xref, + handler, + pageIndex, + idFactory, + fontCache, + builtInCMapCache, + standardFontDataCache, + globalImageCache, + systemFontCache, + options = null + }) { + this.xref = xref; + this.handler = handler; + this.pageIndex = pageIndex; + this.idFactory = idFactory; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.standardFontDataCache = standardFontDataCache; + this.globalImageCache = globalImageCache; + this.systemFontCache = systemFontCache; + this.options = options || DefaultPartialEvaluatorOptions; + this.type3FontRefs = null; + this._regionalImageCache = new RegionalImageCache(); + this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); + ImageResizer.setOptions(this.options); + JpegStream.setOptions(this.options); + } + get _pdfFunctionFactory() { + const pdfFunctionFactory = new PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.options.isEvalSupported + }); + return shadow(this, "_pdfFunctionFactory", pdfFunctionFactory); + } + get parsingType3Font() { + return !!this.type3FontRefs; + } + clone(newOptions = null) { + const newEvaluator = Object.create(this); + newEvaluator.options = Object.assign(Object.create(null), this.options, newOptions); + return newEvaluator; + } + hasBlendModes(resources, nonBlendModesSet) { + if (!(resources instanceof Dict)) { + return false; + } + if (resources.objId && nonBlendModesSet.has(resources.objId)) { + return false; + } + const processed = new RefSet(nonBlendModesSet); + if (resources.objId) { + processed.put(resources.objId); + } + const nodes = [resources], + xref = this.xref; + while (nodes.length) { + const node = nodes.shift(); + const graphicStates = node.get("ExtGState"); + if (graphicStates instanceof Dict) { + for (let graphicState of graphicStates.getRawValues()) { + if (graphicState instanceof Ref) { + if (processed.has(graphicState)) { + continue; + } + try { + graphicState = xref.fetch(graphicState); + } catch (ex) { + processed.put(graphicState); + info(`hasBlendModes - ignoring ExtGState: "${ex}".`); + continue; + } + } + if (!(graphicState instanceof Dict)) { + continue; + } + if (graphicState.objId) { + processed.put(graphicState.objId); + } + const bm = graphicState.get("BM"); + if (bm instanceof Name) { + if (bm.name !== "Normal") { + return true; + } + continue; + } + if (bm !== undefined && Array.isArray(bm)) { + for (const element of bm) { + if (element instanceof Name && element.name !== "Normal") { + return true; + } + } + } + } + } + const xObjects = node.get("XObject"); + if (!(xObjects instanceof Dict)) { + continue; + } + for (let xObject of xObjects.getRawValues()) { + if (xObject instanceof Ref) { + if (processed.has(xObject)) { + continue; + } + try { + xObject = xref.fetch(xObject); + } catch (ex) { + processed.put(xObject); + info(`hasBlendModes - ignoring XObject: "${ex}".`); + continue; + } + } + if (!(xObject instanceof BaseStream)) { + continue; + } + if (xObject.dict.objId) { + processed.put(xObject.dict.objId); + } + const xResources = xObject.dict.get("Resources"); + if (!(xResources instanceof Dict)) { + continue; + } + if (xResources.objId && processed.has(xResources.objId)) { + continue; + } + nodes.push(xResources); + if (xResources.objId) { + processed.put(xResources.objId); + } + } + } + for (const ref of processed) { + nonBlendModesSet.put(ref); + } + return false; + } + async #fetchData(url) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Failed to fetch file "${url}" with "${response.statusText}".`); + } + return new Uint8Array(await response.arrayBuffer()); + } + async fetchBuiltInCMap(name) { + const cachedData = this.builtInCMapCache.get(name); + if (cachedData) { + return cachedData; + } + let data; + if (this.options.cMapUrl !== null) { + const cMapData = await this.#fetchData(`${this.options.cMapUrl}${name}.bcmap`); + data = { + cMapData, + isCompressed: true + }; + } else { + data = await this.handler.sendWithPromise("FetchBuiltInCMap", { + name + }); + } + this.builtInCMapCache.set(name, data); + return data; + } + async fetchStandardFontData(name) { + const cachedData = this.standardFontDataCache.get(name); + if (cachedData) { + return new Stream(cachedData); + } + if (this.options.useSystemFonts && name !== "Symbol" && name !== "ZapfDingbats") { + return null; + } + const standardFontNameToFileName = getFontNameToFileMap(), + filename = standardFontNameToFileName[name]; + let data; + try { + if (this.options.standardFontDataUrl !== null) { + data = await this.#fetchData(`${this.options.standardFontDataUrl}${filename}`); + } else { + data = await this.handler.sendWithPromise("FetchStandardFontData", { + filename + }); + } + } catch (ex) { + warn(ex); + return null; + } + this.standardFontDataCache.set(name, data); + return new Stream(data); + } + async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) { + const dict = xobj.dict; + const matrix = lookupMatrix(dict.getArray("Matrix"), null); + const bbox = lookupNormalRect(dict.getArray("BBox"), null); + let optionalContent, groupOptions; + if (dict.has("OC")) { + optionalContent = await this.parseMarkedContentProps(dict.get("OC"), resources); + } + if (optionalContent !== undefined) { + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + const group = dict.get("Group"); + if (group) { + groupOptions = { + matrix, + bbox, + smask, + isolated: false, + knockout: false + }; + const groupSubtype = group.get("S"); + let colorSpace = null; + if (isName(groupSubtype, "Transparency")) { + groupOptions.isolated = group.get("I") || false; + groupOptions.knockout = group.get("K") || false; + if (group.has("CS")) { + const cs = group.getRaw("CS"); + const cachedColorSpace = ColorSpace.getCached(cs, this.xref, localColorSpaceCache); + if (cachedColorSpace) { + colorSpace = cachedColorSpace; + } else { + colorSpace = await this.parseColorSpace({ + cs, + resources, + localColorSpaceCache + }); + } + } + } + if (smask?.backdrop) { + colorSpace ||= ColorSpace.singletons.rgb; + smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); + } + operatorList.addOp(OPS.beginGroup, [groupOptions]); + } + const args = group ? [matrix, null] : [matrix, bbox]; + operatorList.addOp(OPS.paintFormXObjectBegin, args); + await this.getOperatorList({ + stream: xobj, + task, + resources: dict.get("Resources") || resources, + operatorList, + initialState + }); + operatorList.addOp(OPS.paintFormXObjectEnd, []); + if (group) { + operatorList.addOp(OPS.endGroup, [groupOptions]); + } + if (optionalContent !== undefined) { + operatorList.addOp(OPS.endMarkedContent, []); + } + } + _sendImgData(objId, imgData, cacheGlobally = false) { + const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null; + if (this.parsingType3Font || cacheGlobally) { + return this.handler.send("commonobj", [objId, "Image", imgData], transfers); + } + return this.handler.send("obj", [objId, this.pageIndex, "Image", imgData], transfers); + } + async buildPaintImageXObject({ + resources, + image, + isInline = false, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + }) { + const dict = image.dict; + const imageRef = dict.objId; + const w = dict.get("W", "Width"); + const h = dict.get("H", "Height"); + if (!(w && typeof w === "number") || !(h && typeof h === "number")) { + warn("Image dimensions are missing, or not numbers."); + return; + } + const maxImageSize = this.options.maxImageSize; + if (maxImageSize !== -1 && w * h > maxImageSize) { + const msg = "Image exceeded maximum allowed size and was removed."; + if (this.options.ignoreErrors) { + warn(msg); + return; + } + throw new Error(msg); + } + let optionalContent; + if (dict.has("OC")) { + optionalContent = await this.parseMarkedContentProps(dict.get("OC"), resources); + } + const imageMask = dict.get("IM", "ImageMask") || false; + let imgData, args; + if (imageMask) { + const interpolate = dict.get("I", "Interpolate"); + const bitStrideLength = w + 7 >> 3; + const imgArray = image.getBytes(bitStrideLength * h); + const decode = dict.getArray("D", "Decode"); + if (this.parsingType3Font) { + imgData = PDFImage.createRawMask({ + imgArray, + width: w, + height: h, + imageIsFromDecodeStream: image instanceof DecodeStream, + inverseDecode: decode?.[0] > 0, + interpolate + }); + imgData.cached = !!cacheKey; + args = [imgData]; + operatorList.addImageOps(OPS.paintImageMaskXObject, args, optionalContent); + if (cacheKey) { + const cacheData = { + fn: OPS.paintImageMaskXObject, + args, + optionalContent + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + } + } + return; + } + imgData = await PDFImage.createMask({ + imgArray, + width: w, + height: h, + imageIsFromDecodeStream: image instanceof DecodeStream, + inverseDecode: decode?.[0] > 0, + interpolate, + isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported + }); + if (imgData.isSingleOpaquePixel) { + operatorList.addImageOps(OPS.paintSolidColorImageMask, [], optionalContent); + if (cacheKey) { + const cacheData = { + fn: OPS.paintSolidColorImageMask, + args: [], + optionalContent + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + } + } + return; + } + const objId = `mask_${this.idFactory.createObjId()}`; + operatorList.addDependency(objId); + imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length; + this._sendImgData(objId, imgData); + args = [{ + data: objId, + width: imgData.width, + height: imgData.height, + interpolate: imgData.interpolate, + count: 1 + }]; + operatorList.addImageOps(OPS.paintImageMaskXObject, args, optionalContent); + if (cacheKey) { + const cacheData = { + objId, + fn: OPS.paintImageMaskXObject, + args, + optionalContent + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + } + } + return; + } + const SMALL_IMAGE_DIMENSIONS = 200; + const hasMask = dict.has("SMask") || dict.has("Mask"); + if (isInline && w + h < SMALL_IMAGE_DIMENSIONS && !hasMask) { + try { + const imageObj = new PDFImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }); + imgData = await imageObj.createImageData(true, false); + operatorList.isOffscreenCanvasSupported = this.options.isOffscreenCanvasSupported; + operatorList.addImageOps(OPS.paintInlineImageXObject, [imgData], optionalContent); + } catch (reason) { + const msg = `Unable to decode inline image: "${reason}".`; + if (!this.options.ignoreErrors) { + throw new Error(msg); + } + warn(msg); + } + return; + } + let objId = `img_${this.idFactory.createObjId()}`, + cacheGlobally = false; + if (this.parsingType3Font) { + objId = `${this.idFactory.getDocId()}_type3_${objId}`; + } else if (cacheKey && imageRef) { + cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex); + if (cacheGlobally) { + assert(!isInline, "Cannot cache an inline image globally."); + objId = `${this.idFactory.getDocId()}_${objId}`; + } + } + operatorList.addDependency(objId); + args = [objId, w, h]; + operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent, hasMask); + if (cacheGlobally) { + if (this.globalImageCache.hasDecodeFailed(imageRef)) { + this.globalImageCache.setData(imageRef, { + objId, + fn: OPS.paintImageXObject, + args, + optionalContent, + hasMask, + byteSize: 0 + }); + this._sendImgData(objId, null, cacheGlobally); + return; + } + if (w * h > 250000 || hasMask) { + const localLength = await this.handler.sendWithPromise("commonobj", [objId, "CopyLocalImage", { + imageRef + }]); + if (localLength) { + this.globalImageCache.setData(imageRef, { + objId, + fn: OPS.paintImageXObject, + args, + optionalContent, + hasMask, + byteSize: 0 + }); + this.globalImageCache.addByteSize(imageRef, localLength); + return; + } + } + } + PDFImage.buildImage({ + xref: this.xref, + res: resources, + image, + isInline, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }).then(async imageObj => { + imgData = await imageObj.createImageData(false, this.options.isOffscreenCanvasSupported); + imgData.dataLen = imgData.bitmap ? imgData.width * imgData.height * 4 : imgData.data.length; + imgData.ref = imageRef; + if (cacheGlobally) { + this.globalImageCache.addByteSize(imageRef, imgData.dataLen); + } + return this._sendImgData(objId, imgData, cacheGlobally); + }).catch(reason => { + warn(`Unable to decode image "${objId}": "${reason}".`); + if (imageRef) { + this.globalImageCache.addDecodeFailed(imageRef); + } + return this._sendImgData(objId, null, cacheGlobally); + }); + if (cacheKey) { + const cacheData = { + objId, + fn: OPS.paintImageXObject, + args, + optionalContent, + hasMask + }; + localImageCache.set(cacheKey, imageRef, cacheData); + if (imageRef) { + this._regionalImageCache.set(null, imageRef, cacheData); + if (cacheGlobally) { + this.globalImageCache.setData(imageRef, { + objId, + fn: OPS.paintImageXObject, + args, + optionalContent, + hasMask, + byteSize: 0 + }); + } + } + } + } + handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache) { + const smaskContent = smask.get("G"); + const smaskOptions = { + subtype: smask.get("S").name, + backdrop: smask.get("BC") + }; + const transferObj = smask.get("TR"); + if (isPDFFunction(transferObj)) { + const transferFn = this._pdfFunctionFactory.create(transferObj); + const transferMap = new Uint8Array(256); + const tmp = new Float32Array(1); + for (let i = 0; i < 256; i++) { + tmp[0] = i / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[i] = tmp[0] * 255 | 0; + } + smaskOptions.transferMap = transferMap; + } + return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone(), localColorSpaceCache); + } + handleTransferFunction(tr) { + let transferArray; + if (Array.isArray(tr)) { + transferArray = tr; + } else if (isPDFFunction(tr)) { + transferArray = [tr]; + } else { + return null; + } + const transferMaps = []; + let numFns = 0, + numEffectfulFns = 0; + for (const entry of transferArray) { + const transferObj = this.xref.fetchIfRef(entry); + numFns++; + if (isName(transferObj, "Identity")) { + transferMaps.push(null); + continue; + } else if (!isPDFFunction(transferObj)) { + return null; + } + const transferFn = this._pdfFunctionFactory.create(transferObj); + const transferMap = new Uint8Array(256), + tmp = new Float32Array(1); + for (let j = 0; j < 256; j++) { + tmp[0] = j / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[j] = tmp[0] * 255 | 0; + } + transferMaps.push(transferMap); + numEffectfulFns++; + } + if (!(numFns === 1 || numFns === 4)) { + return null; + } + if (numEffectfulFns === 0) { + return null; + } + return transferMaps; + } + handleTilingType(fn, color, resources, pattern, patternDict, operatorList, task, localTilingPatternCache) { + const tilingOpList = new OperatorList(); + const patternResources = Dict.merge({ + xref: this.xref, + dictArray: [patternDict.get("Resources"), resources] + }); + return this.getOperatorList({ + stream: pattern, + task, + resources: patternResources, + operatorList: tilingOpList + }).then(function () { + const operatorListIR = tilingOpList.getIR(); + const tilingPatternIR = getTilingPatternIR(operatorListIR, patternDict, color); + operatorList.addDependencies(tilingOpList.dependencies); + operatorList.addOp(fn, tilingPatternIR); + if (patternDict.objId) { + localTilingPatternCache.set(null, patternDict.objId, { + operatorListIR, + dict: patternDict + }); + } + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`handleTilingType - ignoring pattern: "${reason}".`); + return; + } + throw reason; + }); + } + async handleSetFont(resources, fontArgs, fontRef, operatorList, task, state, fallbackFontDict = null, cssFontInfo = null) { + const fontName = fontArgs?.[0] instanceof Name ? fontArgs[0].name : null; + let translated = await this.loadFont(fontName, fontRef, resources, fallbackFontDict, cssFontInfo); + if (translated.font.isType3Font) { + try { + await translated.loadType3Data(this, resources, task); + operatorList.addDependencies(translated.type3Dependencies); + } catch (reason) { + translated = new TranslatedFont({ + loadedName: "g_font_error", + font: new ErrorFont(`Type3 font load error: ${reason}`), + dict: translated.font, + evaluatorOptions: this.options + }); + } + } + state.font = translated.font; + translated.send(this.handler); + return translated.loadedName; + } + handleText(chars, state) { + const font = state.font; + const glyphs = font.charsToGlyphs(chars); + if (font.data) { + const isAddToPathSet = !!(state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG); + if (isAddToPathSet || state.fillColorSpace.name === "Pattern" || font.disableFontFace || this.options.disableFontFace) { + PartialEvaluator.buildFontPaths(font, glyphs, this.handler, this.options); + } + } + return glyphs; + } + ensureStateFont(state) { + if (state.font) { + return; + } + const reason = new FormatError("Missing setFont (Tf) operator before text rendering operator."); + if (this.options.ignoreErrors) { + warn(`ensureStateFont: "${reason}".`); + return; + } + throw reason; + } + async setGState({ + resources, + gState, + operatorList, + cacheKey, + task, + stateManager, + localGStateCache, + localColorSpaceCache + }) { + const gStateRef = gState.objId; + let isSimpleGState = true; + const gStateObj = []; + let promise = Promise.resolve(); + for (const key of gState.getKeys()) { + const value = gState.get(key); + switch (key) { + case "Type": + break; + case "LW": + case "LC": + case "LJ": + case "ML": + case "D": + case "RI": + case "FL": + case "CA": + case "ca": + gStateObj.push([key, value]); + break; + case "Font": + isSimpleGState = false; + promise = promise.then(() => this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + gStateObj.push([key, [loadedName, value[1]]]); + })); + break; + case "BM": + gStateObj.push([key, normalizeBlendMode(value)]); + break; + case "SMask": + if (isName(value, "None")) { + gStateObj.push([key, false]); + break; + } + if (value instanceof Dict) { + isSimpleGState = false; + promise = promise.then(() => this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache)); + gStateObj.push([key, true]); + } else { + warn("Unsupported SMask type"); + } + break; + case "TR": + const transferMaps = this.handleTransferFunction(value); + gStateObj.push([key, transferMaps]); + break; + case "OP": + case "op": + case "OPM": + case "BG": + case "BG2": + case "UCR": + case "UCR2": + case "TR2": + case "HT": + case "SM": + case "SA": + case "AIS": + case "TK": + info("graphic state operator " + key); + break; + default: + info("Unknown graphic state operator " + key); + break; + } + } + await promise; + if (gStateObj.length > 0) { + operatorList.addOp(OPS.setGState, [gStateObj]); + } + if (isSimpleGState) { + localGStateCache.set(cacheKey, gStateRef, gStateObj); + } + } + loadFont(fontName, font, resources, fallbackFontDict = null, cssFontInfo = null) { + const errorFont = async () => { + return new TranslatedFont({ + loadedName: "g_font_error", + font: new ErrorFont(`Font "${fontName}" is not available.`), + dict: font, + evaluatorOptions: this.options + }); + }; + let fontRef; + if (font) { + if (font instanceof Ref) { + fontRef = font; + } + } else { + const fontRes = resources.get("Font"); + if (fontRes) { + fontRef = fontRes.getRaw(fontName); + } + } + if (fontRef) { + if (this.type3FontRefs?.has(fontRef)) { + return errorFont(); + } + if (this.fontCache.has(fontRef)) { + return this.fontCache.get(fontRef); + } + try { + font = this.xref.fetchIfRef(fontRef); + } catch (ex) { + warn(`loadFont - lookup failed: "${ex}".`); + } + } + if (!(font instanceof Dict)) { + if (!this.options.ignoreErrors && !this.parsingType3Font) { + warn(`Font "${fontName}" is not available.`); + return errorFont(); + } + warn(`Font "${fontName}" is not available -- attempting to fallback to a default font.`); + font = fallbackFontDict || PartialEvaluator.fallbackFontDict; + } + if (font.cacheKey && this.fontCache.has(font.cacheKey)) { + return this.fontCache.get(font.cacheKey); + } + const { + promise, + resolve + } = Promise.withResolvers(); + let preEvaluatedFont; + try { + preEvaluatedFont = this.preEvaluateFont(font); + preEvaluatedFont.cssFontInfo = cssFontInfo; + } catch (reason) { + warn(`loadFont - preEvaluateFont failed: "${reason}".`); + return errorFont(); + } + const { + descriptor, + hash + } = preEvaluatedFont; + const fontRefIsRef = fontRef instanceof Ref; + let fontID; + if (hash && descriptor instanceof Dict) { + const fontAliases = descriptor.fontAliases ||= Object.create(null); + if (fontAliases[hash]) { + const aliasFontRef = fontAliases[hash].aliasRef; + if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) { + this.fontCache.putAlias(fontRef, aliasFontRef); + return this.fontCache.get(fontRef); + } + } else { + fontAliases[hash] = { + fontID: this.idFactory.createFontId() + }; + } + if (fontRefIsRef) { + fontAliases[hash].aliasRef = fontRef; + } + fontID = fontAliases[hash].fontID; + } else { + fontID = this.idFactory.createFontId(); + } + assert(fontID?.startsWith("f"), 'The "fontID" must be (correctly) defined.'); + if (fontRefIsRef) { + this.fontCache.put(fontRef, promise); + } else { + font.cacheKey = `cacheKey_${fontID}`; + this.fontCache.put(font.cacheKey, promise); + } + font.loadedName = `${this.idFactory.getDocId()}_${fontID}`; + this.translateFont(preEvaluatedFont).then(translatedFont => { + resolve(new TranslatedFont({ + loadedName: font.loadedName, + font: translatedFont, + dict: font, + evaluatorOptions: this.options + })); + }).catch(reason => { + warn(`loadFont - translateFont failed: "${reason}".`); + resolve(new TranslatedFont({ + loadedName: font.loadedName, + font: new ErrorFont(reason instanceof Error ? reason.message : reason), + dict: font, + evaluatorOptions: this.options + })); + }); + return promise; + } + buildPath(operatorList, fn, args, parsingText = false) { + const lastIndex = operatorList.length - 1; + if (!args) { + args = []; + } + if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== OPS.constructPath) { + if (parsingText) { + warn(`Encountered path operator "${fn}" inside of a text object.`); + operatorList.addOp(OPS.save, null); + } + let minMax; + switch (fn) { + case OPS.rectangle: + const x = args[0] + args[2]; + const y = args[1] + args[3]; + minMax = [Math.min(args[0], x), Math.min(args[1], y), Math.max(args[0], x), Math.max(args[1], y)]; + break; + case OPS.moveTo: + case OPS.lineTo: + minMax = [args[0], args[1], args[0], args[1]]; + break; + default: + minMax = [Infinity, Infinity, -Infinity, -Infinity]; + break; + } + operatorList.addOp(OPS.constructPath, [[fn], args, minMax]); + if (parsingText) { + operatorList.addOp(OPS.restore, null); + } + } else { + const opArgs = operatorList.argsArray[lastIndex]; + opArgs[0].push(fn); + opArgs[1].push(...args); + const minMax = opArgs[2]; + switch (fn) { + case OPS.rectangle: + const x = args[0] + args[2]; + const y = args[1] + args[3]; + minMax[0] = Math.min(minMax[0], args[0], x); + minMax[1] = Math.min(minMax[1], args[1], y); + minMax[2] = Math.max(minMax[2], args[0], x); + minMax[3] = Math.max(minMax[3], args[1], y); + break; + case OPS.moveTo: + case OPS.lineTo: + minMax[0] = Math.min(minMax[0], args[0]); + minMax[1] = Math.min(minMax[1], args[1]); + minMax[2] = Math.max(minMax[2], args[0]); + minMax[3] = Math.max(minMax[3], args[1]); + break; + } + } + } + parseColorSpace({ + cs, + resources, + localColorSpaceCache + }) { + return ColorSpace.parseAsync({ + cs, + xref: this.xref, + resources, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache + }).catch(reason => { + if (reason instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`parseColorSpace - ignoring ColorSpace: "${reason}".`); + return null; + } + throw reason; + }); + } + parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }) { + let id = localShadingPatternCache.get(shading); + if (id) { + return id; + } + let patternIR; + try { + const shadingFill = Pattern.parseShading(shading, this.xref, resources, this._pdfFunctionFactory, localColorSpaceCache); + patternIR = shadingFill.getIR(); + } catch (reason) { + if (reason instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`parseShading - ignoring shading: "${reason}".`); + localShadingPatternCache.set(shading, null); + return null; + } + throw reason; + } + id = `pattern_${this.idFactory.createObjId()}`; + if (this.parsingType3Font) { + id = `${this.idFactory.getDocId()}_type3_${id}`; + } + localShadingPatternCache.set(shading, id); + if (this.parsingType3Font) { + this.handler.send("commonobj", [id, "Pattern", patternIR]); + } else { + this.handler.send("obj", [id, this.pageIndex, "Pattern", patternIR]); + } + return id; + } + handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache) { + const patternName = args.pop(); + if (patternName instanceof Name) { + const rawPattern = patterns.getRaw(patternName.name); + const localTilingPattern = rawPattern instanceof Ref && localTilingPatternCache.getByRef(rawPattern); + if (localTilingPattern) { + try { + const color = cs.base ? cs.base.getRgb(args, 0) : null; + const tilingPatternIR = getTilingPatternIR(localTilingPattern.operatorListIR, localTilingPattern.dict, color); + operatorList.addOp(fn, tilingPatternIR); + return undefined; + } catch {} + } + const pattern = this.xref.fetchIfRef(rawPattern); + if (pattern) { + const dict = pattern instanceof BaseStream ? pattern.dict : pattern; + const typeNum = dict.get("PatternType"); + if (typeNum === PatternType.TILING) { + const color = cs.base ? cs.base.getRgb(args, 0) : null; + return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, localTilingPatternCache); + } else if (typeNum === PatternType.SHADING) { + const shading = dict.get("Shading"); + const objId = this.parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }); + if (objId) { + const matrix = lookupMatrix(dict.getArray("Matrix"), null); + operatorList.addOp(fn, ["Shading", objId, matrix]); + } + return undefined; + } + throw new FormatError(`Unknown PatternType: ${typeNum}`); + } + } + throw new FormatError(`Unknown PatternName: ${patternName}`); + } + _parseVisibilityExpression(array, nestingCounter, currentResult) { + const MAX_NESTING = 10; + if (++nestingCounter > MAX_NESTING) { + warn("Visibility expression is too deeply nested"); + return; + } + const length = array.length; + const operator = this.xref.fetchIfRef(array[0]); + if (length < 2 || !(operator instanceof Name)) { + warn("Invalid visibility expression"); + return; + } + switch (operator.name) { + case "And": + case "Or": + case "Not": + currentResult.push(operator.name); + break; + default: + warn(`Invalid operator ${operator.name} in visibility expression`); + return; + } + for (let i = 1; i < length; i++) { + const raw = array[i]; + const object = this.xref.fetchIfRef(raw); + if (Array.isArray(object)) { + const nestedResult = []; + currentResult.push(nestedResult); + this._parseVisibilityExpression(object, nestingCounter, nestedResult); + } else if (raw instanceof Ref) { + currentResult.push(raw.toString()); + } + } + } + async parseMarkedContentProps(contentProperties, resources) { + let optionalContent; + if (contentProperties instanceof Name) { + const properties = resources.get("Properties"); + optionalContent = properties.get(contentProperties.name); + } else if (contentProperties instanceof Dict) { + optionalContent = contentProperties; + } else { + throw new FormatError("Optional content properties malformed."); + } + const optionalContentType = optionalContent.get("Type")?.name; + if (optionalContentType === "OCG") { + return { + type: optionalContentType, + id: optionalContent.objId + }; + } else if (optionalContentType === "OCMD") { + const expression = optionalContent.get("VE"); + if (Array.isArray(expression)) { + const result = []; + this._parseVisibilityExpression(expression, 0, result); + if (result.length > 0) { + return { + type: "OCMD", + expression: result + }; + } + } + const optionalContentGroups = optionalContent.get("OCGs"); + if (Array.isArray(optionalContentGroups) || optionalContentGroups instanceof Dict) { + const groupIds = []; + if (Array.isArray(optionalContentGroups)) { + for (const ocg of optionalContentGroups) { + groupIds.push(ocg.toString()); + } + } else { + groupIds.push(optionalContentGroups.objId); + } + return { + type: optionalContentType, + ids: groupIds, + policy: optionalContent.get("P") instanceof Name ? optionalContent.get("P").name : null, + expression: null + }; + } else if (optionalContentGroups instanceof Ref) { + return { + type: optionalContentType, + id: optionalContentGroups.toString() + }; + } + } + return null; + } + getOperatorList({ + stream, + task, + resources, + operatorList, + initialState = null, + fallbackFontDict = null + }) { + resources ||= Dict.empty; + initialState ||= new EvalState(); + if (!operatorList) { + throw new Error('getOperatorList: missing "operatorList" parameter'); + } + const self = this; + const xref = this.xref; + let parsingText = false; + const localImageCache = new LocalImageCache(); + const localColorSpaceCache = new LocalColorSpaceCache(); + const localGStateCache = new LocalGStateCache(); + const localTilingPatternCache = new LocalTilingPatternCache(); + const localShadingPatternCache = new Map(); + const xobjs = resources.get("XObject") || Dict.empty; + const patterns = resources.get("Pattern") || Dict.empty; + const stateManager = new StateManager(initialState); + const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + const timeSlotManager = new TimeSlotManager(); + function closePendingRestoreOPS(argument) { + for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { + operatorList.addOp(OPS.restore, []); + } + } + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + Promise.all([promise, operatorList.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + const operation = {}; + let stop, i, ii, cs, name, isValidName; + while (!(stop = timeSlotManager.check())) { + operation.args = null; + if (!preprocessor.read(operation)) { + break; + } + let args = operation.args; + let fn = operation.fn; + switch (fn | 0) { + case OPS.paintXObject: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName) { + const localImage = localImageCache.getByName(name); + if (localImage) { + addLocallyCachedImageOps(operatorList, localImage); + args = null; + continue; + } + } + next(new Promise(function (resolveXObject, rejectXObject) { + if (!isValidName) { + throw new FormatError("XObject must be referred to by name."); + } + let xobj = xobjs.getRaw(name); + if (xobj instanceof Ref) { + const localImage = localImageCache.getByRef(xobj) || self._regionalImageCache.getByRef(xobj); + if (localImage) { + addLocallyCachedImageOps(operatorList, localImage); + resolveXObject(); + return; + } + const globalImage = self.globalImageCache.getData(xobj, self.pageIndex); + if (globalImage) { + operatorList.addDependency(globalImage.objId); + operatorList.addImageOps(globalImage.fn, globalImage.args, globalImage.optionalContent, globalImage.hasMask); + resolveXObject(); + return; + } + xobj = xref.fetch(xobj); + } + if (!(xobj instanceof BaseStream)) { + throw new FormatError("XObject should be a stream"); + } + const type = xobj.dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("XObject should have a Name subtype"); + } + if (type.name === "Form") { + stateManager.save(); + self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone(), localColorSpaceCache).then(function () { + stateManager.restore(); + resolveXObject(); + }, rejectXObject); + return; + } else if (type.name === "Image") { + self.buildPaintImageXObject({ + resources, + image: xobj, + operatorList, + cacheKey: name, + localImageCache, + localColorSpaceCache + }).then(resolveXObject, rejectXObject); + return; + } else if (type.name === "PS") { + info("Ignored XObject subtype PS"); + } else { + throw new FormatError(`Unhandled XObject subtype ${type.name}`); + } + resolveXObject(); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring XObject: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.setFont: + const fontSize = args[1]; + next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state, fallbackFontDict).then(function (loadedName) { + operatorList.addDependency(loadedName); + operatorList.addOp(OPS.setFont, [loadedName, fontSize]); + })); + return; + case OPS.beginText: + parsingText = true; + break; + case OPS.endText: + parsingText = false; + break; + case OPS.endInlineImage: + const cacheKey = args[0].cacheKey; + if (cacheKey) { + const localImage = localImageCache.getByName(cacheKey); + if (localImage) { + addLocallyCachedImageOps(operatorList, localImage); + args = null; + continue; + } + } + next(self.buildPaintImageXObject({ + resources, + image: args[0], + isInline: true, + operatorList, + cacheKey, + localImageCache, + localColorSpaceCache + })); + return; + case OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + args[0] = self.handleText(args[0], stateManager.state); + break; + case OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + const combinedGlyphs = [], + state = stateManager.state; + for (const arrItem of args[0]) { + if (typeof arrItem === "string") { + combinedGlyphs.push(...self.handleText(arrItem, state)); + } else if (typeof arrItem === "number") { + combinedGlyphs.push(arrItem); + } + } + args[0] = combinedGlyphs; + fn = OPS.showText; + break; + case OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + operatorList.addOp(OPS.nextLine); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + operatorList.addOp(OPS.nextLine); + operatorList.addOp(OPS.setWordSpacing, [args.shift()]); + operatorList.addOp(OPS.setCharSpacing, [args.shift()]); + args[0] = self.handleText(args[0], stateManager.state); + fn = OPS.showText; + break; + case OPS.setTextRenderingMode: + stateManager.state.textRenderingMode = args[0]; + break; + case OPS.setFillColorSpace: + { + const cachedColorSpace = ColorSpace.getCached(args[0], xref, localColorSpaceCache); + if (cachedColorSpace) { + stateManager.state.fillColorSpace = cachedColorSpace; + continue; + } + next(self.parseColorSpace({ + cs: args[0], + resources, + localColorSpaceCache + }).then(function (colorSpace) { + stateManager.state.fillColorSpace = colorSpace || ColorSpace.singletons.gray; + })); + return; + } + case OPS.setStrokeColorSpace: + { + const cachedColorSpace = ColorSpace.getCached(args[0], xref, localColorSpaceCache); + if (cachedColorSpace) { + stateManager.state.strokeColorSpace = cachedColorSpace; + continue; + } + next(self.parseColorSpace({ + cs: args[0], + resources, + localColorSpaceCache + }).then(function (colorSpace) { + stateManager.state.strokeColorSpace = colorSpace || ColorSpace.singletons.gray; + })); + return; + } + case OPS.setFillColor: + cs = stateManager.state.fillColorSpace; + args = cs.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColor: + cs = stateManager.state.strokeColorSpace; + args = cs.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillGray: + stateManager.state.fillColorSpace = ColorSpace.singletons.gray; + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeGray: + stateManager.state.strokeColorSpace = ColorSpace.singletons.gray; + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillCMYKColor: + stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk; + args = ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeCMYKColor: + stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk; + args = ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.setFillRGBColor: + stateManager.state.fillColorSpace = ColorSpace.singletons.rgb; + args = ColorSpace.singletons.rgb.getRgb(args, 0); + break; + case OPS.setStrokeRGBColor: + stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb; + args = ColorSpace.singletons.rgb.getRgb(args, 0); + break; + case OPS.setFillColorN: + cs = stateManager.state.patternFillColorSpace; + if (!cs) { + if (isNumberArray(args, null)) { + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + } + args = []; + fn = OPS.setFillTransparent; + break; + } + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); + return; + } + args = cs.getRgb(args, 0); + fn = OPS.setFillRGBColor; + break; + case OPS.setStrokeColorN: + cs = stateManager.state.patternStrokeColorSpace; + if (!cs) { + if (isNumberArray(args, null)) { + args = ColorSpace.singletons.gray.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + } + args = []; + fn = OPS.setStrokeTransparent; + break; + } + if (cs.name === "Pattern") { + next(self.handleColorN(operatorList, OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); + return; + } + args = cs.getRgb(args, 0); + fn = OPS.setStrokeRGBColor; + break; + case OPS.shadingFill: + let shading; + try { + const shadingRes = resources.get("Shading"); + if (!shadingRes) { + throw new FormatError("No shading resource found"); + } + shading = shadingRes.get(args[0].name); + if (!shading) { + throw new FormatError("No shading object found"); + } + } catch (reason) { + if (reason instanceof AbortException) { + continue; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring Shading: "${reason}".`); + continue; + } + throw reason; + } + const patternId = self.parseShading({ + shading, + resources, + localColorSpaceCache, + localShadingPatternCache + }); + if (!patternId) { + continue; + } + args = [patternId]; + fn = OPS.shadingFill; + break; + case OPS.setGState: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName) { + const localGStateObj = localGStateCache.getByName(name); + if (localGStateObj) { + if (localGStateObj.length > 0) { + operatorList.addOp(OPS.setGState, [localGStateObj]); + } + args = null; + continue; + } + } + next(new Promise(function (resolveGState, rejectGState) { + if (!isValidName) { + throw new FormatError("GState must be referred to by name."); + } + const extGState = resources.get("ExtGState"); + if (!(extGState instanceof Dict)) { + throw new FormatError("ExtGState should be a dictionary."); + } + const gState = extGState.get(name); + if (!(gState instanceof Dict)) { + throw new FormatError("GState should be a dictionary."); + } + self.setGState({ + resources, + gState, + operatorList, + cacheKey: name, + task, + stateManager, + localGStateCache, + localColorSpaceCache + }).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring ExtGState: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.moveTo: + case OPS.lineTo: + case OPS.curveTo: + case OPS.curveTo2: + case OPS.curveTo3: + case OPS.closePath: + case OPS.rectangle: + self.buildPath(operatorList, fn, args, parsingText); + continue; + case OPS.markPoint: + case OPS.markPointProps: + case OPS.beginCompat: + case OPS.endCompat: + continue; + case OPS.beginMarkedContentProps: + if (!(args[0] instanceof Name)) { + warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`); + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", null]); + continue; + } + if (args[0].name === "OC") { + next(self.parseMarkedContentProps(args[1], resources).then(data => { + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", data]); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`); + operatorList.addOp(OPS.beginMarkedContentProps, ["OC", null]); + return; + } + throw reason; + })); + return; + } + args = [args[0].name, args[1] instanceof Dict ? args[1].get("MCID") : null]; + break; + case OPS.beginMarkedContent: + case OPS.endMarkedContent: + default: + if (args !== null) { + for (i = 0, ii = args.length; i < ii; i++) { + if (args[i] instanceof Dict) { + break; + } + } + if (i < ii) { + warn("getOperatorList - ignoring operator: " + fn); + continue; + } + } + } + operatorList.addOp(fn, args); + } + if (stop) { + next(deferred); + return; + } + closePendingRestoreOPS(); + resolve(); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`getOperatorList - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + closePendingRestoreOPS(); + return; + } + throw reason; + }); + } + getTextContent({ + stream, + task, + resources, + stateManager = null, + includeMarkedContent = false, + sink, + seenStyles = new Set(), + viewBox, + lang = null, + markedContentData = null, + disableNormalization = false, + keepWhiteSpace = false + }) { + resources ||= Dict.empty; + stateManager ||= new StateManager(new TextState()); + if (includeMarkedContent) { + markedContentData ||= { + level: 0 + }; + } + const textContent = { + items: [], + styles: Object.create(null), + lang + }; + const textContentItem = { + initialized: false, + str: [], + totalWidth: 0, + totalHeight: 0, + width: 0, + height: 0, + vertical: false, + prevTransform: null, + textAdvanceScale: 0, + spaceInFlowMin: 0, + spaceInFlowMax: 0, + trackingSpaceMin: Infinity, + negativeSpaceMax: -Infinity, + notASpace: -Infinity, + transform: null, + fontName: null, + hasEOL: false + }; + const twoLastChars = [" ", " "]; + let twoLastCharsPos = 0; + function saveLastChar(char) { + const nextPos = (twoLastCharsPos + 1) % 2; + const ret = twoLastChars[twoLastCharsPos] !== " " && twoLastChars[nextPos] === " "; + twoLastChars[twoLastCharsPos] = char; + twoLastCharsPos = nextPos; + return !keepWhiteSpace && ret; + } + function shouldAddWhitepsace() { + return !keepWhiteSpace && twoLastChars[twoLastCharsPos] !== " " && twoLastChars[(twoLastCharsPos + 1) % 2] === " "; + } + function resetLastChars() { + twoLastChars[0] = twoLastChars[1] = " "; + twoLastCharsPos = 0; + } + const TRACKING_SPACE_FACTOR = 0.102; + const NOT_A_SPACE_FACTOR = 0.03; + const NEGATIVE_SPACE_FACTOR = -0.2; + const SPACE_IN_FLOW_MIN_FACTOR = 0.102; + const SPACE_IN_FLOW_MAX_FACTOR = 0.6; + const VERTICAL_SHIFT_RATIO = 0.25; + const self = this; + const xref = this.xref; + const showSpacedTextBuffer = []; + let xobjs = null; + const emptyXObjectCache = new LocalImageCache(); + const emptyGStateCache = new LocalGStateCache(); + const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + let textState; + function pushWhitespace({ + width = 0, + height = 0, + transform = textContentItem.prevTransform, + fontName = textContentItem.fontName + }) { + textContent.items.push({ + str: " ", + dir: "ltr", + width, + height, + transform, + fontName, + hasEOL: false + }); + } + function getCurrentTextTransform() { + const font = textState.font; + const tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise]; + if (font.isType3Font && (textState.fontSize <= 1 || font.isCharBBox) && !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)) { + const glyphHeight = font.bbox[3] - font.bbox[1]; + if (glyphHeight > 0) { + tsm[3] *= glyphHeight * textState.fontMatrix[3]; + } + } + return Util.transform(textState.ctm, Util.transform(textState.textMatrix, tsm)); + } + function ensureTextContentItem() { + if (textContentItem.initialized) { + return textContentItem; + } + const { + font, + loadedName + } = textState; + if (!seenStyles.has(loadedName)) { + seenStyles.add(loadedName); + textContent.styles[loadedName] = { + fontFamily: font.fallbackName, + ascent: font.ascent, + descent: font.descent, + vertical: font.vertical + }; + if (self.options.fontExtraProperties && font.systemFontInfo) { + const style = textContent.styles[loadedName]; + style.fontSubstitution = font.systemFontInfo.css; + style.fontSubstitutionLoadedName = font.systemFontInfo.loadedName; + } + } + textContentItem.fontName = loadedName; + const trm = textContentItem.transform = getCurrentTextTransform(); + if (!font.vertical) { + textContentItem.width = textContentItem.totalWidth = 0; + textContentItem.height = textContentItem.totalHeight = Math.hypot(trm[2], trm[3]); + textContentItem.vertical = false; + } else { + textContentItem.width = textContentItem.totalWidth = Math.hypot(trm[0], trm[1]); + textContentItem.height = textContentItem.totalHeight = 0; + textContentItem.vertical = true; + } + const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]); + const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]); + textContentItem.textAdvanceScale = scaleCtmX * scaleLineX; + const { + fontSize + } = textState; + textContentItem.trackingSpaceMin = fontSize * TRACKING_SPACE_FACTOR; + textContentItem.notASpace = fontSize * NOT_A_SPACE_FACTOR; + textContentItem.negativeSpaceMax = fontSize * NEGATIVE_SPACE_FACTOR; + textContentItem.spaceInFlowMin = fontSize * SPACE_IN_FLOW_MIN_FACTOR; + textContentItem.spaceInFlowMax = fontSize * SPACE_IN_FLOW_MAX_FACTOR; + textContentItem.hasEOL = false; + textContentItem.initialized = true; + return textContentItem; + } + function updateAdvanceScale() { + if (!textContentItem.initialized) { + return; + } + const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]); + const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]); + const scaleFactor = scaleCtmX * scaleLineX; + if (scaleFactor === textContentItem.textAdvanceScale) { + return; + } + if (!textContentItem.vertical) { + textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale; + textContentItem.width = 0; + } else { + textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale; + textContentItem.height = 0; + } + textContentItem.textAdvanceScale = scaleFactor; + } + function runBidiTransform(textChunk) { + let text = textChunk.str.join(""); + if (!disableNormalization) { + text = normalizeUnicode(text); + } + const bidiResult = bidi(text, -1, textChunk.vertical); + return { + str: bidiResult.str, + dir: bidiResult.dir, + width: Math.abs(textChunk.totalWidth), + height: Math.abs(textChunk.totalHeight), + transform: textChunk.transform, + fontName: textChunk.fontName, + hasEOL: textChunk.hasEOL + }; + } + async function handleSetFont(fontName, fontRef) { + const translated = await self.loadFont(fontName, fontRef, resources); + if (translated.font.isType3Font) { + try { + await translated.loadType3Data(self, resources, task); + } catch {} + } + textState.loadedName = translated.loadedName; + textState.font = translated.font; + textState.fontMatrix = translated.font.fontMatrix || FONT_IDENTITY_MATRIX; + } + function applyInverseRotation(x, y, matrix) { + const scale = Math.hypot(matrix[0], matrix[1]); + return [(matrix[0] * x + matrix[1] * y) / scale, (matrix[2] * x + matrix[3] * y) / scale]; + } + function compareWithLastPosition(glyphWidth) { + const currentTransform = getCurrentTextTransform(); + let posX = currentTransform[4]; + let posY = currentTransform[5]; + if (textState.font?.vertical) { + if (posX < viewBox[0] || posX > viewBox[2] || posY + glyphWidth < viewBox[1] || posY > viewBox[3]) { + return false; + } + } else if (posX + glyphWidth < viewBox[0] || posX > viewBox[2] || posY < viewBox[1] || posY > viewBox[3]) { + return false; + } + if (!textState.font || !textContentItem.prevTransform) { + return true; + } + let lastPosX = textContentItem.prevTransform[4]; + let lastPosY = textContentItem.prevTransform[5]; + if (lastPosX === posX && lastPosY === posY) { + return true; + } + let rotate = -1; + if (currentTransform[0] && currentTransform[1] === 0 && currentTransform[2] === 0) { + rotate = currentTransform[0] > 0 ? 0 : 180; + } else if (currentTransform[1] && currentTransform[0] === 0 && currentTransform[3] === 0) { + rotate = currentTransform[1] > 0 ? 90 : 270; + } + switch (rotate) { + case 0: + break; + case 90: + [posX, posY] = [posY, posX]; + [lastPosX, lastPosY] = [lastPosY, lastPosX]; + break; + case 180: + [posX, posY, lastPosX, lastPosY] = [-posX, -posY, -lastPosX, -lastPosY]; + break; + case 270: + [posX, posY] = [-posY, -posX]; + [lastPosX, lastPosY] = [-lastPosY, -lastPosX]; + break; + default: + [posX, posY] = applyInverseRotation(posX, posY, currentTransform); + [lastPosX, lastPosY] = applyInverseRotation(lastPosX, lastPosY, textContentItem.prevTransform); + } + if (textState.font.vertical) { + const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale; + const advanceX = posX - lastPosX; + const textOrientation = Math.sign(textContentItem.height); + if (advanceY < textOrientation * textContentItem.negativeSpaceMax) { + if (Math.abs(advanceX) > 0.5 * textContentItem.width) { + appendEOL(); + return true; + } + resetLastChars(); + flushTextContentItem(); + return true; + } + if (Math.abs(advanceX) > textContentItem.width) { + appendEOL(); + return true; + } + if (advanceY <= textOrientation * textContentItem.notASpace) { + resetLastChars(); + } + if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) { + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ + height: Math.abs(advanceY) + }); + } else { + textContentItem.height += advanceY; + } + } else if (!addFakeSpaces(advanceY, textContentItem.prevTransform, textOrientation)) { + if (textContentItem.str.length === 0) { + resetLastChars(); + pushWhitespace({ + height: Math.abs(advanceY) + }); + } else { + textContentItem.height += advanceY; + } + } + if (Math.abs(advanceX) > textContentItem.width * VERTICAL_SHIFT_RATIO) { + flushTextContentItem(); + } + return true; + } + const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale; + const advanceY = posY - lastPosY; + const textOrientation = Math.sign(textContentItem.width); + if (advanceX < textOrientation * textContentItem.negativeSpaceMax) { + if (Math.abs(advanceY) > 0.5 * textContentItem.height) { + appendEOL(); + return true; + } + resetLastChars(); + flushTextContentItem(); + return true; + } + if (Math.abs(advanceY) > textContentItem.height) { + appendEOL(); + return true; + } + if (advanceX <= textOrientation * textContentItem.notASpace) { + resetLastChars(); + } + if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) { + if (shouldAddWhitepsace()) { + resetLastChars(); + flushTextContentItem(); + pushWhitespace({ + width: Math.abs(advanceX) + }); + } else { + textContentItem.width += advanceX; + } + } else if (!addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)) { + if (textContentItem.str.length === 0) { + resetLastChars(); + pushWhitespace({ + width: Math.abs(advanceX) + }); + } else { + textContentItem.width += advanceX; + } + } + if (Math.abs(advanceY) > textContentItem.height * VERTICAL_SHIFT_RATIO) { + flushTextContentItem(); + } + return true; + } + function buildTextContentItem({ + chars, + extraSpacing + }) { + const font = textState.font; + if (!chars) { + const charSpacing = textState.charSpacing + extraSpacing; + if (charSpacing) { + if (!font.vertical) { + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, -charSpacing); + } + } + if (keepWhiteSpace) { + compareWithLastPosition(0); + } + return; + } + const glyphs = font.charsToGlyphs(chars); + const scale = textState.fontMatrix[0] * textState.fontSize; + for (let i = 0, ii = glyphs.length; i < ii; i++) { + const glyph = glyphs[i]; + const { + category + } = glyph; + if (category.isInvisibleFormatMark) { + continue; + } + let charSpacing = textState.charSpacing + (i + 1 === ii ? extraSpacing : 0); + let glyphWidth = glyph.width; + if (font.vertical) { + glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth; + } + let scaledDim = glyphWidth * scale; + if (!keepWhiteSpace && category.isWhitespace) { + if (!font.vertical) { + charSpacing += scaledDim + textState.wordSpacing; + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + charSpacing += -scaledDim + textState.wordSpacing; + textState.translateTextMatrix(0, -charSpacing); + } + saveLastChar(" "); + continue; + } + if (!category.isZeroWidthDiacritic && !compareWithLastPosition(scaledDim)) { + if (!font.vertical) { + textState.translateTextMatrix(scaledDim * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, scaledDim); + } + continue; + } + const textChunk = ensureTextContentItem(); + if (category.isZeroWidthDiacritic) { + scaledDim = 0; + } + if (!font.vertical) { + scaledDim *= textState.textHScale; + textState.translateTextMatrix(scaledDim, 0); + textChunk.width += scaledDim; + } else { + textState.translateTextMatrix(0, scaledDim); + scaledDim = Math.abs(scaledDim); + textChunk.height += scaledDim; + } + if (scaledDim) { + textChunk.prevTransform = getCurrentTextTransform(); + } + const glyphUnicode = glyph.unicode; + if (saveLastChar(glyphUnicode)) { + textChunk.str.push(" "); + } + textChunk.str.push(glyphUnicode); + if (charSpacing) { + if (!font.vertical) { + textState.translateTextMatrix(charSpacing * textState.textHScale, 0); + } else { + textState.translateTextMatrix(0, -charSpacing); + } + } + } + } + function appendEOL() { + resetLastChars(); + if (textContentItem.initialized) { + textContentItem.hasEOL = true; + flushTextContentItem(); + } else { + textContent.items.push({ + str: "", + dir: "ltr", + width: 0, + height: 0, + transform: getCurrentTextTransform(), + fontName: textState.loadedName, + hasEOL: true + }); + } + } + function addFakeSpaces(width, transf, textOrientation) { + if (textOrientation * textContentItem.spaceInFlowMin <= width && width <= textOrientation * textContentItem.spaceInFlowMax) { + if (textContentItem.initialized) { + resetLastChars(); + textContentItem.str.push(" "); + } + return false; + } + const fontName = textContentItem.fontName; + let height = 0; + if (textContentItem.vertical) { + height = width; + width = 0; + } + flushTextContentItem(); + resetLastChars(); + pushWhitespace({ + width: Math.abs(width), + height: Math.abs(height), + transform: transf || getCurrentTextTransform(), + fontName + }); + return true; + } + function flushTextContentItem() { + if (!textContentItem.initialized || !textContentItem.str) { + return; + } + if (!textContentItem.vertical) { + textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale; + } else { + textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale; + } + textContent.items.push(runBidiTransform(textContentItem)); + textContentItem.initialized = false; + textContentItem.str.length = 0; + } + function enqueueChunk(batch = false) { + const length = textContent.items.length; + if (length === 0) { + return; + } + if (batch && length < TEXT_CHUNK_BATCH_SIZE) { + return; + } + sink.enqueue(textContent, length); + textContent.items = []; + textContent.styles = Object.create(null); + } + const timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + const next = function (promise) { + enqueueChunk(true); + Promise.all([promise, sink.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + task.ensureNotTerminated(); + timeSlotManager.reset(); + const operation = {}; + let stop, + name, + isValidName, + args = []; + while (!(stop = timeSlotManager.check())) { + args.length = 0; + operation.args = args; + if (!preprocessor.read(operation)) { + break; + } + const previousState = textState; + textState = stateManager.state; + const fn = operation.fn; + args = operation.args; + switch (fn | 0) { + case OPS.setFont: + const fontNameArg = args[0].name, + fontSizeArg = args[1]; + if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) { + break; + } + flushTextContentItem(); + textState.fontName = fontNameArg; + textState.fontSize = fontSizeArg; + next(handleSetFont(fontNameArg, null)); + return; + case OPS.setTextRise: + textState.textRise = args[0]; + break; + case OPS.setHScale: + textState.textHScale = args[0] / 100; + break; + case OPS.setLeading: + textState.leading = args[0]; + break; + case OPS.moveText: + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.setLeadingMoveText: + textState.leading = -args[1]; + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + case OPS.nextLine: + textState.carriageReturn(); + break; + case OPS.setTextMatrix: + textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + updateAdvanceScale(); + break; + case OPS.setCharSpacing: + textState.charSpacing = args[0]; + break; + case OPS.setWordSpacing: + textState.wordSpacing = args[0]; + break; + case OPS.beginText: + textState.textMatrix = IDENTITY_MATRIX.slice(); + textState.textLineMatrix = IDENTITY_MATRIX.slice(); + break; + case OPS.showSpacedText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + const spaceFactor = (textState.font.vertical ? 1 : -1) * textState.fontSize / 1000; + const elements = args[0]; + for (let i = 0, ii = elements.length; i < ii; i++) { + const item = elements[i]; + if (typeof item === "string") { + showSpacedTextBuffer.push(item); + } else if (typeof item === "number" && item !== 0) { + const str = showSpacedTextBuffer.join(""); + showSpacedTextBuffer.length = 0; + buildTextContentItem({ + chars: str, + extraSpacing: item * spaceFactor + }); + } + } + if (showSpacedTextBuffer.length > 0) { + const str = showSpacedTextBuffer.join(""); + showSpacedTextBuffer.length = 0; + buildTextContentItem({ + chars: str, + extraSpacing: 0 + }); + } + break; + case OPS.showText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + buildTextContentItem({ + chars: args[0], + extraSpacing: 0 + }); + break; + case OPS.nextLineShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + textState.carriageReturn(); + buildTextContentItem({ + chars: args[0], + extraSpacing: 0 + }); + break; + case OPS.nextLineSetSpacingShowText: + if (!stateManager.state.font) { + self.ensureStateFont(stateManager.state); + continue; + } + textState.wordSpacing = args[0]; + textState.charSpacing = args[1]; + textState.carriageReturn(); + buildTextContentItem({ + chars: args[2], + extraSpacing: 0 + }); + break; + case OPS.paintXObject: + flushTextContentItem(); + xobjs ??= resources.get("XObject") || Dict.empty; + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName && emptyXObjectCache.getByName(name)) { + break; + } + next(new Promise(function (resolveXObject, rejectXObject) { + if (!isValidName) { + throw new FormatError("XObject must be referred to by name."); + } + let xobj = xobjs.getRaw(name); + if (xobj instanceof Ref) { + if (emptyXObjectCache.getByRef(xobj)) { + resolveXObject(); + return; + } + const globalImage = self.globalImageCache.getData(xobj, self.pageIndex); + if (globalImage) { + resolveXObject(); + return; + } + xobj = xref.fetch(xobj); + } + if (!(xobj instanceof BaseStream)) { + throw new FormatError("XObject should be a stream"); + } + const type = xobj.dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("XObject should have a Name subtype"); + } + if (type.name !== "Form") { + emptyXObjectCache.set(name, xobj.dict.objId, true); + resolveXObject(); + return; + } + const currentState = stateManager.state.clone(); + const xObjStateManager = new StateManager(currentState); + const matrix = lookupMatrix(xobj.dict.getArray("Matrix"), null); + if (matrix) { + xObjStateManager.transform(matrix); + } + enqueueChunk(); + const sinkWrapper = { + enqueueInvoked: false, + enqueue(chunk, size) { + this.enqueueInvoked = true; + sink.enqueue(chunk, size); + }, + get desiredSize() { + return sink.desiredSize; + }, + get ready() { + return sink.ready; + } + }; + self.getTextContent({ + stream: xobj, + task, + resources: xobj.dict.get("Resources") || resources, + stateManager: xObjStateManager, + includeMarkedContent, + sink: sinkWrapper, + seenStyles, + viewBox, + lang, + markedContentData, + disableNormalization, + keepWhiteSpace + }).then(function () { + if (!sinkWrapper.enqueueInvoked) { + emptyXObjectCache.set(name, xobj.dict.objId, true); + } + resolveXObject(); + }, rejectXObject); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getTextContent - ignoring XObject: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.setGState: + isValidName = args[0] instanceof Name; + name = args[0].name; + if (isValidName && emptyGStateCache.getByName(name)) { + break; + } + next(new Promise(function (resolveGState, rejectGState) { + if (!isValidName) { + throw new FormatError("GState must be referred to by name."); + } + const extGState = resources.get("ExtGState"); + if (!(extGState instanceof Dict)) { + throw new FormatError("ExtGState should be a dictionary."); + } + const gState = extGState.get(name); + if (!(gState instanceof Dict)) { + throw new FormatError("GState should be a dictionary."); + } + const gStateFont = gState.get("Font"); + if (!gStateFont) { + emptyGStateCache.set(name, gState.objId, true); + resolveGState(); + return; + } + flushTextContentItem(); + textState.fontName = null; + textState.fontSize = gStateFont[1]; + handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState); + }).catch(function (reason) { + if (reason instanceof AbortException) { + return; + } + if (self.options.ignoreErrors) { + warn(`getTextContent - ignoring ExtGState: "${reason}".`); + return; + } + throw reason; + })); + return; + case OPS.beginMarkedContent: + flushTextContentItem(); + if (includeMarkedContent) { + markedContentData.level++; + textContent.items.push({ + type: "beginMarkedContent", + tag: args[0] instanceof Name ? args[0].name : null + }); + } + break; + case OPS.beginMarkedContentProps: + flushTextContentItem(); + if (includeMarkedContent) { + markedContentData.level++; + let mcid = null; + if (args[1] instanceof Dict) { + mcid = args[1].get("MCID"); + } + textContent.items.push({ + type: "beginMarkedContentProps", + id: Number.isInteger(mcid) ? `${self.idFactory.getPageObjId()}_mc${mcid}` : null, + tag: args[0] instanceof Name ? args[0].name : null + }); + } + break; + case OPS.endMarkedContent: + flushTextContentItem(); + if (includeMarkedContent) { + if (markedContentData.level === 0) { + break; + } + markedContentData.level--; + textContent.items.push({ + type: "endMarkedContent" + }); + } + break; + case OPS.restore: + if (previousState && (previousState.font !== textState.font || previousState.fontSize !== textState.fontSize || previousState.fontName !== textState.fontName)) { + flushTextContentItem(); + } + break; + } + if (textContent.items.length >= sink.desiredSize) { + stop = true; + break; + } + } + if (stop) { + next(deferred); + return; + } + flushTextContentItem(); + enqueueChunk(); + resolve(); + }).catch(reason => { + if (reason instanceof AbortException) { + return; + } + if (this.options.ignoreErrors) { + warn(`getTextContent - ignoring errors during "${task.name}" ` + `task: "${reason}".`); + flushTextContentItem(); + enqueueChunk(); + return; + } + throw reason; + }); + } + async extractDataStructures(dict, properties) { + const xref = this.xref; + let cidToGidBytes; + const toUnicodePromise = this.readToUnicode(properties.toUnicode); + if (properties.composite) { + const cidSystemInfo = dict.get("CIDSystemInfo"); + if (cidSystemInfo instanceof Dict) { + properties.cidSystemInfo = { + registry: stringToPDFString(cidSystemInfo.get("Registry")), + ordering: stringToPDFString(cidSystemInfo.get("Ordering")), + supplement: cidSystemInfo.get("Supplement") + }; + } + try { + const cidToGidMap = dict.get("CIDToGIDMap"); + if (cidToGidMap instanceof BaseStream) { + cidToGidBytes = cidToGidMap.getBytes(); + } + } catch (ex) { + if (!this.options.ignoreErrors) { + throw ex; + } + warn(`extractDataStructures - ignoring CIDToGIDMap data: "${ex}".`); + } + } + const differences = []; + let baseEncodingName = null; + let encoding; + if (dict.has("Encoding")) { + encoding = dict.get("Encoding"); + if (encoding instanceof Dict) { + baseEncodingName = encoding.get("BaseEncoding"); + baseEncodingName = baseEncodingName instanceof Name ? baseEncodingName.name : null; + if (encoding.has("Differences")) { + const diffEncoding = encoding.get("Differences"); + let index = 0; + for (const entry of diffEncoding) { + const data = xref.fetchIfRef(entry); + if (typeof data === "number") { + index = data; + } else if (data instanceof Name) { + differences[index++] = data.name; + } else { + throw new FormatError(`Invalid entry in 'Differences' array: ${data}`); + } + } + } + } else if (encoding instanceof Name) { + baseEncodingName = encoding.name; + } else { + const msg = "Encoding is not a Name nor a Dict"; + if (!this.options.ignoreErrors) { + throw new FormatError(msg); + } + warn(msg); + } + if (baseEncodingName !== "MacRomanEncoding" && baseEncodingName !== "MacExpertEncoding" && baseEncodingName !== "WinAnsiEncoding") { + baseEncodingName = null; + } + } + const nonEmbeddedFont = !properties.file || properties.isInternalFont, + isSymbolsFontName = getSymbolsFonts()[properties.name]; + if (baseEncodingName && nonEmbeddedFont && isSymbolsFontName) { + baseEncodingName = null; + } + if (baseEncodingName) { + properties.defaultEncoding = getEncoding(baseEncodingName); + } else { + const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic); + encoding = StandardEncoding; + if (properties.type === "TrueType" && !isNonsymbolicFont) { + encoding = WinAnsiEncoding; + } + if (isSymbolicFont || isSymbolsFontName) { + encoding = MacRomanEncoding; + if (nonEmbeddedFont) { + if (/Symbol/i.test(properties.name)) { + encoding = SymbolSetEncoding; + } else if (/Dingbats/i.test(properties.name)) { + encoding = ZapfDingbatsEncoding; + } else if (/Wingdings/i.test(properties.name)) { + encoding = WinAnsiEncoding; + } + } + } + properties.defaultEncoding = encoding; + } + properties.differences = differences; + properties.baseEncodingName = baseEncodingName; + properties.hasEncoding = !!baseEncodingName || differences.length > 0; + properties.dict = dict; + properties.toUnicode = await toUnicodePromise; + const builtToUnicode = await this.buildToUnicode(properties); + properties.toUnicode = builtToUnicode; + if (cidToGidBytes) { + properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode); + } + return properties; + } + _simpleFontToUnicode(properties, forceGlyphs = false) { + assert(!properties.composite, "Must be a simple font."); + const toUnicode = []; + const encoding = properties.defaultEncoding.slice(); + const baseEncodingName = properties.baseEncodingName; + const differences = properties.differences; + for (const charcode in differences) { + const glyphName = differences[charcode]; + if (glyphName === ".notdef") { + continue; + } + encoding[charcode] = glyphName; + } + const glyphsUnicodeMap = getGlyphsUnicode(); + for (const charcode in encoding) { + let glyphName = encoding[charcode]; + if (glyphName === "") { + continue; + } + let unicode = glyphsUnicodeMap[glyphName]; + if (unicode !== undefined) { + toUnicode[charcode] = String.fromCharCode(unicode); + continue; + } + let code = 0; + switch (glyphName[0]) { + case "G": + if (glyphName.length === 3) { + code = parseInt(glyphName.substring(1), 16); + } + break; + case "g": + if (glyphName.length === 5) { + code = parseInt(glyphName.substring(1), 16); + } + break; + case "C": + case "c": + if (glyphName.length >= 3 && glyphName.length <= 4) { + const codeStr = glyphName.substring(1); + if (forceGlyphs) { + code = parseInt(codeStr, 16); + break; + } + code = +codeStr; + if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) { + return this._simpleFontToUnicode(properties, true); + } + } + break; + case "u": + unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap); + if (unicode !== -1) { + code = unicode; + } + break; + default: + switch (glyphName) { + case "f_h": + case "f_t": + case "T_h": + toUnicode[charcode] = glyphName.replaceAll("_", ""); + continue; + } + break; + } + if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) { + if (baseEncodingName && code === +charcode) { + const baseEncoding = getEncoding(baseEncodingName); + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + continue; + } + } + toUnicode[charcode] = String.fromCodePoint(code); + } + } + return toUnicode; + } + async buildToUnicode(properties) { + properties.hasIncludedToUnicodeMap = properties.toUnicode?.length > 0; + if (properties.hasIncludedToUnicodeMap) { + if (!properties.composite && properties.hasEncoding) { + properties.fallbackToUnicode = this._simpleFontToUnicode(properties); + } + return properties.toUnicode; + } + if (!properties.composite) { + return new ToUnicodeMap(this._simpleFontToUnicode(properties)); + } + if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof IdentityCMap) || properties.cidSystemInfo?.registry === "Adobe" && (properties.cidSystemInfo.ordering === "GB1" || properties.cidSystemInfo.ordering === "CNS1" || properties.cidSystemInfo.ordering === "Japan1" || properties.cidSystemInfo.ordering === "Korea1"))) { + const { + registry, + ordering + } = properties.cidSystemInfo; + const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`); + const ucs2CMap = await CMapFactory.create({ + encoding: ucs2CMapName, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + const toUnicode = [], + buf = []; + properties.cMap.forEach(function (charcode, cid) { + if (cid > 0xffff) { + throw new FormatError("Max size of CID is 65,535"); + } + const ucs2 = ucs2CMap.lookup(cid); + if (ucs2) { + buf.length = 0; + for (let i = 0, ii = ucs2.length; i < ii; i += 2) { + buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1)); + } + toUnicode[charcode] = String.fromCharCode(...buf); + } + }); + return new ToUnicodeMap(toUnicode); + } + return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar); + } + async readToUnicode(cmapObj) { + if (!cmapObj) { + return null; + } + if (cmapObj instanceof Name) { + const cmap = await CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xffff); + } + return new ToUnicodeMap(cmap.getMap()); + } + if (cmapObj instanceof BaseStream) { + try { + const cmap = await CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + if (cmap instanceof IdentityCMap) { + return new IdentityToUnicodeMap(0, 0xffff); + } + const map = new Array(cmap.length); + cmap.forEach(function (charCode, token) { + if (typeof token === "number") { + map[charCode] = String.fromCodePoint(token); + return; + } + if (token.length % 2 !== 0) { + token = "\u0000" + token; + } + const str = []; + for (let k = 0; k < token.length; k += 2) { + const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + if ((w1 & 0xf800) !== 0xd800) { + str.push(w1); + continue; + } + k += 2; + const w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000); + } + map[charCode] = String.fromCodePoint(...str); + }); + return new ToUnicodeMap(map); + } catch (reason) { + if (reason instanceof AbortException) { + return null; + } + if (this.options.ignoreErrors) { + warn(`readToUnicode - ignoring ToUnicode data: "${reason}".`); + return null; + } + throw reason; + } + } + return null; + } + readCidToGidMap(glyphsData, toUnicode) { + const result = []; + for (let j = 0, jj = glyphsData.length; j < jj; j++) { + const glyphID = glyphsData[j++] << 8 | glyphsData[j]; + const code = j >> 1; + if (glyphID === 0 && !toUnicode.has(code)) { + continue; + } + result[code] = glyphID; + } + return result; + } + extractWidths(dict, descriptor, properties) { + const xref = this.xref; + let glyphsWidths = []; + let defaultWidth = 0; + const glyphsVMetrics = []; + let defaultVMetrics; + if (properties.composite) { + const dw = dict.get("DW"); + defaultWidth = typeof dw === "number" ? Math.ceil(dw) : 1000; + const widths = dict.get("W"); + if (Array.isArray(widths)) { + for (let i = 0, ii = widths.length; i < ii; i++) { + let start = xref.fetchIfRef(widths[i++]); + if (!Number.isInteger(start)) { + break; + } + const code = xref.fetchIfRef(widths[i]); + if (Array.isArray(code)) { + for (const c of code) { + const width = xref.fetchIfRef(c); + if (typeof width === "number") { + glyphsWidths[start] = width; + } + start++; + } + } else if (Number.isInteger(code)) { + const width = xref.fetchIfRef(widths[++i]); + if (typeof width !== "number") { + continue; + } + for (let j = start; j <= code; j++) { + glyphsWidths[j] = width; + } + } else { + break; + } + } + } + if (properties.vertical) { + const dw2 = dict.getArray("DW2"); + let vmetrics = isNumberArray(dw2, 2) ? dw2 : [880, -1000]; + defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]]; + vmetrics = dict.get("W2"); + if (Array.isArray(vmetrics)) { + for (let i = 0, ii = vmetrics.length; i < ii; i++) { + let start = xref.fetchIfRef(vmetrics[i++]); + if (!Number.isInteger(start)) { + break; + } + const code = xref.fetchIfRef(vmetrics[i]); + if (Array.isArray(code)) { + for (let j = 0, jj = code.length; j < jj; j++) { + const vmetric = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])]; + if (isNumberArray(vmetric, null)) { + glyphsVMetrics[start] = vmetric; + } + start++; + } + } else if (Number.isInteger(code)) { + const vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])]; + if (!isNumberArray(vmetric, null)) { + continue; + } + for (let j = start; j <= code; j++) { + glyphsVMetrics[j] = vmetric; + } + } else { + break; + } + } + } + } + } else { + const widths = dict.get("Widths"); + if (Array.isArray(widths)) { + let j = properties.firstChar; + for (const w of widths) { + const width = xref.fetchIfRef(w); + if (typeof width === "number") { + glyphsWidths[j] = width; + } + j++; + } + const missingWidth = descriptor.get("MissingWidth"); + defaultWidth = typeof missingWidth === "number" ? missingWidth : 0; + } else { + const baseFontName = dict.get("BaseFont"); + if (baseFontName instanceof Name) { + const metrics = this.getBaseFontMetrics(baseFontName.name); + glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties); + defaultWidth = metrics.defaultWidth; + } + } + } + let isMonospace = true; + let firstWidth = defaultWidth; + for (const glyph in glyphsWidths) { + const glyphWidth = glyphsWidths[glyph]; + if (!glyphWidth) { + continue; + } + if (!firstWidth) { + firstWidth = glyphWidth; + continue; + } + if (firstWidth !== glyphWidth) { + isMonospace = false; + break; + } + } + if (isMonospace) { + properties.flags |= FontFlags.FixedPitch; + } else { + properties.flags &= ~FontFlags.FixedPitch; + } + properties.defaultWidth = defaultWidth; + properties.widths = glyphsWidths; + properties.defaultVMetrics = defaultVMetrics; + properties.vmetrics = glyphsVMetrics; + } + isSerifFont(baseFontName) { + const fontNameWoStyle = baseFontName.split("-", 1)[0]; + return fontNameWoStyle in getSerifFonts() || /serif/gi.test(fontNameWoStyle); + } + getBaseFontMetrics(name) { + let defaultWidth = 0; + let widths = Object.create(null); + let monospace = false; + const stdFontMap = getStdFontMap(); + let lookupName = stdFontMap[name] || name; + const Metrics = getMetrics(); + if (!(lookupName in Metrics)) { + lookupName = this.isSerifFont(name) ? "Times-Roman" : "Helvetica"; + } + const glyphWidths = Metrics[lookupName]; + if (typeof glyphWidths === "number") { + defaultWidth = glyphWidths; + monospace = true; + } else { + widths = glyphWidths(); + } + return { + defaultWidth, + monospace, + widths + }; + } + buildCharCodeToWidth(widthsByGlyphName, properties) { + const widths = Object.create(null); + const differences = properties.differences; + const encoding = properties.defaultEncoding; + for (let charCode = 0; charCode < 256; charCode++) { + if (charCode in differences && widthsByGlyphName[differences[charCode]]) { + widths[charCode] = widthsByGlyphName[differences[charCode]]; + continue; + } + if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { + widths[charCode] = widthsByGlyphName[encoding[charCode]]; + continue; + } + } + return widths; + } + preEvaluateFont(dict) { + const baseDict = dict; + let type = dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("invalid font Subtype"); + } + let composite = false; + let hash; + if (type.name === "Type0") { + const df = dict.get("DescendantFonts"); + if (!df) { + throw new FormatError("Descendant fonts are not specified"); + } + dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df; + if (!(dict instanceof Dict)) { + throw new FormatError("Descendant font is not a dictionary."); + } + type = dict.get("Subtype"); + if (!(type instanceof Name)) { + throw new FormatError("invalid font Subtype"); + } + composite = true; + } + let firstChar = dict.get("FirstChar"); + if (!Number.isInteger(firstChar)) { + firstChar = 0; + } + let lastChar = dict.get("LastChar"); + if (!Number.isInteger(lastChar)) { + lastChar = composite ? 0xffff : 0xff; + } + const descriptor = dict.get("FontDescriptor"); + const toUnicode = dict.get("ToUnicode") || baseDict.get("ToUnicode"); + if (descriptor) { + hash = new MurmurHash3_64(); + const encoding = baseDict.getRaw("Encoding"); + if (encoding instanceof Name) { + hash.update(encoding.name); + } else if (encoding instanceof Ref) { + hash.update(encoding.toString()); + } else if (encoding instanceof Dict) { + for (const entry of encoding.getRawValues()) { + if (entry instanceof Name) { + hash.update(entry.name); + } else if (entry instanceof Ref) { + hash.update(entry.toString()); + } else if (Array.isArray(entry)) { + const diffLength = entry.length, + diffBuf = new Array(diffLength); + for (let j = 0; j < diffLength; j++) { + const diffEntry = entry[j]; + if (diffEntry instanceof Name) { + diffBuf[j] = diffEntry.name; + } else if (typeof diffEntry === "number" || diffEntry instanceof Ref) { + diffBuf[j] = diffEntry.toString(); + } + } + hash.update(diffBuf.join()); + } + } + } + hash.update(`${firstChar}-${lastChar}`); + if (toUnicode instanceof BaseStream) { + const stream = toUnicode.str || toUnicode; + const uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start); + hash.update(uint8array); + } else if (toUnicode instanceof Name) { + hash.update(toUnicode.name); + } + const widths = dict.get("Widths") || baseDict.get("Widths"); + if (Array.isArray(widths)) { + const widthsBuf = []; + for (const entry of widths) { + if (typeof entry === "number" || entry instanceof Ref) { + widthsBuf.push(entry.toString()); + } + } + hash.update(widthsBuf.join()); + } + if (composite) { + hash.update("compositeFont"); + const compositeWidths = dict.get("W") || baseDict.get("W"); + if (Array.isArray(compositeWidths)) { + const widthsBuf = []; + for (const entry of compositeWidths) { + if (typeof entry === "number" || entry instanceof Ref) { + widthsBuf.push(entry.toString()); + } else if (Array.isArray(entry)) { + const subWidthsBuf = []; + for (const element of entry) { + if (typeof element === "number" || element instanceof Ref) { + subWidthsBuf.push(element.toString()); + } + } + widthsBuf.push(`[${subWidthsBuf.join()}]`); + } + } + hash.update(widthsBuf.join()); + } + const cidToGidMap = dict.getRaw("CIDToGIDMap") || baseDict.getRaw("CIDToGIDMap"); + if (cidToGidMap instanceof Name) { + hash.update(cidToGidMap.name); + } else if (cidToGidMap instanceof Ref) { + hash.update(cidToGidMap.toString()); + } else if (cidToGidMap instanceof BaseStream) { + hash.update(cidToGidMap.peekBytes()); + } + } + } + return { + descriptor, + dict, + baseDict, + composite, + type: type.name, + firstChar, + lastChar, + toUnicode, + hash: hash ? hash.hexdigest() : "" + }; + } + async translateFont({ + descriptor, + dict, + baseDict, + composite, + type, + firstChar, + lastChar, + toUnicode, + cssFontInfo + }) { + const isType3Font = type === "Type3"; + if (!descriptor) { + if (isType3Font) { + const bbox = lookupNormalRect(dict.getArray("FontBBox"), [0, 0, 0, 0]); + descriptor = new Dict(null); + descriptor.set("FontName", Name.get(type)); + descriptor.set("FontBBox", bbox); + } else { + let baseFontName = dict.get("BaseFont"); + if (!(baseFontName instanceof Name)) { + throw new FormatError("Base font is not specified"); + } + baseFontName = baseFontName.name.replaceAll(/[,_]/g, "-"); + const metrics = this.getBaseFontMetrics(baseFontName); + const fontNameWoStyle = baseFontName.split("-", 1)[0]; + const flags = (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | (metrics.monospace ? FontFlags.FixedPitch : 0) | (getSymbolsFonts()[fontNameWoStyle] ? FontFlags.Symbolic : FontFlags.Nonsymbolic); + const properties = { + type, + name: baseFontName, + loadedName: baseDict.loadedName, + systemFontInfo: null, + widths: metrics.widths, + defaultWidth: metrics.defaultWidth, + isSimulatedFlags: true, + flags, + firstChar, + lastChar, + toUnicode, + xHeight: 0, + capHeight: 0, + italicAngle: 0, + isType3Font + }; + const widths = dict.get("Widths"); + const standardFontName = getStandardFontName(baseFontName); + let file = null; + if (standardFontName) { + file = await this.fetchStandardFontData(standardFontName); + properties.isInternalFont = !!file; + } + if (!properties.isInternalFont && this.options.useSystemFonts) { + properties.systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, baseFontName, standardFontName, type); + } + const newProperties = await this.extractDataStructures(dict, properties); + if (Array.isArray(widths)) { + const glyphWidths = []; + let j = firstChar; + for (const w of widths) { + const width = this.xref.fetchIfRef(w); + if (typeof width === "number") { + glyphWidths[j] = width; + } + j++; + } + newProperties.widths = glyphWidths; + } else { + newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties); + } + return new Font(baseFontName, file, newProperties); + } + } + let fontName = descriptor.get("FontName"); + let baseFont = dict.get("BaseFont"); + if (typeof fontName === "string") { + fontName = Name.get(fontName); + } + if (typeof baseFont === "string") { + baseFont = Name.get(baseFont); + } + const fontNameStr = fontName?.name; + const baseFontStr = baseFont?.name; + if (!isType3Font && fontNameStr !== baseFontStr) { + info(`The FontDescriptor's FontName is "${fontNameStr}" but ` + `should be the same as the Font's BaseFont "${baseFontStr}".`); + if (fontNameStr && baseFontStr && (baseFontStr.startsWith(fontNameStr) || !isKnownFontName(fontNameStr) && isKnownFontName(baseFontStr))) { + fontName = null; + } + } + fontName ||= baseFont; + if (!(fontName instanceof Name)) { + throw new FormatError("invalid font name"); + } + let fontFile, subtype, length1, length2, length3; + try { + fontFile = descriptor.get("FontFile", "FontFile2", "FontFile3"); + if (fontFile) { + if (!(fontFile instanceof BaseStream)) { + throw new FormatError("FontFile should be a stream"); + } else if (fontFile.isEmpty) { + throw new FormatError("FontFile is empty"); + } + } + } catch (ex) { + if (!this.options.ignoreErrors) { + throw ex; + } + warn(`translateFont - fetching "${fontName.name}" font file: "${ex}".`); + fontFile = null; + } + let isInternalFont = false; + let glyphScaleFactors = null; + let systemFontInfo = null; + if (fontFile) { + if (fontFile.dict) { + const subtypeEntry = fontFile.dict.get("Subtype"); + if (subtypeEntry instanceof Name) { + subtype = subtypeEntry.name; + } + length1 = fontFile.dict.get("Length1"); + length2 = fontFile.dict.get("Length2"); + length3 = fontFile.dict.get("Length3"); + } + } else if (cssFontInfo) { + const standardFontName = getXfaFontName(fontName.name); + if (standardFontName) { + cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`; + cssFontInfo.metrics = standardFontName.metrics || null; + glyphScaleFactors = standardFontName.factors || null; + fontFile = await this.fetchStandardFontData(standardFontName.name); + isInternalFont = !!fontFile; + baseDict = dict = getXfaFontDict(fontName.name); + composite = true; + } + } else if (!isType3Font) { + const standardFontName = getStandardFontName(fontName.name); + if (standardFontName) { + fontFile = await this.fetchStandardFontData(standardFontName); + isInternalFont = !!fontFile; + } + if (!isInternalFont && this.options.useSystemFonts) { + systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, fontName.name, standardFontName, type); + } + } + const fontMatrix = lookupMatrix(dict.getArray("FontMatrix"), FONT_IDENTITY_MATRIX); + const bbox = lookupNormalRect(descriptor.getArray("FontBBox") || dict.getArray("FontBBox"), undefined); + let ascent = descriptor.get("Ascent"); + if (typeof ascent !== "number") { + ascent = undefined; + } + let descent = descriptor.get("Descent"); + if (typeof descent !== "number") { + descent = undefined; + } + let xHeight = descriptor.get("XHeight"); + if (typeof xHeight !== "number") { + xHeight = 0; + } + let capHeight = descriptor.get("CapHeight"); + if (typeof capHeight !== "number") { + capHeight = 0; + } + let flags = descriptor.get("Flags"); + if (!Number.isInteger(flags)) { + flags = 0; + } + let italicAngle = descriptor.get("ItalicAngle"); + if (typeof italicAngle !== "number") { + italicAngle = 0; + } + const properties = { + type, + name: fontName.name, + subtype, + file: fontFile, + length1, + length2, + length3, + isInternalFont, + loadedName: baseDict.loadedName, + composite, + fixedPitch: false, + fontMatrix, + firstChar, + lastChar, + toUnicode, + bbox, + ascent, + descent, + xHeight, + capHeight, + flags, + italicAngle, + isType3Font, + cssFontInfo, + scaleFactors: glyphScaleFactors, + systemFontInfo + }; + if (composite) { + const cidEncoding = baseDict.get("Encoding"); + if (cidEncoding instanceof Name) { + properties.cidEncoding = cidEncoding.name; + } + const cMap = await CMapFactory.create({ + encoding: cidEncoding, + fetchBuiltInCMap: this._fetchBuiltInCMapBound, + useCMap: null + }); + properties.cMap = cMap; + properties.vertical = properties.cMap.vertical; + } + const newProperties = await this.extractDataStructures(dict, properties); + this.extractWidths(dict, descriptor, newProperties); + return new Font(fontName.name, fontFile, newProperties); + } + static buildFontPaths(font, glyphs, handler, evaluatorOptions) { + function buildPath(fontChar) { + const glyphName = `${font.loadedName}_path_${fontChar}`; + try { + if (font.renderer.hasBuiltPath(fontChar)) { + return; + } + handler.send("commonobj", [glyphName, "FontPath", font.renderer.getPathJs(fontChar)]); + } catch (reason) { + if (evaluatorOptions.ignoreErrors) { + warn(`buildFontPaths - ignoring ${glyphName} glyph: "${reason}".`); + return; + } + throw reason; + } + } + for (const glyph of glyphs) { + buildPath(glyph.fontChar); + const accent = glyph.accent; + if (accent?.fontChar) { + buildPath(accent.fontChar); + } + } + } + static get fallbackFontDict() { + const dict = new Dict(); + dict.set("BaseFont", Name.get("Helvetica")); + dict.set("Type", Name.get("FallbackType")); + dict.set("Subtype", Name.get("FallbackType")); + dict.set("Encoding", Name.get("WinAnsiEncoding")); + return shadow(this, "fallbackFontDict", dict); + } +} +class TranslatedFont { + constructor({ + loadedName, + font, + dict, + evaluatorOptions + }) { + this.loadedName = loadedName; + this.font = font; + this.dict = dict; + this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions; + this.type3Loaded = null; + this.type3Dependencies = font.isType3Font ? new Set() : null; + this.sent = false; + } + send(handler) { + if (this.sent) { + return; + } + this.sent = true; + handler.send("commonobj", [this.loadedName, "Font", this.font.exportData(this._evaluatorOptions.fontExtraProperties)]); + } + fallback(handler) { + if (!this.font.data) { + return; + } + this.font.disableFontFace = true; + PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, handler, this._evaluatorOptions); + } + loadType3Data(evaluator, resources, task) { + if (this.type3Loaded) { + return this.type3Loaded; + } + if (!this.font.isType3Font) { + throw new Error("Must be a Type3 font."); + } + const type3Evaluator = evaluator.clone({ + ignoreErrors: false + }); + const type3FontRefs = new RefSet(evaluator.type3FontRefs); + if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) { + type3FontRefs.put(this.dict.objId); + } + type3Evaluator.type3FontRefs = type3FontRefs; + const translatedFont = this.font, + type3Dependencies = this.type3Dependencies; + let loadCharProcsPromise = Promise.resolve(); + const charProcs = this.dict.get("CharProcs"); + const fontResources = this.dict.get("Resources") || resources; + const charProcOperatorList = Object.create(null); + const fontBBox = Util.normalizeRect(translatedFont.bbox || [0, 0, 0, 0]), + width = fontBBox[2] - fontBBox[0], + height = fontBBox[3] - fontBBox[1]; + const fontBBoxSize = Math.hypot(width, height); + for (const key of charProcs.getKeys()) { + loadCharProcsPromise = loadCharProcsPromise.then(() => { + const glyphStream = charProcs.get(key); + const operatorList = new OperatorList(); + return type3Evaluator.getOperatorList({ + stream: glyphStream, + task, + resources: fontResources, + operatorList + }).then(() => { + if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) { + this._removeType3ColorOperators(operatorList, fontBBoxSize); + } + charProcOperatorList[key] = operatorList.getIR(); + for (const dependency of operatorList.dependencies) { + type3Dependencies.add(dependency); + } + }).catch(function (reason) { + warn(`Type3 font resource "${key}" is not available.`); + const dummyOperatorList = new OperatorList(); + charProcOperatorList[key] = dummyOperatorList.getIR(); + }); + }); + } + this.type3Loaded = loadCharProcsPromise.then(() => { + translatedFont.charProcOperatorList = charProcOperatorList; + if (this._bbox) { + translatedFont.isCharBBox = true; + translatedFont.bbox = this._bbox; + } + }); + return this.type3Loaded; + } + _removeType3ColorOperators(operatorList, fontBBoxSize = NaN) { + const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2)), + width = charBBox[2] - charBBox[0], + height = charBBox[3] - charBBox[1]; + const charBBoxSize = Math.hypot(width, height); + if (width === 0 || height === 0) { + operatorList.fnArray.splice(0, 1); + operatorList.argsArray.splice(0, 1); + } else if (fontBBoxSize === 0 || Math.round(charBBoxSize / fontBBoxSize) >= 10) { + if (!this._bbox) { + this._bbox = [Infinity, Infinity, -Infinity, -Infinity]; + } + this._bbox[0] = Math.min(this._bbox[0], charBBox[0]); + this._bbox[1] = Math.min(this._bbox[1], charBBox[1]); + this._bbox[2] = Math.max(this._bbox[2], charBBox[2]); + this._bbox[3] = Math.max(this._bbox[3], charBBox[3]); + } + let i = 0, + ii = operatorList.length; + while (i < ii) { + switch (operatorList.fnArray[i]) { + case OPS.setCharWidthAndBounds: + break; + case OPS.setStrokeColorSpace: + case OPS.setFillColorSpace: + case OPS.setStrokeColor: + case OPS.setStrokeColorN: + case OPS.setFillColor: + case OPS.setFillColorN: + case OPS.setStrokeGray: + case OPS.setFillGray: + case OPS.setStrokeRGBColor: + case OPS.setFillRGBColor: + case OPS.setStrokeCMYKColor: + case OPS.setFillCMYKColor: + case OPS.shadingFill: + case OPS.setRenderingIntent: + operatorList.fnArray.splice(i, 1); + operatorList.argsArray.splice(i, 1); + ii--; + continue; + case OPS.setGState: + const [gStateObj] = operatorList.argsArray[i]; + let j = 0, + jj = gStateObj.length; + while (j < jj) { + const [gStateKey] = gStateObj[j]; + switch (gStateKey) { + case "TR": + case "TR2": + case "HT": + case "BG": + case "BG2": + case "UCR": + case "UCR2": + gStateObj.splice(j, 1); + jj--; + continue; + } + j++; + } + break; + } + i++; + } + } +} +class StateManager { + constructor(initialState = new EvalState()) { + this.state = initialState; + this.stateStack = []; + } + save() { + const old = this.state; + this.stateStack.push(this.state); + this.state = old.clone(); + } + restore() { + const prev = this.stateStack.pop(); + if (prev) { + this.state = prev; + } + } + transform(args) { + this.state.ctm = Util.transform(this.state.ctm, args); + } +} +class TextState { + constructor() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.loadedName = null; + this.font = null; + this.fontMatrix = FONT_IDENTITY_MATRIX; + this.textMatrix = IDENTITY_MATRIX.slice(); + this.textLineMatrix = IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + setTextMatrix(a, b, c, d, e, f) { + const m = this.textMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + } + setTextLineMatrix(a, b, c, d, e, f) { + const m = this.textLineMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + } + translateTextMatrix(x, y) { + const m = this.textMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + } + translateTextLineMatrix(x, y) { + const m = this.textLineMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + } + carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + } + clone() { + const clone = Object.create(this); + clone.textMatrix = this.textMatrix.slice(); + clone.textLineMatrix = this.textLineMatrix.slice(); + clone.fontMatrix = this.fontMatrix.slice(); + return clone; + } +} +class EvalState { + constructor() { + this.ctm = new Float32Array(IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = TextRenderingMode.FILL; + this._fillColorSpace = ColorSpace.singletons.gray; + this._strokeColorSpace = ColorSpace.singletons.gray; + this.patternFillColorSpace = null; + this.patternStrokeColorSpace = null; + } + get fillColorSpace() { + return this._fillColorSpace; + } + set fillColorSpace(colorSpace) { + this._fillColorSpace = this.patternFillColorSpace = colorSpace; + } + get strokeColorSpace() { + return this._strokeColorSpace; + } + set strokeColorSpace(colorSpace) { + this._strokeColorSpace = this.patternStrokeColorSpace = colorSpace; + } + clone() { + return Object.create(this); + } +} +class EvaluatorPreprocessor { + static get opMap() { + return shadow(this, "opMap", Object.assign(Object.create(null), { + w: { + id: OPS.setLineWidth, + numArgs: 1, + variableArgs: false + }, + J: { + id: OPS.setLineCap, + numArgs: 1, + variableArgs: false + }, + j: { + id: OPS.setLineJoin, + numArgs: 1, + variableArgs: false + }, + M: { + id: OPS.setMiterLimit, + numArgs: 1, + variableArgs: false + }, + d: { + id: OPS.setDash, + numArgs: 2, + variableArgs: false + }, + ri: { + id: OPS.setRenderingIntent, + numArgs: 1, + variableArgs: false + }, + i: { + id: OPS.setFlatness, + numArgs: 1, + variableArgs: false + }, + gs: { + id: OPS.setGState, + numArgs: 1, + variableArgs: false + }, + q: { + id: OPS.save, + numArgs: 0, + variableArgs: false + }, + Q: { + id: OPS.restore, + numArgs: 0, + variableArgs: false + }, + cm: { + id: OPS.transform, + numArgs: 6, + variableArgs: false + }, + m: { + id: OPS.moveTo, + numArgs: 2, + variableArgs: false + }, + l: { + id: OPS.lineTo, + numArgs: 2, + variableArgs: false + }, + c: { + id: OPS.curveTo, + numArgs: 6, + variableArgs: false + }, + v: { + id: OPS.curveTo2, + numArgs: 4, + variableArgs: false + }, + y: { + id: OPS.curveTo3, + numArgs: 4, + variableArgs: false + }, + h: { + id: OPS.closePath, + numArgs: 0, + variableArgs: false + }, + re: { + id: OPS.rectangle, + numArgs: 4, + variableArgs: false + }, + S: { + id: OPS.stroke, + numArgs: 0, + variableArgs: false + }, + s: { + id: OPS.closeStroke, + numArgs: 0, + variableArgs: false + }, + f: { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }, + F: { + id: OPS.fill, + numArgs: 0, + variableArgs: false + }, + "f*": { + id: OPS.eoFill, + numArgs: 0, + variableArgs: false + }, + B: { + id: OPS.fillStroke, + numArgs: 0, + variableArgs: false + }, + "B*": { + id: OPS.eoFillStroke, + numArgs: 0, + variableArgs: false + }, + b: { + id: OPS.closeFillStroke, + numArgs: 0, + variableArgs: false + }, + "b*": { + id: OPS.closeEOFillStroke, + numArgs: 0, + variableArgs: false + }, + n: { + id: OPS.endPath, + numArgs: 0, + variableArgs: false + }, + W: { + id: OPS.clip, + numArgs: 0, + variableArgs: false + }, + "W*": { + id: OPS.eoClip, + numArgs: 0, + variableArgs: false + }, + BT: { + id: OPS.beginText, + numArgs: 0, + variableArgs: false + }, + ET: { + id: OPS.endText, + numArgs: 0, + variableArgs: false + }, + Tc: { + id: OPS.setCharSpacing, + numArgs: 1, + variableArgs: false + }, + Tw: { + id: OPS.setWordSpacing, + numArgs: 1, + variableArgs: false + }, + Tz: { + id: OPS.setHScale, + numArgs: 1, + variableArgs: false + }, + TL: { + id: OPS.setLeading, + numArgs: 1, + variableArgs: false + }, + Tf: { + id: OPS.setFont, + numArgs: 2, + variableArgs: false + }, + Tr: { + id: OPS.setTextRenderingMode, + numArgs: 1, + variableArgs: false + }, + Ts: { + id: OPS.setTextRise, + numArgs: 1, + variableArgs: false + }, + Td: { + id: OPS.moveText, + numArgs: 2, + variableArgs: false + }, + TD: { + id: OPS.setLeadingMoveText, + numArgs: 2, + variableArgs: false + }, + Tm: { + id: OPS.setTextMatrix, + numArgs: 6, + variableArgs: false + }, + "T*": { + id: OPS.nextLine, + numArgs: 0, + variableArgs: false + }, + Tj: { + id: OPS.showText, + numArgs: 1, + variableArgs: false + }, + TJ: { + id: OPS.showSpacedText, + numArgs: 1, + variableArgs: false + }, + "'": { + id: OPS.nextLineShowText, + numArgs: 1, + variableArgs: false + }, + '"': { + id: OPS.nextLineSetSpacingShowText, + numArgs: 3, + variableArgs: false + }, + d0: { + id: OPS.setCharWidth, + numArgs: 2, + variableArgs: false + }, + d1: { + id: OPS.setCharWidthAndBounds, + numArgs: 6, + variableArgs: false + }, + CS: { + id: OPS.setStrokeColorSpace, + numArgs: 1, + variableArgs: false + }, + cs: { + id: OPS.setFillColorSpace, + numArgs: 1, + variableArgs: false + }, + SC: { + id: OPS.setStrokeColor, + numArgs: 4, + variableArgs: true + }, + SCN: { + id: OPS.setStrokeColorN, + numArgs: 33, + variableArgs: true + }, + sc: { + id: OPS.setFillColor, + numArgs: 4, + variableArgs: true + }, + scn: { + id: OPS.setFillColorN, + numArgs: 33, + variableArgs: true + }, + G: { + id: OPS.setStrokeGray, + numArgs: 1, + variableArgs: false + }, + g: { + id: OPS.setFillGray, + numArgs: 1, + variableArgs: false + }, + RG: { + id: OPS.setStrokeRGBColor, + numArgs: 3, + variableArgs: false + }, + rg: { + id: OPS.setFillRGBColor, + numArgs: 3, + variableArgs: false + }, + K: { + id: OPS.setStrokeCMYKColor, + numArgs: 4, + variableArgs: false + }, + k: { + id: OPS.setFillCMYKColor, + numArgs: 4, + variableArgs: false + }, + sh: { + id: OPS.shadingFill, + numArgs: 1, + variableArgs: false + }, + BI: { + id: OPS.beginInlineImage, + numArgs: 0, + variableArgs: false + }, + ID: { + id: OPS.beginImageData, + numArgs: 0, + variableArgs: false + }, + EI: { + id: OPS.endInlineImage, + numArgs: 1, + variableArgs: false + }, + Do: { + id: OPS.paintXObject, + numArgs: 1, + variableArgs: false + }, + MP: { + id: OPS.markPoint, + numArgs: 1, + variableArgs: false + }, + DP: { + id: OPS.markPointProps, + numArgs: 2, + variableArgs: false + }, + BMC: { + id: OPS.beginMarkedContent, + numArgs: 1, + variableArgs: false + }, + BDC: { + id: OPS.beginMarkedContentProps, + numArgs: 2, + variableArgs: false + }, + EMC: { + id: OPS.endMarkedContent, + numArgs: 0, + variableArgs: false + }, + BX: { + id: OPS.beginCompat, + numArgs: 0, + variableArgs: false + }, + EX: { + id: OPS.endCompat, + numArgs: 0, + variableArgs: false + }, + BM: null, + BD: null, + true: null, + fa: null, + fal: null, + fals: null, + false: null, + nu: null, + nul: null, + null: null + })); + } + static MAX_INVALID_PATH_OPS = 10; + constructor(stream, xref, stateManager = new StateManager()) { + this.parser = new Parser({ + lexer: new Lexer(stream, EvaluatorPreprocessor.opMap), + xref + }); + this.stateManager = stateManager; + this.nonProcessedArgs = []; + this._isPathOp = false; + this._numInvalidPathOPS = 0; + } + get savedStatesDepth() { + return this.stateManager.stateStack.length; + } + read(operation) { + let args = operation.args; + while (true) { + const obj = this.parser.getObj(); + if (obj instanceof Cmd) { + const cmd = obj.cmd; + const opSpec = EvaluatorPreprocessor.opMap[cmd]; + if (!opSpec) { + warn(`Unknown command "${cmd}".`); + continue; + } + const fn = opSpec.id; + const numArgs = opSpec.numArgs; + let argsLength = args !== null ? args.length : 0; + if (!this._isPathOp) { + this._numInvalidPathOPS = 0; + } + this._isPathOp = fn >= OPS.moveTo && fn <= OPS.endPath; + if (!opSpec.variableArgs) { + if (argsLength !== numArgs) { + const nonProcessedArgs = this.nonProcessedArgs; + while (argsLength > numArgs) { + nonProcessedArgs.push(args.shift()); + argsLength--; + } + while (argsLength < numArgs && nonProcessedArgs.length !== 0) { + if (args === null) { + args = []; + } + args.unshift(nonProcessedArgs.pop()); + argsLength++; + } + } + if (argsLength < numArgs) { + const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`; + if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) { + throw new FormatError(`Invalid ${partialMsg}`); + } + warn(`Skipping ${partialMsg}`); + if (args !== null) { + args.length = 0; + } + continue; + } + } else if (argsLength > numArgs) { + info(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`); + } + this.preprocessCommand(fn, args); + operation.fn = fn; + operation.args = args; + return true; + } + if (obj === EOF) { + return false; + } + if (obj !== null) { + if (args === null) { + args = []; + } + args.push(obj); + if (args.length > 33) { + throw new FormatError("Too many arguments"); + } + } + } + } + preprocessCommand(fn, args) { + switch (fn | 0) { + case OPS.save: + this.stateManager.save(); + break; + case OPS.restore: + this.stateManager.restore(); + break; + case OPS.transform: + this.stateManager.transform(args); + break; + } + } +} + +;// ./src/core/default_appearance.js + + + + + + + + +class DefaultAppearanceEvaluator extends EvaluatorPreprocessor { + constructor(str) { + super(new StringStream(str)); + } + parse() { + const operation = { + fn: 0, + args: [] + }; + const result = { + fontSize: 0, + fontName: "", + fontColor: new Uint8ClampedArray(3) + }; + try { + while (true) { + operation.args.length = 0; + if (!this.read(operation)) { + break; + } + if (this.savedStatesDepth !== 0) { + continue; + } + const { + fn, + args + } = operation; + switch (fn | 0) { + case OPS.setFont: + const [fontName, fontSize] = args; + if (fontName instanceof Name) { + result.fontName = fontName.name; + } + if (typeof fontSize === "number" && fontSize > 0) { + result.fontSize = fontSize; + } + break; + case OPS.setFillRGBColor: + ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillGray: + ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillCMYKColor: + ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0); + break; + } + } + } catch (reason) { + warn(`parseDefaultAppearance - ignoring errors: "${reason}".`); + } + return result; + } +} +function parseDefaultAppearance(str) { + return new DefaultAppearanceEvaluator(str).parse(); +} +class AppearanceStreamEvaluator extends EvaluatorPreprocessor { + constructor(stream, evaluatorOptions, xref) { + super(stream); + this.stream = stream; + this.evaluatorOptions = evaluatorOptions; + this.xref = xref; + this.resources = stream.dict?.get("Resources"); + } + parse() { + const operation = { + fn: 0, + args: [] + }; + let result = { + scaleFactor: 1, + fontSize: 0, + fontName: "", + fontColor: new Uint8ClampedArray(3), + fillColorSpace: ColorSpace.singletons.gray + }; + let breakLoop = false; + const stack = []; + try { + while (true) { + operation.args.length = 0; + if (breakLoop || !this.read(operation)) { + break; + } + const { + fn, + args + } = operation; + switch (fn | 0) { + case OPS.save: + stack.push({ + scaleFactor: result.scaleFactor, + fontSize: result.fontSize, + fontName: result.fontName, + fontColor: result.fontColor.slice(), + fillColorSpace: result.fillColorSpace + }); + break; + case OPS.restore: + result = stack.pop() || result; + break; + case OPS.setTextMatrix: + result.scaleFactor *= Math.hypot(args[0], args[1]); + break; + case OPS.setFont: + const [fontName, fontSize] = args; + if (fontName instanceof Name) { + result.fontName = fontName.name; + } + if (typeof fontSize === "number" && fontSize > 0) { + result.fontSize = fontSize * result.scaleFactor; + } + break; + case OPS.setFillColorSpace: + result.fillColorSpace = ColorSpace.parse({ + cs: args[0], + xref: this.xref, + resources: this.resources, + pdfFunctionFactory: this._pdfFunctionFactory, + localColorSpaceCache: this._localColorSpaceCache + }); + break; + case OPS.setFillColor: + const cs = result.fillColorSpace; + cs.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillRGBColor: + ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillGray: + ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.setFillCMYKColor: + ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0); + break; + case OPS.showText: + case OPS.showSpacedText: + case OPS.nextLineShowText: + case OPS.nextLineSetSpacingShowText: + breakLoop = true; + break; + } + } + } catch (reason) { + warn(`parseAppearanceStream - ignoring errors: "${reason}".`); + } + this.stream.reset(); + delete result.scaleFactor; + delete result.fillColorSpace; + return result; + } + get _localColorSpaceCache() { + return shadow(this, "_localColorSpaceCache", new LocalColorSpaceCache()); + } + get _pdfFunctionFactory() { + const pdfFunctionFactory = new PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: this.evaluatorOptions.isEvalSupported + }); + return shadow(this, "_pdfFunctionFactory", pdfFunctionFactory); + } +} +function parseAppearanceStream(stream, evaluatorOptions, xref) { + return new AppearanceStreamEvaluator(stream, evaluatorOptions, xref).parse(); +} +function getPdfColor(color, isFill) { + if (color[0] === color[1] && color[1] === color[2]) { + const gray = color[0] / 255; + return `${numberToString(gray)} ${isFill ? "g" : "G"}`; + } + return Array.from(color, c => numberToString(c / 255)).join(" ") + ` ${isFill ? "rg" : "RG"}`; +} +function createDefaultAppearance({ + fontSize, + fontName, + fontColor +}) { + return `/${escapePDFName(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`; +} +class FakeUnicodeFont { + constructor(xref, fontFamily) { + this.xref = xref; + this.widths = null; + this.firstChar = Infinity; + this.lastChar = -Infinity; + this.fontFamily = fontFamily; + const canvas = new OffscreenCanvas(1, 1); + this.ctxMeasure = canvas.getContext("2d", { + willReadFrequently: true + }); + if (!FakeUnicodeFont._fontNameId) { + FakeUnicodeFont._fontNameId = 1; + } + this.fontName = Name.get(`InvalidPDFjsFont_${fontFamily}_${FakeUnicodeFont._fontNameId++}`); + } + get fontDescriptorRef() { + if (!FakeUnicodeFont._fontDescriptorRef) { + const fontDescriptor = new Dict(this.xref); + fontDescriptor.set("Type", Name.get("FontDescriptor")); + fontDescriptor.set("FontName", this.fontName); + fontDescriptor.set("FontFamily", "MyriadPro Regular"); + fontDescriptor.set("FontBBox", [0, 0, 0, 0]); + fontDescriptor.set("FontStretch", Name.get("Normal")); + fontDescriptor.set("FontWeight", 400); + fontDescriptor.set("ItalicAngle", 0); + FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(fontDescriptor); + } + return FakeUnicodeFont._fontDescriptorRef; + } + get descendantFontRef() { + const descendantFont = new Dict(this.xref); + descendantFont.set("BaseFont", this.fontName); + descendantFont.set("Type", Name.get("Font")); + descendantFont.set("Subtype", Name.get("CIDFontType0")); + descendantFont.set("CIDToGIDMap", Name.get("Identity")); + descendantFont.set("FirstChar", this.firstChar); + descendantFont.set("LastChar", this.lastChar); + descendantFont.set("FontDescriptor", this.fontDescriptorRef); + descendantFont.set("DW", 1000); + const widths = []; + const chars = [...this.widths.entries()].sort(); + let currentChar = null; + let currentWidths = null; + for (const [char, width] of chars) { + if (!currentChar) { + currentChar = char; + currentWidths = [width]; + continue; + } + if (char === currentChar + currentWidths.length) { + currentWidths.push(width); + } else { + widths.push(currentChar, currentWidths); + currentChar = char; + currentWidths = [width]; + } + } + if (currentChar) { + widths.push(currentChar, currentWidths); + } + descendantFont.set("W", widths); + const cidSystemInfo = new Dict(this.xref); + cidSystemInfo.set("Ordering", "Identity"); + cidSystemInfo.set("Registry", "Adobe"); + cidSystemInfo.set("Supplement", 0); + descendantFont.set("CIDSystemInfo", cidSystemInfo); + return this.xref.getNewPersistentRef(descendantFont); + } + get baseFontRef() { + const baseFont = new Dict(this.xref); + baseFont.set("BaseFont", this.fontName); + baseFont.set("Type", Name.get("Font")); + baseFont.set("Subtype", Name.get("Type0")); + baseFont.set("Encoding", Name.get("Identity-H")); + baseFont.set("DescendantFonts", [this.descendantFontRef]); + baseFont.set("ToUnicode", Name.get("Identity-H")); + return this.xref.getNewPersistentRef(baseFont); + } + get resources() { + const resources = new Dict(this.xref); + const font = new Dict(this.xref); + font.set(this.fontName.name, this.baseFontRef); + resources.set("Font", font); + return resources; + } + _createContext() { + this.widths = new Map(); + this.ctxMeasure.font = `1000px ${this.fontFamily}`; + return this.ctxMeasure; + } + createFontResources(text) { + const ctx = this._createContext(); + for (const line of text.split(/\r\n?|\n/)) { + for (const char of line.split("")) { + const code = char.charCodeAt(0); + if (this.widths.has(code)) { + continue; + } + const metrics = ctx.measureText(char); + const width = Math.ceil(metrics.width); + this.widths.set(code, width); + this.firstChar = Math.min(code, this.firstChar); + this.lastChar = Math.max(code, this.lastChar); + } + } + return this.resources; + } + static getFirstPositionInfo(rect, rotation, fontSize) { + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + const lineHeight = LINE_FACTOR * fontSize; + const lineDescent = LINE_DESCENT_FACTOR * fontSize; + return { + coords: [0, h + lineDescent - lineHeight], + bbox: [0, 0, w, h], + matrix: rotation !== 0 ? getRotationMatrix(rotation, h, lineHeight) : undefined + }; + } + createAppearance(text, rect, rotation, fontSize, bgColor, strokeAlpha) { + const ctx = this._createContext(); + const lines = []; + let maxWidth = -Infinity; + for (const line of text.split(/\r\n?|\n/)) { + lines.push(line); + const lineWidth = ctx.measureText(line).width; + maxWidth = Math.max(maxWidth, lineWidth); + for (const code of codePointIter(line)) { + const char = String.fromCodePoint(code); + let width = this.widths.get(code); + if (width === undefined) { + const metrics = ctx.measureText(char); + width = Math.ceil(metrics.width); + this.widths.set(code, width); + this.firstChar = Math.min(code, this.firstChar); + this.lastChar = Math.max(code, this.lastChar); + } + } + } + maxWidth *= fontSize / 1000; + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + let hscale = 1; + if (maxWidth > w) { + hscale = w / maxWidth; + } + let vscale = 1; + const lineHeight = LINE_FACTOR * fontSize; + const lineDescent = LINE_DESCENT_FACTOR * fontSize; + const maxHeight = lineHeight * lines.length; + if (maxHeight > h) { + vscale = h / maxHeight; + } + const fscale = Math.min(hscale, vscale); + const newFontSize = fontSize * fscale; + const buffer = ["q", `0 0 ${numberToString(w)} ${numberToString(h)} re W n`, `BT`, `1 0 0 1 0 ${numberToString(h + lineDescent)} Tm 0 Tc ${getPdfColor(bgColor, true)}`, `/${this.fontName.name} ${numberToString(newFontSize)} Tf`]; + const { + resources + } = this; + strokeAlpha = typeof strokeAlpha === "number" && strokeAlpha >= 0 && strokeAlpha <= 1 ? strokeAlpha : 1; + if (strokeAlpha !== 1) { + buffer.push("/R0 gs"); + const extGState = new Dict(this.xref); + const r0 = new Dict(this.xref); + r0.set("ca", strokeAlpha); + r0.set("CA", strokeAlpha); + r0.set("Type", Name.get("ExtGState")); + extGState.set("R0", r0); + resources.set("ExtGState", extGState); + } + const vShift = numberToString(lineHeight); + for (const line of lines) { + buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`); + } + buffer.push("ET", "Q"); + const appearance = buffer.join("\n"); + const appearanceStreamDict = new Dict(this.xref); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", [0, 0, w, h]); + appearanceStreamDict.set("Length", appearance.length); + appearanceStreamDict.set("Resources", resources); + if (rotation) { + const matrix = getRotationMatrix(rotation, w, h); + appearanceStreamDict.set("Matrix", matrix); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} + +;// ./src/core/name_number_tree.js + + +class NameOrNumberTree { + constructor(root, xref, type) { + this.root = root; + this.xref = xref; + this._type = type; + } + getAll() { + const map = new Map(); + if (!this.root) { + return map; + } + const xref = this.xref; + const processed = new RefSet(); + processed.put(this.root); + const queue = [this.root]; + while (queue.length > 0) { + const obj = xref.fetchIfRef(queue.shift()); + if (!(obj instanceof Dict)) { + continue; + } + if (obj.has("Kids")) { + const kids = obj.get("Kids"); + if (!Array.isArray(kids)) { + continue; + } + for (const kid of kids) { + if (processed.has(kid)) { + throw new FormatError(`Duplicate entry in "${this._type}" tree.`); + } + queue.push(kid); + processed.put(kid); + } + continue; + } + const entries = obj.get(this._type); + if (!Array.isArray(entries)) { + continue; + } + for (let i = 0, ii = entries.length; i < ii; i += 2) { + map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1])); + } + } + return map; + } + getRaw(key) { + if (!this.root) { + return null; + } + const xref = this.xref; + let kidsOrEntries = xref.fetchIfRef(this.root); + let loopCount = 0; + const MAX_LEVELS = 10; + while (kidsOrEntries.has("Kids")) { + if (++loopCount > MAX_LEVELS) { + warn(`Search depth limit reached for "${this._type}" tree.`); + return null; + } + const kids = kidsOrEntries.get("Kids"); + if (!Array.isArray(kids)) { + return null; + } + let l = 0, + r = kids.length - 1; + while (l <= r) { + const m = l + r >> 1; + const kid = xref.fetchIfRef(kids[m]); + const limits = kid.get("Limits"); + if (key < xref.fetchIfRef(limits[0])) { + r = m - 1; + } else if (key > xref.fetchIfRef(limits[1])) { + l = m + 1; + } else { + kidsOrEntries = kid; + break; + } + } + if (l > r) { + return null; + } + } + const entries = kidsOrEntries.get(this._type); + if (Array.isArray(entries)) { + let l = 0, + r = entries.length - 2; + while (l <= r) { + const tmp = l + r >> 1, + m = tmp + (tmp & 1); + const currentKey = xref.fetchIfRef(entries[m]); + if (key < currentKey) { + r = m - 2; + } else if (key > currentKey) { + l = m + 2; + } else { + return entries[m + 1]; + } + } + } + return null; + } + get(key) { + return this.xref.fetchIfRef(this.getRaw(key)); + } +} +class NameTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Names"); + } +} +class NumberTree extends NameOrNumberTree { + constructor(root, xref) { + super(root, xref, "Nums"); + } +} + +;// ./src/core/cleanup_helper.js + + + + +function clearGlobalCaches() { + clearPatternCaches(); + clearPrimitiveCaches(); + clearUnicodeCaches(); + JpxImage.cleanup(); +} + +;// ./src/core/file_spec.js + + + +function pickPlatformItem(dict) { + if (!(dict instanceof Dict)) { + return null; + } + if (dict.has("UF")) { + return dict.get("UF"); + } else if (dict.has("F")) { + return dict.get("F"); + } else if (dict.has("Unix")) { + return dict.get("Unix"); + } else if (dict.has("Mac")) { + return dict.get("Mac"); + } else if (dict.has("DOS")) { + return dict.get("DOS"); + } + return null; +} +function stripPath(str) { + return str.substring(str.lastIndexOf("/") + 1); +} +class FileSpec { + #contentAvailable = false; + constructor(root, xref, skipContent = false) { + if (!(root instanceof Dict)) { + return; + } + this.xref = xref; + this.root = root; + if (root.has("FS")) { + this.fs = root.get("FS"); + } + if (root.has("RF")) { + warn("Related file specifications are not supported"); + } + if (!skipContent) { + if (root.has("EF")) { + this.#contentAvailable = true; + } else { + warn("Non-embedded file specifications are not supported"); + } + } + } + get filename() { + let filename = ""; + const item = pickPlatformItem(this.root); + if (item && typeof item === "string") { + filename = stringToPDFString(item).replaceAll("\\\\", "\\").replaceAll("\\/", "/").replaceAll("\\", "/"); + } + return shadow(this, "filename", filename || "unnamed"); + } + get content() { + if (!this.#contentAvailable) { + return null; + } + this._contentRef ||= pickPlatformItem(this.root?.get("EF")); + let content = null; + if (this._contentRef) { + const fileObj = this.xref.fetchIfRef(this._contentRef); + if (fileObj instanceof BaseStream) { + content = fileObj.getBytes(); + } else { + warn("Embedded file specification points to non-existing/invalid content"); + } + } else { + warn("Embedded file specification does not have any content"); + } + return content; + } + get description() { + let description = ""; + const desc = this.root?.get("Desc"); + if (desc && typeof desc === "string") { + description = stringToPDFString(desc); + } + return shadow(this, "description", description); + } + get serializable() { + return { + rawFilename: this.filename, + filename: stripPath(this.filename), + content: this.content, + description: this.description + }; + } +} + +;// ./src/core/xml_parser.js + +const XMLParserErrorCode = { + NoError: 0, + EndOfDocument: -1, + UnterminatedCdat: -2, + UnterminatedXmlDeclaration: -3, + UnterminatedDoctypeDeclaration: -4, + UnterminatedComment: -5, + MalformedElement: -6, + OutOfMemory: -7, + UnterminatedAttributeValue: -8, + UnterminatedElement: -9, + ElementNeverBegun: -10 +}; +function isWhitespace(s, index) { + const ch = s[index]; + return ch === " " || ch === "\n" || ch === "\r" || ch === "\t"; +} +function isWhitespaceString(s) { + for (let i = 0, ii = s.length; i < ii; i++) { + if (!isWhitespace(s, i)) { + return false; + } + } + return true; +} +class XMLParserBase { + _resolveEntities(s) { + return s.replaceAll(/&([^;]+);/g, (all, entity) => { + if (entity.substring(0, 2) === "#x") { + return String.fromCodePoint(parseInt(entity.substring(2), 16)); + } else if (entity.substring(0, 1) === "#") { + return String.fromCodePoint(parseInt(entity.substring(1), 10)); + } + switch (entity) { + case "lt": + return "<"; + case "gt": + return ">"; + case "amp": + return "&"; + case "quot": + return '"'; + case "apos": + return "'"; + } + return this.onResolveEntity(entity); + }); + } + _parseContent(s, start) { + const attributes = []; + let pos = start; + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { + ++pos; + } + const name = s.substring(start, pos); + skipWs(); + while (pos < s.length && s[pos] !== ">" && s[pos] !== "/" && s[pos] !== "?") { + skipWs(); + let attrName = "", + attrValue = ""; + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== "=") { + attrName += s[pos]; + ++pos; + } + skipWs(); + if (s[pos] !== "=") { + return null; + } + ++pos; + skipWs(); + const attrEndChar = s[pos]; + if (attrEndChar !== '"' && attrEndChar !== "'") { + return null; + } + const attrEndIndex = s.indexOf(attrEndChar, ++pos); + if (attrEndIndex < 0) { + return null; + } + attrValue = s.substring(pos, attrEndIndex); + attributes.push({ + name: attrName, + value: this._resolveEntities(attrValue) + }); + pos = attrEndIndex + 1; + skipWs(); + } + return { + name, + attributes, + parsed: pos - start + }; + } + _parseProcessingInstruction(s, start) { + let pos = start; + function skipWs() { + while (pos < s.length && isWhitespace(s, pos)) { + ++pos; + } + } + while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "?" && s[pos] !== "/") { + ++pos; + } + const name = s.substring(start, pos); + skipWs(); + const attrStart = pos; + while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) { + ++pos; + } + const value = s.substring(attrStart, pos); + return { + name, + value, + parsed: pos - start + }; + } + parseXml(s) { + let i = 0; + while (i < s.length) { + const ch = s[i]; + let j = i; + if (ch === "<") { + ++j; + const ch2 = s[j]; + let q; + switch (ch2) { + case "/": + ++j; + q = s.indexOf(">", j); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + this.onEndElement(s.substring(j, q)); + j = q + 1; + break; + case "?": + ++j; + const pi = this._parseProcessingInstruction(s, j); + if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== "?>") { + this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); + return; + } + this.onPi(pi.name, pi.value); + j += pi.parsed + 2; + break; + case "!": + if (s.substring(j + 1, j + 3) === "--") { + q = s.indexOf("-->", j + 3); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedComment); + return; + } + this.onComment(s.substring(j + 3, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "[CDATA[") { + q = s.indexOf("]]>", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedCdat); + return; + } + this.onCdata(s.substring(j + 8, q)); + j = q + 3; + } else if (s.substring(j + 1, j + 8) === "DOCTYPE") { + const q2 = s.indexOf("[", j + 8); + let complexDoctype = false; + q = s.indexOf(">", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + if (q2 > 0 && q > q2) { + q = s.indexOf("]>", j + 8); + if (q < 0) { + this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); + return; + } + complexDoctype = true; + } + const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); + this.onDoctype(doctypeContent); + j = q + (complexDoctype ? 2 : 1); + } else { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + break; + default: + const content = this._parseContent(s, j); + if (content === null) { + this.onError(XMLParserErrorCode.MalformedElement); + return; + } + let isClosed = false; + if (s.substring(j + content.parsed, j + content.parsed + 2) === "/>") { + isClosed = true; + } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== ">") { + this.onError(XMLParserErrorCode.UnterminatedElement); + return; + } + this.onBeginElement(content.name, content.attributes, isClosed); + j += content.parsed + (isClosed ? 2 : 1); + break; + } + } else { + while (j < s.length && s[j] !== "<") { + j++; + } + const text = s.substring(i, j); + this.onText(this._resolveEntities(text)); + } + i = j; + } + } + onResolveEntity(name) { + return `&${name};`; + } + onPi(name, value) {} + onComment(text) {} + onCdata(text) {} + onDoctype(doctypeContent) {} + onText(text) {} + onBeginElement(name, attributes, isEmpty) {} + onEndElement(name) {} + onError(code) {} +} +class SimpleDOMNode { + constructor(nodeName, nodeValue) { + this.nodeName = nodeName; + this.nodeValue = nodeValue; + Object.defineProperty(this, "parentNode", { + value: null, + writable: true + }); + } + get firstChild() { + return this.childNodes?.[0]; + } + get nextSibling() { + const childNodes = this.parentNode.childNodes; + if (!childNodes) { + return undefined; + } + const index = childNodes.indexOf(this); + if (index === -1) { + return undefined; + } + return childNodes[index + 1]; + } + get textContent() { + if (!this.childNodes) { + return this.nodeValue || ""; + } + return this.childNodes.map(function (child) { + return child.textContent; + }).join(""); + } + get children() { + return this.childNodes || []; + } + hasChildNodes() { + return this.childNodes?.length > 0; + } + searchNode(paths, pos) { + if (pos >= paths.length) { + return this; + } + const component = paths[pos]; + if (component.name.startsWith("#") && pos < paths.length - 1) { + return this.searchNode(paths, pos + 1); + } + const stack = []; + let node = this; + while (true) { + if (component.name === node.nodeName) { + if (component.pos === 0) { + const res = node.searchNode(paths, pos + 1); + if (res !== null) { + return res; + } + } else if (stack.length === 0) { + return null; + } else { + const [parent] = stack.pop(); + let siblingPos = 0; + for (const child of parent.childNodes) { + if (component.name === child.nodeName) { + if (siblingPos === component.pos) { + return child.searchNode(paths, pos + 1); + } + siblingPos++; + } + } + return node.searchNode(paths, pos + 1); + } + } + if (node.childNodes?.length > 0) { + stack.push([node, 0]); + node = node.childNodes[0]; + } else if (stack.length === 0) { + return null; + } else { + while (stack.length !== 0) { + const [parent, currentPos] = stack.pop(); + const newPos = currentPos + 1; + if (newPos < parent.childNodes.length) { + stack.push([parent, newPos]); + node = parent.childNodes[newPos]; + break; + } + } + if (stack.length === 0) { + return null; + } + } + } + } + dump(buffer) { + if (this.nodeName === "#text") { + buffer.push(encodeToXmlString(this.nodeValue)); + return; + } + buffer.push(`<${this.nodeName}`); + if (this.attributes) { + for (const attribute of this.attributes) { + buffer.push(` ${attribute.name}="${encodeToXmlString(attribute.value)}"`); + } + } + if (this.hasChildNodes()) { + buffer.push(">"); + for (const child of this.childNodes) { + child.dump(buffer); + } + buffer.push(``); + } else if (this.nodeValue) { + buffer.push(`>${encodeToXmlString(this.nodeValue)}`); + } else { + buffer.push("/>"); + } + } +} +class SimpleXMLParser extends XMLParserBase { + constructor({ + hasAttributes = false, + lowerCaseName = false + }) { + super(); + this._currentFragment = null; + this._stack = null; + this._errorCode = XMLParserErrorCode.NoError; + this._hasAttributes = hasAttributes; + this._lowerCaseName = lowerCaseName; + } + parseFromString(data) { + this._currentFragment = []; + this._stack = []; + this._errorCode = XMLParserErrorCode.NoError; + this.parseXml(data); + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; + } + const [documentElement] = this._currentFragment; + if (!documentElement) { + return undefined; + } + return { + documentElement + }; + } + onText(text) { + if (isWhitespaceString(text)) { + return; + } + const node = new SimpleDOMNode("#text", text); + this._currentFragment.push(node); + } + onCdata(text) { + const node = new SimpleDOMNode("#text", text); + this._currentFragment.push(node); + } + onBeginElement(name, attributes, isEmpty) { + if (this._lowerCaseName) { + name = name.toLowerCase(); + } + const node = new SimpleDOMNode(name); + node.childNodes = []; + if (this._hasAttributes) { + node.attributes = attributes; + } + this._currentFragment.push(node); + if (isEmpty) { + return; + } + this._stack.push(this._currentFragment); + this._currentFragment = node.childNodes; + } + onEndElement(name) { + this._currentFragment = this._stack.pop() || []; + const lastElement = this._currentFragment.at(-1); + if (!lastElement) { + return null; + } + for (const childNode of lastElement.childNodes) { + childNode.parentNode = lastElement; + } + return lastElement; + } + onError(code) { + this._errorCode = code; + } +} + +;// ./src/core/metadata_parser.js + +class MetadataParser { + constructor(data) { + data = this._repair(data); + const parser = new SimpleXMLParser({ + lowerCaseName: true + }); + const xmlDocument = parser.parseFromString(data); + this._metadataMap = new Map(); + this._data = data; + if (xmlDocument) { + this._parse(xmlDocument); + } + } + _repair(data) { + return data.replace(/^[^<]+/, "").replaceAll(/>\\376\\377([^<]+)/g, function (all, codes) { + const bytes = codes.replaceAll(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { + return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); + }).replaceAll(/&(amp|apos|gt|lt|quot);/g, function (str, name) { + switch (name) { + case "amp": + return "&"; + case "apos": + return "'"; + case "gt": + return ">"; + case "lt": + return "<"; + case "quot": + return '"'; + } + throw new Error(`_repair: ${name} isn't defined.`); + }); + const charBuf = [">"]; + for (let i = 0, ii = bytes.length; i < ii; i += 2) { + const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); + if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { + charBuf.push(String.fromCharCode(code)); + } else { + charBuf.push("&#x" + (0x10000 + code).toString(16).substring(1) + ";"); + } + } + return charBuf.join(""); + }); + } + _getSequence(entry) { + const name = entry.nodeName; + if (name !== "rdf:bag" && name !== "rdf:seq" && name !== "rdf:alt") { + return null; + } + return entry.childNodes.filter(node => node.nodeName === "rdf:li"); + } + _parseArray(entry) { + if (!entry.hasChildNodes()) { + return; + } + const [seqNode] = entry.childNodes; + const sequence = this._getSequence(seqNode) || []; + this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim())); + } + _parse(xmlDocument) { + let rdf = xmlDocument.documentElement; + if (rdf.nodeName !== "rdf:rdf") { + rdf = rdf.firstChild; + while (rdf && rdf.nodeName !== "rdf:rdf") { + rdf = rdf.nextSibling; + } + } + if (!rdf || rdf.nodeName !== "rdf:rdf" || !rdf.hasChildNodes()) { + return; + } + for (const desc of rdf.childNodes) { + if (desc.nodeName !== "rdf:description") { + continue; + } + for (const entry of desc.childNodes) { + const name = entry.nodeName; + switch (name) { + case "#text": + continue; + case "dc:creator": + case "dc:subject": + this._parseArray(entry); + continue; + } + this._metadataMap.set(name, entry.textContent.trim()); + } + } + } + get serializable() { + return { + parsedData: this._metadataMap, + rawData: this._data + }; + } +} + +;// ./src/core/struct_tree.js + + + + +const MAX_DEPTH = 40; +const StructElementType = { + PAGE_CONTENT: 1, + STREAM_CONTENT: 2, + OBJECT: 3, + ANNOTATION: 4, + ELEMENT: 5 +}; +class StructTreeRoot { + constructor(rootDict, rootRef) { + this.dict = rootDict; + this.ref = rootRef instanceof Ref ? rootRef : null; + this.roleMap = new Map(); + this.structParentIds = null; + } + init() { + this.readRoleMap(); + } + #addIdToPage(pageRef, id, type) { + if (!(pageRef instanceof Ref) || id < 0) { + return; + } + this.structParentIds ||= new RefSetCache(); + let ids = this.structParentIds.get(pageRef); + if (!ids) { + ids = []; + this.structParentIds.put(pageRef, ids); + } + ids.push([id, type]); + } + addAnnotationIdToPage(pageRef, id) { + this.#addIdToPage(pageRef, id, StructElementType.ANNOTATION); + } + readRoleMap() { + const roleMapDict = this.dict.get("RoleMap"); + if (!(roleMapDict instanceof Dict)) { + return; + } + for (const [key, value] of roleMapDict) { + if (value instanceof Name) { + this.roleMap.set(key, value.name); + } + } + } + static async canCreateStructureTree({ + catalogRef, + pdfManager, + newAnnotationsByPage + }) { + if (!(catalogRef instanceof Ref)) { + warn("Cannot save the struct tree: no catalog reference."); + return false; + } + let nextKey = 0; + let hasNothingToUpdate = true; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const { + ref: pageRef + } = await pdfManager.getPage(pageIndex); + if (!(pageRef instanceof Ref)) { + warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`); + hasNothingToUpdate = true; + break; + } + for (const element of elements) { + if (element.accessibilityData?.type) { + element.parentTreeId = nextKey++; + hasNothingToUpdate = false; + } + } + } + if (hasNothingToUpdate) { + for (const elements of newAnnotationsByPage.values()) { + for (const element of elements) { + delete element.parentTreeId; + } + } + return false; + } + return true; + } + static async createStructureTree({ + newAnnotationsByPage, + xref, + catalogRef, + pdfManager, + changes + }) { + const root = pdfManager.catalog.cloneDict(); + const cache = new RefSetCache(); + cache.put(catalogRef, root); + const structTreeRootRef = xref.getNewTemporaryRef(); + root.set("StructTreeRoot", structTreeRootRef); + const structTreeRoot = new Dict(xref); + structTreeRoot.set("Type", Name.get("StructTreeRoot")); + const parentTreeRef = xref.getNewTemporaryRef(); + structTreeRoot.set("ParentTree", parentTreeRef); + const kids = []; + structTreeRoot.set("K", kids); + cache.put(structTreeRootRef, structTreeRoot); + const parentTree = new Dict(xref); + const nums = []; + parentTree.set("Nums", nums); + const nextKey = await this.#writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot: null, + kids, + nums, + xref, + pdfManager, + changes, + cache + }); + structTreeRoot.set("ParentTreeNextKey", nextKey); + cache.put(parentTreeRef, parentTree); + for (const [ref, obj] of cache.items()) { + changes.put(ref, { + data: obj + }); + } + } + async canUpdateStructTree({ + pdfManager, + xref, + newAnnotationsByPage + }) { + if (!this.ref) { + warn("Cannot update the struct tree: no root reference."); + return false; + } + let nextKey = this.dict.get("ParentTreeNextKey"); + if (!Number.isInteger(nextKey) || nextKey < 0) { + warn("Cannot update the struct tree: invalid next key."); + return false; + } + const parentTree = this.dict.get("ParentTree"); + if (!(parentTree instanceof Dict)) { + warn("Cannot update the struct tree: ParentTree isn't a dict."); + return false; + } + const nums = parentTree.get("Nums"); + if (!Array.isArray(nums)) { + warn("Cannot update the struct tree: nums isn't an array."); + return false; + } + const numberTree = new NumberTree(parentTree, xref); + for (const pageIndex of newAnnotationsByPage.keys()) { + const { + pageDict + } = await pdfManager.getPage(pageIndex); + if (!pageDict.has("StructParents")) { + continue; + } + const id = pageDict.get("StructParents"); + if (!Number.isInteger(id) || !Array.isArray(numberTree.get(id))) { + warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`); + return false; + } + } + let hasNothingToUpdate = true; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const { + pageDict + } = await pdfManager.getPage(pageIndex); + StructTreeRoot.#collectParents({ + elements, + xref: this.dict.xref, + pageDict, + numberTree + }); + for (const element of elements) { + if (element.accessibilityData?.type) { + if (!(element.accessibilityData.structParent >= 0)) { + element.parentTreeId = nextKey++; + } + hasNothingToUpdate = false; + } + } + } + if (hasNothingToUpdate) { + for (const elements of newAnnotationsByPage.values()) { + for (const element of elements) { + delete element.parentTreeId; + delete element.structTreeParent; + } + } + return false; + } + return true; + } + async updateStructureTree({ + newAnnotationsByPage, + pdfManager, + changes + }) { + const xref = this.dict.xref; + const structTreeRoot = this.dict.clone(); + const structTreeRootRef = this.ref; + const cache = new RefSetCache(); + cache.put(structTreeRootRef, structTreeRoot); + let parentTreeRef = structTreeRoot.getRaw("ParentTree"); + let parentTree; + if (parentTreeRef instanceof Ref) { + parentTree = xref.fetch(parentTreeRef); + } else { + parentTree = parentTreeRef; + parentTreeRef = xref.getNewTemporaryRef(); + structTreeRoot.set("ParentTree", parentTreeRef); + } + parentTree = parentTree.clone(); + cache.put(parentTreeRef, parentTree); + let nums = parentTree.getRaw("Nums"); + let numsRef = null; + if (nums instanceof Ref) { + numsRef = nums; + nums = xref.fetch(numsRef); + } + nums = nums.slice(); + if (!numsRef) { + parentTree.set("Nums", nums); + } + const newNextKey = await StructTreeRoot.#writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot: this, + kids: null, + nums, + xref, + pdfManager, + changes, + cache + }); + if (newNextKey === -1) { + return; + } + structTreeRoot.set("ParentTreeNextKey", newNextKey); + if (numsRef) { + cache.put(numsRef, nums); + } + for (const [ref, obj] of cache.items()) { + changes.put(ref, { + data: obj + }); + } + } + static async #writeKids({ + newAnnotationsByPage, + structTreeRootRef, + structTreeRoot, + kids, + nums, + xref, + pdfManager, + changes, + cache + }) { + const objr = Name.get("OBJR"); + let nextKey = -1; + let structTreePageObjs; + for (const [pageIndex, elements] of newAnnotationsByPage) { + const page = await pdfManager.getPage(pageIndex); + const { + ref: pageRef + } = page; + const isPageRef = pageRef instanceof Ref; + for (const { + accessibilityData, + ref, + parentTreeId, + structTreeParent + } of elements) { + if (!accessibilityData?.type) { + continue; + } + const { + structParent + } = accessibilityData; + if (structTreeRoot && Number.isInteger(structParent) && structParent >= 0) { + let objs = (structTreePageObjs ||= new Map()).get(pageIndex); + if (objs === undefined) { + const structTreePage = new StructTreePage(structTreeRoot, page.pageDict); + objs = structTreePage.collectObjects(pageRef); + structTreePageObjs.set(pageIndex, objs); + } + const objRef = objs?.get(structParent); + if (objRef) { + const tagDict = xref.fetch(objRef).clone(); + StructTreeRoot.#writeProperties(tagDict, accessibilityData); + changes.put(objRef, { + data: tagDict + }); + continue; + } + } + nextKey = Math.max(nextKey, parentTreeId); + const tagRef = xref.getNewTemporaryRef(); + const tagDict = new Dict(xref); + StructTreeRoot.#writeProperties(tagDict, accessibilityData); + await this.#updateParentTag({ + structTreeParent, + tagDict, + newTagRef: tagRef, + structTreeRootRef, + fallbackKids: kids, + xref, + cache + }); + const objDict = new Dict(xref); + tagDict.set("K", objDict); + objDict.set("Type", objr); + if (isPageRef) { + objDict.set("Pg", pageRef); + } + objDict.set("Obj", ref); + cache.put(tagRef, tagDict); + nums.push(parentTreeId, tagRef); + } + } + return nextKey + 1; + } + static #writeProperties(tagDict, { + type, + title, + lang, + alt, + expanded, + actualText + }) { + tagDict.set("S", Name.get(type)); + if (title) { + tagDict.set("T", stringToAsciiOrUTF16BE(title)); + } + if (lang) { + tagDict.set("Lang", stringToAsciiOrUTF16BE(lang)); + } + if (alt) { + tagDict.set("Alt", stringToAsciiOrUTF16BE(alt)); + } + if (expanded) { + tagDict.set("E", stringToAsciiOrUTF16BE(expanded)); + } + if (actualText) { + tagDict.set("ActualText", stringToAsciiOrUTF16BE(actualText)); + } + } + static #collectParents({ + elements, + xref, + pageDict, + numberTree + }) { + const idToElements = new Map(); + for (const element of elements) { + if (element.structTreeParentId) { + const id = parseInt(element.structTreeParentId.split("_mc")[1], 10); + let elems = idToElements.get(id); + if (!elems) { + elems = []; + idToElements.set(id, elems); + } + elems.push(element); + } + } + const id = pageDict.get("StructParents"); + if (!Number.isInteger(id)) { + return; + } + const parentArray = numberTree.get(id); + const updateElement = (kid, pageKid, kidRef) => { + const elems = idToElements.get(kid); + if (elems) { + const parentRef = pageKid.getRaw("P"); + const parentDict = xref.fetchIfRef(parentRef); + if (parentRef instanceof Ref && parentDict instanceof Dict) { + const params = { + ref: kidRef, + dict: pageKid + }; + for (const element of elems) { + element.structTreeParent = params; + } + } + return true; + } + return false; + }; + for (const kidRef of parentArray) { + if (!(kidRef instanceof Ref)) { + continue; + } + const pageKid = xref.fetch(kidRef); + const k = pageKid.get("K"); + if (Number.isInteger(k)) { + updateElement(k, pageKid, kidRef); + continue; + } + if (!Array.isArray(k)) { + continue; + } + for (let kid of k) { + kid = xref.fetchIfRef(kid); + if (Number.isInteger(kid) && updateElement(kid, pageKid, kidRef)) { + break; + } + if (!(kid instanceof Dict)) { + continue; + } + if (!isName(kid.get("Type"), "MCR")) { + break; + } + const mcid = kid.get("MCID"); + if (Number.isInteger(mcid) && updateElement(mcid, pageKid, kidRef)) { + break; + } + } + } + } + static async #updateParentTag({ + structTreeParent, + tagDict, + newTagRef, + structTreeRootRef, + fallbackKids, + xref, + cache + }) { + let ref = null; + let parentRef; + if (structTreeParent) { + ({ + ref + } = structTreeParent); + parentRef = structTreeParent.dict.getRaw("P") || structTreeRootRef; + } else { + parentRef = structTreeRootRef; + } + tagDict.set("P", parentRef); + const parentDict = xref.fetchIfRef(parentRef); + if (!parentDict) { + fallbackKids.push(newTagRef); + return; + } + let cachedParentDict = cache.get(parentRef); + if (!cachedParentDict) { + cachedParentDict = parentDict.clone(); + cache.put(parentRef, cachedParentDict); + } + const parentKidsRaw = cachedParentDict.getRaw("K"); + let cachedParentKids = parentKidsRaw instanceof Ref ? cache.get(parentKidsRaw) : null; + if (!cachedParentKids) { + cachedParentKids = xref.fetchIfRef(parentKidsRaw); + cachedParentKids = Array.isArray(cachedParentKids) ? cachedParentKids.slice() : [parentKidsRaw]; + const parentKidsRef = xref.getNewTemporaryRef(); + cachedParentDict.set("K", parentKidsRef); + cache.put(parentKidsRef, cachedParentKids); + } + const index = cachedParentKids.indexOf(ref); + cachedParentKids.splice(index >= 0 ? index + 1 : cachedParentKids.length, 0, newTagRef); + } +} +class StructElementNode { + constructor(tree, dict) { + this.tree = tree; + this.dict = dict; + this.kids = []; + this.parseKids(); + } + get role() { + const nameObj = this.dict.get("S"); + const name = nameObj instanceof Name ? nameObj.name : ""; + const { + root + } = this.tree; + if (root.roleMap.has(name)) { + return root.roleMap.get(name); + } + return name; + } + parseKids() { + let pageObjId = null; + const objRef = this.dict.getRaw("Pg"); + if (objRef instanceof Ref) { + pageObjId = objRef.toString(); + } + const kids = this.dict.get("K"); + if (Array.isArray(kids)) { + for (const kid of kids) { + const element = this.parseKid(pageObjId, kid); + if (element) { + this.kids.push(element); + } + } + } else { + const element = this.parseKid(pageObjId, kids); + if (element) { + this.kids.push(element); + } + } + } + parseKid(pageObjId, kid) { + if (Number.isInteger(kid)) { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + return new StructElement({ + type: StructElementType.PAGE_CONTENT, + mcid: kid, + pageObjId + }); + } + let kidDict = null; + if (kid instanceof Ref) { + kidDict = this.dict.xref.fetch(kid); + } else if (kid instanceof Dict) { + kidDict = kid; + } + if (!kidDict) { + return null; + } + const pageRef = kidDict.getRaw("Pg"); + if (pageRef instanceof Ref) { + pageObjId = pageRef.toString(); + } + const type = kidDict.get("Type") instanceof Name ? kidDict.get("Type").name : null; + if (type === "MCR") { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + const kidRef = kidDict.getRaw("Stm"); + return new StructElement({ + type: StructElementType.STREAM_CONTENT, + refObjId: kidRef instanceof Ref ? kidRef.toString() : null, + pageObjId, + mcid: kidDict.get("MCID") + }); + } + if (type === "OBJR") { + if (this.tree.pageDict.objId !== pageObjId) { + return null; + } + const kidRef = kidDict.getRaw("Obj"); + return new StructElement({ + type: StructElementType.OBJECT, + refObjId: kidRef instanceof Ref ? kidRef.toString() : null, + pageObjId + }); + } + return new StructElement({ + type: StructElementType.ELEMENT, + dict: kidDict + }); + } +} +class StructElement { + constructor({ + type, + dict = null, + mcid = null, + pageObjId = null, + refObjId = null + }) { + this.type = type; + this.dict = dict; + this.mcid = mcid; + this.pageObjId = pageObjId; + this.refObjId = refObjId; + this.parentNode = null; + } +} +class StructTreePage { + constructor(structTreeRoot, pageDict) { + this.root = structTreeRoot; + this.rootDict = structTreeRoot ? structTreeRoot.dict : null; + this.pageDict = pageDict; + this.nodes = []; + } + collectObjects(pageRef) { + if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) { + return null; + } + const parentTree = this.rootDict.get("ParentTree"); + if (!parentTree) { + return null; + } + const ids = this.root.structParentIds?.get(pageRef); + if (!ids) { + return null; + } + const map = new Map(); + const numberTree = new NumberTree(parentTree, this.rootDict.xref); + for (const [elemId] of ids) { + const obj = numberTree.getRaw(elemId); + if (obj instanceof Ref) { + map.set(elemId, obj); + } + } + return map; + } + parse(pageRef) { + if (!this.root || !this.rootDict || !(pageRef instanceof Ref)) { + return; + } + const parentTree = this.rootDict.get("ParentTree"); + if (!parentTree) { + return; + } + const id = this.pageDict.get("StructParents"); + const ids = this.root.structParentIds?.get(pageRef); + if (!Number.isInteger(id) && !ids) { + return; + } + const map = new Map(); + const numberTree = new NumberTree(parentTree, this.rootDict.xref); + if (Number.isInteger(id)) { + const parentArray = numberTree.get(id); + if (Array.isArray(parentArray)) { + for (const ref of parentArray) { + if (ref instanceof Ref) { + this.addNode(this.rootDict.xref.fetch(ref), map); + } + } + } + } + if (!ids) { + return; + } + for (const [elemId, type] of ids) { + const obj = numberTree.get(elemId); + if (obj) { + const elem = this.addNode(this.rootDict.xref.fetchIfRef(obj), map); + if (elem?.kids?.length === 1 && elem.kids[0].type === StructElementType.OBJECT) { + elem.kids[0].type = type; + } + } + } + } + addNode(dict, map, level = 0) { + if (level > MAX_DEPTH) { + warn("StructTree MAX_DEPTH reached."); + return null; + } + if (!(dict instanceof Dict)) { + return null; + } + if (map.has(dict)) { + return map.get(dict); + } + const element = new StructElementNode(this, dict); + map.set(dict, element); + const parent = dict.get("P"); + if (!parent || isName(parent.get("Type"), "StructTreeRoot")) { + if (!this.addTopLevelNode(dict, element)) { + map.delete(dict); + } + return element; + } + const parentNode = this.addNode(parent, map, level + 1); + if (!parentNode) { + return element; + } + let save = false; + for (const kid of parentNode.kids) { + if (kid.type === StructElementType.ELEMENT && kid.dict === dict) { + kid.parentNode = element; + save = true; + } + } + if (!save) { + map.delete(dict); + } + return element; + } + addTopLevelNode(dict, element) { + const obj = this.rootDict.get("K"); + if (!obj) { + return false; + } + if (obj instanceof Dict) { + if (obj.objId !== dict.objId) { + return false; + } + this.nodes[0] = element; + return true; + } + if (!Array.isArray(obj)) { + return true; + } + let save = false; + for (let i = 0; i < obj.length; i++) { + const kidRef = obj[i]; + if (kidRef?.toString() === dict.objId) { + this.nodes[i] = element; + save = true; + } + } + return save; + } + get serializable() { + function nodeToSerializable(node, parent, level = 0) { + if (level > MAX_DEPTH) { + warn("StructTree too deep to be fully serialized."); + return; + } + const obj = Object.create(null); + obj.role = node.role; + obj.children = []; + parent.children.push(obj); + let alt = node.dict.get("Alt"); + if (typeof alt !== "string") { + alt = node.dict.get("ActualText"); + } + if (typeof alt === "string") { + obj.alt = stringToPDFString(alt); + } + const a = node.dict.get("A"); + if (a instanceof Dict) { + const bbox = lookupNormalRect(a.getArray("BBox"), null); + if (bbox) { + obj.bbox = bbox; + } else { + const width = a.get("Width"); + const height = a.get("Height"); + if (typeof width === "number" && width > 0 && typeof height === "number" && height > 0) { + obj.bbox = [0, 0, width, height]; + } + } + } + const lang = node.dict.get("Lang"); + if (typeof lang === "string") { + obj.lang = stringToPDFString(lang); + } + for (const kid of node.kids) { + const kidElement = kid.type === StructElementType.ELEMENT ? kid.parentNode : null; + if (kidElement) { + nodeToSerializable(kidElement, obj, level + 1); + continue; + } else if (kid.type === StructElementType.PAGE_CONTENT || kid.type === StructElementType.STREAM_CONTENT) { + obj.children.push({ + type: "content", + id: `p${kid.pageObjId}_mc${kid.mcid}` + }); + } else if (kid.type === StructElementType.OBJECT) { + obj.children.push({ + type: "object", + id: kid.refObjId + }); + } else if (kid.type === StructElementType.ANNOTATION) { + obj.children.push({ + type: "annotation", + id: `${AnnotationPrefix}${kid.refObjId}` + }); + } + } + } + const root = Object.create(null); + root.children = []; + root.role = "Root"; + for (const child of this.nodes) { + if (!child) { + continue; + } + nodeToSerializable(child, root); + } + return root; + } +} + +;// ./src/core/catalog.js + + + + + + + + + + + +function isValidExplicitDest(dest) { + if (!Array.isArray(dest) || dest.length < 2) { + return false; + } + const [page, zoom, ...args] = dest; + if (!(page instanceof Ref) && !Number.isInteger(page)) { + return false; + } + if (!(zoom instanceof Name)) { + return false; + } + const argsLen = args.length; + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (argsLen < 2 || argsLen > 3) { + return false; + } + break; + case "Fit": + case "FitB": + return argsLen === 0; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (argsLen > 1) { + return false; + } + break; + case "FitR": + if (argsLen !== 4) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (const arg of args) { + if (!(typeof arg === "number" || allowNull && arg === null)) { + return false; + } + } + return true; +} +function fetchDest(dest) { + if (dest instanceof Dict) { + dest = dest.get("D"); + } + return isValidExplicitDest(dest) ? dest : null; +} +function fetchRemoteDest(action) { + let dest = action.get("D"); + if (dest) { + if (dest instanceof Name) { + dest = dest.name; + } + if (typeof dest === "string") { + return stringToPDFString(dest); + } else if (isValidExplicitDest(dest)) { + return JSON.stringify(dest); + } + } + return null; +} +class Catalog { + constructor(pdfManager, xref) { + this.pdfManager = pdfManager; + this.xref = xref; + this._catDict = xref.getCatalogObj(); + if (!(this._catDict instanceof Dict)) { + throw new FormatError("Catalog object is not a dictionary."); + } + this.toplevelPagesDict; + this._actualNumPages = null; + this.fontCache = new RefSetCache(); + this.builtInCMapCache = new Map(); + this.standardFontDataCache = new Map(); + this.globalImageCache = new GlobalImageCache(); + this.pageKidsCountCache = new RefSetCache(); + this.pageIndexCache = new RefSetCache(); + this.pageDictCache = new RefSetCache(); + this.nonBlendModesSet = new RefSet(); + this.systemFontCache = new Map(); + } + cloneDict() { + return this._catDict.clone(); + } + get version() { + const version = this._catDict.get("Version"); + if (version instanceof Name) { + if (PDF_VERSION_REGEXP.test(version.name)) { + return shadow(this, "version", version.name); + } + warn(`Invalid PDF catalog version: ${version.name}`); + } + return shadow(this, "version", null); + } + get lang() { + const lang = this._catDict.get("Lang"); + return shadow(this, "lang", lang && typeof lang === "string" ? stringToPDFString(lang) : null); + } + get needsRendering() { + const needsRendering = this._catDict.get("NeedsRendering"); + return shadow(this, "needsRendering", typeof needsRendering === "boolean" ? needsRendering : false); + } + get collection() { + let collection = null; + try { + const obj = this._catDict.get("Collection"); + if (obj instanceof Dict && obj.size > 0) { + collection = obj; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info("Cannot fetch Collection entry; assuming no collection is present."); + } + return shadow(this, "collection", collection); + } + get acroForm() { + let acroForm = null; + try { + const obj = this._catDict.get("AcroForm"); + if (obj instanceof Dict && obj.size > 0) { + acroForm = obj; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info("Cannot fetch AcroForm entry; assuming no forms are present."); + } + return shadow(this, "acroForm", acroForm); + } + get acroFormRef() { + const value = this._catDict.getRaw("AcroForm"); + return shadow(this, "acroFormRef", value instanceof Ref ? value : null); + } + get metadata() { + const streamRef = this._catDict.getRaw("Metadata"); + if (!(streamRef instanceof Ref)) { + return shadow(this, "metadata", null); + } + let metadata = null; + try { + const stream = this.xref.fetch(streamRef, !this.xref.encrypt?.encryptMetadata); + if (stream instanceof BaseStream && stream.dict instanceof Dict) { + const type = stream.dict.get("Type"); + const subtype = stream.dict.get("Subtype"); + if (isName(type, "Metadata") && isName(subtype, "XML")) { + const data = stringToUTF8String(stream.getString()); + if (data) { + metadata = new MetadataParser(data).serializable; + } + } + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + info(`Skipping invalid Metadata: "${ex}".`); + } + return shadow(this, "metadata", metadata); + } + get markInfo() { + let markInfo = null; + try { + markInfo = this._readMarkInfo(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read mark info."); + } + return shadow(this, "markInfo", markInfo); + } + _readMarkInfo() { + const obj = this._catDict.get("MarkInfo"); + if (!(obj instanceof Dict)) { + return null; + } + const markInfo = { + Marked: false, + UserProperties: false, + Suspects: false + }; + for (const key in markInfo) { + const value = obj.get(key); + if (typeof value === "boolean") { + markInfo[key] = value; + } + } + return markInfo; + } + get structTreeRoot() { + let structTree = null; + try { + structTree = this._readStructTreeRoot(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable read to structTreeRoot info."); + } + return shadow(this, "structTreeRoot", structTree); + } + _readStructTreeRoot() { + const rawObj = this._catDict.getRaw("StructTreeRoot"); + const obj = this.xref.fetchIfRef(rawObj); + if (!(obj instanceof Dict)) { + return null; + } + const root = new StructTreeRoot(obj, rawObj); + root.init(); + return root; + } + get toplevelPagesDict() { + const pagesObj = this._catDict.get("Pages"); + if (!(pagesObj instanceof Dict)) { + throw new FormatError("Invalid top-level pages dictionary."); + } + return shadow(this, "toplevelPagesDict", pagesObj); + } + get documentOutline() { + let obj = null; + try { + obj = this._readDocumentOutline(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read document outline."); + } + return shadow(this, "documentOutline", obj); + } + _readDocumentOutline() { + let obj = this._catDict.get("Outlines"); + if (!(obj instanceof Dict)) { + return null; + } + obj = obj.getRaw("First"); + if (!(obj instanceof Ref)) { + return null; + } + const root = { + items: [] + }; + const queue = [{ + obj, + parent: root + }]; + const processed = new RefSet(); + processed.put(obj); + const xref = this.xref, + blackColor = new Uint8ClampedArray(3); + while (queue.length > 0) { + const i = queue.shift(); + const outlineDict = xref.fetchIfRef(i.obj); + if (outlineDict === null) { + continue; + } + if (!outlineDict.has("Title")) { + warn("Invalid outline item encountered."); + } + const data = { + url: null, + dest: null, + action: null + }; + Catalog.parseDestDictionary({ + destDict: outlineDict, + resultObj: data, + docBaseUrl: this.baseUrl, + docAttachments: this.attachments + }); + const title = outlineDict.get("Title"); + const flags = outlineDict.get("F") || 0; + const color = outlineDict.getArray("C"); + const count = outlineDict.get("Count"); + let rgbColor = blackColor; + if (isNumberArray(color, 3) && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { + rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0); + } + const outlineItem = { + action: data.action, + attachment: data.attachment, + dest: data.dest, + url: data.url, + unsafeUrl: data.unsafeUrl, + newWindow: data.newWindow, + setOCGState: data.setOCGState, + title: typeof title === "string" ? stringToPDFString(title) : "", + color: rgbColor, + count: Number.isInteger(count) ? count : undefined, + bold: !!(flags & 2), + italic: !!(flags & 1), + items: [] + }; + i.parent.items.push(outlineItem); + obj = outlineDict.getRaw("First"); + if (obj instanceof Ref && !processed.has(obj)) { + queue.push({ + obj, + parent: outlineItem + }); + processed.put(obj); + } + obj = outlineDict.getRaw("Next"); + if (obj instanceof Ref && !processed.has(obj)) { + queue.push({ + obj, + parent: i.parent + }); + processed.put(obj); + } + } + return root.items.length > 0 ? root.items : null; + } + get permissions() { + let permissions = null; + try { + permissions = this._readPermissions(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read permissions."); + } + return shadow(this, "permissions", permissions); + } + _readPermissions() { + const encrypt = this.xref.trailer.get("Encrypt"); + if (!(encrypt instanceof Dict)) { + return null; + } + let flags = encrypt.get("P"); + if (typeof flags !== "number") { + return null; + } + flags += 2 ** 32; + const permissions = []; + for (const key in PermissionFlag) { + const value = PermissionFlag[key]; + if (flags & value) { + permissions.push(value); + } + } + return permissions; + } + get optionalContentConfig() { + let config = null; + try { + const properties = this._catDict.get("OCProperties"); + if (!properties) { + return shadow(this, "optionalContentConfig", null); + } + const defaultConfig = properties.get("D"); + if (!defaultConfig) { + return shadow(this, "optionalContentConfig", null); + } + const groupsData = properties.get("OCGs"); + if (!Array.isArray(groupsData)) { + return shadow(this, "optionalContentConfig", null); + } + const groupRefCache = new RefSetCache(); + for (const groupRef of groupsData) { + if (!(groupRef instanceof Ref) || groupRefCache.has(groupRef)) { + continue; + } + groupRefCache.put(groupRef, this.#readOptionalContentGroup(groupRef)); + } + config = this.#readOptionalContentConfig(defaultConfig, groupRefCache); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Unable to read optional content config: ${ex}`); + } + return shadow(this, "optionalContentConfig", config); + } + #readOptionalContentGroup(groupRef) { + const group = this.xref.fetch(groupRef); + const obj = { + id: groupRef.toString(), + name: null, + intent: null, + usage: { + print: null, + view: null + }, + rbGroups: [] + }; + const name = group.get("Name"); + if (typeof name === "string") { + obj.name = stringToPDFString(name); + } + let intent = group.getArray("Intent"); + if (!Array.isArray(intent)) { + intent = [intent]; + } + if (intent.every(i => i instanceof Name)) { + obj.intent = intent.map(i => i.name); + } + const usage = group.get("Usage"); + if (!(usage instanceof Dict)) { + return obj; + } + const usageObj = obj.usage; + const print = usage.get("Print"); + if (print instanceof Dict) { + const printState = print.get("PrintState"); + if (printState instanceof Name) { + switch (printState.name) { + case "ON": + case "OFF": + usageObj.print = { + printState: printState.name + }; + } + } + } + const view = usage.get("View"); + if (view instanceof Dict) { + const viewState = view.get("ViewState"); + if (viewState instanceof Name) { + switch (viewState.name) { + case "ON": + case "OFF": + usageObj.view = { + viewState: viewState.name + }; + } + } + } + return obj; + } + #readOptionalContentConfig(config, groupRefCache) { + function parseOnOff(refs) { + const onParsed = []; + if (Array.isArray(refs)) { + for (const value of refs) { + if (value instanceof Ref && groupRefCache.has(value)) { + onParsed.push(value.toString()); + } + } + } + return onParsed; + } + function parseOrder(refs, nestedLevels = 0) { + if (!Array.isArray(refs)) { + return null; + } + const order = []; + for (const value of refs) { + if (value instanceof Ref && groupRefCache.has(value)) { + parsedOrderRefs.put(value); + order.push(value.toString()); + continue; + } + const nestedOrder = parseNestedOrder(value, nestedLevels); + if (nestedOrder) { + order.push(nestedOrder); + } + } + if (nestedLevels > 0) { + return order; + } + const hiddenGroups = []; + for (const [groupRef] of groupRefCache.items()) { + if (parsedOrderRefs.has(groupRef)) { + continue; + } + hiddenGroups.push(groupRef.toString()); + } + if (hiddenGroups.length) { + order.push({ + name: null, + order: hiddenGroups + }); + } + return order; + } + function parseNestedOrder(ref, nestedLevels) { + if (++nestedLevels > MAX_NESTED_LEVELS) { + warn("parseNestedOrder - reached MAX_NESTED_LEVELS."); + return null; + } + const value = xref.fetchIfRef(ref); + if (!Array.isArray(value)) { + return null; + } + const nestedName = xref.fetchIfRef(value[0]); + if (typeof nestedName !== "string") { + return null; + } + const nestedOrder = parseOrder(value.slice(1), nestedLevels); + if (!nestedOrder?.length) { + return null; + } + return { + name: stringToPDFString(nestedName), + order: nestedOrder + }; + } + function parseRBGroups(rbGroups) { + if (!Array.isArray(rbGroups)) { + return; + } + for (const value of rbGroups) { + const rbGroup = xref.fetchIfRef(value); + if (!Array.isArray(rbGroup) || !rbGroup.length) { + continue; + } + const parsedRbGroup = new Set(); + for (const ref of rbGroup) { + if (ref instanceof Ref && groupRefCache.has(ref) && !parsedRbGroup.has(ref.toString())) { + parsedRbGroup.add(ref.toString()); + groupRefCache.get(ref).rbGroups.push(parsedRbGroup); + } + } + } + } + const xref = this.xref, + parsedOrderRefs = new RefSet(), + MAX_NESTED_LEVELS = 10; + parseRBGroups(config.get("RBGroups")); + return { + name: typeof config.get("Name") === "string" ? stringToPDFString(config.get("Name")) : null, + creator: typeof config.get("Creator") === "string" ? stringToPDFString(config.get("Creator")) : null, + baseState: config.get("BaseState") instanceof Name ? config.get("BaseState").name : null, + on: parseOnOff(config.get("ON")), + off: parseOnOff(config.get("OFF")), + order: parseOrder(config.get("Order")), + groups: [...groupRefCache] + }; + } + setActualNumPages(num = null) { + this._actualNumPages = num; + } + get hasActualNumPages() { + return this._actualNumPages !== null; + } + get _pagesCount() { + const obj = this.toplevelPagesDict.get("Count"); + if (!Number.isInteger(obj)) { + throw new FormatError("Page count in top-level pages dictionary is not an integer."); + } + return shadow(this, "_pagesCount", obj); + } + get numPages() { + return this.hasActualNumPages ? this._actualNumPages : this._pagesCount; + } + get destinations() { + const obj = this._readDests(), + dests = Object.create(null); + if (obj instanceof NameTree) { + for (const [key, value] of obj.getAll()) { + const dest = fetchDest(value); + if (dest) { + dests[stringToPDFString(key)] = dest; + } + } + } else if (obj instanceof Dict) { + for (const [key, value] of obj) { + const dest = fetchDest(value); + if (dest) { + dests[key] = dest; + } + } + } + return shadow(this, "destinations", dests); + } + getDestination(id) { + const obj = this._readDests(); + if (obj instanceof NameTree) { + const dest = fetchDest(obj.get(id)); + if (dest) { + return dest; + } + const allDest = this.destinations[id]; + if (allDest) { + warn(`Found "${id}" at an incorrect position in the NameTree.`); + return allDest; + } + } else if (obj instanceof Dict) { + const dest = fetchDest(obj.get(id)); + if (dest) { + return dest; + } + } + return null; + } + _readDests() { + const obj = this._catDict.get("Names"); + if (obj?.has("Dests")) { + return new NameTree(obj.getRaw("Dests"), this.xref); + } else if (this._catDict.has("Dests")) { + return this._catDict.get("Dests"); + } + return undefined; + } + get pageLabels() { + let obj = null; + try { + obj = this._readPageLabels(); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn("Unable to read page labels."); + } + return shadow(this, "pageLabels", obj); + } + _readPageLabels() { + const obj = this._catDict.getRaw("PageLabels"); + if (!obj) { + return null; + } + const pageLabels = new Array(this.numPages); + let style = null, + prefix = ""; + const numberTree = new NumberTree(obj, this.xref); + const nums = numberTree.getAll(); + let currentLabel = "", + currentIndex = 1; + for (let i = 0, ii = this.numPages; i < ii; i++) { + const labelDict = nums.get(i); + if (labelDict !== undefined) { + if (!(labelDict instanceof Dict)) { + throw new FormatError("PageLabel is not a dictionary."); + } + if (labelDict.has("Type") && !isName(labelDict.get("Type"), "PageLabel")) { + throw new FormatError("Invalid type in PageLabel dictionary."); + } + if (labelDict.has("S")) { + const s = labelDict.get("S"); + if (!(s instanceof Name)) { + throw new FormatError("Invalid style in PageLabel dictionary."); + } + style = s.name; + } else { + style = null; + } + if (labelDict.has("P")) { + const p = labelDict.get("P"); + if (typeof p !== "string") { + throw new FormatError("Invalid prefix in PageLabel dictionary."); + } + prefix = stringToPDFString(p); + } else { + prefix = ""; + } + if (labelDict.has("St")) { + const st = labelDict.get("St"); + if (!(Number.isInteger(st) && st >= 1)) { + throw new FormatError("Invalid start in PageLabel dictionary."); + } + currentIndex = st; + } else { + currentIndex = 1; + } + } + switch (style) { + case "D": + currentLabel = currentIndex; + break; + case "R": + case "r": + currentLabel = toRomanNumerals(currentIndex, style === "r"); + break; + case "A": + case "a": + const LIMIT = 26; + const A_UPPER_CASE = 0x41, + A_LOWER_CASE = 0x61; + const baseCharCode = style === "a" ? A_LOWER_CASE : A_UPPER_CASE; + const letterIndex = currentIndex - 1; + const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT); + currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1); + break; + default: + if (style) { + throw new FormatError(`Invalid style "${style}" in PageLabel dictionary.`); + } + currentLabel = ""; + } + pageLabels[i] = prefix + currentLabel; + currentIndex++; + } + return pageLabels; + } + get pageLayout() { + const obj = this._catDict.get("PageLayout"); + let pageLayout = ""; + if (obj instanceof Name) { + switch (obj.name) { + case "SinglePage": + case "OneColumn": + case "TwoColumnLeft": + case "TwoColumnRight": + case "TwoPageLeft": + case "TwoPageRight": + pageLayout = obj.name; + } + } + return shadow(this, "pageLayout", pageLayout); + } + get pageMode() { + const obj = this._catDict.get("PageMode"); + let pageMode = "UseNone"; + if (obj instanceof Name) { + switch (obj.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "FullScreen": + case "UseOC": + case "UseAttachments": + pageMode = obj.name; + } + } + return shadow(this, "pageMode", pageMode); + } + get viewerPreferences() { + const obj = this._catDict.get("ViewerPreferences"); + if (!(obj instanceof Dict)) { + return shadow(this, "viewerPreferences", null); + } + let prefs = null; + for (const key of obj.getKeys()) { + const value = obj.get(key); + let prefValue; + switch (key) { + case "HideToolbar": + case "HideMenubar": + case "HideWindowUI": + case "FitWindow": + case "CenterWindow": + case "DisplayDocTitle": + case "PickTrayByPDFSize": + if (typeof value === "boolean") { + prefValue = value; + } + break; + case "NonFullScreenPageMode": + if (value instanceof Name) { + switch (value.name) { + case "UseNone": + case "UseOutlines": + case "UseThumbs": + case "UseOC": + prefValue = value.name; + break; + default: + prefValue = "UseNone"; + } + } + break; + case "Direction": + if (value instanceof Name) { + switch (value.name) { + case "L2R": + case "R2L": + prefValue = value.name; + break; + default: + prefValue = "L2R"; + } + } + break; + case "ViewArea": + case "ViewClip": + case "PrintArea": + case "PrintClip": + if (value instanceof Name) { + switch (value.name) { + case "MediaBox": + case "CropBox": + case "BleedBox": + case "TrimBox": + case "ArtBox": + prefValue = value.name; + break; + default: + prefValue = "CropBox"; + } + } + break; + case "PrintScaling": + if (value instanceof Name) { + switch (value.name) { + case "None": + case "AppDefault": + prefValue = value.name; + break; + default: + prefValue = "AppDefault"; + } + } + break; + case "Duplex": + if (value instanceof Name) { + switch (value.name) { + case "Simplex": + case "DuplexFlipShortEdge": + case "DuplexFlipLongEdge": + prefValue = value.name; + break; + default: + prefValue = "None"; + } + } + break; + case "PrintPageRange": + if (Array.isArray(value) && value.length % 2 === 0) { + const isValid = value.every((page, i, arr) => Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages); + if (isValid) { + prefValue = value; + } + } + break; + case "NumCopies": + if (Number.isInteger(value) && value > 0) { + prefValue = value; + } + break; + default: + warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`); + continue; + } + if (prefValue === undefined) { + warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`); + continue; + } + if (!prefs) { + prefs = Object.create(null); + } + prefs[key] = prefValue; + } + return shadow(this, "viewerPreferences", prefs); + } + get openAction() { + const obj = this._catDict.get("OpenAction"); + const openAction = Object.create(null); + if (obj instanceof Dict) { + const destDict = new Dict(this.xref); + destDict.set("A", obj); + const resultObj = { + url: null, + dest: null, + action: null + }; + Catalog.parseDestDictionary({ + destDict, + resultObj + }); + if (Array.isArray(resultObj.dest)) { + openAction.dest = resultObj.dest; + } else if (resultObj.action) { + openAction.action = resultObj.action; + } + } else if (Array.isArray(obj)) { + openAction.dest = obj; + } + return shadow(this, "openAction", objectSize(openAction) > 0 ? openAction : null); + } + get attachments() { + const obj = this._catDict.get("Names"); + let attachments = null; + if (obj instanceof Dict && obj.has("EmbeddedFiles")) { + const nameTree = new NameTree(obj.getRaw("EmbeddedFiles"), this.xref); + for (const [key, value] of nameTree.getAll()) { + const fs = new FileSpec(value, this.xref); + if (!attachments) { + attachments = Object.create(null); + } + attachments[stringToPDFString(key)] = fs.serializable; + } + } + return shadow(this, "attachments", attachments); + } + get xfaImages() { + const obj = this._catDict.get("Names"); + let xfaImages = null; + if (obj instanceof Dict && obj.has("XFAImages")) { + const nameTree = new NameTree(obj.getRaw("XFAImages"), this.xref); + for (const [key, value] of nameTree.getAll()) { + if (!xfaImages) { + xfaImages = new Dict(this.xref); + } + xfaImages.set(stringToPDFString(key), value); + } + } + return shadow(this, "xfaImages", xfaImages); + } + _collectJavaScript() { + const obj = this._catDict.get("Names"); + let javaScript = null; + function appendIfJavaScriptDict(name, jsDict) { + if (!(jsDict instanceof Dict)) { + return; + } + if (!isName(jsDict.get("S"), "JavaScript")) { + return; + } + let js = jsDict.get("JS"); + if (js instanceof BaseStream) { + js = js.getString(); + } else if (typeof js !== "string") { + return; + } + js = stringToPDFString(js).replaceAll("\x00", ""); + if (js) { + (javaScript ||= new Map()).set(name, js); + } + } + if (obj instanceof Dict && obj.has("JavaScript")) { + const nameTree = new NameTree(obj.getRaw("JavaScript"), this.xref); + for (const [key, value] of nameTree.getAll()) { + appendIfJavaScriptDict(stringToPDFString(key), value); + } + } + const openAction = this._catDict.get("OpenAction"); + if (openAction) { + appendIfJavaScriptDict("OpenAction", openAction); + } + return javaScript; + } + get jsActions() { + const javaScript = this._collectJavaScript(); + let actions = collectActions(this.xref, this._catDict, DocumentActionEventType); + if (javaScript) { + actions ||= Object.create(null); + for (const [key, val] of javaScript) { + if (key in actions) { + actions[key].push(val); + } else { + actions[key] = [val]; + } + } + } + return shadow(this, "jsActions", actions); + } + async fontFallback(id, handler) { + const translatedFonts = await Promise.all(this.fontCache); + for (const translatedFont of translatedFonts) { + if (translatedFont.loadedName === id) { + translatedFont.fallback(handler); + return; + } + } + } + async cleanup(manuallyTriggered = false) { + clearGlobalCaches(); + this.globalImageCache.clear(manuallyTriggered); + this.pageKidsCountCache.clear(); + this.pageIndexCache.clear(); + this.pageDictCache.clear(); + this.nonBlendModesSet.clear(); + const translatedFonts = await Promise.all(this.fontCache); + for (const { + dict + } of translatedFonts) { + delete dict.cacheKey; + } + this.fontCache.clear(); + this.builtInCMapCache.clear(); + this.standardFontDataCache.clear(); + this.systemFontCache.clear(); + } + async getPageDict(pageIndex) { + const nodesToVisit = [this.toplevelPagesDict]; + const visitedNodes = new RefSet(); + const pagesRef = this._catDict.getRaw("Pages"); + if (pagesRef instanceof Ref) { + visitedNodes.put(pagesRef); + } + const xref = this.xref, + pageKidsCountCache = this.pageKidsCountCache, + pageIndexCache = this.pageIndexCache, + pageDictCache = this.pageDictCache; + let currentPageIndex = 0; + while (nodesToVisit.length) { + const currentNode = nodesToVisit.pop(); + if (currentNode instanceof Ref) { + const count = pageKidsCountCache.get(currentNode); + if (count >= 0 && currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + if (visitedNodes.has(currentNode)) { + throw new FormatError("Pages tree contains circular reference."); + } + visitedNodes.put(currentNode); + const obj = await (pageDictCache.get(currentNode) || xref.fetchAsync(currentNode)); + if (obj instanceof Dict) { + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !obj.has("Kids")) { + if (!pageKidsCountCache.has(currentNode)) { + pageKidsCountCache.put(currentNode, 1); + } + if (!pageIndexCache.has(currentNode)) { + pageIndexCache.put(currentNode, currentPageIndex); + } + if (currentPageIndex === pageIndex) { + return [obj, currentNode]; + } + currentPageIndex++; + continue; + } + } + nodesToVisit.push(obj); + continue; + } + if (!(currentNode instanceof Dict)) { + throw new FormatError("Page dictionary kid reference points to wrong type of object."); + } + const { + objId + } = currentNode; + let count = currentNode.getRaw("Count"); + if (count instanceof Ref) { + count = await xref.fetchAsync(count); + } + if (Number.isInteger(count) && count >= 0) { + if (objId && !pageKidsCountCache.has(objId)) { + pageKidsCountCache.put(objId, count); + } + if (currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + continue; + } + } + let kids = currentNode.getRaw("Kids"); + if (kids instanceof Ref) { + kids = await xref.fetchAsync(kids); + } + if (!Array.isArray(kids)) { + let type = currentNode.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !currentNode.has("Kids")) { + if (currentPageIndex === pageIndex) { + return [currentNode, null]; + } + currentPageIndex++; + continue; + } + throw new FormatError("Page dictionary kids object is not an array."); + } + for (let last = kids.length - 1; last >= 0; last--) { + const lastKid = kids[last]; + nodesToVisit.push(lastKid); + if (currentNode === this.toplevelPagesDict && lastKid instanceof Ref && !pageDictCache.has(lastKid)) { + pageDictCache.put(lastKid, xref.fetchAsync(lastKid)); + } + } + } + throw new Error(`Page index ${pageIndex} not found.`); + } + async getAllPageDicts(recoveryMode = false) { + const { + ignoreErrors + } = this.pdfManager.evaluatorOptions; + const queue = [{ + currentNode: this.toplevelPagesDict, + posInKids: 0 + }]; + const visitedNodes = new RefSet(); + const pagesRef = this._catDict.getRaw("Pages"); + if (pagesRef instanceof Ref) { + visitedNodes.put(pagesRef); + } + const map = new Map(), + xref = this.xref, + pageIndexCache = this.pageIndexCache; + let pageIndex = 0; + function addPageDict(pageDict, pageRef) { + if (pageRef && !pageIndexCache.has(pageRef)) { + pageIndexCache.put(pageRef, pageIndex); + } + map.set(pageIndex++, [pageDict, pageRef]); + } + function addPageError(error) { + if (error instanceof XRefEntryException && !recoveryMode) { + throw error; + } + if (recoveryMode && ignoreErrors && pageIndex === 0) { + warn(`getAllPageDicts - Skipping invalid first page: "${error}".`); + error = Dict.empty; + } + map.set(pageIndex++, [error, null]); + } + while (queue.length > 0) { + const queueItem = queue.at(-1); + const { + currentNode, + posInKids + } = queueItem; + let kids = currentNode.getRaw("Kids"); + if (kids instanceof Ref) { + try { + kids = await xref.fetchAsync(kids); + } catch (ex) { + addPageError(ex); + break; + } + } + if (!Array.isArray(kids)) { + addPageError(new FormatError("Page dictionary kids object is not an array.")); + break; + } + if (posInKids >= kids.length) { + queue.pop(); + continue; + } + const kidObj = kids[posInKids]; + let obj; + if (kidObj instanceof Ref) { + if (visitedNodes.has(kidObj)) { + addPageError(new FormatError("Pages tree contains circular reference.")); + break; + } + visitedNodes.put(kidObj); + try { + obj = await xref.fetchAsync(kidObj); + } catch (ex) { + addPageError(ex); + break; + } + } else { + obj = kidObj; + } + if (!(obj instanceof Dict)) { + addPageError(new FormatError("Page dictionary kid reference points to wrong type of object.")); + break; + } + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + try { + type = await xref.fetchAsync(type); + } catch (ex) { + addPageError(ex); + break; + } + } + if (isName(type, "Page") || !obj.has("Kids")) { + addPageDict(obj, kidObj instanceof Ref ? kidObj : null); + } else { + queue.push({ + currentNode: obj, + posInKids: 0 + }); + } + queueItem.posInKids++; + } + return map; + } + getPageIndex(pageRef) { + const cachedPageIndex = this.pageIndexCache.get(pageRef); + if (cachedPageIndex !== undefined) { + return Promise.resolve(cachedPageIndex); + } + const xref = this.xref; + function pagesBeforeRef(kidRef) { + let total = 0, + parentRef; + return xref.fetchAsync(kidRef).then(function (node) { + if (isRefsEqual(kidRef, pageRef) && !isDict(node, "Page") && !(node instanceof Dict && !node.has("Type") && node.has("Contents"))) { + throw new FormatError("The reference does not point to a /Page dictionary."); + } + if (!node) { + return null; + } + if (!(node instanceof Dict)) { + throw new FormatError("Node must be a dictionary."); + } + parentRef = node.getRaw("Parent"); + return node.getAsync("Parent"); + }).then(function (parent) { + if (!parent) { + return null; + } + if (!(parent instanceof Dict)) { + throw new FormatError("Parent must be a dictionary."); + } + return parent.getAsync("Kids"); + }).then(function (kids) { + if (!kids) { + return null; + } + const kidPromises = []; + let found = false; + for (const kid of kids) { + if (!(kid instanceof Ref)) { + throw new FormatError("Kid must be a reference."); + } + if (isRefsEqual(kid, kidRef)) { + found = true; + break; + } + kidPromises.push(xref.fetchAsync(kid).then(function (obj) { + if (!(obj instanceof Dict)) { + throw new FormatError("Kid node must be a dictionary."); + } + if (obj.has("Count")) { + total += obj.get("Count"); + } else { + total++; + } + })); + } + if (!found) { + throw new FormatError("Kid reference not found in parent's kids."); + } + return Promise.all(kidPromises).then(function () { + return [total, parentRef]; + }); + }); + } + let total = 0; + const next = ref => pagesBeforeRef(ref).then(args => { + if (!args) { + this.pageIndexCache.put(pageRef, total); + return total; + } + const [count, parentRef] = args; + total += count; + return next(parentRef); + }); + return next(pageRef); + } + get baseUrl() { + const uri = this._catDict.get("URI"); + if (uri instanceof Dict) { + const base = uri.get("Base"); + if (typeof base === "string") { + const absoluteUrl = createValidAbsoluteUrl(base, null, { + tryConvertEncoding: true + }); + if (absoluteUrl) { + return shadow(this, "baseUrl", absoluteUrl.href); + } + } + } + return shadow(this, "baseUrl", this.pdfManager.docBaseUrl); + } + static parseDestDictionary({ + destDict, + resultObj, + docBaseUrl = null, + docAttachments = null + }) { + if (!(destDict instanceof Dict)) { + warn("parseDestDictionary: `destDict` must be a dictionary."); + return; + } + let action = destDict.get("A"), + url, + dest; + if (!(action instanceof Dict)) { + if (destDict.has("Dest")) { + action = destDict.get("Dest"); + } else { + action = destDict.get("AA"); + if (action instanceof Dict) { + if (action.has("D")) { + action = action.get("D"); + } else if (action.has("U")) { + action = action.get("U"); + } + } + } + } + if (action instanceof Dict) { + const actionType = action.get("S"); + if (!(actionType instanceof Name)) { + warn("parseDestDictionary: Invalid type in Action dictionary."); + return; + } + const actionName = actionType.name; + switch (actionName) { + case "ResetForm": + const flags = action.get("Flags"); + const include = ((typeof flags === "number" ? flags : 0) & 1) === 0; + const fields = []; + const refs = []; + for (const obj of action.get("Fields") || []) { + if (obj instanceof Ref) { + refs.push(obj.toString()); + } else if (typeof obj === "string") { + fields.push(stringToPDFString(obj)); + } + } + resultObj.resetForm = { + fields, + refs, + include + }; + break; + case "URI": + url = action.get("URI"); + if (url instanceof Name) { + url = "/" + url.name; + } + break; + case "GoTo": + dest = action.get("D"); + break; + case "Launch": + case "GoToR": + const urlDict = action.get("F"); + if (urlDict instanceof Dict) { + const fs = new FileSpec(urlDict, null, true); + const { + rawFilename + } = fs.serializable; + url = rawFilename; + } else if (typeof urlDict === "string") { + url = urlDict; + } + const remoteDest = fetchRemoteDest(action); + if (remoteDest && typeof url === "string") { + url = url.split("#", 1)[0] + "#" + remoteDest; + } + const newWindow = action.get("NewWindow"); + if (typeof newWindow === "boolean") { + resultObj.newWindow = newWindow; + } + break; + case "GoToE": + const target = action.get("T"); + let attachment; + if (docAttachments && target instanceof Dict) { + const relationship = target.get("R"); + const name = target.get("N"); + if (isName(relationship, "C") && typeof name === "string") { + attachment = docAttachments[stringToPDFString(name)]; + } + } + if (attachment) { + resultObj.attachment = attachment; + const attachmentDest = fetchRemoteDest(action); + if (attachmentDest) { + resultObj.attachmentDest = attachmentDest; + } + } else { + warn(`parseDestDictionary - unimplemented "GoToE" action.`); + } + break; + case "Named": + const namedAction = action.get("N"); + if (namedAction instanceof Name) { + resultObj.action = namedAction.name; + } + break; + case "SetOCGState": + const state = action.get("State"); + const preserveRB = action.get("PreserveRB"); + if (!Array.isArray(state) || state.length === 0) { + break; + } + const stateArr = []; + for (const elem of state) { + if (elem instanceof Name) { + switch (elem.name) { + case "ON": + case "OFF": + case "Toggle": + stateArr.push(elem.name); + break; + } + } else if (elem instanceof Ref) { + stateArr.push(elem.toString()); + } + } + if (stateArr.length !== state.length) { + break; + } + resultObj.setOCGState = { + state: stateArr, + preserveRB: typeof preserveRB === "boolean" ? preserveRB : true + }; + break; + case "JavaScript": + const jsAction = action.get("JS"); + let js; + if (jsAction instanceof BaseStream) { + js = jsAction.getString(); + } else if (typeof jsAction === "string") { + js = jsAction; + } + const jsURL = js && recoverJsURL(stringToPDFString(js)); + if (jsURL) { + url = jsURL.url; + resultObj.newWindow = jsURL.newWindow; + break; + } + default: + if (actionName === "JavaScript" || actionName === "SubmitForm") { + break; + } + warn(`parseDestDictionary - unsupported action: "${actionName}".`); + break; + } + } else if (destDict.has("Dest")) { + dest = destDict.get("Dest"); + } + if (typeof url === "string") { + const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, { + addDefaultProtocol: true, + tryConvertEncoding: true + }); + if (absoluteUrl) { + resultObj.url = absoluteUrl.href; + } + resultObj.unsafeUrl = url; + } + if (dest) { + if (dest instanceof Name) { + dest = dest.name; + } + if (typeof dest === "string") { + resultObj.dest = stringToPDFString(dest); + } else if (isValidExplicitDest(dest)) { + resultObj.dest = dest; + } + } + } +} + +;// ./src/core/object_loader.js + + + + +function mayHaveChildren(value) { + return value instanceof Ref || value instanceof Dict || value instanceof BaseStream || Array.isArray(value); +} +function addChildren(node, nodesToVisit) { + if (node instanceof Dict) { + node = node.getRawValues(); + } else if (node instanceof BaseStream) { + node = node.dict.getRawValues(); + } else if (!Array.isArray(node)) { + return; + } + for (const rawValue of node) { + if (mayHaveChildren(rawValue)) { + nodesToVisit.push(rawValue); + } + } +} +class ObjectLoader { + constructor(dict, keys, xref) { + this.dict = dict; + this.keys = keys; + this.xref = xref; + this.refSet = null; + } + async load() { + if (this.xref.stream.isDataLoaded) { + return undefined; + } + const { + keys, + dict + } = this; + this.refSet = new RefSet(); + const nodesToVisit = []; + for (const key of keys) { + const rawValue = dict.getRaw(key); + if (rawValue !== undefined) { + nodesToVisit.push(rawValue); + } + } + return this._walk(nodesToVisit); + } + async _walk(nodesToVisit) { + const nodesToRevisit = []; + const pendingRequests = []; + while (nodesToVisit.length) { + let currentNode = nodesToVisit.pop(); + if (currentNode instanceof Ref) { + if (this.refSet.has(currentNode)) { + continue; + } + try { + this.refSet.put(currentNode); + currentNode = this.xref.fetch(currentNode); + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + warn(`ObjectLoader._walk - requesting all data: "${ex}".`); + this.refSet = null; + const { + manager + } = this.xref.stream; + return manager.requestAllChunks(); + } + nodesToRevisit.push(currentNode); + pendingRequests.push({ + begin: ex.begin, + end: ex.end + }); + } + } + if (currentNode instanceof BaseStream) { + const baseStreams = currentNode.getBaseStreams(); + if (baseStreams) { + let foundMissingData = false; + for (const stream of baseStreams) { + if (stream.isDataLoaded) { + continue; + } + foundMissingData = true; + pendingRequests.push({ + begin: stream.start, + end: stream.end + }); + } + if (foundMissingData) { + nodesToRevisit.push(currentNode); + } + } + } + addChildren(currentNode, nodesToVisit); + } + if (pendingRequests.length) { + await this.xref.stream.manager.requestRanges(pendingRequests); + for (const node of nodesToRevisit) { + if (node instanceof Ref) { + this.refSet.remove(node); + } + } + return this._walk(nodesToRevisit); + } + this.refSet = null; + return undefined; + } +} + +;// ./src/core/xfa/symbol_utils.js +const $acceptWhitespace = Symbol(); +const $addHTML = Symbol(); +const $appendChild = Symbol(); +const $childrenToHTML = Symbol(); +const $clean = Symbol(); +const $cleanPage = Symbol(); +const $cleanup = Symbol(); +const $clone = Symbol(); +const $consumed = Symbol(); +const $content = Symbol("content"); +const $data = Symbol("data"); +const $dump = Symbol(); +const $extra = Symbol("extra"); +const $finalize = Symbol(); +const $flushHTML = Symbol(); +const $getAttributeIt = Symbol(); +const $getAttributes = Symbol(); +const $getAvailableSpace = Symbol(); +const $getChildrenByClass = Symbol(); +const $getChildrenByName = Symbol(); +const $getChildrenByNameIt = Symbol(); +const $getDataValue = Symbol(); +const $getExtra = Symbol(); +const $getRealChildrenByNameIt = Symbol(); +const $getChildren = Symbol(); +const $getContainedChildren = Symbol(); +const $getNextPage = Symbol(); +const $getSubformParent = Symbol(); +const $getParent = Symbol(); +const $getTemplateRoot = Symbol(); +const $globalData = Symbol(); +const $hasSettableValue = Symbol(); +const $ids = Symbol(); +const $indexOf = Symbol(); +const $insertAt = Symbol(); +const $isCDATAXml = Symbol(); +const $isBindable = Symbol(); +const $isDataValue = Symbol(); +const $isDescendent = Symbol(); +const $isNsAgnostic = Symbol(); +const $isSplittable = Symbol(); +const $isThereMoreWidth = Symbol(); +const $isTransparent = Symbol(); +const $isUsable = Symbol(); +const $lastAttribute = Symbol(); +const $namespaceId = Symbol("namespaceId"); +const $nodeName = Symbol("nodeName"); +const $nsAttributes = Symbol(); +const $onChild = Symbol(); +const $onChildCheck = Symbol(); +const $onText = Symbol(); +const $pushGlyphs = Symbol(); +const $popPara = Symbol(); +const $pushPara = Symbol(); +const $removeChild = Symbol(); +const $root = Symbol("root"); +const $resolvePrototypes = Symbol(); +const $searchNode = Symbol(); +const $setId = Symbol(); +const $setSetAttributes = Symbol(); +const $setValue = Symbol(); +const $tabIndex = Symbol(); +const $text = Symbol(); +const $toPages = Symbol(); +const $toHTML = Symbol(); +const $toString = Symbol(); +const $toStyle = Symbol(); +const $uid = Symbol("uid"); + +;// ./src/core/xfa/namespaces.js +const $buildXFAObject = Symbol(); +const NamespaceIds = { + config: { + id: 0, + check: ns => ns.startsWith("http://www.xfa.org/schema/xci/") + }, + connectionSet: { + id: 1, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/") + }, + datasets: { + id: 2, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-data/") + }, + form: { + id: 3, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-form/") + }, + localeSet: { + id: 4, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/") + }, + pdf: { + id: 5, + check: ns => ns === "http://ns.adobe.com/xdp/pdf/" + }, + signature: { + id: 6, + check: ns => ns === "http://www.w3.org/2000/09/xmldsig#" + }, + sourceSet: { + id: 7, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-source-set/") + }, + stylesheet: { + id: 8, + check: ns => ns === "http://www.w3.org/1999/XSL/Transform" + }, + template: { + id: 9, + check: ns => ns.startsWith("http://www.xfa.org/schema/xfa-template/") + }, + xdc: { + id: 10, + check: ns => ns.startsWith("http://www.xfa.org/schema/xdc/") + }, + xdp: { + id: 11, + check: ns => ns === "http://ns.adobe.com/xdp/" + }, + xfdf: { + id: 12, + check: ns => ns === "http://ns.adobe.com/xfdf/" + }, + xhtml: { + id: 13, + check: ns => ns === "http://www.w3.org/1999/xhtml" + }, + xmpmeta: { + id: 14, + check: ns => ns === "http://ns.adobe.com/xmpmeta/" + } +}; + +;// ./src/core/xfa/utils.js + +const dimConverters = { + pt: x => x, + cm: x => x / 2.54 * 72, + mm: x => x / (10 * 2.54) * 72, + in: x => x * 72, + px: x => x +}; +const measurementPattern = /([+-]?\d+\.?\d*)(.*)/; +function stripQuotes(str) { + if (str.startsWith("'") || str.startsWith('"')) { + return str.slice(1, -1); + } + return str; +} +function getInteger({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + const n = parseInt(data, 10); + if (!isNaN(n) && validate(n)) { + return n; + } + return defaultValue; +} +function getFloat({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + const n = parseFloat(data); + if (!isNaN(n) && validate(n)) { + return n; + } + return defaultValue; +} +function getKeyword({ + data, + defaultValue, + validate +}) { + if (!data) { + return defaultValue; + } + data = data.trim(); + if (validate(data)) { + return data; + } + return defaultValue; +} +function getStringOption(data, options) { + return getKeyword({ + data, + defaultValue: options[0], + validate: k => options.includes(k) + }); +} +function getMeasurement(str, def = "0") { + def ||= "0"; + if (!str) { + return getMeasurement(def); + } + const match = str.trim().match(measurementPattern); + if (!match) { + return getMeasurement(def); + } + const [, valueStr, unit] = match; + const value = parseFloat(valueStr); + if (isNaN(value)) { + return getMeasurement(def); + } + if (value === 0) { + return 0; + } + const conv = dimConverters[unit]; + if (conv) { + return conv(value); + } + return value; +} +function getRatio(data) { + if (!data) { + return { + num: 1, + den: 1 + }; + } + const ratio = data.trim().split(/\s*:\s*/).map(x => parseFloat(x)).filter(x => !isNaN(x)); + if (ratio.length === 1) { + ratio.push(1); + } + if (ratio.length === 0) { + return { + num: 1, + den: 1 + }; + } + const [num, den] = ratio; + return { + num, + den + }; +} +function getRelevant(data) { + if (!data) { + return []; + } + return data.trim().split(/\s+/).map(e => ({ + excluded: e[0] === "-", + viewname: e.substring(1) + })); +} +function getColor(data, def = [0, 0, 0]) { + let [r, g, b] = def; + if (!data) { + return { + r, + g, + b + }; + } + const color = data.trim().split(/\s*,\s*/).map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255)).map(c => isNaN(c) ? 0 : c); + if (color.length < 3) { + return { + r, + g, + b + }; + } + [r, g, b] = color; + return { + r, + g, + b + }; +} +function getBBox(data) { + const def = -1; + if (!data) { + return { + x: def, + y: def, + width: def, + height: def + }; + } + const bbox = data.trim().split(/\s*,\s*/).map(m => getMeasurement(m, "-1")); + if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) { + return { + x: def, + y: def, + width: def, + height: def + }; + } + const [x, y, width, height] = bbox; + return { + x, + y, + width, + height + }; +} +class HTMLResult { + static get FAILURE() { + return shadow(this, "FAILURE", new HTMLResult(false, null, null, null)); + } + static get EMPTY() { + return shadow(this, "EMPTY", new HTMLResult(true, null, null, null)); + } + constructor(success, html, bbox, breakNode) { + this.success = success; + this.html = html; + this.bbox = bbox; + this.breakNode = breakNode; + } + isBreak() { + return !!this.breakNode; + } + static breakNode(node) { + return new HTMLResult(false, null, null, node); + } + static success(html, bbox = null) { + return new HTMLResult(true, html, bbox, null); + } +} + +;// ./src/core/xfa/fonts.js + + + +class FontFinder { + constructor(pdfFonts) { + this.fonts = new Map(); + this.cache = new Map(); + this.warned = new Set(); + this.defaultFont = null; + this.add(pdfFonts); + } + add(pdfFonts, reallyMissingFonts = null) { + for (const pdfFont of pdfFonts) { + this.addPdfFont(pdfFont); + } + for (const pdfFont of this.fonts.values()) { + if (!pdfFont.regular) { + pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic; + } + } + if (!reallyMissingFonts || reallyMissingFonts.size === 0) { + return; + } + const myriad = this.fonts.get("PdfJS-Fallback-PdfJS-XFA"); + for (const missing of reallyMissingFonts) { + this.fonts.set(missing, myriad); + } + } + addPdfFont(pdfFont) { + const cssFontInfo = pdfFont.cssFontInfo; + const name = cssFontInfo.fontFamily; + let font = this.fonts.get(name); + if (!font) { + font = Object.create(null); + this.fonts.set(name, font); + if (!this.defaultFont) { + this.defaultFont = font; + } + } + let property = ""; + const fontWeight = parseFloat(cssFontInfo.fontWeight); + if (parseFloat(cssFontInfo.italicAngle) !== 0) { + property = fontWeight >= 700 ? "bolditalic" : "italic"; + } else if (fontWeight >= 700) { + property = "bold"; + } + if (!property) { + if (pdfFont.name.includes("Bold") || pdfFont.psName?.includes("Bold")) { + property = "bold"; + } + if (pdfFont.name.includes("Italic") || pdfFont.name.endsWith("It") || pdfFont.psName?.includes("Italic") || pdfFont.psName?.endsWith("It")) { + property += "italic"; + } + } + if (!property) { + property = "regular"; + } + font[property] = pdfFont; + } + getDefault() { + return this.defaultFont; + } + find(fontName, mustWarn = true) { + let font = this.fonts.get(fontName) || this.cache.get(fontName); + if (font) { + return font; + } + const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi; + let name = fontName.replaceAll(pattern, ""); + font = this.fonts.get(name); + if (font) { + this.cache.set(fontName, font); + return font; + } + name = name.toLowerCase(); + const maybe = []; + for (const [family, pdfFont] of this.fonts.entries()) { + if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + if (maybe.length === 0) { + for (const [, pdfFont] of this.fonts.entries()) { + if (pdfFont.regular.name?.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length === 0) { + name = name.replaceAll(/psmt|mt/gi, ""); + for (const [family, pdfFont] of this.fonts.entries()) { + if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length === 0) { + for (const pdfFont of this.fonts.values()) { + if (pdfFont.regular.name?.replaceAll(pattern, "").toLowerCase().startsWith(name)) { + maybe.push(pdfFont); + } + } + } + if (maybe.length >= 1) { + if (maybe.length !== 1 && mustWarn) { + warn(`XFA - Too many choices to guess the correct font: ${fontName}`); + } + this.cache.set(fontName, maybe[0]); + return maybe[0]; + } + if (mustWarn && !this.warned.has(fontName)) { + this.warned.add(fontName); + warn(`XFA - Cannot find the font: ${fontName}`); + } + return null; + } +} +function selectFont(xfaFont, typeface) { + if (xfaFont.posture === "italic") { + if (xfaFont.weight === "bold") { + return typeface.bolditalic; + } + return typeface.italic; + } else if (xfaFont.weight === "bold") { + return typeface.bold; + } + return typeface.regular; +} +function fonts_getMetrics(xfaFont, real = false) { + let pdfFont = null; + if (xfaFont) { + const name = stripQuotes(xfaFont.typeface); + const typeface = xfaFont[$globalData].fontFinder.find(name); + pdfFont = selectFont(xfaFont, typeface); + } + if (!pdfFont) { + return { + lineHeight: 12, + lineGap: 2, + lineNoGap: 10 + }; + } + const size = xfaFont.size || 10; + const lineHeight = pdfFont.lineHeight ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight) : 1.2; + const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap; + return { + lineHeight: lineHeight * size, + lineGap: lineGap * size, + lineNoGap: Math.max(1, lineHeight - lineGap) * size + }; +} + +;// ./src/core/xfa/text.js + +const WIDTH_FACTOR = 1.02; +class FontInfo { + constructor(xfaFont, margin, lineHeight, fontFinder) { + this.lineHeight = lineHeight; + this.paraMargin = margin || { + top: 0, + bottom: 0, + left: 0, + right: 0 + }; + if (!xfaFont) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + return; + } + this.xfaFont = { + typeface: xfaFont.typeface, + posture: xfaFont.posture, + weight: xfaFont.weight, + size: xfaFont.size, + letterSpacing: xfaFont.letterSpacing + }; + const typeface = fontFinder.find(xfaFont.typeface); + if (!typeface) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + return; + } + this.pdfFont = selectFont(xfaFont, typeface); + if (!this.pdfFont) { + [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder); + } + } + defaultFont(fontFinder) { + const font = fontFinder.find("Helvetica", false) || fontFinder.find("Myriad Pro", false) || fontFinder.find("Arial", false) || fontFinder.getDefault(); + if (font?.regular) { + const pdfFont = font.regular; + const info = pdfFont.cssFontInfo; + const xfaFont = { + typeface: info.fontFamily, + posture: "normal", + weight: "normal", + size: 10, + letterSpacing: 0 + }; + return [pdfFont, xfaFont]; + } + const xfaFont = { + typeface: "Courier", + posture: "normal", + weight: "normal", + size: 10, + letterSpacing: 0 + }; + return [null, xfaFont]; + } +} +class FontSelector { + constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder) { + this.fontFinder = fontFinder; + this.stack = [new FontInfo(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder)]; + } + pushData(xfaFont, margin, lineHeight) { + const lastFont = this.stack.at(-1); + for (const name of ["typeface", "posture", "weight", "size", "letterSpacing"]) { + if (!xfaFont[name]) { + xfaFont[name] = lastFont.xfaFont[name]; + } + } + for (const name of ["top", "bottom", "left", "right"]) { + if (isNaN(margin[name])) { + margin[name] = lastFont.paraMargin[name]; + } + } + const fontInfo = new FontInfo(xfaFont, margin, lineHeight || lastFont.lineHeight, this.fontFinder); + if (!fontInfo.pdfFont) { + fontInfo.pdfFont = lastFont.pdfFont; + } + this.stack.push(fontInfo); + } + popFont() { + this.stack.pop(); + } + topFont() { + return this.stack.at(-1); + } +} +class TextMeasure { + constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) { + this.glyphs = []; + this.fontSelector = new FontSelector(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts); + this.extraHeight = 0; + } + pushData(xfaFont, margin, lineHeight) { + this.fontSelector.pushData(xfaFont, margin, lineHeight); + } + popFont(xfaFont) { + return this.fontSelector.popFont(); + } + addPara() { + const lastFont = this.fontSelector.topFont(); + this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom; + } + addString(str) { + if (!str) { + return; + } + const lastFont = this.fontSelector.topFont(); + const fontSize = lastFont.xfaFont.size; + if (lastFont.pdfFont) { + const letterSpacing = lastFont.xfaFont.letterSpacing; + const pdfFont = lastFont.pdfFont; + const fontLineHeight = pdfFont.lineHeight || 1.2; + const lineHeight = lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize; + const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap; + const noGap = fontLineHeight - lineGap; + const firstLineHeight = Math.max(1, noGap) * fontSize; + const scale = fontSize / 1000; + const fallbackWidth = pdfFont.defaultWidth || pdfFont.charsToGlyphs(" ")[0].width; + for (const line of str.split(/[\u2029\n]/)) { + const encodedLine = pdfFont.encodeString(line).join(""); + const glyphs = pdfFont.charsToGlyphs(encodedLine); + for (const glyph of glyphs) { + const width = glyph.width || fallbackWidth; + this.glyphs.push([width * scale + letterSpacing, lineHeight, firstLineHeight, glyph.unicode, false]); + } + this.glyphs.push([0, 0, 0, "\n", true]); + } + this.glyphs.pop(); + return; + } + for (const line of str.split(/[\u2029\n]/)) { + for (const char of line.split("")) { + this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]); + } + this.glyphs.push([0, 0, 0, "\n", true]); + } + this.glyphs.pop(); + } + compute(maxWidth) { + let lastSpacePos = -1, + lastSpaceWidth = 0, + width = 0, + height = 0, + currentLineWidth = 0, + currentLineHeight = 0; + let isBroken = false; + let isFirstLine = true; + for (let i = 0, ii = this.glyphs.length; i < ii; i++) { + const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] = this.glyphs[i]; + const isSpace = char === " "; + const glyphHeight = isFirstLine ? firstLineHeight : lineHeight; + if (isEOL) { + width = Math.max(width, currentLineWidth); + currentLineWidth = 0; + height += currentLineHeight; + currentLineHeight = glyphHeight; + lastSpacePos = -1; + lastSpaceWidth = 0; + isFirstLine = false; + continue; + } + if (isSpace) { + if (currentLineWidth + glyphWidth > maxWidth) { + width = Math.max(width, currentLineWidth); + currentLineWidth = 0; + height += currentLineHeight; + currentLineHeight = glyphHeight; + lastSpacePos = -1; + lastSpaceWidth = 0; + isBroken = true; + isFirstLine = false; + } else { + currentLineHeight = Math.max(glyphHeight, currentLineHeight); + lastSpaceWidth = currentLineWidth; + currentLineWidth += glyphWidth; + lastSpacePos = i; + } + continue; + } + if (currentLineWidth + glyphWidth > maxWidth) { + height += currentLineHeight; + currentLineHeight = glyphHeight; + if (lastSpacePos !== -1) { + i = lastSpacePos; + width = Math.max(width, lastSpaceWidth); + currentLineWidth = 0; + lastSpacePos = -1; + lastSpaceWidth = 0; + } else { + width = Math.max(width, currentLineWidth); + currentLineWidth = glyphWidth; + } + isBroken = true; + isFirstLine = false; + continue; + } + currentLineWidth += glyphWidth; + currentLineHeight = Math.max(glyphHeight, currentLineHeight); + } + width = Math.max(width, currentLineWidth); + height += currentLineHeight + this.extraHeight; + return { + width: WIDTH_FACTOR * width, + height, + isBroken + }; + } +} + +;// ./src/core/xfa/som.js + + +const namePattern = /^[^.[]+/; +const indexPattern = /^[^\]]+/; +const operators = { + dot: 0, + dotDot: 1, + dotHash: 2, + dotBracket: 3, + dotParen: 4 +}; +const shortcuts = new Map([["$data", (root, current) => root.datasets ? root.datasets.data : root], ["$record", (root, current) => (root.datasets ? root.datasets.data : root)[$getChildren]()[0]], ["$template", (root, current) => root.template], ["$connectionSet", (root, current) => root.connectionSet], ["$form", (root, current) => root.form], ["$layout", (root, current) => root.layout], ["$host", (root, current) => root.host], ["$dataWindow", (root, current) => root.dataWindow], ["$event", (root, current) => root.event], ["!", (root, current) => root.datasets], ["$xfa", (root, current) => root], ["xfa", (root, current) => root], ["$", (root, current) => current]]); +const somCache = new WeakMap(); +function parseIndex(index) { + index = index.trim(); + if (index === "*") { + return Infinity; + } + return parseInt(index, 10) || 0; +} +function parseExpression(expr, dotDotAllowed, noExpr = true) { + let match = expr.match(namePattern); + if (!match) { + return null; + } + let [name] = match; + const parsed = [{ + name, + cacheName: "." + name, + index: 0, + js: null, + formCalc: null, + operator: operators.dot + }]; + let pos = name.length; + while (pos < expr.length) { + const spos = pos; + const char = expr.charAt(pos++); + if (char === "[") { + match = expr.slice(pos).match(indexPattern); + if (!match) { + warn("XFA - Invalid index in SOM expression"); + return null; + } + parsed.at(-1).index = parseIndex(match[0]); + pos += match[0].length + 1; + continue; + } + let operator; + switch (expr.charAt(pos)) { + case ".": + if (!dotDotAllowed) { + return null; + } + pos++; + operator = operators.dotDot; + break; + case "#": + pos++; + operator = operators.dotHash; + break; + case "[": + if (noExpr) { + warn("XFA - SOM expression contains a FormCalc subexpression which is not supported for now."); + return null; + } + operator = operators.dotBracket; + break; + case "(": + if (noExpr) { + warn("XFA - SOM expression contains a JavaScript subexpression which is not supported for now."); + return null; + } + operator = operators.dotParen; + break; + default: + operator = operators.dot; + break; + } + match = expr.slice(pos).match(namePattern); + if (!match) { + break; + } + [name] = match; + pos += name.length; + parsed.push({ + name, + cacheName: expr.slice(spos, pos), + operator, + index: 0, + js: null, + formCalc: null + }); + } + return parsed; +} +function searchNode(root, container, expr, dotDotAllowed = true, useCache = true) { + const parsed = parseExpression(expr, dotDotAllowed); + if (!parsed) { + return null; + } + const fn = shortcuts.get(parsed[0].name); + let i = 0; + let isQualified; + if (fn) { + isQualified = true; + root = [fn(root, container)]; + i = 1; + } else { + isQualified = container === null; + root = [container || root]; + } + for (let ii = parsed.length; i < ii; i++) { + const { + name, + cacheName, + operator, + index + } = parsed[i]; + const nodes = []; + for (const node of root) { + if (!node.isXFAObject) { + continue; + } + let children, cached; + if (useCache) { + cached = somCache.get(node); + if (!cached) { + cached = new Map(); + somCache.set(node, cached); + } + children = cached.get(cacheName); + } + if (!children) { + switch (operator) { + case operators.dot: + children = node[$getChildrenByName](name, false); + break; + case operators.dotDot: + children = node[$getChildrenByName](name, true); + break; + case operators.dotHash: + children = node[$getChildrenByClass](name); + children = children.isXFAObjectArray ? children.children : [children]; + break; + default: + break; + } + if (useCache) { + cached.set(cacheName, children); + } + } + if (children.length > 0) { + nodes.push(children); + } + } + if (nodes.length === 0 && !isQualified && i === 0) { + const parent = container[$getParent](); + container = parent; + if (!container) { + return null; + } + i = -1; + root = [container]; + continue; + } + root = isFinite(index) ? nodes.filter(node => index < node.length).map(node => node[index]) : nodes.flat(); + } + if (root.length === 0) { + return null; + } + return root; +} +function createDataNode(root, container, expr) { + const parsed = parseExpression(expr); + if (!parsed) { + return null; + } + if (parsed.some(x => x.operator === operators.dotDot)) { + return null; + } + const fn = shortcuts.get(parsed[0].name); + let i = 0; + if (fn) { + root = fn(root, container); + i = 1; + } else { + root = container || root; + } + for (let ii = parsed.length; i < ii; i++) { + const { + name, + operator, + index + } = parsed[i]; + if (!isFinite(index)) { + parsed[i].index = 0; + return root.createNodes(parsed.slice(i)); + } + let children; + switch (operator) { + case operators.dot: + children = root[$getChildrenByName](name, false); + break; + case operators.dotDot: + children = root[$getChildrenByName](name, true); + break; + case operators.dotHash: + children = root[$getChildrenByClass](name); + children = children.isXFAObjectArray ? children.children : [children]; + break; + default: + break; + } + if (children.length === 0) { + return root.createNodes(parsed.slice(i)); + } + if (index < children.length) { + const child = children[index]; + if (!child.isXFAObject) { + warn(`XFA - Cannot create a node.`); + return null; + } + root = child; + } else { + parsed[i].index = index - children.length; + return root.createNodes(parsed.slice(i)); + } + } + return null; +} + +;// ./src/core/xfa/xfa_object.js + + + + + + +const _applyPrototype = Symbol(); +const _attributes = Symbol(); +const _attributeNames = Symbol(); +const _children = Symbol("_children"); +const _cloneAttribute = Symbol(); +const _dataValue = Symbol(); +const _defaultValue = Symbol(); +const _filteredChildrenGenerator = Symbol(); +const _getPrototype = Symbol(); +const _getUnsetAttributes = Symbol(); +const _hasChildren = Symbol(); +const _max = Symbol(); +const _options = Symbol(); +const _parent = Symbol("parent"); +const _resolvePrototypesHelper = Symbol(); +const _setAttributes = Symbol(); +const _validator = Symbol(); +let uid = 0; +const NS_DATASETS = NamespaceIds.datasets.id; +class XFAObject { + constructor(nsId, name, hasChildren = false) { + this[$namespaceId] = nsId; + this[$nodeName] = name; + this[_hasChildren] = hasChildren; + this[_parent] = null; + this[_children] = []; + this[$uid] = `${name}${uid++}`; + this[$globalData] = null; + } + get isXFAObject() { + return true; + } + get isXFAObjectArray() { + return false; + } + createNodes(path) { + let root = this, + node = null; + for (const { + name, + index + } of path) { + for (let i = 0, ii = isFinite(index) ? index : 0; i <= ii; i++) { + const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId]; + node = new XmlObject(nsId, name); + root[$appendChild](node); + } + root = node; + } + return node; + } + [$onChild](child) { + if (!this[_hasChildren] || !this[$onChildCheck](child)) { + return false; + } + const name = child[$nodeName]; + const node = this[name]; + if (node instanceof XFAObjectArray) { + if (node.push(child)) { + this[$appendChild](child); + return true; + } + } else { + if (node !== null) { + this[$removeChild](node); + } + this[name] = child; + this[$appendChild](child); + return true; + } + let id = ""; + if (this.id) { + id = ` (id: ${this.id})`; + } else if (this.name) { + id = ` (name: ${this.name} ${this.h.value})`; + } + warn(`XFA - node "${this[$nodeName]}"${id} has already enough "${name}"!`); + return false; + } + [$onChildCheck](child) { + return this.hasOwnProperty(child[$nodeName]) && child[$namespaceId] === this[$namespaceId]; + } + [$isNsAgnostic]() { + return false; + } + [$acceptWhitespace]() { + return false; + } + [$isCDATAXml]() { + return false; + } + [$isBindable]() { + return false; + } + [$popPara]() { + if (this.para) { + this[$getTemplateRoot]()[$extra].paraStack.pop(); + } + } + [$pushPara]() { + this[$getTemplateRoot]()[$extra].paraStack.push(this.para); + } + [$setId](ids) { + if (this.id && this[$namespaceId] === NamespaceIds.template.id) { + ids.set(this.id, this); + } + } + [$getTemplateRoot]() { + return this[$globalData].template; + } + [$isSplittable]() { + return false; + } + [$isThereMoreWidth]() { + return false; + } + [$appendChild](child) { + child[_parent] = this; + this[_children].push(child); + if (!child[$globalData] && this[$globalData]) { + child[$globalData] = this[$globalData]; + } + } + [$removeChild](child) { + const i = this[_children].indexOf(child); + this[_children].splice(i, 1); + } + [$hasSettableValue]() { + return this.hasOwnProperty("value"); + } + [$setValue](_) {} + [$onText](_) {} + [$finalize]() {} + [$clean](builder) { + delete this[_hasChildren]; + if (this[$cleanup]) { + builder.clean(this[$cleanup]); + delete this[$cleanup]; + } + } + [$indexOf](child) { + return this[_children].indexOf(child); + } + [$insertAt](i, child) { + child[_parent] = this; + this[_children].splice(i, 0, child); + if (!child[$globalData] && this[$globalData]) { + child[$globalData] = this[$globalData]; + } + } + [$isTransparent]() { + return !this.name; + } + [$lastAttribute]() { + return ""; + } + [$text]() { + if (this[_children].length === 0) { + return this[$content]; + } + return this[_children].map(c => c[$text]()).join(""); + } + get [_attributeNames]() { + const proto = Object.getPrototypeOf(this); + if (!proto._attributes) { + const attributes = proto._attributes = new Set(); + for (const name of Object.getOwnPropertyNames(this)) { + if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) { + break; + } + attributes.add(name); + } + } + return shadow(this, _attributeNames, proto._attributes); + } + [$isDescendent](parent) { + let node = this; + while (node) { + if (node === parent) { + return true; + } + node = node[$getParent](); + } + return false; + } + [$getParent]() { + return this[_parent]; + } + [$getSubformParent]() { + return this[$getParent](); + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[name]; + } + [$dump]() { + const dumped = Object.create(null); + if (this[$content]) { + dumped.$content = this[$content]; + } + for (const name of Object.getOwnPropertyNames(this)) { + const value = this[name]; + if (value === null) { + continue; + } + if (value instanceof XFAObject) { + dumped[name] = value[$dump](); + } else if (value instanceof XFAObjectArray) { + if (!value.isEmpty()) { + dumped[name] = value.dump(); + } + } else { + dumped[name] = value; + } + } + return dumped; + } + [$toStyle]() { + return null; + } + [$toHTML]() { + return HTMLResult.EMPTY; + } + *[$getContainedChildren]() { + for (const node of this[$getChildren]()) { + yield node; + } + } + *[_filteredChildrenGenerator](filter, include) { + for (const node of this[$getContainedChildren]()) { + if (!filter || include === filter.has(node[$nodeName])) { + const availableSpace = this[$getAvailableSpace](); + const res = node[$toHTML](availableSpace); + if (!res.success) { + this[$extra].failingNode = node; + } + yield res; + } + } + } + [$flushHTML]() { + return null; + } + [$addHTML](html, bbox) { + this[$extra].children.push(html); + } + [$getAvailableSpace]() {} + [$childrenToHTML]({ + filter = null, + include = true + }) { + if (!this[$extra].generator) { + this[$extra].generator = this[_filteredChildrenGenerator](filter, include); + } else { + const availableSpace = this[$getAvailableSpace](); + const res = this[$extra].failingNode[$toHTML](availableSpace); + if (!res.success) { + return res; + } + if (res.html) { + this[$addHTML](res.html, res.bbox); + } + delete this[$extra].failingNode; + } + while (true) { + const gen = this[$extra].generator.next(); + if (gen.done) { + break; + } + const res = gen.value; + if (!res.success) { + return res; + } + if (res.html) { + this[$addHTML](res.html, res.bbox); + } + } + this[$extra].generator = null; + return HTMLResult.EMPTY; + } + [$setSetAttributes](attributes) { + this[_setAttributes] = new Set(Object.keys(attributes)); + } + [_getUnsetAttributes](protoAttributes) { + const allAttr = this[_attributeNames]; + const setAttr = this[_setAttributes]; + return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x)); + } + [$resolvePrototypes](ids, ancestors = new Set()) { + for (const child of this[_children]) { + child[_resolvePrototypesHelper](ids, ancestors); + } + } + [_resolvePrototypesHelper](ids, ancestors) { + const proto = this[_getPrototype](ids, ancestors); + if (proto) { + this[_applyPrototype](proto, ids, ancestors); + } else { + this[$resolvePrototypes](ids, ancestors); + } + } + [_getPrototype](ids, ancestors) { + const { + use, + usehref + } = this; + if (!use && !usehref) { + return null; + } + let proto = null; + let somExpression = null; + let id = null; + let ref = use; + if (usehref) { + ref = usehref; + if (usehref.startsWith("#som(") && usehref.endsWith(")")) { + somExpression = usehref.slice("#som(".length, -1); + } else if (usehref.startsWith(".#som(") && usehref.endsWith(")")) { + somExpression = usehref.slice(".#som(".length, -1); + } else if (usehref.startsWith("#")) { + id = usehref.slice(1); + } else if (usehref.startsWith(".#")) { + id = usehref.slice(2); + } + } else if (use.startsWith("#")) { + id = use.slice(1); + } else { + somExpression = use; + } + this.use = this.usehref = ""; + if (id) { + proto = ids.get(id); + } else { + proto = searchNode(ids.get($root), this, somExpression, true, false); + if (proto) { + proto = proto[0]; + } + } + if (!proto) { + warn(`XFA - Invalid prototype reference: ${ref}.`); + return null; + } + if (proto[$nodeName] !== this[$nodeName]) { + warn(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`); + return null; + } + if (ancestors.has(proto)) { + warn(`XFA - Cycle detected in prototypes use.`); + return null; + } + ancestors.add(proto); + const protoProto = proto[_getPrototype](ids, ancestors); + if (protoProto) { + proto[_applyPrototype](protoProto, ids, ancestors); + } + proto[$resolvePrototypes](ids, ancestors); + ancestors.delete(proto); + return proto; + } + [_applyPrototype](proto, ids, ancestors) { + if (ancestors.has(proto)) { + warn(`XFA - Cycle detected in prototypes use.`); + return; + } + if (!this[$content] && proto[$content]) { + this[$content] = proto[$content]; + } + const newAncestors = new Set(ancestors); + newAncestors.add(proto); + for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) { + this[unsetAttrName] = proto[unsetAttrName]; + if (this[_setAttributes]) { + this[_setAttributes].add(unsetAttrName); + } + } + for (const name of Object.getOwnPropertyNames(this)) { + if (this[_attributeNames].has(name)) { + continue; + } + const value = this[name]; + const protoValue = proto[name]; + if (value instanceof XFAObjectArray) { + for (const child of value[_children]) { + child[_resolvePrototypesHelper](ids, ancestors); + } + for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) { + const child = proto[_children][i][$clone](); + if (value.push(child)) { + child[_parent] = this; + this[_children].push(child); + child[_resolvePrototypesHelper](ids, ancestors); + } else { + break; + } + } + continue; + } + if (value !== null) { + value[$resolvePrototypes](ids, ancestors); + if (protoValue) { + value[_applyPrototype](protoValue, ids, ancestors); + } + continue; + } + if (protoValue !== null) { + const child = protoValue[$clone](); + child[_parent] = this; + this[name] = child; + this[_children].push(child); + child[_resolvePrototypesHelper](ids, ancestors); + } + } + } + static [_cloneAttribute](obj) { + if (Array.isArray(obj)) { + return obj.map(x => XFAObject[_cloneAttribute](x)); + } + if (typeof obj === "object" && obj !== null) { + return Object.assign({}, obj); + } + return obj; + } + [$clone]() { + const clone = Object.create(Object.getPrototypeOf(this)); + for (const $symbol of Object.getOwnPropertySymbols(this)) { + try { + clone[$symbol] = this[$symbol]; + } catch { + shadow(clone, $symbol, this[$symbol]); + } + } + clone[$uid] = `${clone[$nodeName]}${uid++}`; + clone[_children] = []; + for (const name of Object.getOwnPropertyNames(this)) { + if (this[_attributeNames].has(name)) { + clone[name] = XFAObject[_cloneAttribute](this[name]); + continue; + } + const value = this[name]; + clone[name] = value instanceof XFAObjectArray ? new XFAObjectArray(value[_max]) : null; + } + for (const child of this[_children]) { + const name = child[$nodeName]; + const clonedChild = child[$clone](); + clone[_children].push(clonedChild); + clonedChild[_parent] = clone; + if (clone[name] === null) { + clone[name] = clonedChild; + } else { + clone[name][_children].push(clonedChild); + } + } + return clone; + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[_children].filter(c => c[$nodeName] === name); + } + [$getChildrenByClass](name) { + return this[name]; + } + [$getChildrenByName](name, allTransparent, first = true) { + return Array.from(this[$getChildrenByNameIt](name, allTransparent, first)); + } + *[$getChildrenByNameIt](name, allTransparent, first = true) { + if (name === "parent") { + yield this[_parent]; + return; + } + for (const child of this[_children]) { + if (child[$nodeName] === name) { + yield child; + } + if (child.name === name) { + yield child; + } + if (allTransparent || child[$isTransparent]()) { + yield* child[$getChildrenByNameIt](name, allTransparent, false); + } + } + if (first && this[_attributeNames].has(name)) { + yield new XFAAttribute(this, name, this[name]); + } + } +} +class XFAObjectArray { + constructor(max = Infinity) { + this[_max] = max; + this[_children] = []; + } + get isXFAObject() { + return false; + } + get isXFAObjectArray() { + return true; + } + push(child) { + const len = this[_children].length; + if (len <= this[_max]) { + this[_children].push(child); + return true; + } + warn(`XFA - node "${child[$nodeName]}" accepts no more than ${this[_max]} children`); + return false; + } + isEmpty() { + return this[_children].length === 0; + } + dump() { + return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]()); + } + [$clone]() { + const clone = new XFAObjectArray(this[_max]); + clone[_children] = this[_children].map(c => c[$clone]()); + return clone; + } + get children() { + return this[_children]; + } + clear() { + this[_children].length = 0; + } +} +class XFAAttribute { + constructor(node, name, value) { + this[_parent] = node; + this[$nodeName] = name; + this[$content] = value; + this[$consumed] = false; + this[$uid] = `attribute${uid++}`; + } + [$getParent]() { + return this[_parent]; + } + [$isDataValue]() { + return true; + } + [$getDataValue]() { + return this[$content].trim(); + } + [$setValue](value) { + value = value.value || ""; + this[$content] = value.toString(); + } + [$text]() { + return this[$content]; + } + [$isDescendent](parent) { + return this[_parent] === parent || this[_parent][$isDescendent](parent); + } +} +class XmlObject extends XFAObject { + constructor(nsId, name, attributes = {}) { + super(nsId, name); + this[$content] = ""; + this[_dataValue] = null; + if (name !== "#text") { + const map = new Map(); + this[_attributes] = map; + for (const [attrName, value] of Object.entries(attributes)) { + map.set(attrName, new XFAAttribute(this, attrName, value)); + } + if (attributes.hasOwnProperty($nsAttributes)) { + const dataNode = attributes[$nsAttributes].xfa.dataNode; + if (dataNode !== undefined) { + if (dataNode === "dataGroup") { + this[_dataValue] = false; + } else if (dataNode === "dataValue") { + this[_dataValue] = true; + } + } + } + } + this[$consumed] = false; + } + [$toString](buf) { + const tagName = this[$nodeName]; + if (tagName === "#text") { + buf.push(encodeToXmlString(this[$content])); + return; + } + const utf8TagName = utf8StringToString(tagName); + const prefix = this[$namespaceId] === NS_DATASETS ? "xfa:" : ""; + buf.push(`<${prefix}${utf8TagName}`); + for (const [name, value] of this[_attributes].entries()) { + const utf8Name = utf8StringToString(name); + buf.push(` ${utf8Name}="${encodeToXmlString(value[$content])}"`); + } + if (this[_dataValue] !== null) { + if (this[_dataValue]) { + buf.push(` xfa:dataNode="dataValue"`); + } else { + buf.push(` xfa:dataNode="dataGroup"`); + } + } + if (!this[$content] && this[_children].length === 0) { + buf.push("/>"); + return; + } + buf.push(">"); + if (this[$content]) { + if (typeof this[$content] === "string") { + buf.push(encodeToXmlString(this[$content])); + } else { + this[$content][$toString](buf); + } + } else { + for (const child of this[_children]) { + child[$toString](buf); + } + } + buf.push(``); + } + [$onChild](child) { + if (this[$content]) { + const node = new XmlObject(this[$namespaceId], "#text"); + this[$appendChild](node); + node[$content] = this[$content]; + this[$content] = ""; + } + this[$appendChild](child); + return true; + } + [$onText](str) { + this[$content] += str; + } + [$finalize]() { + if (this[$content] && this[_children].length > 0) { + const node = new XmlObject(this[$namespaceId], "#text"); + this[$appendChild](node); + node[$content] = this[$content]; + delete this[$content]; + } + } + [$toHTML]() { + if (this[$nodeName] === "#text") { + return HTMLResult.success({ + name: "#text", + value: this[$content] + }); + } + return HTMLResult.EMPTY; + } + [$getChildren](name = null) { + if (!name) { + return this[_children]; + } + return this[_children].filter(c => c[$nodeName] === name); + } + [$getAttributes]() { + return this[_attributes]; + } + [$getChildrenByClass](name) { + const value = this[_attributes].get(name); + if (value !== undefined) { + return value; + } + return this[$getChildren](name); + } + *[$getChildrenByNameIt](name, allTransparent) { + const value = this[_attributes].get(name); + if (value) { + yield value; + } + for (const child of this[_children]) { + if (child[$nodeName] === name) { + yield child; + } + if (allTransparent) { + yield* child[$getChildrenByNameIt](name, allTransparent); + } + } + } + *[$getAttributeIt](name, skipConsumed) { + const value = this[_attributes].get(name); + if (value && (!skipConsumed || !value[$consumed])) { + yield value; + } + for (const child of this[_children]) { + yield* child[$getAttributeIt](name, skipConsumed); + } + } + *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) { + for (const child of this[_children]) { + if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) { + yield child; + } + if (allTransparent) { + yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed); + } + } + } + [$isDataValue]() { + if (this[_dataValue] === null) { + return this[_children].length === 0 || this[_children][0][$namespaceId] === NamespaceIds.xhtml.id; + } + return this[_dataValue]; + } + [$getDataValue]() { + if (this[_dataValue] === null) { + if (this[_children].length === 0) { + return this[$content].trim(); + } + if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) { + return this[_children][0][$text]().trim(); + } + return null; + } + return this[$content].trim(); + } + [$setValue](value) { + value = value.value || ""; + this[$content] = value.toString(); + } + [$dump](hasNS = false) { + const dumped = Object.create(null); + if (hasNS) { + dumped.$ns = this[$namespaceId]; + } + if (this[$content]) { + dumped.$content = this[$content]; + } + dumped.$name = this[$nodeName]; + dumped.children = []; + for (const child of this[_children]) { + dumped.children.push(child[$dump](hasNS)); + } + dumped.attributes = Object.create(null); + for (const [name, value] of this[_attributes]) { + dumped.attributes[name] = value[$content]; + } + return dumped; + } +} +class ContentObject extends XFAObject { + constructor(nsId, name) { + super(nsId, name); + this[$content] = ""; + } + [$onText](text) { + this[$content] += text; + } + [$finalize]() {} +} +class OptionObject extends ContentObject { + constructor(nsId, name, options) { + super(nsId, name); + this[_options] = options; + } + [$finalize]() { + this[$content] = getKeyword({ + data: this[$content], + defaultValue: this[_options][0], + validate: k => this[_options].includes(k) + }); + } + [$clean](builder) { + super[$clean](builder); + delete this[_options]; + } +} +class StringObject extends ContentObject { + [$finalize]() { + this[$content] = this[$content].trim(); + } +} +class IntegerObject extends ContentObject { + constructor(nsId, name, defaultValue, validator) { + super(nsId, name); + this[_defaultValue] = defaultValue; + this[_validator] = validator; + } + [$finalize]() { + this[$content] = getInteger({ + data: this[$content], + defaultValue: this[_defaultValue], + validate: this[_validator] + }); + } + [$clean](builder) { + super[$clean](builder); + delete this[_defaultValue]; + delete this[_validator]; + } +} +class Option01 extends IntegerObject { + constructor(nsId, name) { + super(nsId, name, 0, n => n === 1); + } +} +class Option10 extends IntegerObject { + constructor(nsId, name) { + super(nsId, name, 1, n => n === 0); + } +} + +;// ./src/core/xfa/html_utils.js + + + + + + +function measureToString(m) { + if (typeof m === "string") { + return "0px"; + } + return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`; +} +const converters = { + anchorType(node, style) { + const parent = node[$getSubformParent](); + if (!parent || parent.layout && parent.layout !== "position") { + return; + } + if (!("transform" in style)) { + style.transform = ""; + } + switch (node.anchorType) { + case "bottomCenter": + style.transform += "translate(-50%, -100%)"; + break; + case "bottomLeft": + style.transform += "translate(0,-100%)"; + break; + case "bottomRight": + style.transform += "translate(-100%,-100%)"; + break; + case "middleCenter": + style.transform += "translate(-50%,-50%)"; + break; + case "middleLeft": + style.transform += "translate(0,-50%)"; + break; + case "middleRight": + style.transform += "translate(-100%,-50%)"; + break; + case "topCenter": + style.transform += "translate(-50%,0)"; + break; + case "topRight": + style.transform += "translate(-100%,0)"; + break; + } + }, + dimensions(node, style) { + const parent = node[$getSubformParent](); + let width = node.w; + const height = node.h; + if (parent.layout?.includes("row")) { + const extra = parent[$extra]; + const colSpan = node.colSpan; + let w; + if (colSpan === -1) { + w = extra.columnWidths.slice(extra.currentColumn).reduce((a, x) => a + x, 0); + extra.currentColumn = 0; + } else { + w = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, x) => a + x, 0); + extra.currentColumn = (extra.currentColumn + node.colSpan) % extra.columnWidths.length; + } + if (!isNaN(w)) { + width = node.w = w; + } + } + style.width = width !== "" ? measureToString(width) : "auto"; + style.height = height !== "" ? measureToString(height) : "auto"; + }, + position(node, style) { + const parent = node[$getSubformParent](); + if (parent?.layout && parent.layout !== "position") { + return; + } + style.position = "absolute"; + style.left = measureToString(node.x); + style.top = measureToString(node.y); + }, + rotate(node, style) { + if (node.rotate) { + if (!("transform" in style)) { + style.transform = ""; + } + style.transform += `rotate(-${node.rotate}deg)`; + style.transformOrigin = "top left"; + } + }, + presence(node, style) { + switch (node.presence) { + case "invisible": + style.visibility = "hidden"; + break; + case "hidden": + case "inactive": + style.display = "none"; + break; + } + }, + hAlign(node, style) { + if (node[$nodeName] === "para") { + switch (node.hAlign) { + case "justifyAll": + style.textAlign = "justify-all"; + break; + case "radix": + style.textAlign = "left"; + break; + default: + style.textAlign = node.hAlign; + } + } else { + switch (node.hAlign) { + case "left": + style.alignSelf = "start"; + break; + case "center": + style.alignSelf = "center"; + break; + case "right": + style.alignSelf = "end"; + break; + } + } + }, + margin(node, style) { + if (node.margin) { + style.margin = node.margin[$toStyle]().margin; + } + } +}; +function setMinMaxDimensions(node, style) { + const parent = node[$getSubformParent](); + if (parent.layout === "position") { + if (node.minW > 0) { + style.minWidth = measureToString(node.minW); + } + if (node.maxW > 0) { + style.maxWidth = measureToString(node.maxW); + } + if (node.minH > 0) { + style.minHeight = measureToString(node.minH); + } + if (node.maxH > 0) { + style.maxHeight = measureToString(node.maxH); + } + } +} +function layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) { + const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder); + if (typeof text === "string") { + measure.addString(text); + } else { + text[$pushGlyphs](measure); + } + return measure.compute(width); +} +function layoutNode(node, availableSpace) { + let height = null; + let width = null; + let isBroken = false; + if ((!node.w || !node.h) && node.value) { + let marginH = 0; + let marginV = 0; + if (node.margin) { + marginH = node.margin.leftInset + node.margin.rightInset; + marginV = node.margin.topInset + node.margin.bottomInset; + } + let lineHeight = null; + let margin = null; + if (node.para) { + margin = Object.create(null); + lineHeight = node.para.lineHeight === "" ? null : node.para.lineHeight; + margin.top = node.para.spaceAbove === "" ? 0 : node.para.spaceAbove; + margin.bottom = node.para.spaceBelow === "" ? 0 : node.para.spaceBelow; + margin.left = node.para.marginLeft === "" ? 0 : node.para.marginLeft; + margin.right = node.para.marginRight === "" ? 0 : node.para.marginRight; + } + let font = node.font; + if (!font) { + const root = node[$getTemplateRoot](); + let parent = node[$getParent](); + while (parent && parent !== root) { + if (parent.font) { + font = parent.font; + break; + } + parent = parent[$getParent](); + } + } + const maxWidth = (node.w || availableSpace.width) - marginH; + const fontFinder = node[$globalData].fontFinder; + if (node.value.exData && node.value.exData[$content] && node.value.exData.contentType === "text/html") { + const res = layoutText(node.value.exData[$content], font, margin, lineHeight, fontFinder, maxWidth); + width = res.width; + height = res.height; + isBroken = res.isBroken; + } else { + const text = node.value[$text](); + if (text) { + const res = layoutText(text, font, margin, lineHeight, fontFinder, maxWidth); + width = res.width; + height = res.height; + isBroken = res.isBroken; + } + } + if (width !== null && !node.w) { + width += marginH; + } + if (height !== null && !node.h) { + height += marginV; + } + } + return { + w: width, + h: height, + isBroken + }; +} +function computeBbox(node, html, availableSpace) { + let bbox; + if (node.w !== "" && node.h !== "") { + bbox = [node.x, node.y, node.w, node.h]; + } else { + if (!availableSpace) { + return null; + } + let width = node.w; + if (width === "") { + if (node.maxW === 0) { + const parent = node[$getSubformParent](); + width = parent.layout === "position" && parent.w !== "" ? 0 : node.minW; + } else { + width = Math.min(node.maxW, availableSpace.width); + } + html.attributes.style.width = measureToString(width); + } + let height = node.h; + if (height === "") { + if (node.maxH === 0) { + const parent = node[$getSubformParent](); + height = parent.layout === "position" && parent.h !== "" ? 0 : node.minH; + } else { + height = Math.min(node.maxH, availableSpace.height); + } + html.attributes.style.height = measureToString(height); + } + bbox = [node.x, node.y, width, height]; + } + return bbox; +} +function fixDimensions(node) { + const parent = node[$getSubformParent](); + if (parent.layout?.includes("row")) { + const extra = parent[$extra]; + const colSpan = node.colSpan; + let width; + if (colSpan === -1) { + width = extra.columnWidths.slice(extra.currentColumn).reduce((a, w) => a + w, 0); + } else { + width = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, w) => a + w, 0); + } + if (!isNaN(width)) { + node.w = width; + } + } + if (parent.layout && parent.layout !== "position") { + node.x = node.y = 0; + } + if (node.layout === "table") { + if (node.w === "" && Array.isArray(node.columnWidths)) { + node.w = node.columnWidths.reduce((a, x) => a + x, 0); + } + } +} +function layoutClass(node) { + switch (node.layout) { + case "position": + return "xfaPosition"; + case "lr-tb": + return "xfaLrTb"; + case "rl-row": + return "xfaRlRow"; + case "rl-tb": + return "xfaRlTb"; + case "row": + return "xfaRow"; + case "table": + return "xfaTable"; + case "tb": + return "xfaTb"; + default: + return "xfaPosition"; + } +} +function toStyle(node, ...names) { + const style = Object.create(null); + for (const name of names) { + const value = node[name]; + if (value === null) { + continue; + } + if (converters.hasOwnProperty(name)) { + converters[name](node, style); + continue; + } + if (value instanceof XFAObject) { + const newStyle = value[$toStyle](); + if (newStyle) { + Object.assign(style, newStyle); + } else { + warn(`(DEBUG) - XFA - style for ${name} not implemented yet`); + } + } + } + return style; +} +function createWrapper(node, html) { + const { + attributes + } = html; + const { + style + } = attributes; + const wrapper = { + name: "div", + attributes: { + class: ["xfaWrapper"], + style: Object.create(null) + }, + children: [] + }; + attributes.class.push("xfaWrapped"); + if (node.border) { + const { + widths, + insets + } = node.border[$extra]; + let width, height; + let top = insets[0]; + let left = insets[3]; + const insetsH = insets[0] + insets[2]; + const insetsW = insets[1] + insets[3]; + switch (node.border.hand) { + case "even": + top -= widths[0] / 2; + left -= widths[3] / 2; + width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`; + height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`; + break; + case "left": + top -= widths[0]; + left -= widths[3]; + width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`; + height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`; + break; + case "right": + width = insetsW ? `calc(100% - ${insetsW}px)` : "100%"; + height = insetsH ? `calc(100% - ${insetsH}px)` : "100%"; + break; + } + const classNames = ["xfaBorder"]; + if (isPrintOnly(node.border)) { + classNames.push("xfaPrintOnly"); + } + const border = { + name: "div", + attributes: { + class: classNames, + style: { + top: `${top}px`, + left: `${left}px`, + width, + height + } + }, + children: [] + }; + for (const key of ["border", "borderWidth", "borderColor", "borderRadius", "borderStyle"]) { + if (style[key] !== undefined) { + border.attributes.style[key] = style[key]; + delete style[key]; + } + } + wrapper.children.push(border, html); + } else { + wrapper.children.push(html); + } + for (const key of ["background", "backgroundClip", "top", "left", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "transform", "transformOrigin", "visibility"]) { + if (style[key] !== undefined) { + wrapper.attributes.style[key] = style[key]; + delete style[key]; + } + } + wrapper.attributes.style.position = style.position === "absolute" ? "absolute" : "relative"; + delete style.position; + if (style.alignSelf) { + wrapper.attributes.style.alignSelf = style.alignSelf; + delete style.alignSelf; + } + return wrapper; +} +function fixTextIndent(styles) { + const indent = getMeasurement(styles.textIndent, "0px"); + if (indent >= 0) { + return; + } + const align = styles.textAlign === "right" ? "right" : "left"; + const name = "padding" + (align === "left" ? "Left" : "Right"); + const padding = getMeasurement(styles[name], "0px"); + styles[name] = `${padding - indent}px`; +} +function setAccess(node, classNames) { + switch (node.access) { + case "nonInteractive": + classNames.push("xfaNonInteractive"); + break; + case "readOnly": + classNames.push("xfaReadOnly"); + break; + case "protected": + classNames.push("xfaDisabled"); + break; + } +} +function isPrintOnly(node) { + return node.relevant.length > 0 && !node.relevant[0].excluded && node.relevant[0].viewname === "print"; +} +function getCurrentPara(node) { + const stack = node[$getTemplateRoot]()[$extra].paraStack; + return stack.length ? stack.at(-1) : null; +} +function setPara(node, nodeStyle, value) { + if (value.attributes.class?.includes("xfaRich")) { + if (nodeStyle) { + if (node.h === "") { + nodeStyle.height = "auto"; + } + if (node.w === "") { + nodeStyle.width = "auto"; + } + } + const para = getCurrentPara(node); + if (para) { + const valueStyle = value.attributes.style; + valueStyle.display = "flex"; + valueStyle.flexDirection = "column"; + switch (para.vAlign) { + case "top": + valueStyle.justifyContent = "start"; + break; + case "bottom": + valueStyle.justifyContent = "end"; + break; + case "middle": + valueStyle.justifyContent = "center"; + break; + } + const paraStyle = para[$toStyle](); + for (const [key, val] of Object.entries(paraStyle)) { + if (!(key in valueStyle)) { + valueStyle[key] = val; + } + } + } + } +} +function setFontFamily(xfaFont, node, fontFinder, style) { + if (!fontFinder) { + delete style.fontFamily; + return; + } + const name = stripQuotes(xfaFont.typeface); + style.fontFamily = `"${name}"`; + const typeface = fontFinder.find(name); + if (typeface) { + const { + fontFamily + } = typeface.regular.cssFontInfo; + if (fontFamily !== name) { + style.fontFamily = `"${fontFamily}"`; + } + const para = getCurrentPara(node); + if (para && para.lineHeight !== "") { + return; + } + if (style.lineHeight) { + return; + } + const pdfFont = selectFont(xfaFont, typeface); + if (pdfFont) { + style.lineHeight = Math.max(1.2, pdfFont.lineHeight); + } + } +} +function fixURL(str) { + const absoluteUrl = createValidAbsoluteUrl(str, null, { + addDefaultProtocol: true, + tryConvertEncoding: true + }); + return absoluteUrl ? absoluteUrl.href : null; +} + +;// ./src/core/xfa/layout.js + + +function createLine(node, children) { + return { + name: "div", + attributes: { + class: [node.layout === "lr-tb" ? "xfaLr" : "xfaRl"] + }, + children + }; +} +function flushHTML(node) { + if (!node[$extra]) { + return null; + } + const attributes = node[$extra].attributes; + const html = { + name: "div", + attributes, + children: node[$extra].children + }; + if (node[$extra].failingNode) { + const htmlFromFailing = node[$extra].failingNode[$flushHTML](); + if (htmlFromFailing) { + if (node.layout.endsWith("-tb")) { + html.children.push(createLine(node, [htmlFromFailing])); + } else { + html.children.push(htmlFromFailing); + } + } + } + if (html.children.length === 0) { + return null; + } + return html; +} +function addHTML(node, html, bbox) { + const extra = node[$extra]; + const availableSpace = extra.availableSpace; + const [x, y, w, h] = bbox; + switch (node.layout) { + case "position": + { + extra.width = Math.max(extra.width, x + w); + extra.height = Math.max(extra.height, y + h); + extra.children.push(html); + break; + } + case "lr-tb": + case "rl-tb": + if (!extra.line || extra.attempt === 1) { + extra.line = createLine(node, []); + extra.children.push(extra.line); + extra.numberInLine = 0; + } + extra.numberInLine += 1; + extra.line.children.push(html); + if (extra.attempt === 0) { + extra.currentWidth += w; + extra.height = Math.max(extra.height, extra.prevHeight + h); + } else { + extra.currentWidth = w; + extra.prevHeight = extra.height; + extra.height += h; + extra.attempt = 0; + } + extra.width = Math.max(extra.width, extra.currentWidth); + break; + case "rl-row": + case "row": + { + extra.children.push(html); + extra.width += w; + extra.height = Math.max(extra.height, h); + const height = measureToString(extra.height); + for (const child of extra.children) { + child.attributes.style.height = height; + } + break; + } + case "table": + { + extra.width = Math.min(availableSpace.width, Math.max(extra.width, w)); + extra.height += h; + extra.children.push(html); + break; + } + case "tb": + { + extra.width = Math.min(availableSpace.width, Math.max(extra.width, w)); + extra.height += h; + extra.children.push(html); + break; + } + } +} +function getAvailableSpace(node) { + const availableSpace = node[$extra].availableSpace; + const marginV = node.margin ? node.margin.topInset + node.margin.bottomInset : 0; + const marginH = node.margin ? node.margin.leftInset + node.margin.rightInset : 0; + switch (node.layout) { + case "lr-tb": + case "rl-tb": + if (node[$extra].attempt === 0) { + return { + width: availableSpace.width - marginH - node[$extra].currentWidth, + height: availableSpace.height - marginV - node[$extra].prevHeight + }; + } + return { + width: availableSpace.width - marginH, + height: availableSpace.height - marginV - node[$extra].height + }; + case "rl-row": + case "row": + const width = node[$extra].columnWidths.slice(node[$extra].currentColumn).reduce((a, x) => a + x); + return { + width, + height: availableSpace.height - marginH + }; + case "table": + case "tb": + return { + width: availableSpace.width - marginH, + height: availableSpace.height - marginV - node[$extra].height + }; + case "position": + default: + return availableSpace; + } +} +function getTransformedBBox(node) { + let w = node.w === "" ? NaN : node.w; + let h = node.h === "" ? NaN : node.h; + let [centerX, centerY] = [0, 0]; + switch (node.anchorType || "") { + case "bottomCenter": + [centerX, centerY] = [w / 2, h]; + break; + case "bottomLeft": + [centerX, centerY] = [0, h]; + break; + case "bottomRight": + [centerX, centerY] = [w, h]; + break; + case "middleCenter": + [centerX, centerY] = [w / 2, h / 2]; + break; + case "middleLeft": + [centerX, centerY] = [0, h / 2]; + break; + case "middleRight": + [centerX, centerY] = [w, h / 2]; + break; + case "topCenter": + [centerX, centerY] = [w / 2, 0]; + break; + case "topRight": + [centerX, centerY] = [w, 0]; + break; + } + let x, y; + switch (node.rotate || 0) { + case 0: + [x, y] = [-centerX, -centerY]; + break; + case 90: + [x, y] = [-centerY, centerX]; + [w, h] = [h, -w]; + break; + case 180: + [x, y] = [centerX, centerY]; + [w, h] = [-w, -h]; + break; + case 270: + [x, y] = [centerY, -centerX]; + [w, h] = [-h, w]; + break; + } + return [node.x + x + Math.min(0, w), node.y + y + Math.min(0, h), Math.abs(w), Math.abs(h)]; +} +function checkDimensions(node, space) { + if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) { + return true; + } + if (node.w === 0 || node.h === 0) { + return true; + } + const ERROR = 2; + const parent = node[$getSubformParent](); + const attempt = parent[$extra]?.attempt || 0; + const [, y, w, h] = getTransformedBBox(node); + switch (parent.layout) { + case "lr-tb": + case "rl-tb": + if (attempt === 0) { + if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) { + if (node.h !== "" && Math.round(h - space.height) > ERROR) { + return false; + } + if (node.w !== "") { + if (Math.round(w - space.width) <= ERROR) { + return true; + } + if (parent[$extra].numberInLine === 0) { + return space.height > ERROR; + } + return false; + } + return space.width > ERROR; + } + if (node.w !== "") { + return Math.round(w - space.width) <= ERROR; + } + return space.width > ERROR; + } + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "" && Math.round(h - space.height) > ERROR) { + return false; + } + if (node.w === "" || Math.round(w - space.width) <= ERROR) { + return space.height > ERROR; + } + if (parent[$isThereMoreWidth]()) { + return false; + } + return space.height > ERROR; + case "table": + case "tb": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "" && !node[$isSplittable]()) { + return Math.round(h - space.height) <= ERROR; + } + if (node.w === "" || Math.round(w - space.width) <= ERROR) { + return space.height > ERROR; + } + if (parent[$isThereMoreWidth]()) { + return false; + } + return space.height > ERROR; + case "position": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h === "" || Math.round(h + y - space.height) <= ERROR) { + return true; + } + const area = node[$getTemplateRoot]()[$extra].currentContentArea; + return h + y > area.h; + case "rl-row": + case "row": + if (node[$getTemplateRoot]()[$extra].noLayoutFailure) { + return true; + } + if (node.h !== "") { + return Math.round(h - space.height) <= ERROR; + } + return true; + default: + return true; + } +} + +;// ./src/core/xfa/template.js + + + + + + + + + + +const TEMPLATE_NS_ID = NamespaceIds.template.id; +const SVG_NS = "http://www.w3.org/2000/svg"; +const MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2; +const MAX_EMPTY_PAGES = 3; +const DEFAULT_TAB_INDEX = 5000; +const HEADING_PATTERN = /^H(\d+)$/; +const MIMES = new Set(["image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/png", "image/apng", "image/x-png", "image/bmp", "image/x-ms-bmp", "image/tiff", "image/tif", "application/octet-stream"]); +const IMAGES_HEADERS = [[[0x42, 0x4d], "image/bmp"], [[0xff, 0xd8, 0xff], "image/jpeg"], [[0x49, 0x49, 0x2a, 0x00], "image/tiff"], [[0x4d, 0x4d, 0x00, 0x2a], "image/tiff"], [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], "image/gif"], [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], "image/png"]]; +function getBorderDims(node) { + if (!node || !node.border) { + return { + w: 0, + h: 0 + }; + } + const borderExtra = node.border[$getExtra](); + if (!borderExtra) { + return { + w: 0, + h: 0 + }; + } + return { + w: borderExtra.widths[0] + borderExtra.widths[2] + borderExtra.insets[0] + borderExtra.insets[2], + h: borderExtra.widths[1] + borderExtra.widths[3] + borderExtra.insets[1] + borderExtra.insets[3] + }; +} +function hasMargin(node) { + return node.margin && (node.margin.topInset || node.margin.rightInset || node.margin.bottomInset || node.margin.leftInset); +} +function _setValue(templateNode, value) { + if (!templateNode.value) { + const nodeValue = new Value({}); + templateNode[$appendChild](nodeValue); + templateNode.value = nodeValue; + } + templateNode.value[$setValue](value); +} +function* getContainedChildren(node) { + for (const child of node[$getChildren]()) { + if (child instanceof SubformSet) { + yield* child[$getContainedChildren](); + continue; + } + yield child; + } +} +function isRequired(node) { + return node.validate?.nullTest === "error"; +} +function setTabIndex(node) { + while (node) { + if (!node.traversal) { + node[$tabIndex] = node[$getParent]()[$tabIndex]; + return; + } + if (node[$tabIndex]) { + return; + } + let next = null; + for (const child of node.traversal[$getChildren]()) { + if (child.operation === "next") { + next = child; + break; + } + } + if (!next || !next.ref) { + node[$tabIndex] = node[$getParent]()[$tabIndex]; + return; + } + const root = node[$getTemplateRoot](); + node[$tabIndex] = ++root[$tabIndex]; + const ref = root[$searchNode](next.ref, node); + if (!ref) { + return; + } + node = ref[0]; + } +} +function applyAssist(obj, attributes) { + const assist = obj.assist; + if (assist) { + const assistTitle = assist[$toHTML](); + if (assistTitle) { + attributes.title = assistTitle; + } + const role = assist.role; + const match = role.match(HEADING_PATTERN); + if (match) { + const ariaRole = "heading"; + const ariaLevel = match[1]; + attributes.role = ariaRole; + attributes["aria-level"] = ariaLevel; + } + } + if (obj.layout === "table") { + attributes.role = "table"; + } else if (obj.layout === "row") { + attributes.role = "row"; + } else { + const parent = obj[$getParent](); + if (parent.layout === "row") { + attributes.role = parent.assist?.role === "TH" ? "columnheader" : "cell"; + } + } +} +function ariaLabel(obj) { + if (!obj.assist) { + return null; + } + const assist = obj.assist; + if (assist.speak && assist.speak[$content] !== "") { + return assist.speak[$content]; + } + if (assist.toolTip) { + return assist.toolTip[$content]; + } + return null; +} +function valueToHtml(value) { + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: Object.create(null) + }, + children: [{ + name: "span", + attributes: { + style: Object.create(null) + }, + value + }] + }); +} +function setFirstUnsplittable(node) { + const root = node[$getTemplateRoot](); + if (root[$extra].firstUnsplittable === null) { + root[$extra].firstUnsplittable = node; + root[$extra].noLayoutFailure = true; + } +} +function unsetFirstUnsplittable(node) { + const root = node[$getTemplateRoot](); + if (root[$extra].firstUnsplittable === node) { + root[$extra].noLayoutFailure = false; + } +} +function handleBreak(node) { + if (node[$extra]) { + return false; + } + node[$extra] = Object.create(null); + if (node.targetType === "auto") { + return false; + } + const root = node[$getTemplateRoot](); + let target = null; + if (node.target) { + target = root[$searchNode](node.target, node[$getParent]()); + if (!target) { + return false; + } + target = target[0]; + } + const { + currentPageArea, + currentContentArea + } = root[$extra]; + if (node.targetType === "pageArea") { + if (!(target instanceof PageArea)) { + target = null; + } + if (node.startNew) { + node[$extra].target = target || currentPageArea; + return true; + } else if (target && target !== currentPageArea) { + node[$extra].target = target; + return true; + } + return false; + } + if (!(target instanceof ContentArea)) { + target = null; + } + const pageArea = target && target[$getParent](); + let index; + let nextPageArea = pageArea; + if (node.startNew) { + if (target) { + const contentAreas = pageArea.contentArea.children; + const indexForCurrent = contentAreas.indexOf(currentContentArea); + const indexForTarget = contentAreas.indexOf(target); + if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) { + nextPageArea = null; + } + index = indexForTarget - 1; + } else { + index = currentPageArea.contentArea.children.indexOf(currentContentArea); + } + } else if (target && target !== currentContentArea) { + const contentAreas = pageArea.contentArea.children; + index = contentAreas.indexOf(target) - 1; + nextPageArea = pageArea === currentPageArea ? null : pageArea; + } else { + return false; + } + node[$extra].target = nextPageArea; + node[$extra].index = index; + return true; +} +function handleOverflow(node, extraNode, space) { + const root = node[$getTemplateRoot](); + const saved = root[$extra].noLayoutFailure; + const savedMethod = extraNode[$getSubformParent]; + extraNode[$getSubformParent] = () => node; + root[$extra].noLayoutFailure = true; + const res = extraNode[$toHTML](space); + node[$addHTML](res.html, res.bbox); + root[$extra].noLayoutFailure = saved; + extraNode[$getSubformParent] = savedMethod; +} +class AppearanceFilter extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "appearanceFilter"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Arc extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "arc", true); + this.circular = getInteger({ + data: attributes.circular, + defaultValue: 0, + validate: x => x === 1 + }); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.startAngle = getFloat({ + data: attributes.startAngle, + defaultValue: 0, + validate: x => true + }); + this.sweepAngle = getFloat({ + data: attributes.sweepAngle, + defaultValue: 360, + validate: x => true + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.edge = null; + this.fill = null; + } + [$toHTML]() { + const edge = this.edge || new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } else { + style.fill = "transparent"; + } + style.strokeWidth = measureToString(edge.presence === "visible" ? edge.thickness : 0); + style.stroke = edgeStyle.color; + let arc; + const attributes = { + xmlns: SVG_NS, + style: { + width: "100%", + height: "100%", + overflow: "visible" + } + }; + if (this.sweepAngle === 360) { + arc = { + name: "ellipse", + attributes: { + xmlns: SVG_NS, + cx: "50%", + cy: "50%", + rx: "50%", + ry: "50%", + style + } + }; + } else { + const startAngle = this.startAngle * Math.PI / 180; + const sweepAngle = this.sweepAngle * Math.PI / 180; + const largeArc = this.sweepAngle > 180 ? 1 : 0; + const [x1, y1, x2, y2] = [50 * (1 + Math.cos(startAngle)), 50 * (1 - Math.sin(startAngle)), 50 * (1 + Math.cos(startAngle + sweepAngle)), 50 * (1 - Math.sin(startAngle + sweepAngle))]; + arc = { + name: "path", + attributes: { + xmlns: SVG_NS, + d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`, + vectorEffect: "non-scaling-stroke", + style + } + }; + Object.assign(attributes, { + viewBox: "0 0 100 100", + preserveAspectRatio: "none" + }); + } + const svg = { + name: "svg", + children: [arc], + attributes + }; + const parent = this[$getParent]()[$getParent](); + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class Area extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "area", true); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.desc = null; + this.extras = null; + this.area = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$isTransparent]() { + return true; + } + [$isBindable]() { + return true; + } + [$addHTML](html, bbox) { + const [x, y, w, h] = bbox; + this[$extra].width = Math.max(this[$extra].width, x + w); + this[$extra].height = Math.max(this[$extra].height, y + h); + this[$extra].children.push(html); + } + [$getAvailableSpace]() { + return this[$extra].availableSpace; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "position"); + const attributes = { + style, + id: this[$uid], + class: ["xfaArea"] + }; + if (isPrintOnly(this)) { + attributes.class.push("xfaPrintOnly"); + } + if (this.name) { + attributes.xfaName = this.name; + } + const children = []; + this[$extra] = { + children, + width: 0, + height: 0, + availableSpace + }; + const result = this[$childrenToHTML]({ + filter: new Set(["area", "draw", "field", "exclGroup", "subform", "subformSet"]), + include: true + }); + if (!result.success) { + if (result.isBreak()) { + return result; + } + delete this[$extra]; + return HTMLResult.FAILURE; + } + style.width = measureToString(this[$extra].width); + style.height = measureToString(this[$extra].height); + const html = { + name: "div", + attributes, + children + }; + const bbox = [this.x, this.y, this[$extra].width, this[$extra].height]; + delete this[$extra]; + return HTMLResult.success(html, bbox); + } +} +class Assist extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "assist", true); + this.id = attributes.id || ""; + this.role = attributes.role || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.speak = null; + this.toolTip = null; + } + [$toHTML]() { + return this.toolTip?.[$content] || null; + } +} +class Barcode extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "barcode", true); + this.charEncoding = getKeyword({ + data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : "", + defaultValue: "", + validate: k => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(k) || k.match(/iso-8859-\d{2}/) + }); + this.checksum = getStringOption(attributes.checksum, ["none", "1mod10", "1mod10_1mod11", "2mod10", "auto"]); + this.dataColumnCount = getInteger({ + data: attributes.dataColumnCount, + defaultValue: -1, + validate: x => x >= 0 + }); + this.dataLength = getInteger({ + data: attributes.dataLength, + defaultValue: -1, + validate: x => x >= 0 + }); + this.dataPrep = getStringOption(attributes.dataPrep, ["none", "flateCompress"]); + this.dataRowCount = getInteger({ + data: attributes.dataRowCount, + defaultValue: -1, + validate: x => x >= 0 + }); + this.endChar = attributes.endChar || ""; + this.errorCorrectionLevel = getInteger({ + data: attributes.errorCorrectionLevel, + defaultValue: -1, + validate: x => x >= 0 && x <= 8 + }); + this.id = attributes.id || ""; + this.moduleHeight = getMeasurement(attributes.moduleHeight, "5mm"); + this.moduleWidth = getMeasurement(attributes.moduleWidth, "0.25mm"); + this.printCheckDigit = getInteger({ + data: attributes.printCheckDigit, + defaultValue: 0, + validate: x => x === 1 + }); + this.rowColumnRatio = getRatio(attributes.rowColumnRatio); + this.startChar = attributes.startChar || ""; + this.textLocation = getStringOption(attributes.textLocation, ["below", "above", "aboveEmbedded", "belowEmbedded", "none"]); + this.truncate = getInteger({ + data: attributes.truncate, + defaultValue: 0, + validate: x => x === 1 + }); + this.type = getStringOption(attributes.type ? attributes.type.toLowerCase() : "", ["aztec", "codabar", "code2of5industrial", "code2of5interleaved", "code2of5matrix", "code2of5standard", "code3of9", "code3of9extended", "code11", "code49", "code93", "code128", "code128a", "code128b", "code128c", "code128sscc", "datamatrix", "ean8", "ean8add2", "ean8add5", "ean13", "ean13add2", "ean13add5", "ean13pwcd", "fim", "logmars", "maxicode", "msi", "pdf417", "pdf417macro", "plessey", "postauscust2", "postauscust3", "postausreplypaid", "postausstandard", "postukrm4scc", "postusdpbc", "postusimb", "postusstandard", "postus5zip", "qrcode", "rfid", "rss14", "rss14expanded", "rss14limited", "rss14stacked", "rss14stackedomni", "rss14truncated", "telepen", "ucc128", "ucc128random", "ucc128sscc", "upca", "upcaadd2", "upcaadd5", "upcapwcd", "upce", "upceadd2", "upceadd5", "upcean2", "upcean5", "upsmaxicode"]); + this.upsMode = getStringOption(attributes.upsMode, ["usCarrier", "internationalCarrier", "secureSymbol", "standardSymbol"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio); + this.encrypt = null; + this.extras = null; + } +} +class Bind extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bind", true); + this.match = getStringOption(attributes.match, ["once", "dataRef", "global", "none"]); + this.ref = attributes.ref || ""; + this.picture = null; + } +} +class BindItems extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bindItems"); + this.connection = attributes.connection || ""; + this.labelRef = attributes.labelRef || ""; + this.ref = attributes.ref || ""; + this.valueRef = attributes.valueRef || ""; + } +} +class Bookend extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "bookend"); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class BooleanElement extends Option01 { + constructor(attributes) { + super(TEMPLATE_NS_ID, "boolean"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] === 1 ? "1" : "0"); + } +} +class Border extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "border", true); + this.break = getStringOption(attributes.break, ["close", "open"]); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.corner = new XFAObjectArray(4); + this.edge = new XFAObjectArray(4); + this.extras = null; + this.fill = null; + this.margin = null; + } + [$getExtra]() { + if (!this[$extra]) { + const edges = this.edge.children.slice(); + if (edges.length < 4) { + const defaultEdge = edges.at(-1) || new Edge({}); + for (let i = edges.length; i < 4; i++) { + edges.push(defaultEdge); + } + } + const widths = edges.map(edge => edge.thickness); + const insets = [0, 0, 0, 0]; + if (this.margin) { + insets[0] = this.margin.topInset; + insets[1] = this.margin.rightInset; + insets[2] = this.margin.bottomInset; + insets[3] = this.margin.leftInset; + } + this[$extra] = { + widths, + insets, + edges + }; + } + return this[$extra]; + } + [$toStyle]() { + const { + edges + } = this[$getExtra](); + const edgeStyles = edges.map(node => { + const style = node[$toStyle](); + style.color ||= "#000000"; + return style; + }); + const style = Object.create(null); + if (this.margin) { + Object.assign(style, this.margin[$toStyle]()); + } + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } + if (this.corner.children.some(node => node.radius !== 0)) { + const cornerStyles = this.corner.children.map(node => node[$toStyle]()); + if (cornerStyles.length === 2 || cornerStyles.length === 3) { + const last = cornerStyles.at(-1); + for (let i = cornerStyles.length; i < 4; i++) { + cornerStyles.push(last); + } + } + style.borderRadius = cornerStyles.map(s => s.radius).join(" "); + } + switch (this.presence) { + case "invisible": + case "hidden": + style.borderStyle = ""; + break; + case "inactive": + style.borderStyle = "none"; + break; + default: + style.borderStyle = edgeStyles.map(s => s.style).join(" "); + break; + } + style.borderWidth = edgeStyles.map(s => s.width).join(" "); + style.borderColor = edgeStyles.map(s => s.color).join(" "); + return style; + } +} +class Break extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "break", true); + this.after = getStringOption(attributes.after, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); + this.afterTarget = attributes.afterTarget || ""; + this.before = getStringOption(attributes.before, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); + this.beforeTarget = attributes.beforeTarget || ""; + this.bookendLeader = attributes.bookendLeader || ""; + this.bookendTrailer = attributes.bookendTrailer || ""; + this.id = attributes.id || ""; + this.overflowLeader = attributes.overflowLeader || ""; + this.overflowTarget = attributes.overflowTarget || ""; + this.overflowTrailer = attributes.overflowTrailer || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class BreakAfter extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "breakAfter", true); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.target = attributes.target || ""; + this.targetType = getStringOption(attributes.targetType, ["auto", "contentArea", "pageArea"]); + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.script = null; + } +} +class BreakBefore extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "breakBefore", true); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.startNew = getInteger({ + data: attributes.startNew, + defaultValue: 0, + validate: x => x === 1 + }); + this.target = attributes.target || ""; + this.targetType = getStringOption(attributes.targetType, ["auto", "contentArea", "pageArea"]); + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.script = null; + } + [$toHTML](availableSpace) { + this[$extra] = {}; + return HTMLResult.FAILURE; + } +} +class Button extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "button", true); + this.highlight = getStringOption(attributes.highlight, ["inverted", "none", "outline", "push"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toHTML](availableSpace) { + const parent = this[$getParent](); + const grandpa = parent[$getParent](); + const htmlButton = { + name: "button", + attributes: { + id: this[$uid], + class: ["xfaButton"], + style: {} + }, + children: [] + }; + for (const event of grandpa.event.children) { + if (event.activity !== "click" || !event.script) { + continue; + } + const jsURL = recoverJsURL(event.script[$content]); + if (!jsURL) { + continue; + } + const href = fixURL(jsURL.url); + if (!href) { + continue; + } + htmlButton.children.push({ + name: "a", + attributes: { + id: "link" + this[$uid], + href, + newWindow: jsURL.newWindow, + class: ["xfaLink"], + style: {} + }, + children: [] + }); + } + return HTMLResult.success(htmlButton); + } +} +class Calculate extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "calculate", true); + this.id = attributes.id || ""; + this.override = getStringOption(attributes.override, ["disabled", "error", "ignore", "warning"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.message = null; + this.script = null; + } +} +class Caption extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "caption", true); + this.id = attributes.id || ""; + this.placement = getStringOption(attributes.placement, ["left", "bottom", "inline", "right", "top"]); + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.reserve = Math.ceil(getMeasurement(attributes.reserve)); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.font = null; + this.margin = null; + this.para = null; + this.value = null; + } + [$setValue](value) { + _setValue(this, value); + } + [$getExtra](availableSpace) { + if (!this[$extra]) { + let { + width, + height + } = availableSpace; + switch (this.placement) { + case "left": + case "right": + case "inline": + width = this.reserve <= 0 ? width : this.reserve; + break; + case "top": + case "bottom": + height = this.reserve <= 0 ? height : this.reserve; + break; + } + this[$extra] = layoutNode(this, { + width, + height + }); + } + return this[$extra]; + } + [$toHTML](availableSpace) { + if (!this.value) { + return HTMLResult.EMPTY; + } + this[$pushPara](); + const value = this.value[$toHTML](availableSpace).html; + if (!value) { + this[$popPara](); + return HTMLResult.EMPTY; + } + const savedReserve = this.reserve; + if (this.reserve <= 0) { + const { + w, + h + } = this[$getExtra](availableSpace); + switch (this.placement) { + case "left": + case "right": + case "inline": + this.reserve = w; + break; + case "top": + case "bottom": + this.reserve = h; + break; + } + } + const children = []; + if (typeof value === "string") { + children.push({ + name: "#text", + value + }); + } else { + children.push(value); + } + const style = toStyle(this, "font", "margin", "visibility"); + switch (this.placement) { + case "left": + case "right": + if (this.reserve > 0) { + style.width = measureToString(this.reserve); + } + break; + case "top": + case "bottom": + if (this.reserve > 0) { + style.height = measureToString(this.reserve); + } + break; + } + setPara(this, null, value); + this[$popPara](); + this.reserve = savedReserve; + return HTMLResult.success({ + name: "div", + attributes: { + style, + class: ["xfaCaption"] + }, + children + }); + } +} +class Certificate extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "certificate"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Certificates extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "certificates", true); + this.credentialServerPolicy = getStringOption(attributes.credentialServerPolicy, ["optional", "required"]); + this.id = attributes.id || ""; + this.url = attributes.url || ""; + this.urlPolicy = attributes.urlPolicy || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encryption = null; + this.issuers = null; + this.keyUsage = null; + this.oids = null; + this.signing = null; + this.subjectDNs = null; + } +} +class CheckButton extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "checkButton", true); + this.id = attributes.id || ""; + this.mark = getStringOption(attributes.mark, ["default", "check", "circle", "cross", "diamond", "square", "star"]); + this.shape = getStringOption(attributes.shape, ["square", "round"]); + this.size = getMeasurement(attributes.size, "10pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle("margin"); + const size = measureToString(this.size); + style.width = style.height = size; + let type; + let className; + let groupId; + const field = this[$getParent]()[$getParent](); + const items = field.items.children.length && field.items.children[0][$toHTML]().html || []; + const exportedValue = { + on: (items[0] !== undefined ? items[0] : "on").toString(), + off: (items[1] !== undefined ? items[1] : "off").toString() + }; + const value = field.value?.[$text]() || "off"; + const checked = value === exportedValue.on || undefined; + const container = field[$getSubformParent](); + const fieldId = field[$uid]; + let dataId; + if (container instanceof ExclGroup) { + groupId = container[$uid]; + type = "radio"; + className = "xfaRadio"; + dataId = container[$data]?.[$uid] || container[$uid]; + } else { + type = "checkbox"; + className = "xfaCheckbox"; + dataId = field[$data]?.[$uid] || field[$uid]; + } + const input = { + name: "input", + attributes: { + class: [className], + style, + fieldId, + dataId, + type, + checked, + xfaOn: exportedValue.on, + xfaOff: exportedValue.off, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (groupId) { + input.attributes.name = groupId; + } + if (isRequired(field)) { + input.attributes["aria-required"] = true; + input.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [input] + }); + } +} +class ChoiceList extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "choiceList", true); + this.commitOn = getStringOption(attributes.commitOn, ["select", "exit"]); + this.id = attributes.id || ""; + this.open = getStringOption(attributes.open, ["userControl", "always", "multiSelect", "onEntry"]); + this.textEntry = getInteger({ + data: attributes.textEntry, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "margin"); + const ui = this[$getParent](); + const field = ui[$getParent](); + const fontSize = field.font?.size || 10; + const optionStyle = { + fontSize: `calc(${fontSize}px * var(--scale-factor))` + }; + const children = []; + if (field.items.children.length > 0) { + const items = field.items; + let displayedIndex = 0; + let saveIndex = 0; + if (items.children.length === 2) { + displayedIndex = items.children[0].save; + saveIndex = 1 - displayedIndex; + } + const displayed = items.children[displayedIndex][$toHTML]().html; + const values = items.children[saveIndex][$toHTML]().html; + let selected = false; + const value = field.value?.[$text]() || ""; + for (let i = 0, ii = displayed.length; i < ii; i++) { + const option = { + name: "option", + attributes: { + value: values[i] || displayed[i], + style: optionStyle + }, + value: displayed[i] + }; + if (values[i] === value) { + option.attributes.selected = selected = true; + } + children.push(option); + } + if (!selected) { + children.splice(0, 0, { + name: "option", + attributes: { + hidden: true, + selected: true + }, + value: " " + }); + } + } + const selectAttributes = { + class: ["xfaSelect"], + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + style, + "aria-label": ariaLabel(field), + "aria-required": false + }; + if (isRequired(field)) { + selectAttributes["aria-required"] = true; + selectAttributes.required = true; + } + if (this.open === "multiSelect") { + selectAttributes.multiple = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [{ + name: "select", + children, + attributes: selectAttributes + }] + }); + } +} +class Color extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "color", true); + this.cSpace = getStringOption(attributes.cSpace, ["SRGB"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.value = attributes.value ? getColor(attributes.value) : ""; + this.extras = null; + } + [$hasSettableValue]() { + return false; + } + [$toStyle]() { + return this.value ? Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null; + } +} +class Comb extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "comb"); + this.id = attributes.id || ""; + this.numberOfCells = getInteger({ + data: attributes.numberOfCells, + defaultValue: 0, + validate: x => x >= 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Connect extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "connect", true); + this.connection = attributes.connection || ""; + this.id = attributes.id || ""; + this.ref = attributes.ref || ""; + this.usage = getStringOption(attributes.usage, ["exportAndImport", "exportOnly", "importOnly"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.picture = null; + } +} +class ContentArea extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "contentArea", true); + this.h = getMeasurement(attributes.h); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = getMeasurement(attributes.w); + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.desc = null; + this.extras = null; + } + [$toHTML](availableSpace) { + const left = measureToString(this.x); + const top = measureToString(this.y); + const style = { + left, + top, + width: measureToString(this.w), + height: measureToString(this.h) + }; + const classNames = ["xfaContentarea"]; + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + return HTMLResult.success({ + name: "div", + children: [], + attributes: { + style, + class: classNames, + id: this[$uid] + } + }); + } +} +class Corner extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "corner", true); + this.id = attributes.id || ""; + this.inverted = getInteger({ + data: attributes.inverted, + defaultValue: 0, + validate: x => x === 1 + }); + this.join = getStringOption(attributes.join, ["square", "round"]); + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.radius = getMeasurement(attributes.radius); + this.stroke = getStringOption(attributes.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); + this.thickness = getMeasurement(attributes.thickness, "0.5pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle]() { + const style = toStyle(this, "visibility"); + style.radius = measureToString(this.join === "square" ? 0 : this.radius); + return style; + } +} +class DateElement extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "date"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class DateTime extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "dateTime"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class DateTimeEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "dateTimeEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.picker = getStringOption(attributes.picker, ["host", "none"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + const field = this[$getParent]()[$getParent](); + const html = { + name: "input", + attributes: { + type: "text", + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Decimal extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "decimal"); + this.fracDigits = getInteger({ + data: attributes.fracDigits, + defaultValue: 2, + validate: x => true + }); + this.id = attributes.id || ""; + this.leadDigits = getInteger({ + data: attributes.leadDigits, + defaultValue: -1, + validate: x => true + }); + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseFloat(this[$content].trim()); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class DefaultUi extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "defaultUi", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class Desc extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "desc", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class DigestMethod extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "digestMethod", ["", "SHA1", "SHA256", "SHA512", "RIPEMD160"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class DigestMethods extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "digestMethods", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.digestMethod = new XFAObjectArray(); + } +} +class Draw extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "draw", true); + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.rotate = getInteger({ + data: attributes.rotate, + defaultValue: 0, + validate: x => x % 90 === 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.border = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.font = null; + this.keep = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.ui = null; + this.value = null; + this.setProperty = new XFAObjectArray(); + } + [$setValue](value) { + _setValue(this, value); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.presence === "hidden" || this.presence === "inactive") { + return HTMLResult.EMPTY; + } + fixDimensions(this); + this[$pushPara](); + const savedW = this.w; + const savedH = this.h; + const { + w, + h, + isBroken + } = layoutNode(this, availableSpace); + if (w && this.w === "") { + if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) { + this[$popPara](); + return HTMLResult.FAILURE; + } + this.w = w; + } + if (h && this.h === "") { + this.h = h; + } + setFirstUnsplittable(this); + if (!checkDimensions(this, availableSpace)) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const style = toStyle(this, "font", "hAlign", "dimensions", "position", "presence", "rotate", "anchorType", "border", "margin"); + setMinMaxDimensions(this, style); + if (style.margin) { + style.padding = style.margin; + delete style.margin; + } + const classNames = ["xfaDraw"]; + if (this.font) { + classNames.push("xfaFont"); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + const attributes = { + style, + id: this[$uid], + class: classNames + }; + if (this.name) { + attributes.xfaName = this.name; + } + const html = { + name: "div", + attributes, + children: [] + }; + applyAssist(this, attributes); + const bbox = computeBbox(this, html, availableSpace); + const value = this.value ? this.value[$toHTML](availableSpace).html : null; + if (value === null) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.success(createWrapper(this, html), bbox); + } + html.children.push(value); + setPara(this, style, value); + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Edge extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "edge", true); + this.cap = getStringOption(attributes.cap, ["square", "butt", "round"]); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.stroke = getStringOption(attributes.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); + this.thickness = getMeasurement(attributes.thickness, "0.5pt"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle]() { + const style = toStyle(this, "visibility"); + Object.assign(style, { + linecap: this.cap, + width: measureToString(this.thickness), + color: this.color ? this.color[$toStyle]() : "#000000", + style: "" + }); + if (this.presence !== "visible") { + style.style = "none"; + } else { + switch (this.stroke) { + case "solid": + style.style = "solid"; + break; + case "dashDot": + style.style = "dashed"; + break; + case "dashDotDot": + style.style = "dashed"; + break; + case "dashed": + style.style = "dashed"; + break; + case "dotted": + style.style = "dotted"; + break; + case "embossed": + style.style = "ridge"; + break; + case "etched": + style.style = "groove"; + break; + case "lowered": + style.style = "inset"; + break; + case "raised": + style.style = "outset"; + break; + } + } + return style; + } +} +class Encoding extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encoding", ["adbe.x509.rsa_sha1", "adbe.pkcs7.detached", "adbe.pkcs7.sha1"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Encodings extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encodings", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encoding = new XFAObjectArray(); + } +} +class Encrypt extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encrypt", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = null; + } +} +class EncryptData extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptData", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["encrypt", "decrypt"]); + this.target = attributes.target || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.filter = null; + this.manifest = null; + } +} +class Encryption extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryption", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class EncryptionMethod extends OptionObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptionMethod", ["", "AES256-CBC", "TRIPLEDES-CBC", "AES128-CBC", "AES192-CBC"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class EncryptionMethods extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "encryptionMethods", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.encryptionMethod = new XFAObjectArray(); + } +} +class Event extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "event", true); + this.activity = getStringOption(attributes.activity, ["click", "change", "docClose", "docReady", "enter", "exit", "full", "indexChange", "initialize", "mouseDown", "mouseEnter", "mouseExit", "mouseUp", "postExecute", "postOpen", "postPrint", "postSave", "postSign", "postSubmit", "preExecute", "preOpen", "prePrint", "preSave", "preSign", "preSubmit", "ready", "validationState"]); + this.id = attributes.id || ""; + this.listen = getStringOption(attributes.listen, ["refOnly", "refAndDescendents"]); + this.name = attributes.name || ""; + this.ref = attributes.ref || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.encryptData = null; + this.execute = null; + this.script = null; + this.signData = null; + this.submit = null; + } +} +class ExData extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exData"); + this.contentType = attributes.contentType || ""; + this.href = attributes.href || ""; + this.id = attributes.id || ""; + this.maxLength = getInteger({ + data: attributes.maxLength, + defaultValue: -1, + validate: x => x >= -1 + }); + this.name = attributes.name || ""; + this.rid = attributes.rid || ""; + this.transferEncoding = getStringOption(attributes.transferEncoding, ["none", "base64", "package"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$isCDATAXml]() { + return this.contentType === "text/html"; + } + [$onChild](child) { + if (this.contentType === "text/html" && child[$namespaceId] === NamespaceIds.xhtml.id) { + this[$content] = child; + return true; + } + if (this.contentType === "text/xml") { + this[$content] = child; + return true; + } + return false; + } + [$toHTML](availableSpace) { + if (this.contentType !== "text/html" || !this[$content]) { + return HTMLResult.EMPTY; + } + return this[$content][$toHTML](availableSpace); + } +} +class ExObject extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exObject", true); + this.archive = attributes.archive || ""; + this.classId = attributes.classId || ""; + this.codeBase = attributes.codeBase || ""; + this.codeType = attributes.codeType || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class ExclGroup extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "exclGroup", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.accessKey = attributes.accessKey || ""; + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.layout = getStringOption(attributes.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.border = null; + this.calculate = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.validate = null; + this.connect = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + } + [$isBindable]() { + return true; + } + [$hasSettableValue]() { + return true; + } + [$setValue](value) { + for (const field of this.field.children) { + if (!field.value) { + const nodeValue = new Value({}); + field[$appendChild](nodeValue); + field.value = nodeValue; + } + field.value[$setValue](value); + } + } + [$isThereMoreWidth]() { + return this.layout.endsWith("-tb") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth](); + } + [$isSplittable]() { + const parent = this[$getSubformParent](); + if (!parent[$isSplittable]()) { + return false; + } + if (this[$extra]._isSplittable !== undefined) { + return this[$extra]._isSplittable; + } + if (this.layout === "position" || this.layout.includes("row")) { + this[$extra]._isSplittable = false; + return false; + } + if (parent.layout?.endsWith("-tb") && parent[$extra].numberInLine !== 0) { + return false; + } + this[$extra]._isSplittable = true; + return true; + } + [$flushHTML]() { + return flushHTML(this); + } + [$addHTML](html, bbox) { + addHTML(this, html, bbox); + } + [$getAvailableSpace]() { + return getAvailableSpace(this); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) { + return HTMLResult.EMPTY; + } + fixDimensions(this); + const children = []; + const attributes = { + id: this[$uid], + class: [] + }; + setAccess(this, attributes.class); + if (!this[$extra]) { + this[$extra] = Object.create(null); + } + Object.assign(this[$extra], { + children, + attributes, + attempt: 0, + line: null, + numberInLine: 0, + availableSpace: { + width: Math.min(this.w || Infinity, availableSpace.width), + height: Math.min(this.h || Infinity, availableSpace.height) + }, + width: 0, + height: 0, + prevHeight: 0, + currentWidth: 0 + }); + const isSplittable = this[$isSplittable](); + if (!isSplittable) { + setFirstUnsplittable(this); + } + if (!checkDimensions(this, availableSpace)) { + return HTMLResult.FAILURE; + } + const filter = new Set(["field"]); + if (this.layout.includes("row")) { + const columnWidths = this[$getSubformParent]().columnWidths; + if (Array.isArray(columnWidths) && columnWidths.length > 0) { + this[$extra].columnWidths = columnWidths; + this[$extra].currentColumn = 0; + } + } + const style = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"); + const classNames = ["xfaExclgroup"]; + const cl = layoutClass(this); + if (cl) { + classNames.push(cl); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + attributes.style = style; + attributes.class = classNames; + if (this.name) { + attributes.xfaName = this.name; + } + this[$pushPara](); + const isLrTb = this.layout === "lr-tb" || this.layout === "rl-tb"; + const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1; + for (; this[$extra].attempt < maxRun; this[$extra].attempt++) { + if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) { + this[$extra].numberInLine = 0; + } + const result = this[$childrenToHTML]({ + filter, + include: true + }); + if (result.success) { + break; + } + if (result.isBreak()) { + this[$popPara](); + return result; + } + if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !this[$getTemplateRoot]()[$extra].noLayoutFailure) { + this[$extra].attempt = maxRun; + break; + } + } + this[$popPara](); + if (!isSplittable) { + unsetFirstUnsplittable(this); + } + if (this[$extra].attempt === maxRun) { + if (!isSplittable) { + delete this[$extra]; + } + return HTMLResult.FAILURE; + } + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + const width = Math.max(this[$extra].width + marginH, this.w || 0); + const height = Math.max(this[$extra].height + marginV, this.h || 0); + const bbox = [this.x, this.y, width, height]; + if (this.w === "") { + style.width = measureToString(width); + } + if (this.h === "") { + style.height = measureToString(height); + } + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + delete this[$extra]; + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Execute extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "execute"); + this.connection = attributes.connection || ""; + this.executeType = getStringOption(attributes.executeType, ["import", "remerge"]); + this.id = attributes.id || ""; + this.runAt = getStringOption(attributes.runAt, ["client", "both", "server"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Extras extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "extras", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.extras = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } +} +class Field extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "field", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.accessKey = attributes.accessKey || ""; + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.rotate = getInteger({ + data: attributes.rotate, + defaultValue: 0, + validate: x => x % 90 === 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.border = null; + this.calculate = null; + this.caption = null; + this.desc = null; + this.extras = null; + this.font = null; + this.format = null; + this.items = new XFAObjectArray(2); + this.keep = null; + this.margin = null; + this.para = null; + this.traversal = null; + this.ui = null; + this.validate = null; + this.value = null; + this.bindItems = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + } + [$isBindable]() { + return true; + } + [$setValue](value) { + _setValue(this, value); + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (!this.ui) { + this.ui = new Ui({}); + this.ui[$globalData] = this[$globalData]; + this[$appendChild](this.ui); + let node; + switch (this.items.children.length) { + case 0: + node = new TextEdit({}); + this.ui.textEdit = node; + break; + case 1: + node = new CheckButton({}); + this.ui.checkButton = node; + break; + case 2: + node = new ChoiceList({}); + this.ui.choiceList = node; + break; + } + this.ui[$appendChild](node); + } + if (!this.ui || this.presence === "hidden" || this.presence === "inactive" || this.h === 0 || this.w === 0) { + return HTMLResult.EMPTY; + } + if (this.caption) { + delete this.caption[$extra]; + } + this[$pushPara](); + const caption = this.caption ? this.caption[$toHTML](availableSpace).html : null; + const savedW = this.w; + const savedH = this.h; + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + let borderDims = null; + if (this.w === "" || this.h === "") { + let width = null; + let height = null; + let uiW = 0; + let uiH = 0; + if (this.ui.checkButton) { + uiW = uiH = this.ui.checkButton.size; + } else { + const { + w, + h + } = layoutNode(this, availableSpace); + if (w !== null) { + uiW = w; + uiH = h; + } else { + uiH = fonts_getMetrics(this.font, true).lineNoGap; + } + } + borderDims = getBorderDims(this.ui[$getExtra]()); + uiW += borderDims.w; + uiH += borderDims.h; + if (this.caption) { + const { + w, + h, + isBroken + } = this.caption[$getExtra](availableSpace); + if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) { + this[$popPara](); + return HTMLResult.FAILURE; + } + width = w; + height = h; + switch (this.caption.placement) { + case "left": + case "right": + case "inline": + width += uiW; + break; + case "top": + case "bottom": + height += uiH; + break; + } + } else { + width = uiW; + height = uiH; + } + if (width && this.w === "") { + width += marginH; + this.w = Math.min(this.maxW <= 0 ? Infinity : this.maxW, this.minW + 1 < width ? width : this.minW); + } + if (height && this.h === "") { + height += marginV; + this.h = Math.min(this.maxH <= 0 ? Infinity : this.maxH, this.minH + 1 < height ? height : this.minH); + } + } + this[$popPara](); + fixDimensions(this); + setFirstUnsplittable(this); + if (!checkDimensions(this, availableSpace)) { + this.w = savedW; + this.h = savedH; + this[$popPara](); + return HTMLResult.FAILURE; + } + unsetFirstUnsplittable(this); + const style = toStyle(this, "font", "dimensions", "position", "rotate", "anchorType", "presence", "margin", "hAlign"); + setMinMaxDimensions(this, style); + const classNames = ["xfaField"]; + if (this.font) { + classNames.push("xfaFont"); + } + if (isPrintOnly(this)) { + classNames.push("xfaPrintOnly"); + } + const attributes = { + style, + id: this[$uid], + class: classNames + }; + if (style.margin) { + style.padding = style.margin; + delete style.margin; + } + setAccess(this, classNames); + if (this.name) { + attributes.xfaName = this.name; + } + const children = []; + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + const borderStyle = this.border ? this.border[$toStyle]() : null; + const bbox = computeBbox(this, html, availableSpace); + const ui = this.ui[$toHTML]().html; + if (!ui) { + Object.assign(style, borderStyle); + return HTMLResult.success(createWrapper(this, html), bbox); + } + if (this[$tabIndex]) { + if (ui.children?.[0]) { + ui.children[0].attributes.tabindex = this[$tabIndex]; + } else { + ui.attributes.tabindex = this[$tabIndex]; + } + } + if (!ui.attributes.style) { + ui.attributes.style = Object.create(null); + } + let aElement = null; + if (this.ui.button) { + if (ui.children.length === 1) { + [aElement] = ui.children.splice(0, 1); + } + Object.assign(ui.attributes.style, borderStyle); + } else { + Object.assign(style, borderStyle); + } + children.push(ui); + if (this.value) { + if (this.ui.imageEdit) { + ui.children.push(this.value[$toHTML]().html); + } else if (!this.ui.button) { + let value = ""; + if (this.value.exData) { + value = this.value.exData[$text](); + } else if (this.value.text) { + value = this.value.text[$getExtra](); + } else { + const htmlValue = this.value[$toHTML]().html; + if (htmlValue !== null) { + value = htmlValue.children[0].value; + } + } + if (this.ui.textEdit && this.value.text?.maxChars) { + ui.children[0].attributes.maxLength = this.value.text.maxChars; + } + if (value) { + if (this.ui.numericEdit) { + value = parseFloat(value); + value = isNaN(value) ? "" : value.toString(); + } + if (ui.children[0].name === "textarea") { + ui.children[0].attributes.textContent = value; + } else { + ui.children[0].attributes.value = value; + } + } + } + } + if (!this.ui.imageEdit && ui.children?.[0] && this.h) { + borderDims = borderDims || getBorderDims(this.ui[$getExtra]()); + let captionHeight = 0; + if (this.caption && ["top", "bottom"].includes(this.caption.placement)) { + captionHeight = this.caption.reserve; + if (captionHeight <= 0) { + captionHeight = this.caption[$getExtra](availableSpace).h; + } + const inputHeight = this.h - captionHeight - marginV - borderDims.h; + ui.children[0].attributes.style.height = measureToString(inputHeight); + } else { + ui.children[0].attributes.style.height = "100%"; + } + } + if (aElement) { + ui.children.push(aElement); + } + if (!caption) { + if (ui.attributes.class) { + ui.attributes.class.push("xfaLeft"); + } + this.w = savedW; + this.h = savedH; + return HTMLResult.success(createWrapper(this, html), bbox); + } + if (this.ui.button) { + if (style.padding) { + delete style.padding; + } + if (caption.name === "div") { + caption.name = "span"; + } + ui.children.push(caption); + return HTMLResult.success(html, bbox); + } else if (this.ui.checkButton) { + caption.attributes.class[0] = "xfaCaptionForCheckButton"; + } + if (!ui.attributes.class) { + ui.attributes.class = []; + } + ui.children.splice(0, 0, caption); + switch (this.caption.placement) { + case "left": + ui.attributes.class.push("xfaLeft"); + break; + case "right": + ui.attributes.class.push("xfaRight"); + break; + case "top": + ui.attributes.class.push("xfaTop"); + break; + case "bottom": + ui.attributes.class.push("xfaBottom"); + break; + case "inline": + ui.attributes.class.push("xfaLeft"); + break; + } + this.w = savedW; + this.h = savedH; + return HTMLResult.success(createWrapper(this, html), bbox); + } +} +class Fill extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "fill", true); + this.id = attributes.id || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + this.linear = null; + this.pattern = null; + this.radial = null; + this.solid = null; + this.stipple = null; + } + [$toStyle]() { + const parent = this[$getParent](); + const grandpa = parent[$getParent](); + const ggrandpa = grandpa[$getParent](); + const style = Object.create(null); + let propName = "color"; + let altPropName = propName; + if (parent instanceof Border) { + propName = "background-color"; + altPropName = "background"; + if (ggrandpa instanceof Ui) { + style.backgroundColor = "white"; + } + } + if (parent instanceof Rectangle || parent instanceof Arc) { + propName = altPropName = "fill"; + style.fill = "white"; + } + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "extras" || name === "color") { + continue; + } + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + const color = obj[$toStyle](this.color); + if (color) { + style[color.startsWith("#") ? propName : altPropName] = color; + } + return style; + } + if (this.color?.value) { + const color = this.color[$toStyle](); + style[color.startsWith("#") ? propName : altPropName] = color; + } + return style; + } +} +class Filter extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "filter", true); + this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, ["", "required", "optional", "none"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.version = getInteger({ + data: this.version, + defaultValue: 5, + validate: x => x >= 1 && x <= 5 + }); + this.appearanceFilter = null; + this.certificates = null; + this.digestMethods = null; + this.encodings = null; + this.encryptionMethods = null; + this.handler = null; + this.lockDocument = null; + this.mdp = null; + this.reasons = null; + this.timeStamp = null; + } +} +class Float extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "float"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseFloat(this[$content].trim()); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class template_Font extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "font", true); + this.baselineShift = getMeasurement(attributes.baselineShift); + this.fontHorizontalScale = getFloat({ + data: attributes.fontHorizontalScale, + defaultValue: 100, + validate: x => x >= 0 + }); + this.fontVerticalScale = getFloat({ + data: attributes.fontVerticalScale, + defaultValue: 100, + validate: x => x >= 0 + }); + this.id = attributes.id || ""; + this.kerningMode = getStringOption(attributes.kerningMode, ["none", "pair"]); + this.letterSpacing = getMeasurement(attributes.letterSpacing, "0"); + this.lineThrough = getInteger({ + data: attributes.lineThrough, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, ["all", "word"]); + this.overline = getInteger({ + data: attributes.overline, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.overlinePeriod = getStringOption(attributes.overlinePeriod, ["all", "word"]); + this.posture = getStringOption(attributes.posture, ["normal", "italic"]); + this.size = getMeasurement(attributes.size, "10pt"); + this.typeface = attributes.typeface || "Courier"; + this.underline = getInteger({ + data: attributes.underline, + defaultValue: 0, + validate: x => x === 1 || x === 2 + }); + this.underlinePeriod = getStringOption(attributes.underlinePeriod, ["all", "word"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.weight = getStringOption(attributes.weight, ["normal", "bold"]); + this.extras = null; + this.fill = null; + } + [$clean](builder) { + super[$clean](builder); + this[$globalData].usedTypefaces.add(this.typeface); + } + [$toStyle]() { + const style = toStyle(this, "fill"); + const color = style.color; + if (color) { + if (color === "#000000") { + delete style.color; + } else if (!color.startsWith("#")) { + style.background = color; + style.backgroundClip = "text"; + style.color = "transparent"; + } + } + if (this.baselineShift) { + style.verticalAlign = measureToString(this.baselineShift); + } + style.fontKerning = this.kerningMode === "none" ? "none" : "normal"; + style.letterSpacing = measureToString(this.letterSpacing); + if (this.lineThrough !== 0) { + style.textDecoration = "line-through"; + if (this.lineThrough === 2) { + style.textDecorationStyle = "double"; + } + } + if (this.overline !== 0) { + style.textDecoration = "overline"; + if (this.overline === 2) { + style.textDecorationStyle = "double"; + } + } + style.fontStyle = this.posture; + style.fontSize = measureToString(0.99 * this.size); + setFontFamily(this, this, this[$globalData].fontFinder, style); + if (this.underline !== 0) { + style.textDecoration = "underline"; + if (this.underline === 2) { + style.textDecorationStyle = "double"; + } + } + style.fontWeight = this.weight; + return style; + } +} +class Format extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "format", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.picture = null; + } +} +class Handler extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "handler"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Hyphenation extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "hyphenation"); + this.excludeAllCaps = getInteger({ + data: attributes.excludeAllCaps, + defaultValue: 0, + validate: x => x === 1 + }); + this.excludeInitialCap = getInteger({ + data: attributes.excludeInitialCap, + defaultValue: 0, + validate: x => x === 1 + }); + this.hyphenate = getInteger({ + data: attributes.hyphenate, + defaultValue: 0, + validate: x => x === 1 + }); + this.id = attributes.id || ""; + this.pushCharacterCount = getInteger({ + data: attributes.pushCharacterCount, + defaultValue: 3, + validate: x => x >= 0 + }); + this.remainCharacterCount = getInteger({ + data: attributes.remainCharacterCount, + defaultValue: 3, + validate: x => x >= 0 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.wordCharacterCount = getInteger({ + data: attributes.wordCharacterCount, + defaultValue: 7, + validate: x => x >= 0 + }); + } +} +class Image extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "image"); + this.aspect = getStringOption(attributes.aspect, ["fit", "actual", "height", "none", "width"]); + this.contentType = attributes.contentType || ""; + this.href = attributes.href || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.transferEncoding = getStringOption(attributes.transferEncoding, ["base64", "none", "package"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$toHTML]() { + if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) { + return HTMLResult.EMPTY; + } + let buffer = this[$globalData].images && this[$globalData].images.get(this.href); + if (!buffer && (this.href || !this[$content])) { + return HTMLResult.EMPTY; + } + if (!buffer && this.transferEncoding === "base64") { + buffer = fromBase64Util(this[$content]); + } + if (!buffer) { + return HTMLResult.EMPTY; + } + if (!this.contentType) { + for (const [header, type] of IMAGES_HEADERS) { + if (buffer.length > header.length && header.every((x, i) => x === buffer[i])) { + this.contentType = type; + break; + } + } + if (!this.contentType) { + return HTMLResult.EMPTY; + } + } + const blob = new Blob([buffer], { + type: this.contentType + }); + let style; + switch (this.aspect) { + case "fit": + case "actual": + break; + case "height": + style = { + height: "100%", + objectFit: "fill" + }; + break; + case "none": + style = { + width: "100%", + height: "100%", + objectFit: "fill" + }; + break; + case "width": + style = { + width: "100%", + objectFit: "fill" + }; + break; + } + const parent = this[$getParent](); + return HTMLResult.success({ + name: "img", + attributes: { + class: ["xfaImage"], + style, + src: URL.createObjectURL(blob), + alt: parent ? ariaLabel(parent[$getParent]()) : null + } + }); + } +} +class ImageEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "imageEdit", true); + this.data = getStringOption(attributes.data, ["link", "embed"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + if (this.data === "embed") { + return HTMLResult.success({ + name: "div", + children: [], + attributes: {} + }); + } + return HTMLResult.EMPTY; + } +} +class Integer extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "integer"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const number = parseInt(this[$content].trim(), 10); + this[$content] = isNaN(number) ? null : number; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] !== null ? this[$content].toString() : ""); + } +} +class Issuers extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "issuers", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class Items extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "items", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.ref = attributes.ref || ""; + this.save = getInteger({ + data: attributes.save, + defaultValue: 0, + validate: x => x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } + [$toHTML]() { + const output = []; + for (const child of this[$getChildren]()) { + output.push(child[$text]()); + } + return HTMLResult.success(output); + } +} +class Keep extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "keep", true); + this.id = attributes.id || ""; + const options = ["none", "contentArea", "pageArea"]; + this.intact = getStringOption(attributes.intact, options); + this.next = getStringOption(attributes.next, options); + this.previous = getStringOption(attributes.previous, options); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } +} +class KeyUsage extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "keyUsage"); + const options = ["", "yes", "no"]; + this.crlSign = getStringOption(attributes.crlSign, options); + this.dataEncipherment = getStringOption(attributes.dataEncipherment, options); + this.decipherOnly = getStringOption(attributes.decipherOnly, options); + this.digitalSignature = getStringOption(attributes.digitalSignature, options); + this.encipherOnly = getStringOption(attributes.encipherOnly, options); + this.id = attributes.id || ""; + this.keyAgreement = getStringOption(attributes.keyAgreement, options); + this.keyCertSign = getStringOption(attributes.keyCertSign, options); + this.keyEncipherment = getStringOption(attributes.keyEncipherment, options); + this.nonRepudiation = getStringOption(attributes.nonRepudiation, options); + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Line extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "line", true); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.slope = getStringOption(attributes.slope, ["\\", "/"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.edge = null; + } + [$toHTML]() { + const parent = this[$getParent]()[$getParent](); + const edge = this.edge || new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + const thickness = edge.presence === "visible" ? edge.thickness : 0; + style.strokeWidth = measureToString(thickness); + style.stroke = edgeStyle.color; + let x1, y1, x2, y2; + let width = "100%"; + let height = "100%"; + if (parent.w <= thickness) { + [x1, y1, x2, y2] = ["50%", 0, "50%", "100%"]; + width = style.strokeWidth; + } else if (parent.h <= thickness) { + [x1, y1, x2, y2] = [0, "50%", "100%", "50%"]; + height = style.strokeWidth; + } else if (this.slope === "\\") { + [x1, y1, x2, y2] = [0, 0, "100%", "100%"]; + } else { + [x1, y1, x2, y2] = [0, "100%", "100%", 0]; + } + const line = { + name: "line", + attributes: { + xmlns: SVG_NS, + x1, + y1, + x2, + y2, + style + } + }; + const svg = { + name: "svg", + children: [line], + attributes: { + xmlns: SVG_NS, + width, + height, + style: { + overflow: "visible" + } + } + }; + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class Linear extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "linear", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["toRight", "toBottom", "toLeft", "toTop"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const transf = this.type.replace(/([RBLT])/, " $1").toLowerCase(); + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + return `linear-gradient(${transf}, ${startColor}, ${endColor})`; + } +} +class LockDocument extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "lockDocument"); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + this[$content] = getStringOption(this[$content], ["auto", "0", "1"]); + } +} +class Manifest extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "manifest", true); + this.action = getStringOption(attributes.action, ["include", "all", "exclude"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.ref = new XFAObjectArray(); + } +} +class Margin extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "margin", true); + this.bottomInset = getMeasurement(attributes.bottomInset, "0"); + this.id = attributes.id || ""; + this.leftInset = getMeasurement(attributes.leftInset, "0"); + this.rightInset = getMeasurement(attributes.rightInset, "0"); + this.topInset = getMeasurement(attributes.topInset, "0"); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toStyle]() { + return { + margin: measureToString(this.topInset) + " " + measureToString(this.rightInset) + " " + measureToString(this.bottomInset) + " " + measureToString(this.leftInset) + }; + } +} +class Mdp extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "mdp"); + this.id = attributes.id || ""; + this.permissions = getInteger({ + data: attributes.permissions, + defaultValue: 2, + validate: x => x === 1 || x === 3 + }); + this.signatureType = getStringOption(attributes.signatureType, ["filler", "author"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Medium extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "medium"); + this.id = attributes.id || ""; + this.imagingBBox = getBBox(attributes.imagingBBox); + this.long = getMeasurement(attributes.long); + this.orientation = getStringOption(attributes.orientation, ["portrait", "landscape"]); + this.short = getMeasurement(attributes.short); + this.stock = attributes.stock || ""; + this.trayIn = getStringOption(attributes.trayIn, ["auto", "delegate", "pageFront"]); + this.trayOut = getStringOption(attributes.trayOut, ["auto", "delegate"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Message extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "message", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.text = new XFAObjectArray(); + } +} +class NumericEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "numericEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + const field = this[$getParent]()[$getParent](); + const html = { + name: "input", + attributes: { + type: "text", + fieldId: field[$uid], + dataId: field[$data]?.[$uid] || field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Occur extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "occur", true); + this.id = attributes.id || ""; + this.initial = attributes.initial !== "" ? getInteger({ + data: attributes.initial, + defaultValue: "", + validate: x => true + }) : ""; + this.max = attributes.max !== "" ? getInteger({ + data: attributes.max, + defaultValue: 1, + validate: x => true + }) : ""; + this.min = attributes.min !== "" ? getInteger({ + data: attributes.min, + defaultValue: 1, + validate: x => true + }) : ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$clean]() { + const parent = this[$getParent](); + const originalMin = this.min; + if (this.min === "") { + this.min = parent instanceof PageArea || parent instanceof PageSet ? 0 : 1; + } + if (this.max === "") { + if (originalMin === "") { + this.max = parent instanceof PageArea || parent instanceof PageSet ? -1 : 1; + } else { + this.max = this.min; + } + } + if (this.max !== -1 && this.max < this.min) { + this.max = this.min; + } + if (this.initial === "") { + this.initial = parent instanceof Template ? 1 : this.min; + } + } +} +class Oid extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "oid"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Oids extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "oids", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.oid = new XFAObjectArray(); + } +} +class Overflow extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "overflow"); + this.id = attributes.id || ""; + this.leader = attributes.leader || ""; + this.target = attributes.target || ""; + this.trailer = attributes.trailer || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$getExtra]() { + if (!this[$extra]) { + const parent = this[$getParent](); + const root = this[$getTemplateRoot](); + const target = root[$searchNode](this.target, parent); + const leader = root[$searchNode](this.leader, parent); + const trailer = root[$searchNode](this.trailer, parent); + this[$extra] = { + target: target?.[0] || null, + leader: leader?.[0] || null, + trailer: trailer?.[0] || null, + addLeader: false, + addTrailer: false + }; + } + return this[$extra]; + } +} +class PageArea extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pageArea", true); + this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, ["any", "blank", "notBlank"]); + this.id = attributes.id || ""; + this.initialNumber = getInteger({ + data: attributes.initialNumber, + defaultValue: 1, + validate: x => true + }); + this.name = attributes.name || ""; + this.numbered = getInteger({ + data: attributes.numbered, + defaultValue: 1, + validate: x => true + }); + this.oddOrEven = getStringOption(attributes.oddOrEven, ["any", "even", "odd"]); + this.pagePosition = getStringOption(attributes.pagePosition, ["any", "first", "last", "only", "rest"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.desc = null; + this.extras = null; + this.medium = null; + this.occur = null; + this.area = new XFAObjectArray(); + this.contentArea = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + } + [$isUsable]() { + if (!this[$extra]) { + this[$extra] = { + numberOfUse: 0 + }; + return true; + } + return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max; + } + [$cleanPage]() { + delete this[$extra]; + } + [$getNextPage]() { + if (!this[$extra]) { + this[$extra] = { + numberOfUse: 0 + }; + } + const parent = this[$getParent](); + if (parent.relation === "orderedOccurrence") { + if (this[$isUsable]()) { + this[$extra].numberOfUse += 1; + return this; + } + } + return parent[$getNextPage](); + } + [$getAvailableSpace]() { + return this[$extra].space || { + width: 0, + height: 0 + }; + } + [$toHTML]() { + if (!this[$extra]) { + this[$extra] = { + numberOfUse: 1 + }; + } + const children = []; + this[$extra].children = children; + const style = Object.create(null); + if (this.medium && this.medium.short && this.medium.long) { + style.width = measureToString(this.medium.short); + style.height = measureToString(this.medium.long); + this[$extra].space = { + width: this.medium.short, + height: this.medium.long + }; + if (this.medium.orientation === "landscape") { + const x = style.width; + style.width = style.height; + style.height = x; + this[$extra].space = { + width: this.medium.long, + height: this.medium.short + }; + } + } else { + warn("XFA - No medium specified in pageArea: please file a bug."); + } + this[$childrenToHTML]({ + filter: new Set(["area", "draw", "field", "subform"]), + include: true + }); + this[$childrenToHTML]({ + filter: new Set(["contentArea"]), + include: true + }); + return HTMLResult.success({ + name: "div", + children, + attributes: { + class: ["xfaPage"], + id: this[$uid], + style, + xfaName: this.name + } + }); + } +} +class PageSet extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pageSet", true); + this.duplexImposition = getStringOption(attributes.duplexImposition, ["longEdge", "shortEdge"]); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relation = getStringOption(attributes.relation, ["orderedOccurrence", "duplexPaginated", "simplexPaginated"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.occur = null; + this.pageArea = new XFAObjectArray(); + this.pageSet = new XFAObjectArray(); + } + [$cleanPage]() { + for (const page of this.pageArea.children) { + page[$cleanPage](); + } + for (const page of this.pageSet.children) { + page[$cleanPage](); + } + } + [$isUsable]() { + return !this.occur || this.occur.max === -1 || this[$extra].numberOfUse < this.occur.max; + } + [$getNextPage]() { + if (!this[$extra]) { + this[$extra] = { + numberOfUse: 1, + pageIndex: -1, + pageSetIndex: -1 + }; + } + if (this.relation === "orderedOccurrence") { + if (this[$extra].pageIndex + 1 < this.pageArea.children.length) { + this[$extra].pageIndex += 1; + const pageArea = this.pageArea.children[this[$extra].pageIndex]; + return pageArea[$getNextPage](); + } + if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) { + this[$extra].pageSetIndex += 1; + return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage](); + } + if (this[$isUsable]()) { + this[$extra].numberOfUse += 1; + this[$extra].pageIndex = -1; + this[$extra].pageSetIndex = -1; + return this[$getNextPage](); + } + const parent = this[$getParent](); + if (parent instanceof PageSet) { + return parent[$getNextPage](); + } + this[$cleanPage](); + return this[$getNextPage](); + } + const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber; + const parity = pageNumber % 2 === 0 ? "even" : "odd"; + const position = pageNumber === 0 ? "first" : "rest"; + let page = this.pageArea.children.find(p => p.oddOrEven === parity && p.pagePosition === position); + if (page) { + return page; + } + page = this.pageArea.children.find(p => p.oddOrEven === "any" && p.pagePosition === position); + if (page) { + return page; + } + page = this.pageArea.children.find(p => p.oddOrEven === "any" && p.pagePosition === "any"); + if (page) { + return page; + } + return this.pageArea.children[0]; + } +} +class Para extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "para", true); + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.lineHeight = attributes.lineHeight ? getMeasurement(attributes.lineHeight, "0pt") : ""; + this.marginLeft = attributes.marginLeft ? getMeasurement(attributes.marginLeft, "0pt") : ""; + this.marginRight = attributes.marginRight ? getMeasurement(attributes.marginRight, "0pt") : ""; + this.orphans = getInteger({ + data: attributes.orphans, + defaultValue: 0, + validate: x => x >= 0 + }); + this.preserve = attributes.preserve || ""; + this.radixOffset = attributes.radixOffset ? getMeasurement(attributes.radixOffset, "0pt") : ""; + this.spaceAbove = attributes.spaceAbove ? getMeasurement(attributes.spaceAbove, "0pt") : ""; + this.spaceBelow = attributes.spaceBelow ? getMeasurement(attributes.spaceBelow, "0pt") : ""; + this.tabDefault = attributes.tabDefault ? getMeasurement(this.tabDefault) : ""; + this.tabStops = (attributes.tabStops || "").trim().split(/\s+/).map((x, i) => i % 2 === 1 ? getMeasurement(x) : x); + this.textIndent = attributes.textIndent ? getMeasurement(attributes.textIndent, "0pt") : ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.vAlign = getStringOption(attributes.vAlign, ["top", "bottom", "middle"]); + this.widows = getInteger({ + data: attributes.widows, + defaultValue: 0, + validate: x => x >= 0 + }); + this.hyphenation = null; + } + [$toStyle]() { + const style = toStyle(this, "hAlign"); + if (this.marginLeft !== "") { + style.paddingLeft = measureToString(this.marginLeft); + } + if (this.marginRight !== "") { + style.paddingRight = measureToString(this.marginRight); + } + if (this.spaceAbove !== "") { + style.paddingTop = measureToString(this.spaceAbove); + } + if (this.spaceBelow !== "") { + style.paddingBottom = measureToString(this.spaceBelow); + } + if (this.textIndent !== "") { + style.textIndent = measureToString(this.textIndent); + fixTextIndent(style); + } + if (this.lineHeight > 0) { + style.lineHeight = measureToString(this.lineHeight); + } + if (this.tabDefault !== "") { + style.tabSize = measureToString(this.tabDefault); + } + if (this.tabStops.length > 0) {} + if (this.hyphenatation) { + Object.assign(style, this.hyphenatation[$toStyle]()); + } + return style; + } +} +class PasswordEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "passwordEdit", true); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.passwordChar = attributes.passwordChar || "*"; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.margin = null; + } +} +class template_Pattern extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "pattern", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["crossHatch", "crossDiagonal", "diagonalLeft", "diagonalRight", "horizontal", "vertical"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + const width = 5; + const cmd = "repeating-linear-gradient"; + const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`; + switch (this.type) { + case "crossHatch": + return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`; + case "crossDiagonal": + return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`; + case "diagonalLeft": + return `${cmd}(45deg,${colors})`; + case "diagonalRight": + return `${cmd}(-45deg,${colors})`; + case "horizontal": + return `${cmd}(to top,${colors})`; + case "vertical": + return `${cmd}(to right,${colors})`; + } + return ""; + } +} +class Picture extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "picture"); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Proto extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "proto", true); + this.appearanceFilter = new XFAObjectArray(); + this.arc = new XFAObjectArray(); + this.area = new XFAObjectArray(); + this.assist = new XFAObjectArray(); + this.barcode = new XFAObjectArray(); + this.bindItems = new XFAObjectArray(); + this.bookend = new XFAObjectArray(); + this.boolean = new XFAObjectArray(); + this.border = new XFAObjectArray(); + this.break = new XFAObjectArray(); + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.button = new XFAObjectArray(); + this.calculate = new XFAObjectArray(); + this.caption = new XFAObjectArray(); + this.certificate = new XFAObjectArray(); + this.certificates = new XFAObjectArray(); + this.checkButton = new XFAObjectArray(); + this.choiceList = new XFAObjectArray(); + this.color = new XFAObjectArray(); + this.comb = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.contentArea = new XFAObjectArray(); + this.corner = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.dateTimeEdit = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.defaultUi = new XFAObjectArray(); + this.desc = new XFAObjectArray(); + this.digestMethod = new XFAObjectArray(); + this.digestMethods = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.edge = new XFAObjectArray(); + this.encoding = new XFAObjectArray(); + this.encodings = new XFAObjectArray(); + this.encrypt = new XFAObjectArray(); + this.encryptData = new XFAObjectArray(); + this.encryption = new XFAObjectArray(); + this.encryptionMethod = new XFAObjectArray(); + this.encryptionMethods = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.execute = new XFAObjectArray(); + this.extras = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.fill = new XFAObjectArray(); + this.filter = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.font = new XFAObjectArray(); + this.format = new XFAObjectArray(); + this.handler = new XFAObjectArray(); + this.hyphenation = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.imageEdit = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.issuers = new XFAObjectArray(); + this.items = new XFAObjectArray(); + this.keep = new XFAObjectArray(); + this.keyUsage = new XFAObjectArray(); + this.line = new XFAObjectArray(); + this.linear = new XFAObjectArray(); + this.lockDocument = new XFAObjectArray(); + this.manifest = new XFAObjectArray(); + this.margin = new XFAObjectArray(); + this.mdp = new XFAObjectArray(); + this.medium = new XFAObjectArray(); + this.message = new XFAObjectArray(); + this.numericEdit = new XFAObjectArray(); + this.occur = new XFAObjectArray(); + this.oid = new XFAObjectArray(); + this.oids = new XFAObjectArray(); + this.overflow = new XFAObjectArray(); + this.pageArea = new XFAObjectArray(); + this.pageSet = new XFAObjectArray(); + this.para = new XFAObjectArray(); + this.passwordEdit = new XFAObjectArray(); + this.pattern = new XFAObjectArray(); + this.picture = new XFAObjectArray(); + this.radial = new XFAObjectArray(); + this.reason = new XFAObjectArray(); + this.reasons = new XFAObjectArray(); + this.rectangle = new XFAObjectArray(); + this.ref = new XFAObjectArray(); + this.script = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + this.signData = new XFAObjectArray(); + this.signature = new XFAObjectArray(); + this.signing = new XFAObjectArray(); + this.solid = new XFAObjectArray(); + this.speak = new XFAObjectArray(); + this.stipple = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + this.subjectDN = new XFAObjectArray(); + this.subjectDNs = new XFAObjectArray(); + this.submit = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.textEdit = new XFAObjectArray(); + this.time = new XFAObjectArray(); + this.timeStamp = new XFAObjectArray(); + this.toolTip = new XFAObjectArray(); + this.traversal = new XFAObjectArray(); + this.traverse = new XFAObjectArray(); + this.ui = new XFAObjectArray(); + this.validate = new XFAObjectArray(); + this.value = new XFAObjectArray(); + this.variables = new XFAObjectArray(); + } +} +class Radial extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "radial", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["toEdge", "toCenter"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](startColor) { + startColor = startColor ? startColor[$toStyle]() : "#FFFFFF"; + const endColor = this.color ? this.color[$toStyle]() : "#000000"; + const colors = this.type === "toEdge" ? `${startColor},${endColor}` : `${endColor},${startColor}`; + return `radial-gradient(circle at center, ${colors})`; + } +} +class Reason extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "reason"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Reasons extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "reasons", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.reason = new XFAObjectArray(); + } +} +class Rectangle extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "rectangle", true); + this.hand = getStringOption(attributes.hand, ["even", "left", "right"]); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.corner = new XFAObjectArray(4); + this.edge = new XFAObjectArray(4); + this.fill = null; + } + [$toHTML]() { + const edge = this.edge.children.length ? this.edge.children[0] : new Edge({}); + const edgeStyle = edge[$toStyle](); + const style = Object.create(null); + if (this.fill?.presence === "visible") { + Object.assign(style, this.fill[$toStyle]()); + } else { + style.fill = "transparent"; + } + style.strokeWidth = measureToString(edge.presence === "visible" ? edge.thickness : 0); + style.stroke = edgeStyle.color; + const corner = this.corner.children.length ? this.corner.children[0] : new Corner({}); + const cornerStyle = corner[$toStyle](); + const rect = { + name: "rect", + attributes: { + xmlns: SVG_NS, + width: "100%", + height: "100%", + x: 0, + y: 0, + rx: cornerStyle.radius, + ry: cornerStyle.radius, + style + } + }; + const svg = { + name: "svg", + children: [rect], + attributes: { + xmlns: SVG_NS, + style: { + overflow: "visible" + }, + width: "100%", + height: "100%" + } + }; + const parent = this[$getParent]()[$getParent](); + if (hasMargin(parent)) { + return HTMLResult.success({ + name: "div", + attributes: { + style: { + display: "inline", + width: "100%", + height: "100%" + } + }, + children: [svg] + }); + } + svg.attributes.style.position = "absolute"; + return HTMLResult.success(svg); + } +} +class RefElement extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "ref"); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Script extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "script"); + this.binding = attributes.binding || ""; + this.contentType = attributes.contentType || ""; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.runAt = getStringOption(attributes.runAt, ["client", "both", "server"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SetProperty extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "setProperty"); + this.connection = attributes.connection || ""; + this.ref = attributes.ref || ""; + this.target = attributes.target || ""; + } +} +class SignData extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signData", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["sign", "clear", "verify"]); + this.ref = attributes.ref || ""; + this.target = attributes.target || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.filter = null; + this.manifest = null; + } +} +class Signature extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signature", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["PDF1.3", "PDF1.6"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.border = null; + this.extras = null; + this.filter = null; + this.manifest = null; + this.margin = null; + } +} +class Signing extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "signing", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.certificate = new XFAObjectArray(); + } +} +class Solid extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "solid", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + } + [$toStyle](startColor) { + return startColor ? startColor[$toStyle]() : "#FFFFFF"; + } +} +class Speak extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "speak"); + this.disable = getInteger({ + data: attributes.disable, + defaultValue: 0, + validate: x => x === 1 + }); + this.id = attributes.id || ""; + this.priority = getStringOption(attributes.priority, ["custom", "caption", "name", "toolTip"]); + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Stipple extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "stipple", true); + this.id = attributes.id || ""; + this.rate = getInteger({ + data: attributes.rate, + defaultValue: 50, + validate: x => x >= 0 && x <= 100 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.color = null; + this.extras = null; + } + [$toStyle](bgColor) { + const alpha = this.rate / 100; + return Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)); + } +} +class Subform extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subform", true); + this.access = getStringOption(attributes.access, ["open", "nonInteractive", "protected", "readOnly"]); + this.allowMacro = getInteger({ + data: attributes.allowMacro, + defaultValue: 0, + validate: x => x === 1 + }); + this.anchorType = getStringOption(attributes.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); + this.colSpan = getInteger({ + data: attributes.colSpan, + defaultValue: 1, + validate: n => n >= 1 || n === -1 + }); + this.columnWidths = (attributes.columnWidths || "").trim().split(/\s+/).map(x => x === "-1" ? -1 : getMeasurement(x)); + this.h = attributes.h ? getMeasurement(attributes.h) : ""; + this.hAlign = getStringOption(attributes.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); + this.id = attributes.id || ""; + this.layout = getStringOption(attributes.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); + this.locale = attributes.locale || ""; + this.maxH = getMeasurement(attributes.maxH, "0pt"); + this.maxW = getMeasurement(attributes.maxW, "0pt"); + this.mergeMode = getStringOption(attributes.mergeMode, ["consumeData", "matchTemplate"]); + this.minH = getMeasurement(attributes.minH, "0pt"); + this.minW = getMeasurement(attributes.minW, "0pt"); + this.name = attributes.name || ""; + this.presence = getStringOption(attributes.presence, ["visible", "hidden", "inactive", "invisible"]); + this.relevant = getRelevant(attributes.relevant); + this.restoreState = getStringOption(attributes.restoreState, ["manual", "auto"]); + this.scope = getStringOption(attributes.scope, ["name", "none"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.w = attributes.w ? getMeasurement(attributes.w) : ""; + this.x = getMeasurement(attributes.x, "0pt"); + this.y = getMeasurement(attributes.y, "0pt"); + this.assist = null; + this.bind = null; + this.bookend = null; + this.border = null; + this.break = null; + this.calculate = null; + this.desc = null; + this.extras = null; + this.keep = null; + this.margin = null; + this.occur = null; + this.overflow = null; + this.pageSet = null; + this.para = null; + this.traversal = null; + this.validate = null; + this.variables = null; + this.area = new XFAObjectArray(); + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.connect = new XFAObjectArray(); + this.draw = new XFAObjectArray(); + this.event = new XFAObjectArray(); + this.exObject = new XFAObjectArray(); + this.exclGroup = new XFAObjectArray(); + this.field = new XFAObjectArray(); + this.proto = new XFAObjectArray(); + this.setProperty = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + [$getSubformParent]() { + const parent = this[$getParent](); + if (parent instanceof SubformSet) { + return parent[$getSubformParent](); + } + return parent; + } + [$isBindable]() { + return true; + } + [$isThereMoreWidth]() { + return this.layout.endsWith("-tb") && this[$extra].attempt === 0 && this[$extra].numberInLine > 0 || this[$getParent]()[$isThereMoreWidth](); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$flushHTML]() { + return flushHTML(this); + } + [$addHTML](html, bbox) { + addHTML(this, html, bbox); + } + [$getAvailableSpace]() { + return getAvailableSpace(this); + } + [$isSplittable]() { + const parent = this[$getSubformParent](); + if (!parent[$isSplittable]()) { + return false; + } + if (this[$extra]._isSplittable !== undefined) { + return this[$extra]._isSplittable; + } + if (this.layout === "position" || this.layout.includes("row")) { + this[$extra]._isSplittable = false; + return false; + } + if (this.keep && this.keep.intact !== "none") { + this[$extra]._isSplittable = false; + return false; + } + if (parent.layout?.endsWith("-tb") && parent[$extra].numberInLine !== 0) { + return false; + } + this[$extra]._isSplittable = true; + return true; + } + [$toHTML](availableSpace) { + setTabIndex(this); + if (this.break) { + if (this.break.after !== "auto" || this.break.afterTarget !== "") { + const node = new BreakAfter({ + targetType: this.break.after, + target: this.break.afterTarget, + startNew: this.break.startNew.toString() + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.breakAfter.push(node); + } + if (this.break.before !== "auto" || this.break.beforeTarget !== "") { + const node = new BreakBefore({ + targetType: this.break.before, + target: this.break.beforeTarget, + startNew: this.break.startNew.toString() + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.breakBefore.push(node); + } + if (this.break.overflowTarget !== "") { + const node = new Overflow({ + target: this.break.overflowTarget, + leader: this.break.overflowLeader, + trailer: this.break.overflowTrailer + }); + node[$globalData] = this[$globalData]; + this[$appendChild](node); + this.overflow.push(node); + } + this[$removeChild](this.break); + this.break = null; + } + if (this.presence === "hidden" || this.presence === "inactive") { + return HTMLResult.EMPTY; + } + if (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) { + warn("XFA - Several breakBefore or breakAfter in subforms: please file a bug."); + } + if (this.breakBefore.children.length >= 1) { + const breakBefore = this.breakBefore.children[0]; + if (handleBreak(breakBefore)) { + return HTMLResult.breakNode(breakBefore); + } + } + if (this[$extra]?.afterBreakAfter) { + return HTMLResult.EMPTY; + } + fixDimensions(this); + const children = []; + const attributes = { + id: this[$uid], + class: [] + }; + setAccess(this, attributes.class); + if (!this[$extra]) { + this[$extra] = Object.create(null); + } + Object.assign(this[$extra], { + children, + line: null, + attributes, + attempt: 0, + numberInLine: 0, + availableSpace: { + width: Math.min(this.w || Infinity, availableSpace.width), + height: Math.min(this.h || Infinity, availableSpace.height) + }, + width: 0, + height: 0, + prevHeight: 0, + currentWidth: 0 + }); + const root = this[$getTemplateRoot](); + const savedNoLayoutFailure = root[$extra].noLayoutFailure; + const isSplittable = this[$isSplittable](); + if (!isSplittable) { + setFirstUnsplittable(this); + } + if (!checkDimensions(this, availableSpace)) { + return HTMLResult.FAILURE; + } + const filter = new Set(["area", "draw", "exclGroup", "field", "subform", "subformSet"]); + if (this.layout.includes("row")) { + const columnWidths = this[$getSubformParent]().columnWidths; + if (Array.isArray(columnWidths) && columnWidths.length > 0) { + this[$extra].columnWidths = columnWidths; + this[$extra].currentColumn = 0; + } + } + const style = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"); + const classNames = ["xfaSubform"]; + const cl = layoutClass(this); + if (cl) { + classNames.push(cl); + } + attributes.style = style; + attributes.class = classNames; + if (this.name) { + attributes.xfaName = this.name; + } + if (this.overflow) { + const overflowExtra = this.overflow[$getExtra](); + if (overflowExtra.addLeader) { + overflowExtra.addLeader = false; + handleOverflow(this, overflowExtra.leader, availableSpace); + } + } + this[$pushPara](); + const isLrTb = this.layout === "lr-tb" || this.layout === "rl-tb"; + const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1; + for (; this[$extra].attempt < maxRun; this[$extra].attempt++) { + if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) { + this[$extra].numberInLine = 0; + } + const result = this[$childrenToHTML]({ + filter, + include: true + }); + if (result.success) { + break; + } + if (result.isBreak()) { + this[$popPara](); + return result; + } + if (isLrTb && this[$extra].attempt === 0 && this[$extra].numberInLine === 0 && !root[$extra].noLayoutFailure) { + this[$extra].attempt = maxRun; + break; + } + } + this[$popPara](); + if (!isSplittable) { + unsetFirstUnsplittable(this); + } + root[$extra].noLayoutFailure = savedNoLayoutFailure; + if (this[$extra].attempt === maxRun) { + if (this.overflow) { + this[$getTemplateRoot]()[$extra].overflowNode = this.overflow; + } + if (!isSplittable) { + delete this[$extra]; + } + return HTMLResult.FAILURE; + } + if (this.overflow) { + const overflowExtra = this.overflow[$getExtra](); + if (overflowExtra.addTrailer) { + overflowExtra.addTrailer = false; + handleOverflow(this, overflowExtra.trailer, availableSpace); + } + } + let marginH = 0; + let marginV = 0; + if (this.margin) { + marginH = this.margin.leftInset + this.margin.rightInset; + marginV = this.margin.topInset + this.margin.bottomInset; + } + const width = Math.max(this[$extra].width + marginH, this.w || 0); + const height = Math.max(this[$extra].height + marginV, this.h || 0); + const bbox = [this.x, this.y, width, height]; + if (this.w === "") { + style.width = measureToString(width); + } + if (this.h === "") { + style.height = measureToString(height); + } + if ((style.width === "0px" || style.height === "0px") && children.length === 0) { + return HTMLResult.EMPTY; + } + const html = { + name: "div", + attributes, + children + }; + applyAssist(this, attributes); + const result = HTMLResult.success(createWrapper(this, html), bbox); + if (this.breakAfter.children.length >= 1) { + const breakAfter = this.breakAfter.children[0]; + if (handleBreak(breakAfter)) { + this[$extra].afterBreakAfter = result; + return HTMLResult.breakNode(breakAfter); + } + } + delete this[$extra]; + return result; + } +} +class SubformSet extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subformSet", true); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.relation = getStringOption(attributes.relation, ["ordered", "choice", "unordered"]); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.bookend = null; + this.break = null; + this.desc = null; + this.extras = null; + this.occur = null; + this.overflow = null; + this.breakAfter = new XFAObjectArray(); + this.breakBefore = new XFAObjectArray(); + this.subform = new XFAObjectArray(); + this.subformSet = new XFAObjectArray(); + } + *[$getContainedChildren]() { + yield* getContainedChildren(this); + } + [$getSubformParent]() { + let parent = this[$getParent](); + while (!(parent instanceof Subform)) { + parent = parent[$getParent](); + } + return parent; + } + [$isBindable]() { + return true; + } +} +class SubjectDN extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subjectDN"); + this.delimiter = attributes.delimiter || ","; + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + this[$content] = new Map(this[$content].split(this.delimiter).map(kv => { + kv = kv.split("=", 2); + kv[0] = kv[0].trim(); + return kv; + })); + } +} +class SubjectDNs extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "subjectDNs", true); + this.id = attributes.id || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.subjectDN = new XFAObjectArray(); + } +} +class Submit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "submit", true); + this.embedPDF = getInteger({ + data: attributes.embedPDF, + defaultValue: 0, + validate: x => x === 1 + }); + this.format = getStringOption(attributes.format, ["xdp", "formdata", "pdf", "urlencoded", "xfd", "xml"]); + this.id = attributes.id || ""; + this.target = attributes.target || ""; + this.textEncoding = getKeyword({ + data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : "", + defaultValue: "", + validate: k => ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(k) || k.match(/iso-8859-\d{2}/) + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.xdpContent = attributes.xdpContent || ""; + this.encrypt = null; + this.encryptData = new XFAObjectArray(); + this.signData = new XFAObjectArray(); + } +} +class Template extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "template", true); + this.baseProfile = getStringOption(attributes.baseProfile, ["full", "interactiveForms"]); + this.extras = null; + this.subform = new XFAObjectArray(); + } + [$finalize]() { + if (this.subform.children.length === 0) { + warn("XFA - No subforms in template node."); + } + if (this.subform.children.length >= 2) { + warn("XFA - Several subforms in template node: please file a bug."); + } + this[$tabIndex] = DEFAULT_TAB_INDEX; + } + [$isSplittable]() { + return true; + } + [$searchNode](expr, container) { + if (expr.startsWith("#")) { + return [this[$ids].get(expr.slice(1))]; + } + return searchNode(this, container, expr, true, true); + } + *[$toPages]() { + if (!this.subform.children.length) { + return HTMLResult.success({ + name: "div", + children: [] + }); + } + this[$extra] = { + overflowNode: null, + firstUnsplittable: null, + currentContentArea: null, + currentPageArea: null, + noLayoutFailure: false, + pageNumber: 1, + pagePosition: "first", + oddOrEven: "odd", + blankOrNotBlank: "nonBlank", + paraStack: [] + }; + const root = this.subform.children[0]; + root.pageSet[$cleanPage](); + const pageAreas = root.pageSet.pageArea.children; + const mainHtml = { + name: "div", + children: [] + }; + let pageArea = null; + let breakBefore = null; + let breakBeforeTarget = null; + if (root.breakBefore.children.length >= 1) { + breakBefore = root.breakBefore.children[0]; + breakBeforeTarget = breakBefore.target; + } else if (root.subform.children.length >= 1 && root.subform.children[0].breakBefore.children.length >= 1) { + breakBefore = root.subform.children[0].breakBefore.children[0]; + breakBeforeTarget = breakBefore.target; + } else if (root.break?.beforeTarget) { + breakBefore = root.break; + breakBeforeTarget = breakBefore.beforeTarget; + } else if (root.subform.children.length >= 1 && root.subform.children[0].break?.beforeTarget) { + breakBefore = root.subform.children[0].break; + breakBeforeTarget = breakBefore.beforeTarget; + } + if (breakBefore) { + const target = this[$searchNode](breakBeforeTarget, breakBefore[$getParent]()); + if (target instanceof PageArea) { + pageArea = target; + breakBefore[$extra] = {}; + } + } + if (!pageArea) { + pageArea = pageAreas[0]; + } + pageArea[$extra] = { + numberOfUse: 1 + }; + const pageAreaParent = pageArea[$getParent](); + pageAreaParent[$extra] = { + numberOfUse: 1, + pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea), + pageSetIndex: 0 + }; + let targetPageArea; + let leader = null; + let trailer = null; + let hasSomething = true; + let hasSomethingCounter = 0; + let startIndex = 0; + while (true) { + if (!hasSomething) { + mainHtml.children.pop(); + if (++hasSomethingCounter === MAX_EMPTY_PAGES) { + warn("XFA - Something goes wrong: please file a bug."); + return mainHtml; + } + } else { + hasSomethingCounter = 0; + } + targetPageArea = null; + this[$extra].currentPageArea = pageArea; + const page = pageArea[$toHTML]().html; + mainHtml.children.push(page); + if (leader) { + this[$extra].noLayoutFailure = true; + page.children.push(leader[$toHTML](pageArea[$extra].space).html); + leader = null; + } + if (trailer) { + this[$extra].noLayoutFailure = true; + page.children.push(trailer[$toHTML](pageArea[$extra].space).html); + trailer = null; + } + const contentAreas = pageArea.contentArea.children; + const htmlContentAreas = page.children.filter(node => node.attributes.class.includes("xfaContentarea")); + hasSomething = false; + this[$extra].firstUnsplittable = null; + this[$extra].noLayoutFailure = false; + const flush = index => { + const html = root[$flushHTML](); + if (html) { + hasSomething ||= html.children?.length > 0; + htmlContentAreas[index].children.push(html); + } + }; + for (let i = startIndex, ii = contentAreas.length; i < ii; i++) { + const contentArea = this[$extra].currentContentArea = contentAreas[i]; + const space = { + width: contentArea.w, + height: contentArea.h + }; + startIndex = 0; + if (leader) { + htmlContentAreas[i].children.push(leader[$toHTML](space).html); + leader = null; + } + if (trailer) { + htmlContentAreas[i].children.push(trailer[$toHTML](space).html); + trailer = null; + } + const html = root[$toHTML](space); + if (html.success) { + if (html.html) { + hasSomething ||= html.html.children?.length > 0; + htmlContentAreas[i].children.push(html.html); + } else if (!hasSomething && mainHtml.children.length > 1) { + mainHtml.children.pop(); + } + return mainHtml; + } + if (html.isBreak()) { + const node = html.breakNode; + flush(i); + if (node.targetType === "auto") { + continue; + } + if (node.leader) { + leader = this[$searchNode](node.leader, node[$getParent]()); + leader = leader ? leader[0] : null; + } + if (node.trailer) { + trailer = this[$searchNode](node.trailer, node[$getParent]()); + trailer = trailer ? trailer[0] : null; + } + if (node.targetType === "pageArea") { + targetPageArea = node[$extra].target; + i = Infinity; + } else if (!node[$extra].target) { + i = node[$extra].index; + } else { + targetPageArea = node[$extra].target; + startIndex = node[$extra].index + 1; + i = Infinity; + } + continue; + } + if (this[$extra].overflowNode) { + const node = this[$extra].overflowNode; + this[$extra].overflowNode = null; + const overflowExtra = node[$getExtra](); + const target = overflowExtra.target; + overflowExtra.addLeader = overflowExtra.leader !== null; + overflowExtra.addTrailer = overflowExtra.trailer !== null; + flush(i); + const currentIndex = i; + i = Infinity; + if (target instanceof PageArea) { + targetPageArea = target; + } else if (target instanceof ContentArea) { + const index = contentAreas.indexOf(target); + if (index !== -1) { + if (index > currentIndex) { + i = index - 1; + } else { + startIndex = index; + } + } else { + targetPageArea = target[$getParent](); + startIndex = targetPageArea.contentArea.children.indexOf(target); + } + } + continue; + } + flush(i); + } + this[$extra].pageNumber += 1; + if (targetPageArea) { + if (targetPageArea[$isUsable]()) { + targetPageArea[$extra].numberOfUse += 1; + } else { + targetPageArea = null; + } + } + pageArea = targetPageArea || pageArea[$getNextPage](); + yield null; + } + } +} +class Text extends ContentObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "text"); + this.id = attributes.id || ""; + this.maxChars = getInteger({ + data: attributes.maxChars, + defaultValue: 0, + validate: x => x >= 0 + }); + this.name = attributes.name || ""; + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$acceptWhitespace]() { + return true; + } + [$onChild](child) { + if (child[$namespaceId] === NamespaceIds.xhtml.id) { + this[$content] = child; + return true; + } + warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`); + return false; + } + [$onText](str) { + if (this[$content] instanceof XFAObject) { + return; + } + super[$onText](str); + } + [$finalize]() { + if (typeof this[$content] === "string") { + this[$content] = this[$content].replaceAll("\r\n", "\n"); + } + } + [$getExtra]() { + if (typeof this[$content] === "string") { + return this[$content].split(/[\u2029\u2028\n]/).reduce((acc, line) => { + if (line) { + acc.push(line); + } + return acc; + }, []).join("\n"); + } + return this[$content][$text](); + } + [$toHTML](availableSpace) { + if (typeof this[$content] === "string") { + const html = valueToHtml(this[$content]).html; + if (this[$content].includes("\u2029")) { + html.name = "div"; + html.children = []; + this[$content].split("\u2029").map(para => para.split(/[\u2028\n]/).reduce((acc, line) => { + acc.push({ + name: "span", + value: line + }, { + name: "br" + }); + return acc; + }, [])).forEach(lines => { + html.children.push({ + name: "p", + children: lines + }); + }); + } else if (/[\u2028\n]/.test(this[$content])) { + html.name = "div"; + html.children = []; + this[$content].split(/[\u2028\n]/).forEach(line => { + html.children.push({ + name: "span", + value: line + }, { + name: "br" + }); + }); + } + return HTMLResult.success(html); + } + return this[$content][$toHTML](availableSpace); + } +} +class TextEdit extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "textEdit", true); + this.allowRichText = getInteger({ + data: attributes.allowRichText, + defaultValue: 0, + validate: x => x === 1 + }); + this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, ["auto", "off", "on"]); + this.id = attributes.id || ""; + this.multiLine = getInteger({ + data: attributes.multiLine, + defaultValue: "", + validate: x => x === 0 || x === 1 + }); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, ["auto", "off", "on"]); + this.border = null; + this.comb = null; + this.extras = null; + this.margin = null; + } + [$toHTML](availableSpace) { + const style = toStyle(this, "border", "font", "margin"); + let html; + const field = this[$getParent]()[$getParent](); + if (this.multiLine === "") { + this.multiLine = field instanceof Draw ? 1 : 0; + } + if (this.multiLine === 1) { + html = { + name: "textarea", + attributes: { + dataId: field[$data]?.[$uid] || field[$uid], + fieldId: field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + } else { + html = { + name: "input", + attributes: { + type: "text", + dataId: field[$data]?.[$uid] || field[$uid], + fieldId: field[$uid], + class: ["xfaTextfield"], + style, + "aria-label": ariaLabel(field), + "aria-required": false + } + }; + } + if (isRequired(field)) { + html.attributes["aria-required"] = true; + html.attributes.required = true; + } + return HTMLResult.success({ + name: "label", + attributes: { + class: ["xfaLabel"] + }, + children: [html] + }); + } +} +class Time extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "time"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } + [$finalize]() { + const date = this[$content].trim(); + this[$content] = date ? new Date(date) : null; + } + [$toHTML](availableSpace) { + return valueToHtml(this[$content] ? this[$content].toString() : ""); + } +} +class TimeStamp extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "timeStamp"); + this.id = attributes.id || ""; + this.server = attributes.server || ""; + this.type = getStringOption(attributes.type, ["optional", "required"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class ToolTip extends StringObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "toolTip"); + this.id = attributes.id || ""; + this.rid = attributes.rid || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Traversal extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "traversal", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.traverse = new XFAObjectArray(); + } +} +class Traverse extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "traverse", true); + this.id = attributes.id || ""; + this.operation = getStringOption(attributes.operation, ["next", "back", "down", "first", "left", "right", "up"]); + this.ref = attributes.ref || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.script = null; + } + get name() { + return this.operation; + } + [$isTransparent]() { + return false; + } +} +class Ui extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "ui", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.picture = null; + this.barcode = null; + this.button = null; + this.checkButton = null; + this.choiceList = null; + this.dateTimeEdit = null; + this.defaultUi = null; + this.imageEdit = null; + this.numericEdit = null; + this.passwordEdit = null; + this.signature = null; + this.textEdit = null; + } + [$getExtra]() { + if (this[$extra] === undefined) { + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "extras" || name === "picture") { + continue; + } + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + this[$extra] = obj; + return obj; + } + this[$extra] = null; + } + return this[$extra]; + } + [$toHTML](availableSpace) { + const obj = this[$getExtra](); + if (obj) { + return obj[$toHTML](availableSpace); + } + return HTMLResult.EMPTY; + } +} +class Validate extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "validate", true); + this.formatTest = getStringOption(attributes.formatTest, ["warning", "disabled", "error"]); + this.id = attributes.id || ""; + this.nullTest = getStringOption(attributes.nullTest, ["disabled", "error", "warning"]); + this.scriptTest = getStringOption(attributes.scriptTest, ["error", "disabled", "warning"]); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.extras = null; + this.message = null; + this.picture = null; + this.script = null; + } +} +class Value extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "value", true); + this.id = attributes.id || ""; + this.override = getInteger({ + data: attributes.override, + defaultValue: 0, + validate: x => x === 1 + }); + this.relevant = getRelevant(attributes.relevant); + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.arc = null; + this.boolean = null; + this.date = null; + this.dateTime = null; + this.decimal = null; + this.exData = null; + this.float = null; + this.image = null; + this.integer = null; + this.line = null; + this.rectangle = null; + this.text = null; + this.time = null; + } + [$setValue](value) { + const parent = this[$getParent](); + if (parent instanceof Field) { + if (parent.ui?.imageEdit) { + if (!this.image) { + this.image = new Image({}); + this[$appendChild](this.image); + } + this.image[$content] = value[$content]; + return; + } + } + const valueName = value[$nodeName]; + if (this[valueName] !== null) { + this[valueName][$content] = value[$content]; + return; + } + for (const name of Object.getOwnPropertyNames(this)) { + const obj = this[name]; + if (obj instanceof XFAObject) { + this[name] = null; + this[$removeChild](obj); + } + } + this[value[$nodeName]] = value; + this[$appendChild](value); + } + [$text]() { + if (this.exData) { + if (typeof this.exData[$content] === "string") { + return this.exData[$content].trim(); + } + return this.exData[$content][$text]().trim(); + } + for (const name of Object.getOwnPropertyNames(this)) { + if (name === "image") { + continue; + } + const obj = this[name]; + if (obj instanceof XFAObject) { + return (obj[$content] || "").toString().trim(); + } + } + return null; + } + [$toHTML](availableSpace) { + for (const name of Object.getOwnPropertyNames(this)) { + const obj = this[name]; + if (!(obj instanceof XFAObject)) { + continue; + } + return obj[$toHTML](availableSpace); + } + return HTMLResult.EMPTY; + } +} +class Variables extends XFAObject { + constructor(attributes) { + super(TEMPLATE_NS_ID, "variables", true); + this.id = attributes.id || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + this.boolean = new XFAObjectArray(); + this.date = new XFAObjectArray(); + this.dateTime = new XFAObjectArray(); + this.decimal = new XFAObjectArray(); + this.exData = new XFAObjectArray(); + this.float = new XFAObjectArray(); + this.image = new XFAObjectArray(); + this.integer = new XFAObjectArray(); + this.manifest = new XFAObjectArray(); + this.script = new XFAObjectArray(); + this.text = new XFAObjectArray(); + this.time = new XFAObjectArray(); + } + [$isTransparent]() { + return true; + } +} +class TemplateNamespace { + static [$buildXFAObject](name, attributes) { + if (TemplateNamespace.hasOwnProperty(name)) { + const node = TemplateNamespace[name](attributes); + node[$setSetAttributes](attributes); + return node; + } + return undefined; + } + static appearanceFilter(attrs) { + return new AppearanceFilter(attrs); + } + static arc(attrs) { + return new Arc(attrs); + } + static area(attrs) { + return new Area(attrs); + } + static assist(attrs) { + return new Assist(attrs); + } + static barcode(attrs) { + return new Barcode(attrs); + } + static bind(attrs) { + return new Bind(attrs); + } + static bindItems(attrs) { + return new BindItems(attrs); + } + static bookend(attrs) { + return new Bookend(attrs); + } + static boolean(attrs) { + return new BooleanElement(attrs); + } + static border(attrs) { + return new Border(attrs); + } + static break(attrs) { + return new Break(attrs); + } + static breakAfter(attrs) { + return new BreakAfter(attrs); + } + static breakBefore(attrs) { + return new BreakBefore(attrs); + } + static button(attrs) { + return new Button(attrs); + } + static calculate(attrs) { + return new Calculate(attrs); + } + static caption(attrs) { + return new Caption(attrs); + } + static certificate(attrs) { + return new Certificate(attrs); + } + static certificates(attrs) { + return new Certificates(attrs); + } + static checkButton(attrs) { + return new CheckButton(attrs); + } + static choiceList(attrs) { + return new ChoiceList(attrs); + } + static color(attrs) { + return new Color(attrs); + } + static comb(attrs) { + return new Comb(attrs); + } + static connect(attrs) { + return new Connect(attrs); + } + static contentArea(attrs) { + return new ContentArea(attrs); + } + static corner(attrs) { + return new Corner(attrs); + } + static date(attrs) { + return new DateElement(attrs); + } + static dateTime(attrs) { + return new DateTime(attrs); + } + static dateTimeEdit(attrs) { + return new DateTimeEdit(attrs); + } + static decimal(attrs) { + return new Decimal(attrs); + } + static defaultUi(attrs) { + return new DefaultUi(attrs); + } + static desc(attrs) { + return new Desc(attrs); + } + static digestMethod(attrs) { + return new DigestMethod(attrs); + } + static digestMethods(attrs) { + return new DigestMethods(attrs); + } + static draw(attrs) { + return new Draw(attrs); + } + static edge(attrs) { + return new Edge(attrs); + } + static encoding(attrs) { + return new Encoding(attrs); + } + static encodings(attrs) { + return new Encodings(attrs); + } + static encrypt(attrs) { + return new Encrypt(attrs); + } + static encryptData(attrs) { + return new EncryptData(attrs); + } + static encryption(attrs) { + return new Encryption(attrs); + } + static encryptionMethod(attrs) { + return new EncryptionMethod(attrs); + } + static encryptionMethods(attrs) { + return new EncryptionMethods(attrs); + } + static event(attrs) { + return new Event(attrs); + } + static exData(attrs) { + return new ExData(attrs); + } + static exObject(attrs) { + return new ExObject(attrs); + } + static exclGroup(attrs) { + return new ExclGroup(attrs); + } + static execute(attrs) { + return new Execute(attrs); + } + static extras(attrs) { + return new Extras(attrs); + } + static field(attrs) { + return new Field(attrs); + } + static fill(attrs) { + return new Fill(attrs); + } + static filter(attrs) { + return new Filter(attrs); + } + static float(attrs) { + return new Float(attrs); + } + static font(attrs) { + return new template_Font(attrs); + } + static format(attrs) { + return new Format(attrs); + } + static handler(attrs) { + return new Handler(attrs); + } + static hyphenation(attrs) { + return new Hyphenation(attrs); + } + static image(attrs) { + return new Image(attrs); + } + static imageEdit(attrs) { + return new ImageEdit(attrs); + } + static integer(attrs) { + return new Integer(attrs); + } + static issuers(attrs) { + return new Issuers(attrs); + } + static items(attrs) { + return new Items(attrs); + } + static keep(attrs) { + return new Keep(attrs); + } + static keyUsage(attrs) { + return new KeyUsage(attrs); + } + static line(attrs) { + return new Line(attrs); + } + static linear(attrs) { + return new Linear(attrs); + } + static lockDocument(attrs) { + return new LockDocument(attrs); + } + static manifest(attrs) { + return new Manifest(attrs); + } + static margin(attrs) { + return new Margin(attrs); + } + static mdp(attrs) { + return new Mdp(attrs); + } + static medium(attrs) { + return new Medium(attrs); + } + static message(attrs) { + return new Message(attrs); + } + static numericEdit(attrs) { + return new NumericEdit(attrs); + } + static occur(attrs) { + return new Occur(attrs); + } + static oid(attrs) { + return new Oid(attrs); + } + static oids(attrs) { + return new Oids(attrs); + } + static overflow(attrs) { + return new Overflow(attrs); + } + static pageArea(attrs) { + return new PageArea(attrs); + } + static pageSet(attrs) { + return new PageSet(attrs); + } + static para(attrs) { + return new Para(attrs); + } + static passwordEdit(attrs) { + return new PasswordEdit(attrs); + } + static pattern(attrs) { + return new template_Pattern(attrs); + } + static picture(attrs) { + return new Picture(attrs); + } + static proto(attrs) { + return new Proto(attrs); + } + static radial(attrs) { + return new Radial(attrs); + } + static reason(attrs) { + return new Reason(attrs); + } + static reasons(attrs) { + return new Reasons(attrs); + } + static rectangle(attrs) { + return new Rectangle(attrs); + } + static ref(attrs) { + return new RefElement(attrs); + } + static script(attrs) { + return new Script(attrs); + } + static setProperty(attrs) { + return new SetProperty(attrs); + } + static signData(attrs) { + return new SignData(attrs); + } + static signature(attrs) { + return new Signature(attrs); + } + static signing(attrs) { + return new Signing(attrs); + } + static solid(attrs) { + return new Solid(attrs); + } + static speak(attrs) { + return new Speak(attrs); + } + static stipple(attrs) { + return new Stipple(attrs); + } + static subform(attrs) { + return new Subform(attrs); + } + static subformSet(attrs) { + return new SubformSet(attrs); + } + static subjectDN(attrs) { + return new SubjectDN(attrs); + } + static subjectDNs(attrs) { + return new SubjectDNs(attrs); + } + static submit(attrs) { + return new Submit(attrs); + } + static template(attrs) { + return new Template(attrs); + } + static text(attrs) { + return new Text(attrs); + } + static textEdit(attrs) { + return new TextEdit(attrs); + } + static time(attrs) { + return new Time(attrs); + } + static timeStamp(attrs) { + return new TimeStamp(attrs); + } + static toolTip(attrs) { + return new ToolTip(attrs); + } + static traversal(attrs) { + return new Traversal(attrs); + } + static traverse(attrs) { + return new Traverse(attrs); + } + static ui(attrs) { + return new Ui(attrs); + } + static validate(attrs) { + return new Validate(attrs); + } + static value(attrs) { + return new Value(attrs); + } + static variables(attrs) { + return new Variables(attrs); + } +} + +;// ./src/core/xfa/bind.js + + + + + + +const bind_NS_DATASETS = NamespaceIds.datasets.id; +function createText(content) { + const node = new Text({}); + node[$content] = content; + return node; +} +class Binder { + constructor(root) { + this.root = root; + this.datasets = root.datasets; + this.data = root.datasets?.data || new XmlObject(NamespaceIds.datasets.id, "data"); + this.emptyMerge = this.data[$getChildren]().length === 0; + this.root.form = this.form = root.template[$clone](); + } + _isConsumeData() { + return !this.emptyMerge && this._mergeMode; + } + _isMatchTemplate() { + return !this._isConsumeData(); + } + bind() { + this._bindElement(this.form, this.data); + return this.form; + } + getData() { + return this.data; + } + _bindValue(formNode, data, picture) { + formNode[$data] = data; + if (formNode[$hasSettableValue]()) { + if (data[$isDataValue]()) { + const value = data[$getDataValue](); + formNode[$setValue](createText(value)); + } else if (formNode instanceof Field && formNode.ui?.choiceList?.open === "multiSelect") { + const value = data[$getChildren]().map(child => child[$content].trim()).join("\n"); + formNode[$setValue](createText(value)); + } else if (this._isConsumeData()) { + warn(`XFA - Nodes haven't the same type.`); + } + } else if (!data[$isDataValue]() || this._isMatchTemplate()) { + this._bindElement(formNode, data); + } else { + warn(`XFA - Nodes haven't the same type.`); + } + } + _findDataByNameToConsume(name, isValue, dataNode, global) { + if (!name) { + return null; + } + let generator, match; + for (let i = 0; i < 3; i++) { + generator = dataNode[$getRealChildrenByNameIt](name, false, true); + while (true) { + match = generator.next().value; + if (!match) { + break; + } + if (isValue === match[$isDataValue]()) { + return match; + } + } + if (dataNode[$namespaceId] === NamespaceIds.datasets.id && dataNode[$nodeName] === "data") { + break; + } + dataNode = dataNode[$getParent](); + } + if (!global) { + return null; + } + generator = this.data[$getRealChildrenByNameIt](name, true, false); + match = generator.next().value; + if (match) { + return match; + } + generator = this.data[$getAttributeIt](name, true); + match = generator.next().value; + if (match?.[$isDataValue]()) { + return match; + } + return null; + } + _setProperties(formNode, dataNode) { + if (!formNode.hasOwnProperty("setProperty")) { + return; + } + for (const { + ref, + target, + connection + } of formNode.setProperty.children) { + if (connection) { + continue; + } + if (!ref) { + continue; + } + const nodes = searchNode(this.root, dataNode, ref, false, false); + if (!nodes) { + warn(`XFA - Invalid reference: ${ref}.`); + continue; + } + const [node] = nodes; + if (!node[$isDescendent](this.data)) { + warn(`XFA - Invalid node: must be a data node.`); + continue; + } + const targetNodes = searchNode(this.root, formNode, target, false, false); + if (!targetNodes) { + warn(`XFA - Invalid target: ${target}.`); + continue; + } + const [targetNode] = targetNodes; + if (!targetNode[$isDescendent](formNode)) { + warn(`XFA - Invalid target: must be a property or subproperty.`); + continue; + } + const targetParent = targetNode[$getParent](); + if (targetNode instanceof SetProperty || targetParent instanceof SetProperty) { + warn(`XFA - Invalid target: cannot be a setProperty or one of its properties.`); + continue; + } + if (targetNode instanceof BindItems || targetParent instanceof BindItems) { + warn(`XFA - Invalid target: cannot be a bindItems or one of its properties.`); + continue; + } + const content = node[$text](); + const name = targetNode[$nodeName]; + if (targetNode instanceof XFAAttribute) { + const attrs = Object.create(null); + attrs[name] = content; + const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]); + targetParent[name] = obj[name]; + continue; + } + if (!targetNode.hasOwnProperty($content)) { + warn(`XFA - Invalid node to use in setProperty`); + continue; + } + targetNode[$data] = node; + targetNode[$content] = content; + targetNode[$finalize](); + } + } + _bindItems(formNode, dataNode) { + if (!formNode.hasOwnProperty("items") || !formNode.hasOwnProperty("bindItems") || formNode.bindItems.isEmpty()) { + return; + } + for (const item of formNode.items.children) { + formNode[$removeChild](item); + } + formNode.items.clear(); + const labels = new Items({}); + const values = new Items({}); + formNode[$appendChild](labels); + formNode.items.push(labels); + formNode[$appendChild](values); + formNode.items.push(values); + for (const { + ref, + labelRef, + valueRef, + connection + } of formNode.bindItems.children) { + if (connection) { + continue; + } + if (!ref) { + continue; + } + const nodes = searchNode(this.root, dataNode, ref, false, false); + if (!nodes) { + warn(`XFA - Invalid reference: ${ref}.`); + continue; + } + for (const node of nodes) { + if (!node[$isDescendent](this.datasets)) { + warn(`XFA - Invalid ref (${ref}): must be a datasets child.`); + continue; + } + const labelNodes = searchNode(this.root, node, labelRef, true, false); + if (!labelNodes) { + warn(`XFA - Invalid label: ${labelRef}.`); + continue; + } + const [labelNode] = labelNodes; + if (!labelNode[$isDescendent](this.datasets)) { + warn(`XFA - Invalid label: must be a datasets child.`); + continue; + } + const valueNodes = searchNode(this.root, node, valueRef, true, false); + if (!valueNodes) { + warn(`XFA - Invalid value: ${valueRef}.`); + continue; + } + const [valueNode] = valueNodes; + if (!valueNode[$isDescendent](this.datasets)) { + warn(`XFA - Invalid value: must be a datasets child.`); + continue; + } + const label = createText(labelNode[$text]()); + const value = createText(valueNode[$text]()); + labels[$appendChild](label); + labels.text.push(label); + values[$appendChild](value); + values.text.push(value); + } + } + } + _bindOccurrences(formNode, matches, picture) { + let baseClone; + if (matches.length > 1) { + baseClone = formNode[$clone](); + baseClone[$removeChild](baseClone.occur); + baseClone.occur = null; + } + this._bindValue(formNode, matches[0], picture); + this._setProperties(formNode, matches[0]); + this._bindItems(formNode, matches[0]); + if (matches.length === 1) { + return; + } + const parent = formNode[$getParent](); + const name = formNode[$nodeName]; + const pos = parent[$indexOf](formNode); + for (let i = 1, ii = matches.length; i < ii; i++) { + const match = matches[i]; + const clone = baseClone[$clone](); + parent[name].push(clone); + parent[$insertAt](pos + i, clone); + this._bindValue(clone, match, picture); + this._setProperties(clone, match); + this._bindItems(clone, match); + } + } + _createOccurrences(formNode) { + if (!this.emptyMerge) { + return; + } + const { + occur + } = formNode; + if (!occur || occur.initial <= 1) { + return; + } + const parent = formNode[$getParent](); + const name = formNode[$nodeName]; + if (!(parent[name] instanceof XFAObjectArray)) { + return; + } + let currentNumber; + if (formNode.name) { + currentNumber = parent[name].children.filter(e => e.name === formNode.name).length; + } else { + currentNumber = parent[name].children.length; + } + const pos = parent[$indexOf](formNode) + 1; + const ii = occur.initial - currentNumber; + if (ii) { + const nodeClone = formNode[$clone](); + nodeClone[$removeChild](nodeClone.occur); + nodeClone.occur = null; + parent[name].push(nodeClone); + parent[$insertAt](pos, nodeClone); + for (let i = 1; i < ii; i++) { + const clone = nodeClone[$clone](); + parent[name].push(clone); + parent[$insertAt](pos + i, clone); + } + } + } + _getOccurInfo(formNode) { + const { + name, + occur + } = formNode; + if (!occur || !name) { + return [1, 1]; + } + const max = occur.max === -1 ? Infinity : occur.max; + return [occur.min, max]; + } + _setAndBind(formNode, dataNode) { + this._setProperties(formNode, dataNode); + this._bindItems(formNode, dataNode); + this._bindElement(formNode, dataNode); + } + _bindElement(formNode, dataNode) { + const uselessNodes = []; + this._createOccurrences(formNode); + for (const child of formNode[$getChildren]()) { + if (child[$data]) { + continue; + } + if (this._mergeMode === undefined && child[$nodeName] === "subform") { + this._mergeMode = child.mergeMode === "consumeData"; + const dataChildren = dataNode[$getChildren](); + if (dataChildren.length > 0) { + this._bindOccurrences(child, [dataChildren[0]], null); + } else if (this.emptyMerge) { + const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId]; + const dataChild = child[$data] = new XmlObject(nsId, child.name || "root"); + dataNode[$appendChild](dataChild); + this._bindElement(child, dataChild); + } + continue; + } + if (!child[$isBindable]()) { + continue; + } + let global = false; + let picture = null; + let ref = null; + let match = null; + if (child.bind) { + switch (child.bind.match) { + case "none": + this._setAndBind(child, dataNode); + continue; + case "global": + global = true; + break; + case "dataRef": + if (!child.bind.ref) { + warn(`XFA - ref is empty in node ${child[$nodeName]}.`); + this._setAndBind(child, dataNode); + continue; + } + ref = child.bind.ref; + break; + default: + break; + } + if (child.bind.picture) { + picture = child.bind.picture[$content]; + } + } + const [min, max] = this._getOccurInfo(child); + if (ref) { + match = searchNode(this.root, dataNode, ref, true, false); + if (match === null) { + match = createDataNode(this.data, dataNode, ref); + if (!match) { + continue; + } + if (this._isConsumeData()) { + match[$consumed] = true; + } + this._setAndBind(child, match); + continue; + } else { + if (this._isConsumeData()) { + match = match.filter(node => !node[$consumed]); + } + if (match.length > max) { + match = match.slice(0, max); + } else if (match.length === 0) { + match = null; + } + if (match && this._isConsumeData()) { + match.forEach(node => { + node[$consumed] = true; + }); + } + } + } else { + if (!child.name) { + this._setAndBind(child, dataNode); + continue; + } + if (this._isConsumeData()) { + const matches = []; + while (matches.length < max) { + const found = this._findDataByNameToConsume(child.name, child[$hasSettableValue](), dataNode, global); + if (!found) { + break; + } + found[$consumed] = true; + matches.push(found); + } + match = matches.length > 0 ? matches : null; + } else { + match = dataNode[$getRealChildrenByNameIt](child.name, false, this.emptyMerge).next().value; + if (!match) { + if (min === 0) { + uselessNodes.push(child); + continue; + } + const nsId = dataNode[$namespaceId] === bind_NS_DATASETS ? -1 : dataNode[$namespaceId]; + match = child[$data] = new XmlObject(nsId, child.name); + if (this.emptyMerge) { + match[$consumed] = true; + } + dataNode[$appendChild](match); + this._setAndBind(child, match); + continue; + } + if (this.emptyMerge) { + match[$consumed] = true; + } + match = [match]; + } + } + if (match) { + this._bindOccurrences(child, match, picture); + } else if (min > 0) { + this._setAndBind(child, dataNode); + } else { + uselessNodes.push(child); + } + } + uselessNodes.forEach(node => node[$getParent]()[$removeChild](node)); + } +} + +;// ./src/core/xfa/data.js + +class DataHandler { + constructor(root, data) { + this.data = data; + this.dataset = root.datasets || null; + } + serialize(storage) { + const stack = [[-1, this.data[$getChildren]()]]; + while (stack.length > 0) { + const last = stack.at(-1); + const [i, children] = last; + if (i + 1 === children.length) { + stack.pop(); + continue; + } + const child = children[++last[0]]; + const storageEntry = storage.get(child[$uid]); + if (storageEntry) { + child[$setValue](storageEntry); + } else { + const attributes = child[$getAttributes](); + for (const value of attributes.values()) { + const entry = storage.get(value[$uid]); + if (entry) { + value[$setValue](entry); + break; + } + } + } + const nodes = child[$getChildren](); + if (nodes.length > 0) { + stack.push([-1, nodes]); + } + } + const buf = [``]; + if (this.dataset) { + for (const child of this.dataset[$getChildren]()) { + if (child[$nodeName] !== "data") { + child[$toString](buf); + } + } + } + this.data[$toString](buf); + buf.push(""); + return buf.join(""); + } +} + +;// ./src/core/xfa/config.js + + + + + +const CONFIG_NS_ID = NamespaceIds.config.id; +class Acrobat extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "acrobat", true); + this.acrobat7 = null; + this.autoSave = null; + this.common = null; + this.validate = null; + this.validateApprovalSignatures = null; + this.submitUrl = new XFAObjectArray(); + } +} +class Acrobat7 extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "acrobat7", true); + this.dynamicRender = null; + } +} +class ADBE_JSConsole extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ADBE_JSConsole", ["delegate", "Enable", "Disable"]); + } +} +class ADBE_JSDebugger extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ADBE_JSDebugger", ["delegate", "Enable", "Disable"]); + } +} +class AddSilentPrint extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "addSilentPrint"); + } +} +class AddViewerPreferences extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "addViewerPreferences"); + } +} +class AdjustData extends Option10 { + constructor(attributes) { + super(CONFIG_NS_ID, "adjustData"); + } +} +class AdobeExtensionLevel extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "adobeExtensionLevel", 0, n => n >= 1 && n <= 8); + } +} +class Agent extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "agent", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.common = new XFAObjectArray(); + } +} +class AlwaysEmbed extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "alwaysEmbed"); + } +} +class Amd extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "amd"); + } +} +class config_Area extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "area"); + this.level = getInteger({ + data: attributes.level, + defaultValue: 0, + validate: n => n >= 1 && n <= 3 + }); + this.name = getStringOption(attributes.name, ["", "barcode", "coreinit", "deviceDriver", "font", "general", "layout", "merge", "script", "signature", "sourceSet", "templateCache"]); + } +} +class Attributes extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "attributes", ["preserve", "delegate", "ignore"]); + } +} +class AutoSave extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "autoSave", ["disabled", "enabled"]); + } +} +class Base extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "base"); + } +} +class BatchOutput extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "batchOutput"); + this.format = getStringOption(attributes.format, ["none", "concat", "zip", "zipCompress"]); + } +} +class BehaviorOverride extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "behaviorOverride"); + } + [$finalize]() { + this[$content] = new Map(this[$content].trim().split(/\s+/).filter(x => x.includes(":")).map(x => x.split(":", 2))); + } +} +class Cache extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "cache", true); + this.templateCache = null; + } +} +class Change extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "change"); + } +} +class Common extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "common", true); + this.data = null; + this.locale = null; + this.localeSet = null; + this.messaging = null; + this.suppressBanner = null; + this.template = null; + this.validationMessaging = null; + this.versionControl = null; + this.log = new XFAObjectArray(); + } +} +class Compress extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "compress"); + this.scope = getStringOption(attributes.scope, ["imageOnly", "document"]); + } +} +class CompressLogicalStructure extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "compressLogicalStructure"); + } +} +class CompressObjectStream extends Option10 { + constructor(attributes) { + super(CONFIG_NS_ID, "compressObjectStream"); + } +} +class Compression extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "compression", true); + this.compressLogicalStructure = null; + this.compressObjectStream = null; + this.level = null; + this.type = null; + } +} +class Config extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "config", true); + this.acrobat = null; + this.present = null; + this.trace = null; + this.agent = new XFAObjectArray(); + } +} +class Conformance extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "conformance", ["A", "B"]); + } +} +class ContentCopy extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "contentCopy"); + } +} +class Copies extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "copies", 1, n => n >= 1); + } +} +class Creator extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "creator"); + } +} +class CurrentPage extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "currentPage", 0, n => n >= 0); + } +} +class Data extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "data", true); + this.adjustData = null; + this.attributes = null; + this.incrementalLoad = null; + this.outputXSL = null; + this.range = null; + this.record = null; + this.startNode = null; + this.uri = null; + this.window = null; + this.xsl = null; + this.excludeNS = new XFAObjectArray(); + this.transform = new XFAObjectArray(); + } +} +class Debug extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "debug", true); + this.uri = null; + } +} +class DefaultTypeface extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "defaultTypeface"); + this.writingScript = getStringOption(attributes.writingScript, ["*", "Arabic", "Cyrillic", "EastEuropeanRoman", "Greek", "Hebrew", "Japanese", "Korean", "Roman", "SimplifiedChinese", "Thai", "TraditionalChinese", "Vietnamese"]); + } +} +class Destination extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "destination", ["pdf", "pcl", "ps", "webClient", "zpl"]); + } +} +class DocumentAssembly extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "documentAssembly"); + } +} +class Driver extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "driver", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.fontInfo = null; + this.xdc = null; + } +} +class DuplexOption extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "duplexOption", ["simplex", "duplexFlipLongEdge", "duplexFlipShortEdge"]); + } +} +class DynamicRender extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "dynamicRender", ["forbidden", "required"]); + } +} +class Embed extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "embed"); + } +} +class config_Encrypt extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "encrypt"); + } +} +class config_Encryption extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "encryption", true); + this.encrypt = null; + this.encryptionLevel = null; + this.permissions = null; + } +} +class EncryptionLevel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "encryptionLevel", ["40bit", "128bit"]); + } +} +class Enforce extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "enforce"); + } +} +class Equate extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "equate"); + this.force = getInteger({ + data: attributes.force, + defaultValue: 1, + validate: n => n === 0 + }); + this.from = attributes.from || ""; + this.to = attributes.to || ""; + } +} +class EquateRange extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "equateRange"); + this.from = attributes.from || ""; + this.to = attributes.to || ""; + this._unicodeRange = attributes.unicodeRange || ""; + } + get unicodeRange() { + const ranges = []; + const unicodeRegex = /U\+([0-9a-fA-F]+)/; + const unicodeRange = this._unicodeRange; + for (let range of unicodeRange.split(",").map(x => x.trim()).filter(x => !!x)) { + range = range.split("-", 2).map(x => { + const found = x.match(unicodeRegex); + if (!found) { + return 0; + } + return parseInt(found[1], 16); + }); + if (range.length === 1) { + range.push(range[0]); + } + ranges.push(range); + } + return shadow(this, "unicodeRange", ranges); + } +} +class Exclude extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "exclude"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/).filter(x => x && ["calculate", "close", "enter", "exit", "initialize", "ready", "validate"].includes(x)); + } +} +class ExcludeNS extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "excludeNS"); + } +} +class FlipLabel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "flipLabel", ["usePrinterSetting", "on", "off"]); + } +} +class config_FontInfo extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "fontInfo", true); + this.embed = null; + this.map = null; + this.subsetBelow = null; + this.alwaysEmbed = new XFAObjectArray(); + this.defaultTypeface = new XFAObjectArray(); + this.neverEmbed = new XFAObjectArray(); + } +} +class FormFieldFilling extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "formFieldFilling"); + } +} +class GroupParent extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "groupParent"); + } +} +class IfEmpty extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ifEmpty", ["dataValue", "dataGroup", "ignore", "remove"]); + } +} +class IncludeXDPContent extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "includeXDPContent"); + } +} +class IncrementalLoad extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "incrementalLoad", ["none", "forwardOnly"]); + } +} +class IncrementalMerge extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "incrementalMerge"); + } +} +class Interactive extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "interactive"); + } +} +class Jog extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "jog", ["usePrinterSetting", "none", "pageSet"]); + } +} +class LabelPrinter extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "labelPrinter", true); + this.name = getStringOption(attributes.name, ["zpl", "dpl", "ipl", "tcpl"]); + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } +} +class Layout extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "layout", ["paginate", "panel"]); + } +} +class Level extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "level", 0, n => n > 0); + } +} +class Linearized extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "linearized"); + } +} +class Locale extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "locale"); + } +} +class LocaleSet extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "localeSet"); + } +} +class Log extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "log", true); + this.mode = null; + this.threshold = null; + this.to = null; + this.uri = null; + } +} +class MapElement extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "map", true); + this.equate = new XFAObjectArray(); + this.equateRange = new XFAObjectArray(); + } +} +class MediumInfo extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "mediumInfo", true); + this.map = null; + } +} +class config_Message extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "message", true); + this.msgId = null; + this.severity = null; + } +} +class Messaging extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "messaging", true); + this.message = new XFAObjectArray(); + } +} +class Mode extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "mode", ["append", "overwrite"]); + } +} +class ModifyAnnots extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "modifyAnnots"); + } +} +class MsgId extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "msgId", 1, n => n >= 1); + } +} +class NameAttr extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "nameAttr"); + } +} +class NeverEmbed extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "neverEmbed"); + } +} +class NumberOfCopies extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "numberOfCopies", null, n => n >= 2 && n <= 5); + } +} +class OpenAction extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "openAction", true); + this.destination = null; + } +} +class Output extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "output", true); + this.to = null; + this.type = null; + this.uri = null; + } +} +class OutputBin extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "outputBin"); + } +} +class OutputXSL extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "outputXSL", true); + this.uri = null; + } +} +class Overprint extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "overprint", ["none", "both", "draw", "field"]); + } +} +class Packets extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "packets"); + } + [$finalize]() { + if (this[$content] === "*") { + return; + } + this[$content] = this[$content].trim().split(/\s+/).filter(x => ["config", "datasets", "template", "xfdf", "xslt"].includes(x)); + } +} +class PageOffset extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pageOffset"); + this.x = getInteger({ + data: attributes.x, + defaultValue: "useXDCSetting", + validate: n => true + }); + this.y = getInteger({ + data: attributes.y, + defaultValue: "useXDCSetting", + validate: n => true + }); + } +} +class PageRange extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pageRange"); + } + [$finalize]() { + const numbers = this[$content].trim().split(/\s+/).map(x => parseInt(x, 10)); + const ranges = []; + for (let i = 0, ii = numbers.length; i < ii; i += 2) { + ranges.push(numbers.slice(i, i + 2)); + } + this[$content] = ranges; + } +} +class Pagination extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pagination", ["simplex", "duplexShortEdge", "duplexLongEdge"]); + } +} +class PaginationOverride extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "paginationOverride", ["none", "forceDuplex", "forceDuplexLongEdge", "forceDuplexShortEdge", "forceSimplex"]); + } +} +class Part extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "part", 1, n => false); + } +} +class Pcl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pcl", true); + this.name = attributes.name || ""; + this.batchOutput = null; + this.fontInfo = null; + this.jog = null; + this.mediumInfo = null; + this.outputBin = null; + this.pageOffset = null; + this.staple = null; + this.xdc = null; + } +} +class Pdf extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pdf", true); + this.name = attributes.name || ""; + this.adobeExtensionLevel = null; + this.batchOutput = null; + this.compression = null; + this.creator = null; + this.encryption = null; + this.fontInfo = null; + this.interactive = null; + this.linearized = null; + this.openAction = null; + this.pdfa = null; + this.producer = null; + this.renderPolicy = null; + this.scriptModel = null; + this.silentPrint = null; + this.submitFormat = null; + this.tagged = null; + this.version = null; + this.viewerPreferences = null; + this.xdc = null; + } +} +class Pdfa extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "pdfa", true); + this.amd = null; + this.conformance = null; + this.includeXDPContent = null; + this.part = null; + } +} +class Permissions extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "permissions", true); + this.accessibleContent = null; + this.change = null; + this.contentCopy = null; + this.documentAssembly = null; + this.formFieldFilling = null; + this.modifyAnnots = null; + this.plaintextMetadata = null; + this.print = null; + this.printHighQuality = null; + } +} +class PickTrayByPDFSize extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "pickTrayByPDFSize"); + } +} +class config_Picture extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "picture"); + } +} +class PlaintextMetadata extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "plaintextMetadata"); + } +} +class Presence extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "presence", ["preserve", "dissolve", "dissolveStructure", "ignore", "remove"]); + } +} +class Present extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "present", true); + this.behaviorOverride = null; + this.cache = null; + this.common = null; + this.copies = null; + this.destination = null; + this.incrementalMerge = null; + this.layout = null; + this.output = null; + this.overprint = null; + this.pagination = null; + this.paginationOverride = null; + this.script = null; + this.validate = null; + this.xdp = null; + this.driver = new XFAObjectArray(); + this.labelPrinter = new XFAObjectArray(); + this.pcl = new XFAObjectArray(); + this.pdf = new XFAObjectArray(); + this.ps = new XFAObjectArray(); + this.submitUrl = new XFAObjectArray(); + this.webClient = new XFAObjectArray(); + this.zpl = new XFAObjectArray(); + } +} +class Print extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "print"); + } +} +class PrintHighQuality extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "printHighQuality"); + } +} +class PrintScaling extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "printScaling", ["appdefault", "noScaling"]); + } +} +class PrinterName extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "printerName"); + } +} +class Producer extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "producer"); + } +} +class Ps extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "ps", true); + this.name = attributes.name || ""; + this.batchOutput = null; + this.fontInfo = null; + this.jog = null; + this.mediumInfo = null; + this.outputBin = null; + this.staple = null; + this.xdc = null; + } +} +class Range extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "range"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s*,\s*/, 2).map(range => range.split("-").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => { + if (range.length === 1) { + range.push(range[0]); + } + return range; + }); + } +} +class Record extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "record"); + } + [$finalize]() { + this[$content] = this[$content].trim(); + const n = parseInt(this[$content], 10); + if (!isNaN(n) && n >= 0) { + this[$content] = n; + } + } +} +class Relevant extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "relevant"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/); + } +} +class Rename extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "rename"); + } + [$finalize]() { + this[$content] = this[$content].trim(); + if (this[$content].toLowerCase().startsWith("xml") || new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*", "u").test(this[$content])) { + warn("XFA - Rename: invalid XFA name"); + } + } +} +class RenderPolicy extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "renderPolicy", ["server", "client"]); + } +} +class RunScripts extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "runScripts", ["both", "client", "none", "server"]); + } +} +class config_Script extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "script", true); + this.currentPage = null; + this.exclude = null; + this.runScripts = null; + } +} +class ScriptModel extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "scriptModel", ["XFA", "none"]); + } +} +class Severity extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "severity", ["ignore", "error", "information", "trace", "warning"]); + } +} +class SilentPrint extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "silentPrint", true); + this.addSilentPrint = null; + this.printerName = null; + } +} +class Staple extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "staple"); + this.mode = getStringOption(attributes.mode, ["usePrinterSetting", "on", "off"]); + } +} +class StartNode extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "startNode"); + } +} +class StartPage extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "startPage", 0, n => true); + } +} +class SubmitFormat extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "submitFormat", ["html", "delegate", "fdf", "xml", "pdf"]); + } +} +class SubmitUrl extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "submitUrl"); + } +} +class SubsetBelow extends IntegerObject { + constructor(attributes) { + super(CONFIG_NS_ID, "subsetBelow", 100, n => n >= 0 && n <= 100); + } +} +class SuppressBanner extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "suppressBanner"); + } +} +class Tagged extends Option01 { + constructor(attributes) { + super(CONFIG_NS_ID, "tagged"); + } +} +class config_Template extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "template", true); + this.base = null; + this.relevant = null; + this.startPage = null; + this.uri = null; + this.xsl = null; + } +} +class Threshold extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "threshold", ["trace", "error", "information", "warning"]); + } +} +class To extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "to", ["null", "memory", "stderr", "stdout", "system", "uri"]); + } +} +class TemplateCache extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "templateCache"); + this.maxEntries = getInteger({ + data: attributes.maxEntries, + defaultValue: 5, + validate: n => n >= 0 + }); + } +} +class Trace extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "trace", true); + this.area = new XFAObjectArray(); + } +} +class Transform extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "transform", true); + this.groupParent = null; + this.ifEmpty = null; + this.nameAttr = null; + this.picture = null; + this.presence = null; + this.rename = null; + this.whitespace = null; + } +} +class Type extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "type", ["none", "ascii85", "asciiHex", "ccittfax", "flate", "lzw", "runLength", "native", "xdp", "mergedXDP"]); + } +} +class Uri extends StringObject { + constructor(attributes) { + super(CONFIG_NS_ID, "uri"); + } +} +class config_Validate extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validate", ["preSubmit", "prePrint", "preExecute", "preSave"]); + } +} +class ValidateApprovalSignatures extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validateApprovalSignatures"); + } + [$finalize]() { + this[$content] = this[$content].trim().split(/\s+/).filter(x => ["docReady", "postSign"].includes(x)); + } +} +class ValidationMessaging extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "validationMessaging", ["allMessagesIndividually", "allMessagesTogether", "firstMessageOnly", "noMessages"]); + } +} +class Version extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "version", ["1.7", "1.6", "1.5", "1.4", "1.3", "1.2"]); + } +} +class VersionControl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "VersionControl"); + this.outputBelow = getStringOption(attributes.outputBelow, ["warn", "error", "update"]); + this.sourceAbove = getStringOption(attributes.sourceAbove, ["warn", "error"]); + this.sourceBelow = getStringOption(attributes.sourceBelow, ["update", "maintain"]); + } +} +class ViewerPreferences extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "viewerPreferences", true); + this.ADBE_JSConsole = null; + this.ADBE_JSDebugger = null; + this.addViewerPreferences = null; + this.duplexOption = null; + this.enforce = null; + this.numberOfCopies = null; + this.pageRange = null; + this.pickTrayByPDFSize = null; + this.printScaling = null; + } +} +class WebClient extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "webClient", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.fontInfo = null; + this.xdc = null; + } +} +class Whitespace extends OptionObject { + constructor(attributes) { + super(CONFIG_NS_ID, "whitespace", ["preserve", "ltrim", "normalize", "rtrim", "trim"]); + } +} +class Window extends ContentObject { + constructor(attributes) { + super(CONFIG_NS_ID, "window"); + } + [$finalize]() { + const pair = this[$content].trim().split(/\s*,\s*/, 2).map(x => parseInt(x, 10)); + if (pair.some(x => isNaN(x))) { + this[$content] = [0, 0]; + return; + } + if (pair.length === 1) { + pair.push(pair[0]); + } + this[$content] = pair; + } +} +class Xdc extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xdc", true); + this.uri = new XFAObjectArray(); + this.xsl = new XFAObjectArray(); + } +} +class Xdp extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xdp", true); + this.packets = null; + } +} +class Xsl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "xsl", true); + this.debug = null; + this.uri = null; + } +} +class Zpl extends XFAObject { + constructor(attributes) { + super(CONFIG_NS_ID, "zpl", true); + this.name = attributes.name ? attributes.name.trim() : ""; + this.batchOutput = null; + this.flipLabel = null; + this.fontInfo = null; + this.xdc = null; + } +} +class ConfigNamespace { + static [$buildXFAObject](name, attributes) { + if (ConfigNamespace.hasOwnProperty(name)) { + return ConfigNamespace[name](attributes); + } + return undefined; + } + static acrobat(attrs) { + return new Acrobat(attrs); + } + static acrobat7(attrs) { + return new Acrobat7(attrs); + } + static ADBE_JSConsole(attrs) { + return new ADBE_JSConsole(attrs); + } + static ADBE_JSDebugger(attrs) { + return new ADBE_JSDebugger(attrs); + } + static addSilentPrint(attrs) { + return new AddSilentPrint(attrs); + } + static addViewerPreferences(attrs) { + return new AddViewerPreferences(attrs); + } + static adjustData(attrs) { + return new AdjustData(attrs); + } + static adobeExtensionLevel(attrs) { + return new AdobeExtensionLevel(attrs); + } + static agent(attrs) { + return new Agent(attrs); + } + static alwaysEmbed(attrs) { + return new AlwaysEmbed(attrs); + } + static amd(attrs) { + return new Amd(attrs); + } + static area(attrs) { + return new config_Area(attrs); + } + static attributes(attrs) { + return new Attributes(attrs); + } + static autoSave(attrs) { + return new AutoSave(attrs); + } + static base(attrs) { + return new Base(attrs); + } + static batchOutput(attrs) { + return new BatchOutput(attrs); + } + static behaviorOverride(attrs) { + return new BehaviorOverride(attrs); + } + static cache(attrs) { + return new Cache(attrs); + } + static change(attrs) { + return new Change(attrs); + } + static common(attrs) { + return new Common(attrs); + } + static compress(attrs) { + return new Compress(attrs); + } + static compressLogicalStructure(attrs) { + return new CompressLogicalStructure(attrs); + } + static compressObjectStream(attrs) { + return new CompressObjectStream(attrs); + } + static compression(attrs) { + return new Compression(attrs); + } + static config(attrs) { + return new Config(attrs); + } + static conformance(attrs) { + return new Conformance(attrs); + } + static contentCopy(attrs) { + return new ContentCopy(attrs); + } + static copies(attrs) { + return new Copies(attrs); + } + static creator(attrs) { + return new Creator(attrs); + } + static currentPage(attrs) { + return new CurrentPage(attrs); + } + static data(attrs) { + return new Data(attrs); + } + static debug(attrs) { + return new Debug(attrs); + } + static defaultTypeface(attrs) { + return new DefaultTypeface(attrs); + } + static destination(attrs) { + return new Destination(attrs); + } + static documentAssembly(attrs) { + return new DocumentAssembly(attrs); + } + static driver(attrs) { + return new Driver(attrs); + } + static duplexOption(attrs) { + return new DuplexOption(attrs); + } + static dynamicRender(attrs) { + return new DynamicRender(attrs); + } + static embed(attrs) { + return new Embed(attrs); + } + static encrypt(attrs) { + return new config_Encrypt(attrs); + } + static encryption(attrs) { + return new config_Encryption(attrs); + } + static encryptionLevel(attrs) { + return new EncryptionLevel(attrs); + } + static enforce(attrs) { + return new Enforce(attrs); + } + static equate(attrs) { + return new Equate(attrs); + } + static equateRange(attrs) { + return new EquateRange(attrs); + } + static exclude(attrs) { + return new Exclude(attrs); + } + static excludeNS(attrs) { + return new ExcludeNS(attrs); + } + static flipLabel(attrs) { + return new FlipLabel(attrs); + } + static fontInfo(attrs) { + return new config_FontInfo(attrs); + } + static formFieldFilling(attrs) { + return new FormFieldFilling(attrs); + } + static groupParent(attrs) { + return new GroupParent(attrs); + } + static ifEmpty(attrs) { + return new IfEmpty(attrs); + } + static includeXDPContent(attrs) { + return new IncludeXDPContent(attrs); + } + static incrementalLoad(attrs) { + return new IncrementalLoad(attrs); + } + static incrementalMerge(attrs) { + return new IncrementalMerge(attrs); + } + static interactive(attrs) { + return new Interactive(attrs); + } + static jog(attrs) { + return new Jog(attrs); + } + static labelPrinter(attrs) { + return new LabelPrinter(attrs); + } + static layout(attrs) { + return new Layout(attrs); + } + static level(attrs) { + return new Level(attrs); + } + static linearized(attrs) { + return new Linearized(attrs); + } + static locale(attrs) { + return new Locale(attrs); + } + static localeSet(attrs) { + return new LocaleSet(attrs); + } + static log(attrs) { + return new Log(attrs); + } + static map(attrs) { + return new MapElement(attrs); + } + static mediumInfo(attrs) { + return new MediumInfo(attrs); + } + static message(attrs) { + return new config_Message(attrs); + } + static messaging(attrs) { + return new Messaging(attrs); + } + static mode(attrs) { + return new Mode(attrs); + } + static modifyAnnots(attrs) { + return new ModifyAnnots(attrs); + } + static msgId(attrs) { + return new MsgId(attrs); + } + static nameAttr(attrs) { + return new NameAttr(attrs); + } + static neverEmbed(attrs) { + return new NeverEmbed(attrs); + } + static numberOfCopies(attrs) { + return new NumberOfCopies(attrs); + } + static openAction(attrs) { + return new OpenAction(attrs); + } + static output(attrs) { + return new Output(attrs); + } + static outputBin(attrs) { + return new OutputBin(attrs); + } + static outputXSL(attrs) { + return new OutputXSL(attrs); + } + static overprint(attrs) { + return new Overprint(attrs); + } + static packets(attrs) { + return new Packets(attrs); + } + static pageOffset(attrs) { + return new PageOffset(attrs); + } + static pageRange(attrs) { + return new PageRange(attrs); + } + static pagination(attrs) { + return new Pagination(attrs); + } + static paginationOverride(attrs) { + return new PaginationOverride(attrs); + } + static part(attrs) { + return new Part(attrs); + } + static pcl(attrs) { + return new Pcl(attrs); + } + static pdf(attrs) { + return new Pdf(attrs); + } + static pdfa(attrs) { + return new Pdfa(attrs); + } + static permissions(attrs) { + return new Permissions(attrs); + } + static pickTrayByPDFSize(attrs) { + return new PickTrayByPDFSize(attrs); + } + static picture(attrs) { + return new config_Picture(attrs); + } + static plaintextMetadata(attrs) { + return new PlaintextMetadata(attrs); + } + static presence(attrs) { + return new Presence(attrs); + } + static present(attrs) { + return new Present(attrs); + } + static print(attrs) { + return new Print(attrs); + } + static printHighQuality(attrs) { + return new PrintHighQuality(attrs); + } + static printScaling(attrs) { + return new PrintScaling(attrs); + } + static printerName(attrs) { + return new PrinterName(attrs); + } + static producer(attrs) { + return new Producer(attrs); + } + static ps(attrs) { + return new Ps(attrs); + } + static range(attrs) { + return new Range(attrs); + } + static record(attrs) { + return new Record(attrs); + } + static relevant(attrs) { + return new Relevant(attrs); + } + static rename(attrs) { + return new Rename(attrs); + } + static renderPolicy(attrs) { + return new RenderPolicy(attrs); + } + static runScripts(attrs) { + return new RunScripts(attrs); + } + static script(attrs) { + return new config_Script(attrs); + } + static scriptModel(attrs) { + return new ScriptModel(attrs); + } + static severity(attrs) { + return new Severity(attrs); + } + static silentPrint(attrs) { + return new SilentPrint(attrs); + } + static staple(attrs) { + return new Staple(attrs); + } + static startNode(attrs) { + return new StartNode(attrs); + } + static startPage(attrs) { + return new StartPage(attrs); + } + static submitFormat(attrs) { + return new SubmitFormat(attrs); + } + static submitUrl(attrs) { + return new SubmitUrl(attrs); + } + static subsetBelow(attrs) { + return new SubsetBelow(attrs); + } + static suppressBanner(attrs) { + return new SuppressBanner(attrs); + } + static tagged(attrs) { + return new Tagged(attrs); + } + static template(attrs) { + return new config_Template(attrs); + } + static templateCache(attrs) { + return new TemplateCache(attrs); + } + static threshold(attrs) { + return new Threshold(attrs); + } + static to(attrs) { + return new To(attrs); + } + static trace(attrs) { + return new Trace(attrs); + } + static transform(attrs) { + return new Transform(attrs); + } + static type(attrs) { + return new Type(attrs); + } + static uri(attrs) { + return new Uri(attrs); + } + static validate(attrs) { + return new config_Validate(attrs); + } + static validateApprovalSignatures(attrs) { + return new ValidateApprovalSignatures(attrs); + } + static validationMessaging(attrs) { + return new ValidationMessaging(attrs); + } + static version(attrs) { + return new Version(attrs); + } + static versionControl(attrs) { + return new VersionControl(attrs); + } + static viewerPreferences(attrs) { + return new ViewerPreferences(attrs); + } + static webClient(attrs) { + return new WebClient(attrs); + } + static whitespace(attrs) { + return new Whitespace(attrs); + } + static window(attrs) { + return new Window(attrs); + } + static xdc(attrs) { + return new Xdc(attrs); + } + static xdp(attrs) { + return new Xdp(attrs); + } + static xsl(attrs) { + return new Xsl(attrs); + } + static zpl(attrs) { + return new Zpl(attrs); + } +} + +;// ./src/core/xfa/connection_set.js + + +const CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id; +class ConnectionSet extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "connectionSet", true); + this.wsdlConnection = new XFAObjectArray(); + this.xmlConnection = new XFAObjectArray(); + this.xsdConnection = new XFAObjectArray(); + } +} +class EffectiveInputPolicy extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "effectiveInputPolicy"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class EffectiveOutputPolicy extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "effectiveOutputPolicy"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class Operation extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "operation"); + this.id = attributes.id || ""; + this.input = attributes.input || ""; + this.name = attributes.name || ""; + this.output = attributes.output || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class RootElement extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "rootElement"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SoapAction extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "soapAction"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class SoapAddress extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "soapAddress"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class connection_set_Uri extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "uri"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class WsdlAddress extends StringObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "wsdlAddress"); + this.id = attributes.id || ""; + this.name = attributes.name || ""; + this.use = attributes.use || ""; + this.usehref = attributes.usehref || ""; + } +} +class WsdlConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "wsdlConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.effectiveInputPolicy = null; + this.effectiveOutputPolicy = null; + this.operation = null; + this.soapAction = null; + this.soapAddress = null; + this.wsdlAddress = null; + } +} +class XmlConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "xmlConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.uri = null; + } +} +class XsdConnection extends XFAObject { + constructor(attributes) { + super(CONNECTION_SET_NS_ID, "xsdConnection", true); + this.dataDescription = attributes.dataDescription || ""; + this.name = attributes.name || ""; + this.rootElement = null; + this.uri = null; + } +} +class ConnectionSetNamespace { + static [$buildXFAObject](name, attributes) { + if (ConnectionSetNamespace.hasOwnProperty(name)) { + return ConnectionSetNamespace[name](attributes); + } + return undefined; + } + static connectionSet(attrs) { + return new ConnectionSet(attrs); + } + static effectiveInputPolicy(attrs) { + return new EffectiveInputPolicy(attrs); + } + static effectiveOutputPolicy(attrs) { + return new EffectiveOutputPolicy(attrs); + } + static operation(attrs) { + return new Operation(attrs); + } + static rootElement(attrs) { + return new RootElement(attrs); + } + static soapAction(attrs) { + return new SoapAction(attrs); + } + static soapAddress(attrs) { + return new SoapAddress(attrs); + } + static uri(attrs) { + return new connection_set_Uri(attrs); + } + static wsdlAddress(attrs) { + return new WsdlAddress(attrs); + } + static wsdlConnection(attrs) { + return new WsdlConnection(attrs); + } + static xmlConnection(attrs) { + return new XmlConnection(attrs); + } + static xsdConnection(attrs) { + return new XsdConnection(attrs); + } +} + +;// ./src/core/xfa/datasets.js + + + +const DATASETS_NS_ID = NamespaceIds.datasets.id; +class datasets_Data extends XmlObject { + constructor(attributes) { + super(DATASETS_NS_ID, "data", attributes); + } + [$isNsAgnostic]() { + return true; + } +} +class Datasets extends XFAObject { + constructor(attributes) { + super(DATASETS_NS_ID, "datasets", true); + this.data = null; + this.Signature = null; + } + [$onChild](child) { + const name = child[$nodeName]; + if (name === "data" && child[$namespaceId] === DATASETS_NS_ID || name === "Signature" && child[$namespaceId] === NamespaceIds.signature.id) { + this[name] = child; + } + this[$appendChild](child); + } +} +class DatasetsNamespace { + static [$buildXFAObject](name, attributes) { + if (DatasetsNamespace.hasOwnProperty(name)) { + return DatasetsNamespace[name](attributes); + } + return undefined; + } + static datasets(attributes) { + return new Datasets(attributes); + } + static data(attributes) { + return new datasets_Data(attributes); + } +} + +;// ./src/core/xfa/locale_set.js + + + +const LOCALE_SET_NS_ID = NamespaceIds.localeSet.id; +class CalendarSymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "calendarSymbols", true); + this.name = "gregorian"; + this.dayNames = new XFAObjectArray(2); + this.eraNames = null; + this.meridiemNames = null; + this.monthNames = new XFAObjectArray(2); + } +} +class CurrencySymbol extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "currencySymbol"); + this.name = getStringOption(attributes.name, ["symbol", "isoname", "decimal"]); + } +} +class CurrencySymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "currencySymbols", true); + this.currencySymbol = new XFAObjectArray(3); + } +} +class DatePattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "datePattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class DatePatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "datePatterns", true); + this.datePattern = new XFAObjectArray(4); + } +} +class DateTimeSymbols extends ContentObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "dateTimeSymbols"); + } +} +class Day extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "day"); + } +} +class DayNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "dayNames", true); + this.abbr = getInteger({ + data: attributes.abbr, + defaultValue: 0, + validate: x => x === 1 + }); + this.day = new XFAObjectArray(7); + } +} +class Era extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "era"); + } +} +class EraNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "eraNames", true); + this.era = new XFAObjectArray(2); + } +} +class locale_set_Locale extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "locale", true); + this.desc = attributes.desc || ""; + this.name = "isoname"; + this.calendarSymbols = null; + this.currencySymbols = null; + this.datePatterns = null; + this.dateTimeSymbols = null; + this.numberPatterns = null; + this.numberSymbols = null; + this.timePatterns = null; + this.typeFaces = null; + } +} +class locale_set_LocaleSet extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "localeSet", true); + this.locale = new XFAObjectArray(); + } +} +class Meridiem extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "meridiem"); + } +} +class MeridiemNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "meridiemNames", true); + this.meridiem = new XFAObjectArray(2); + } +} +class Month extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "month"); + } +} +class MonthNames extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "monthNames", true); + this.abbr = getInteger({ + data: attributes.abbr, + defaultValue: 0, + validate: x => x === 1 + }); + this.month = new XFAObjectArray(12); + } +} +class NumberPattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberPattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class NumberPatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberPatterns", true); + this.numberPattern = new XFAObjectArray(4); + } +} +class NumberSymbol extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberSymbol"); + this.name = getStringOption(attributes.name, ["decimal", "grouping", "percent", "minus", "zero"]); + } +} +class NumberSymbols extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "numberSymbols", true); + this.numberSymbol = new XFAObjectArray(5); + } +} +class TimePattern extends StringObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "timePattern"); + this.name = getStringOption(attributes.name, ["full", "long", "med", "short"]); + } +} +class TimePatterns extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "timePatterns", true); + this.timePattern = new XFAObjectArray(4); + } +} +class TypeFace extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "typeFace", true); + this.name = attributes.name | ""; + } +} +class TypeFaces extends XFAObject { + constructor(attributes) { + super(LOCALE_SET_NS_ID, "typeFaces", true); + this.typeFace = new XFAObjectArray(); + } +} +class LocaleSetNamespace { + static [$buildXFAObject](name, attributes) { + if (LocaleSetNamespace.hasOwnProperty(name)) { + return LocaleSetNamespace[name](attributes); + } + return undefined; + } + static calendarSymbols(attrs) { + return new CalendarSymbols(attrs); + } + static currencySymbol(attrs) { + return new CurrencySymbol(attrs); + } + static currencySymbols(attrs) { + return new CurrencySymbols(attrs); + } + static datePattern(attrs) { + return new DatePattern(attrs); + } + static datePatterns(attrs) { + return new DatePatterns(attrs); + } + static dateTimeSymbols(attrs) { + return new DateTimeSymbols(attrs); + } + static day(attrs) { + return new Day(attrs); + } + static dayNames(attrs) { + return new DayNames(attrs); + } + static era(attrs) { + return new Era(attrs); + } + static eraNames(attrs) { + return new EraNames(attrs); + } + static locale(attrs) { + return new locale_set_Locale(attrs); + } + static localeSet(attrs) { + return new locale_set_LocaleSet(attrs); + } + static meridiem(attrs) { + return new Meridiem(attrs); + } + static meridiemNames(attrs) { + return new MeridiemNames(attrs); + } + static month(attrs) { + return new Month(attrs); + } + static monthNames(attrs) { + return new MonthNames(attrs); + } + static numberPattern(attrs) { + return new NumberPattern(attrs); + } + static numberPatterns(attrs) { + return new NumberPatterns(attrs); + } + static numberSymbol(attrs) { + return new NumberSymbol(attrs); + } + static numberSymbols(attrs) { + return new NumberSymbols(attrs); + } + static timePattern(attrs) { + return new TimePattern(attrs); + } + static timePatterns(attrs) { + return new TimePatterns(attrs); + } + static typeFace(attrs) { + return new TypeFace(attrs); + } + static typeFaces(attrs) { + return new TypeFaces(attrs); + } +} + +;// ./src/core/xfa/signature.js + + +const SIGNATURE_NS_ID = NamespaceIds.signature.id; +class signature_Signature extends XFAObject { + constructor(attributes) { + super(SIGNATURE_NS_ID, "signature", true); + } +} +class SignatureNamespace { + static [$buildXFAObject](name, attributes) { + if (SignatureNamespace.hasOwnProperty(name)) { + return SignatureNamespace[name](attributes); + } + return undefined; + } + static signature(attributes) { + return new signature_Signature(attributes); + } +} + +;// ./src/core/xfa/stylesheet.js + + +const STYLESHEET_NS_ID = NamespaceIds.stylesheet.id; +class Stylesheet extends XFAObject { + constructor(attributes) { + super(STYLESHEET_NS_ID, "stylesheet", true); + } +} +class StylesheetNamespace { + static [$buildXFAObject](name, attributes) { + if (StylesheetNamespace.hasOwnProperty(name)) { + return StylesheetNamespace[name](attributes); + } + return undefined; + } + static stylesheet(attributes) { + return new Stylesheet(attributes); + } +} + +;// ./src/core/xfa/xdp.js + + + +const XDP_NS_ID = NamespaceIds.xdp.id; +class xdp_Xdp extends XFAObject { + constructor(attributes) { + super(XDP_NS_ID, "xdp", true); + this.uuid = attributes.uuid || ""; + this.timeStamp = attributes.timeStamp || ""; + this.config = null; + this.connectionSet = null; + this.datasets = null; + this.localeSet = null; + this.stylesheet = new XFAObjectArray(); + this.template = null; + } + [$onChildCheck](child) { + const ns = NamespaceIds[child[$nodeName]]; + return ns && child[$namespaceId] === ns.id; + } +} +class XdpNamespace { + static [$buildXFAObject](name, attributes) { + if (XdpNamespace.hasOwnProperty(name)) { + return XdpNamespace[name](attributes); + } + return undefined; + } + static xdp(attributes) { + return new xdp_Xdp(attributes); + } +} + +;// ./src/core/xfa/xhtml.js + + + + + +const XHTML_NS_ID = NamespaceIds.xhtml.id; +const $richText = Symbol(); +const VALID_STYLES = new Set(["color", "font", "font-family", "font-size", "font-stretch", "font-style", "font-weight", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "letter-spacing", "line-height", "orphans", "page-break-after", "page-break-before", "page-break-inside", "tab-interval", "tab-stop", "text-align", "text-decoration", "text-indent", "vertical-align", "widows", "kerning-mode", "xfa-font-horizontal-scale", "xfa-font-vertical-scale", "xfa-spacerun", "xfa-tab-stops"]); +const StyleMapping = new Map([["page-break-after", "breakAfter"], ["page-break-before", "breakBefore"], ["page-break-inside", "breakInside"], ["kerning-mode", value => value === "none" ? "none" : "normal"], ["xfa-font-horizontal-scale", value => `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], ["xfa-font-vertical-scale", value => `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], ["xfa-spacerun", ""], ["xfa-tab-stops", ""], ["font-size", (value, original) => { + value = original.fontSize = Math.abs(getMeasurement(value)); + return measureToString(0.99 * value); +}], ["letter-spacing", value => measureToString(getMeasurement(value))], ["line-height", value => measureToString(getMeasurement(value))], ["margin", value => measureToString(getMeasurement(value))], ["margin-bottom", value => measureToString(getMeasurement(value))], ["margin-left", value => measureToString(getMeasurement(value))], ["margin-right", value => measureToString(getMeasurement(value))], ["margin-top", value => measureToString(getMeasurement(value))], ["text-indent", value => measureToString(getMeasurement(value))], ["font-family", value => value], ["vertical-align", value => measureToString(getMeasurement(value))]]); +const spacesRegExp = /\s+/g; +const crlfRegExp = /[\r\n]+/g; +const crlfForRichTextRegExp = /\r\n?/g; +function mapStyle(styleStr, node, richText) { + const style = Object.create(null); + if (!styleStr) { + return style; + } + const original = Object.create(null); + for (const [key, value] of styleStr.split(";").map(s => s.split(":", 2))) { + const mapping = StyleMapping.get(key); + if (mapping === "") { + continue; + } + let newValue = value; + if (mapping) { + newValue = typeof mapping === "string" ? mapping : mapping(value, original); + } + if (key.endsWith("scale")) { + style.transform = style.transform ? `${style[key]} ${newValue}` : newValue; + } else { + style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] = newValue; + } + } + if (style.fontFamily) { + setFontFamily({ + typeface: style.fontFamily, + weight: style.fontWeight || "normal", + posture: style.fontStyle || "normal", + size: original.fontSize || 0 + }, node, node[$globalData].fontFinder, style); + } + if (richText && style.verticalAlign && style.verticalAlign !== "0px" && style.fontSize) { + const SUB_SUPER_SCRIPT_FACTOR = 0.583; + const VERTICAL_FACTOR = 0.333; + const fontSize = getMeasurement(style.fontSize); + style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR); + style.verticalAlign = measureToString(Math.sign(getMeasurement(style.verticalAlign)) * fontSize * VERTICAL_FACTOR); + } + if (richText && style.fontSize) { + style.fontSize = `calc(${style.fontSize} * var(--scale-factor))`; + } + fixTextIndent(style); + return style; +} +function checkStyle(node) { + if (!node.style) { + return ""; + } + return node.style.trim().split(/\s*;\s*/).filter(s => !!s).map(s => s.split(/\s*:\s*/, 2)).filter(([key, value]) => { + if (key === "font-family") { + node[$globalData].usedTypefaces.add(value); + } + return VALID_STYLES.has(key); + }).map(kv => kv.join(":")).join(";"); +} +const NoWhites = new Set(["body", "html"]); +class XhtmlObject extends XmlObject { + constructor(attributes, name) { + super(XHTML_NS_ID, name); + this[$richText] = false; + this.style = attributes.style || ""; + } + [$clean](builder) { + super[$clean](builder); + this.style = checkStyle(this); + } + [$acceptWhitespace]() { + return !NoWhites.has(this[$nodeName]); + } + [$onText](str, richText = false) { + if (!richText) { + str = str.replaceAll(crlfRegExp, ""); + if (!this.style.includes("xfa-spacerun:yes")) { + str = str.replaceAll(spacesRegExp, " "); + } + } else { + this[$richText] = true; + } + if (str) { + this[$content] += str; + } + } + [$pushGlyphs](measure, mustPop = true) { + const xfaFont = Object.create(null); + const margin = { + top: NaN, + bottom: NaN, + left: NaN, + right: NaN + }; + let lineHeight = null; + for (const [key, value] of this.style.split(";").map(s => s.split(":", 2))) { + switch (key) { + case "font-family": + xfaFont.typeface = stripQuotes(value); + break; + case "font-size": + xfaFont.size = getMeasurement(value); + break; + case "font-weight": + xfaFont.weight = value; + break; + case "font-style": + xfaFont.posture = value; + break; + case "letter-spacing": + xfaFont.letterSpacing = getMeasurement(value); + break; + case "margin": + const values = value.split(/ \t/).map(x => getMeasurement(x)); + switch (values.length) { + case 1: + margin.top = margin.bottom = margin.left = margin.right = values[0]; + break; + case 2: + margin.top = margin.bottom = values[0]; + margin.left = margin.right = values[1]; + break; + case 3: + margin.top = values[0]; + margin.bottom = values[2]; + margin.left = margin.right = values[1]; + break; + case 4: + margin.top = values[0]; + margin.left = values[1]; + margin.bottom = values[2]; + margin.right = values[3]; + break; + } + break; + case "margin-top": + margin.top = getMeasurement(value); + break; + case "margin-bottom": + margin.bottom = getMeasurement(value); + break; + case "margin-left": + margin.left = getMeasurement(value); + break; + case "margin-right": + margin.right = getMeasurement(value); + break; + case "line-height": + lineHeight = getMeasurement(value); + break; + } + } + measure.pushData(xfaFont, margin, lineHeight); + if (this[$content]) { + measure.addString(this[$content]); + } else { + for (const child of this[$getChildren]()) { + if (child[$nodeName] === "#text") { + measure.addString(child[$content]); + continue; + } + child[$pushGlyphs](measure); + } + } + if (mustPop) { + measure.popFont(); + } + } + [$toHTML](availableSpace) { + const children = []; + this[$extra] = { + children + }; + this[$childrenToHTML]({}); + if (children.length === 0 && !this[$content]) { + return HTMLResult.EMPTY; + } + let value; + if (this[$richText]) { + value = this[$content] ? this[$content].replaceAll(crlfForRichTextRegExp, "\n") : undefined; + } else { + value = this[$content] || undefined; + } + return HTMLResult.success({ + name: this[$nodeName], + attributes: { + href: this.href, + style: mapStyle(this.style, this, this[$richText]) + }, + children, + value + }); + } +} +class A extends XhtmlObject { + constructor(attributes) { + super(attributes, "a"); + this.href = fixURL(attributes.href) || ""; + } +} +class B extends XhtmlObject { + constructor(attributes) { + super(attributes, "b"); + } + [$pushGlyphs](measure) { + measure.pushFont({ + weight: "bold" + }); + super[$pushGlyphs](measure); + measure.popFont(); + } +} +class Body extends XhtmlObject { + constructor(attributes) { + super(attributes, "body"); + } + [$toHTML](availableSpace) { + const res = super[$toHTML](availableSpace); + const { + html + } = res; + if (!html) { + return HTMLResult.EMPTY; + } + html.name = "div"; + html.attributes.class = ["xfaRich"]; + return res; + } +} +class Br extends XhtmlObject { + constructor(attributes) { + super(attributes, "br"); + } + [$text]() { + return "\n"; + } + [$pushGlyphs](measure) { + measure.addString("\n"); + } + [$toHTML](availableSpace) { + return HTMLResult.success({ + name: "br" + }); + } +} +class Html extends XhtmlObject { + constructor(attributes) { + super(attributes, "html"); + } + [$toHTML](availableSpace) { + const children = []; + this[$extra] = { + children + }; + this[$childrenToHTML]({}); + if (children.length === 0) { + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: {} + }, + value: this[$content] || "" + }); + } + if (children.length === 1) { + const child = children[0]; + if (child.attributes?.class.includes("xfaRich")) { + return HTMLResult.success(child); + } + } + return HTMLResult.success({ + name: "div", + attributes: { + class: ["xfaRich"], + style: {} + }, + children + }); + } +} +class I extends XhtmlObject { + constructor(attributes) { + super(attributes, "i"); + } + [$pushGlyphs](measure) { + measure.pushFont({ + posture: "italic" + }); + super[$pushGlyphs](measure); + measure.popFont(); + } +} +class Li extends XhtmlObject { + constructor(attributes) { + super(attributes, "li"); + } +} +class Ol extends XhtmlObject { + constructor(attributes) { + super(attributes, "ol"); + } +} +class P extends XhtmlObject { + constructor(attributes) { + super(attributes, "p"); + } + [$pushGlyphs](measure) { + super[$pushGlyphs](measure, false); + measure.addString("\n"); + measure.addPara(); + measure.popFont(); + } + [$text]() { + const siblings = this[$getParent]()[$getChildren](); + if (siblings.at(-1) === this) { + return super[$text](); + } + return super[$text]() + "\n"; + } +} +class Span extends XhtmlObject { + constructor(attributes) { + super(attributes, "span"); + } +} +class Sub extends XhtmlObject { + constructor(attributes) { + super(attributes, "sub"); + } +} +class Sup extends XhtmlObject { + constructor(attributes) { + super(attributes, "sup"); + } +} +class Ul extends XhtmlObject { + constructor(attributes) { + super(attributes, "ul"); + } +} +class XhtmlNamespace { + static [$buildXFAObject](name, attributes) { + if (XhtmlNamespace.hasOwnProperty(name)) { + return XhtmlNamespace[name](attributes); + } + return undefined; + } + static a(attributes) { + return new A(attributes); + } + static b(attributes) { + return new B(attributes); + } + static body(attributes) { + return new Body(attributes); + } + static br(attributes) { + return new Br(attributes); + } + static html(attributes) { + return new Html(attributes); + } + static i(attributes) { + return new I(attributes); + } + static li(attributes) { + return new Li(attributes); + } + static ol(attributes) { + return new Ol(attributes); + } + static p(attributes) { + return new P(attributes); + } + static span(attributes) { + return new Span(attributes); + } + static sub(attributes) { + return new Sub(attributes); + } + static sup(attributes) { + return new Sup(attributes); + } + static ul(attributes) { + return new Ul(attributes); + } +} + +;// ./src/core/xfa/setup.js + + + + + + + + + +const NamespaceSetUp = { + config: ConfigNamespace, + connection: ConnectionSetNamespace, + datasets: DatasetsNamespace, + localeSet: LocaleSetNamespace, + signature: SignatureNamespace, + stylesheet: StylesheetNamespace, + template: TemplateNamespace, + xdp: XdpNamespace, + xhtml: XhtmlNamespace +}; + +;// ./src/core/xfa/unknown.js + + +class UnknownNamespace { + constructor(nsId) { + this.namespaceId = nsId; + } + [$buildXFAObject](name, attributes) { + return new XmlObject(this.namespaceId, name, attributes); + } +} + +;// ./src/core/xfa/builder.js + + + + + + + +class Root extends XFAObject { + constructor(ids) { + super(-1, "root", Object.create(null)); + this.element = null; + this[$ids] = ids; + } + [$onChild](child) { + this.element = child; + return true; + } + [$finalize]() { + super[$finalize](); + if (this.element.template instanceof Template) { + this[$ids].set($root, this.element); + this.element.template[$resolvePrototypes](this[$ids]); + this.element.template[$ids] = this[$ids]; + } + } +} +class Empty extends XFAObject { + constructor() { + super(-1, "", Object.create(null)); + } + [$onChild](_) { + return false; + } +} +class Builder { + constructor(rootNameSpace = null) { + this._namespaceStack = []; + this._nsAgnosticLevel = 0; + this._namespacePrefixes = new Map(); + this._namespaces = new Map(); + this._nextNsId = Math.max(...Object.values(NamespaceIds).map(({ + id + }) => id)); + this._currentNamespace = rootNameSpace || new UnknownNamespace(++this._nextNsId); + } + buildRoot(ids) { + return new Root(ids); + } + build({ + nsPrefix, + name, + attributes, + namespace, + prefixes + }) { + const hasNamespaceDef = namespace !== null; + if (hasNamespaceDef) { + this._namespaceStack.push(this._currentNamespace); + this._currentNamespace = this._searchNamespace(namespace); + } + if (prefixes) { + this._addNamespacePrefix(prefixes); + } + if (attributes.hasOwnProperty($nsAttributes)) { + const dataTemplate = NamespaceSetUp.datasets; + const nsAttrs = attributes[$nsAttributes]; + let xfaAttrs = null; + for (const [ns, attrs] of Object.entries(nsAttrs)) { + const nsToUse = this._getNamespaceToUse(ns); + if (nsToUse === dataTemplate) { + xfaAttrs = { + xfa: attrs + }; + break; + } + } + if (xfaAttrs) { + attributes[$nsAttributes] = xfaAttrs; + } else { + delete attributes[$nsAttributes]; + } + } + const namespaceToUse = this._getNamespaceToUse(nsPrefix); + const node = namespaceToUse?.[$buildXFAObject](name, attributes) || new Empty(); + if (node[$isNsAgnostic]()) { + this._nsAgnosticLevel++; + } + if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) { + node[$cleanup] = { + hasNamespace: hasNamespaceDef, + prefixes, + nsAgnostic: node[$isNsAgnostic]() + }; + } + return node; + } + isNsAgnostic() { + return this._nsAgnosticLevel > 0; + } + _searchNamespace(nsName) { + let ns = this._namespaces.get(nsName); + if (ns) { + return ns; + } + for (const [name, { + check + }] of Object.entries(NamespaceIds)) { + if (check(nsName)) { + ns = NamespaceSetUp[name]; + if (ns) { + this._namespaces.set(nsName, ns); + return ns; + } + break; + } + } + ns = new UnknownNamespace(++this._nextNsId); + this._namespaces.set(nsName, ns); + return ns; + } + _addNamespacePrefix(prefixes) { + for (const { + prefix, + value + } of prefixes) { + const namespace = this._searchNamespace(value); + let prefixStack = this._namespacePrefixes.get(prefix); + if (!prefixStack) { + prefixStack = []; + this._namespacePrefixes.set(prefix, prefixStack); + } + prefixStack.push(namespace); + } + } + _getNamespaceToUse(prefix) { + if (!prefix) { + return this._currentNamespace; + } + const prefixStack = this._namespacePrefixes.get(prefix); + if (prefixStack?.length > 0) { + return prefixStack.at(-1); + } + warn(`Unknown namespace prefix: ${prefix}.`); + return null; + } + clean(data) { + const { + hasNamespace, + prefixes, + nsAgnostic + } = data; + if (hasNamespace) { + this._currentNamespace = this._namespaceStack.pop(); + } + if (prefixes) { + prefixes.forEach(({ + prefix + }) => { + this._namespacePrefixes.get(prefix).pop(); + }); + } + if (nsAgnostic) { + this._nsAgnosticLevel--; + } + } +} + +;// ./src/core/xfa/parser.js + + + + +class XFAParser extends XMLParserBase { + constructor(rootNameSpace = null, richText = false) { + super(); + this._builder = new Builder(rootNameSpace); + this._stack = []; + this._globalData = { + usedTypefaces: new Set() + }; + this._ids = new Map(); + this._current = this._builder.buildRoot(this._ids); + this._errorCode = XMLParserErrorCode.NoError; + this._whiteRegex = /^\s+$/; + this._nbsps = /\xa0+/g; + this._richText = richText; + } + parse(data) { + this.parseXml(data); + if (this._errorCode !== XMLParserErrorCode.NoError) { + return undefined; + } + this._current[$finalize](); + return this._current.element; + } + onText(text) { + text = text.replace(this._nbsps, match => match.slice(1) + " "); + if (this._richText || this._current[$acceptWhitespace]()) { + this._current[$onText](text, this._richText); + return; + } + if (this._whiteRegex.test(text)) { + return; + } + this._current[$onText](text.trim()); + } + onCdata(text) { + this._current[$onText](text); + } + _mkAttributes(attributes, tagName) { + let namespace = null; + let prefixes = null; + const attributeObj = Object.create({}); + for (const { + name, + value + } of attributes) { + if (name === "xmlns") { + if (!namespace) { + namespace = value; + } else { + warn(`XFA - multiple namespace definition in <${tagName}>`); + } + } else if (name.startsWith("xmlns:")) { + const prefix = name.substring("xmlns:".length); + if (!prefixes) { + prefixes = []; + } + prefixes.push({ + prefix, + value + }); + } else { + const i = name.indexOf(":"); + if (i === -1) { + attributeObj[name] = value; + } else { + let nsAttrs = attributeObj[$nsAttributes]; + if (!nsAttrs) { + nsAttrs = attributeObj[$nsAttributes] = Object.create(null); + } + const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)]; + const attrs = nsAttrs[ns] ||= Object.create(null); + attrs[attrName] = value; + } + } + } + return [namespace, prefixes, attributeObj]; + } + _getNameAndPrefix(name, nsAgnostic) { + const i = name.indexOf(":"); + if (i === -1) { + return [name, null]; + } + return [name.substring(i + 1), nsAgnostic ? "" : name.substring(0, i)]; + } + onBeginElement(tagName, attributes, isEmpty) { + const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName); + const [name, nsPrefix] = this._getNameAndPrefix(tagName, this._builder.isNsAgnostic()); + const node = this._builder.build({ + nsPrefix, + name, + attributes: attributesObj, + namespace, + prefixes + }); + node[$globalData] = this._globalData; + if (isEmpty) { + node[$finalize](); + if (this._current[$onChild](node)) { + node[$setId](this._ids); + } + node[$clean](this._builder); + return; + } + this._stack.push(this._current); + this._current = node; + } + onEndElement(name) { + const node = this._current; + if (node[$isCDATAXml]() && typeof node[$content] === "string") { + const parser = new XFAParser(); + parser._globalData = this._globalData; + const root = parser.parse(node[$content]); + node[$content] = null; + node[$onChild](root); + } + node[$finalize](); + this._current = this._stack.pop(); + if (this._current[$onChild](node)) { + node[$setId](this._ids); + } + node[$clean](this._builder); + } + onError(code) { + this._errorCode = code; + } +} + +;// ./src/core/xfa/factory.js + + + + + + + + +class XFAFactory { + constructor(data) { + try { + this.root = new XFAParser().parse(XFAFactory._createDocument(data)); + const binder = new Binder(this.root); + this.form = binder.bind(); + this.dataHandler = new DataHandler(this.root, binder.getData()); + this.form[$globalData].template = this.form; + } catch (e) { + warn(`XFA - an error occurred during parsing and binding: ${e}`); + } + } + isValid() { + return this.root && this.form; + } + _createPagesHelper() { + const iterator = this.form[$toPages](); + return new Promise((resolve, reject) => { + const nextIteration = () => { + try { + const value = iterator.next(); + if (value.done) { + resolve(value.value); + } else { + setTimeout(nextIteration, 0); + } + } catch (e) { + reject(e); + } + }; + setTimeout(nextIteration, 0); + }); + } + async _createPages() { + try { + this.pages = await this._createPagesHelper(); + this.dims = this.pages.children.map(c => { + const { + width, + height + } = c.attributes.style; + return [0, 0, parseInt(width), parseInt(height)]; + }); + } catch (e) { + warn(`XFA - an error occurred during layout: ${e}`); + } + } + getBoundingBox(pageIndex) { + return this.dims[pageIndex]; + } + async getNumPages() { + if (!this.pages) { + await this._createPages(); + } + return this.dims.length; + } + setImages(images) { + this.form[$globalData].images = images; + } + setFonts(fonts) { + this.form[$globalData].fontFinder = new FontFinder(fonts); + const missingFonts = []; + for (let typeface of this.form[$globalData].usedTypefaces) { + typeface = stripQuotes(typeface); + const font = this.form[$globalData].fontFinder.find(typeface); + if (!font) { + missingFonts.push(typeface); + } + } + if (missingFonts.length > 0) { + return missingFonts; + } + return null; + } + appendFonts(fonts, reallyMissingFonts) { + this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts); + } + async getPages() { + if (!this.pages) { + await this._createPages(); + } + const pages = this.pages; + this.pages = null; + return pages; + } + serializeData(storage) { + return this.dataHandler.serialize(storage); + } + static _createDocument(data) { + if (!data["/xdp:xdp"]) { + return data["xdp:xdp"]; + } + return Object.values(data).join(""); + } + static getRichTextAsHtml(rc) { + if (!rc || typeof rc !== "string") { + return null; + } + try { + let root = new XFAParser(XhtmlNamespace, true).parse(rc); + if (!["body", "xhtml"].includes(root[$nodeName])) { + const newRoot = XhtmlNamespace.body({}); + newRoot[$appendChild](root); + root = newRoot; + } + const result = root[$toHTML](); + if (!result.success) { + return null; + } + const { + html + } = result; + const { + attributes + } = html; + if (attributes) { + if (attributes.class) { + attributes.class = attributes.class.filter(attr => !attr.startsWith("xfa")); + } + attributes.dir = "auto"; + } + return { + html, + str: root[$text]() + }; + } catch (e) { + warn(`XFA - an error occurred during parsing of rich text: ${e}`); + } + return null; + } +} + +;// ./src/core/annotation.js + + + + + + + + + + + + + + +class AnnotationFactory { + static createGlobals(pdfManager) { + return Promise.all([pdfManager.ensureCatalog("acroForm"), pdfManager.ensureDoc("xfaDatasets"), pdfManager.ensureCatalog("structTreeRoot"), pdfManager.ensureCatalog("baseUrl"), pdfManager.ensureCatalog("attachments")]).then(([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => { + return { + pdfManager, + acroForm: acroForm instanceof Dict ? acroForm : Dict.empty, + xfaDatasets, + structTreeRoot, + baseUrl, + attachments + }; + }, reason => { + warn(`createGlobals: "${reason}".`); + return null; + }); + } + static async create(xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, pageRef) { + const pageIndex = collectFields ? await this._getPageIndex(xref, ref, annotationGlobals.pdfManager) : null; + return annotationGlobals.pdfManager.ensure(this, "_create", [xref, ref, annotationGlobals, idFactory, collectFields, orphanFields, pageIndex, pageRef]); + } + static _create(xref, ref, annotationGlobals, idFactory, collectFields = false, orphanFields = null, pageIndex = null, pageRef = null) { + const dict = xref.fetchIfRef(ref); + if (!(dict instanceof Dict)) { + return undefined; + } + const { + acroForm, + pdfManager + } = annotationGlobals; + const id = ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`; + let subtype = dict.get("Subtype"); + subtype = subtype instanceof Name ? subtype.name : null; + const parameters = { + xref, + ref, + dict, + subtype, + id, + annotationGlobals, + collectFields, + orphanFields, + needAppearances: !collectFields && acroForm.get("NeedAppearances") === true, + pageIndex, + evaluatorOptions: pdfManager.evaluatorOptions, + pageRef + }; + switch (subtype) { + case "Link": + return new LinkAnnotation(parameters); + case "Text": + return new TextAnnotation(parameters); + case "Widget": + let fieldType = getInheritableProperty({ + dict, + key: "FT" + }); + fieldType = fieldType instanceof Name ? fieldType.name : null; + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotation(parameters); + case "Btn": + return new ButtonWidgetAnnotation(parameters); + case "Ch": + return new ChoiceWidgetAnnotation(parameters); + case "Sig": + return new SignatureWidgetAnnotation(parameters); + } + warn(`Unimplemented widget field type "${fieldType}", ` + "falling back to base field type."); + return new WidgetAnnotation(parameters); + case "Popup": + return new PopupAnnotation(parameters); + case "FreeText": + return new FreeTextAnnotation(parameters); + case "Line": + return new LineAnnotation(parameters); + case "Square": + return new SquareAnnotation(parameters); + case "Circle": + return new CircleAnnotation(parameters); + case "PolyLine": + return new PolylineAnnotation(parameters); + case "Polygon": + return new PolygonAnnotation(parameters); + case "Caret": + return new CaretAnnotation(parameters); + case "Ink": + return new InkAnnotation(parameters); + case "Highlight": + return new HighlightAnnotation(parameters); + case "Underline": + return new UnderlineAnnotation(parameters); + case "Squiggly": + return new SquigglyAnnotation(parameters); + case "StrikeOut": + return new StrikeOutAnnotation(parameters); + case "Stamp": + return new StampAnnotation(parameters); + case "FileAttachment": + return new FileAttachmentAnnotation(parameters); + default: + if (!collectFields) { + if (!subtype) { + warn("Annotation is missing the required /Subtype."); + } else { + warn(`Unimplemented annotation type "${subtype}", ` + "falling back to base annotation."); + } + } + return new Annotation(parameters); + } + } + static async _getPageIndex(xref, ref, pdfManager) { + try { + const annotDict = await xref.fetchIfRefAsync(ref); + if (!(annotDict instanceof Dict)) { + return -1; + } + const pageRef = annotDict.getRaw("P"); + if (pageRef instanceof Ref) { + try { + const pageIndex = await pdfManager.ensureCatalog("getPageIndex", [pageRef]); + return pageIndex; + } catch (ex) { + info(`_getPageIndex -- not a valid page reference: "${ex}".`); + } + } + if (annotDict.has("Kids")) { + return -1; + } + const numPages = await pdfManager.ensureDoc("numPages"); + for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { + const page = await pdfManager.getPage(pageIndex); + const annotations = await pdfManager.ensure(page, "annotations"); + for (const annotRef of annotations) { + if (annotRef instanceof Ref && isRefsEqual(annotRef, ref)) { + return pageIndex; + } + } + } + } catch (ex) { + warn(`_getPageIndex: "${ex}".`); + } + return -1; + } + static generateImages(annotations, xref, isOffscreenCanvasSupported) { + if (!isOffscreenCanvasSupported) { + warn("generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images."); + return null; + } + let imagePromises; + for (const { + bitmapId, + bitmap + } of annotations) { + if (!bitmap) { + continue; + } + imagePromises ||= new Map(); + imagePromises.set(bitmapId, StampAnnotation.createImage(bitmap, xref)); + } + return imagePromises; + } + static async saveNewAnnotations(evaluator, task, annotations, imagePromises, changes) { + const xref = evaluator.xref; + let baseFontRef; + const promises = []; + const { + isOffscreenCanvasSupported + } = evaluator.options; + for (const annotation of annotations) { + if (annotation.deleted) { + continue; + } + switch (annotation.annotationType) { + case AnnotationEditorType.FREETEXT: + if (!baseFontRef) { + const baseFont = new Dict(xref); + baseFont.set("BaseFont", Name.get("Helvetica")); + baseFont.set("Type", Name.get("Font")); + baseFont.set("Subtype", Name.get("Type1")); + baseFont.set("Encoding", Name.get("WinAnsiEncoding")); + baseFontRef = xref.getNewTemporaryRef(); + changes.put(baseFontRef, { + data: baseFont + }); + } + promises.push(FreeTextAnnotation.createNewAnnotation(xref, annotation, changes, { + evaluator, + task, + baseFontRef + })); + break; + case AnnotationEditorType.HIGHLIGHT: + if (annotation.quadPoints) { + promises.push(HighlightAnnotation.createNewAnnotation(xref, annotation, changes)); + } else { + promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes)); + } + break; + case AnnotationEditorType.INK: + promises.push(InkAnnotation.createNewAnnotation(xref, annotation, changes)); + break; + case AnnotationEditorType.STAMP: + const image = isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null; + if (image?.imageStream) { + const { + imageStream, + smaskStream + } = image; + if (smaskStream) { + const smaskRef = xref.getNewTemporaryRef(); + changes.put(smaskRef, { + data: smaskStream + }); + imageStream.dict.set("SMask", smaskRef); + } + const imageRef = image.imageRef = xref.getNewTemporaryRef(); + changes.put(imageRef, { + data: imageStream + }); + image.imageStream = image.smaskStream = null; + } + promises.push(StampAnnotation.createNewAnnotation(xref, annotation, changes, { + image + })); + break; + } + } + return { + annotations: await Promise.all(promises) + }; + } + static async printNewAnnotations(annotationGlobals, evaluator, task, annotations, imagePromises) { + if (!annotations) { + return null; + } + const { + options, + xref + } = evaluator; + const promises = []; + for (const annotation of annotations) { + if (annotation.deleted) { + continue; + } + switch (annotation.annotationType) { + case AnnotationEditorType.FREETEXT: + promises.push(FreeTextAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluator, + task, + evaluatorOptions: options + })); + break; + case AnnotationEditorType.HIGHLIGHT: + if (annotation.quadPoints) { + promises.push(HighlightAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + } else { + promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + } + break; + case AnnotationEditorType.INK: + promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + evaluatorOptions: options + })); + break; + case AnnotationEditorType.STAMP: + const image = options.isOffscreenCanvasSupported ? await imagePromises?.get(annotation.bitmapId) : null; + if (image?.imageStream) { + const { + imageStream, + smaskStream + } = image; + if (smaskStream) { + imageStream.dict.set("SMask", smaskStream); + } + image.imageRef = new JpegStream(imageStream, imageStream.length); + image.imageStream = image.smaskStream = null; + } + promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals, xref, annotation, { + image, + evaluatorOptions: options + })); + break; + } + } + return Promise.all(promises); + } +} +function getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) { + if (!Array.isArray(color)) { + return defaultColor; + } + const rgbColor = defaultColor || new Uint8ClampedArray(3); + switch (color.length) { + case 0: + return null; + case 1: + ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + case 3: + ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + case 4: + ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0); + return rgbColor; + default: + return defaultColor; + } +} +function getPdfColorArray(color) { + return Array.from(color, c => c / 255); +} +function getQuadPoints(dict, rect) { + const quadPoints = dict.getArray("QuadPoints"); + if (!isNumberArray(quadPoints, null) || quadPoints.length === 0 || quadPoints.length % 8 > 0) { + return null; + } + const newQuadPoints = new Float32Array(quadPoints.length); + for (let i = 0, ii = quadPoints.length; i < ii; i += 8) { + const [x1, y1, x2, y2, x3, y3, x4, y4] = quadPoints.slice(i, i + 8); + const minX = Math.min(x1, x2, x3, x4); + const maxX = Math.max(x1, x2, x3, x4); + const minY = Math.min(y1, y2, y3, y4); + const maxY = Math.max(y1, y2, y3, y4); + if (rect !== null && (minX < rect[0] || maxX > rect[2] || minY < rect[1] || maxY > rect[3])) { + return null; + } + newQuadPoints.set([minX, maxY, maxX, maxY, minX, minY, maxX, minY], i); + } + return newQuadPoints; +} +function getTransformMatrix(rect, bbox, matrix) { + const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(bbox, matrix); + if (minX === maxX || minY === maxY) { + return [1, 0, 0, 1, rect[0], rect[1]]; + } + const xRatio = (rect[2] - rect[0]) / (maxX - minX); + const yRatio = (rect[3] - rect[1]) / (maxY - minY); + return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio]; +} +class Annotation { + constructor(params) { + const { + dict, + xref, + annotationGlobals, + ref, + orphanFields + } = params; + const parentRef = orphanFields?.get(ref); + if (parentRef) { + dict.set("Parent", parentRef); + } + this.setTitle(dict.get("T")); + this.setContents(dict.get("Contents")); + this.setModificationDate(dict.get("M")); + this.setFlags(dict.get("F")); + this.setRectangle(dict.getArray("Rect")); + this.setColor(dict.getArray("C")); + this.setBorderStyle(dict); + this.setAppearance(dict); + this.setOptionalContent(dict); + const MK = dict.get("MK"); + this.setBorderAndBackgroundColors(MK); + this.setRotation(MK, dict); + this.ref = params.ref instanceof Ref ? params.ref : null; + this._streams = []; + if (this.appearance) { + this._streams.push(this.appearance); + } + const isLocked = !!(this.flags & AnnotationFlag.LOCKED); + const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS); + this.data = { + annotationFlags: this.flags, + borderStyle: this.borderStyle, + color: this.color, + backgroundColor: this.backgroundColor, + borderColor: this.borderColor, + rotation: this.rotation, + contentsObj: this._contents, + hasAppearance: !!this.appearance, + id: params.id, + modificationDate: this.modificationDate, + rect: this.rectangle, + subtype: params.subtype, + hasOwnCanvas: false, + noRotate: !!(this.flags & AnnotationFlag.NOROTATE), + noHTML: isLocked && isContentLocked, + isEditable: false, + structParent: -1 + }; + if (annotationGlobals.structTreeRoot) { + let structParent = dict.get("StructParent"); + this.data.structParent = structParent = Number.isInteger(structParent) && structParent >= 0 ? structParent : -1; + annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef, structParent); + } + if (params.collectFields) { + const kids = dict.get("Kids"); + if (Array.isArray(kids)) { + const kidIds = []; + for (const kid of kids) { + if (kid instanceof Ref) { + kidIds.push(kid.toString()); + } + } + if (kidIds.length !== 0) { + this.data.kidIds = kidIds; + } + } + this.data.actions = collectActions(xref, dict, AnnotationActionEventType); + this.data.fieldName = this._constructFieldName(dict); + this.data.pageIndex = params.pageIndex; + } + const it = dict.get("IT"); + if (it instanceof Name) { + this.data.it = it.name; + } + this._isOffscreenCanvasSupported = params.evaluatorOptions.isOffscreenCanvasSupported; + this._fallbackFontDict = null; + this._needAppearances = false; + } + _hasFlag(flags, flag) { + return !!(flags & flag); + } + _buildFlags(noView, noPrint) { + let { + flags + } = this; + if (noView === undefined) { + if (noPrint === undefined) { + return undefined; + } + if (noPrint) { + return flags & ~AnnotationFlag.PRINT; + } + return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.PRINT; + } + if (noView) { + flags |= AnnotationFlag.PRINT; + if (noPrint) { + return flags & ~AnnotationFlag.NOVIEW | AnnotationFlag.HIDDEN; + } + return flags & ~AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW; + } + flags &= ~(AnnotationFlag.HIDDEN | AnnotationFlag.NOVIEW); + if (noPrint) { + return flags & ~AnnotationFlag.PRINT; + } + return flags | AnnotationFlag.PRINT; + } + _isViewable(flags) { + return !this._hasFlag(flags, AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, AnnotationFlag.NOVIEW); + } + _isPrintable(flags) { + return this._hasFlag(flags, AnnotationFlag.PRINT) && !this._hasFlag(flags, AnnotationFlag.HIDDEN) && !this._hasFlag(flags, AnnotationFlag.INVISIBLE); + } + mustBeViewed(annotationStorage, _renderForms) { + const noView = annotationStorage?.get(this.data.id)?.noView; + if (noView !== undefined) { + return !noView; + } + return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN); + } + mustBePrinted(annotationStorage) { + const noPrint = annotationStorage?.get(this.data.id)?.noPrint; + if (noPrint !== undefined) { + return !noPrint; + } + return this.printable; + } + mustBeViewedWhenEditing(isEditing, modifiedIds = null) { + return isEditing ? !this.data.isEditable : !modifiedIds?.has(this.data.id); + } + get viewable() { + if (this.data.quadPoints === null) { + return false; + } + if (this.flags === 0) { + return true; + } + return this._isViewable(this.flags); + } + get printable() { + if (this.data.quadPoints === null) { + return false; + } + if (this.flags === 0) { + return false; + } + return this._isPrintable(this.flags); + } + _parseStringHelper(data) { + const str = typeof data === "string" ? stringToPDFString(data) : ""; + const dir = str && bidi(str).dir === "rtl" ? "rtl" : "ltr"; + return { + str, + dir + }; + } + setDefaultAppearance(params) { + const { + dict, + annotationGlobals + } = params; + const defaultAppearance = getInheritableProperty({ + dict, + key: "DA" + }) || annotationGlobals.acroForm.get("DA"); + this._defaultAppearance = typeof defaultAppearance === "string" ? defaultAppearance : ""; + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance); + } + setTitle(title) { + this._title = this._parseStringHelper(title); + } + setContents(contents) { + this._contents = this._parseStringHelper(contents); + } + setModificationDate(modificationDate) { + this.modificationDate = typeof modificationDate === "string" ? modificationDate : null; + } + setFlags(flags) { + this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0; + if (this.flags & AnnotationFlag.INVISIBLE && this.constructor.name !== "Annotation") { + this.flags ^= AnnotationFlag.INVISIBLE; + } + } + hasFlag(flag) { + return this._hasFlag(this.flags, flag); + } + setRectangle(rectangle) { + this.rectangle = lookupNormalRect(rectangle, [0, 0, 0, 0]); + } + setColor(color) { + this.color = getRgbColor(color); + } + setLineEndings(lineEndings) { + this.lineEndings = ["None", "None"]; + if (Array.isArray(lineEndings) && lineEndings.length === 2) { + for (let i = 0; i < 2; i++) { + const obj = lineEndings[i]; + if (obj instanceof Name) { + switch (obj.name) { + case "None": + continue; + case "Square": + case "Circle": + case "Diamond": + case "OpenArrow": + case "ClosedArrow": + case "Butt": + case "ROpenArrow": + case "RClosedArrow": + case "Slash": + this.lineEndings[i] = obj.name; + continue; + } + } + warn(`Ignoring invalid lineEnding: ${obj}`); + } + } + } + setRotation(mk, dict) { + this.rotation = 0; + let angle = mk instanceof Dict ? mk.get("R") || 0 : dict.get("Rotate") || 0; + if (Number.isInteger(angle) && angle !== 0) { + angle %= 360; + if (angle < 0) { + angle += 360; + } + if (angle % 90 === 0) { + this.rotation = angle; + } + } + } + setBorderAndBackgroundColors(mk) { + if (mk instanceof Dict) { + this.borderColor = getRgbColor(mk.getArray("BC"), null); + this.backgroundColor = getRgbColor(mk.getArray("BG"), null); + } else { + this.borderColor = this.backgroundColor = null; + } + } + setBorderStyle(borderStyle) { + this.borderStyle = new AnnotationBorderStyle(); + if (!(borderStyle instanceof Dict)) { + return; + } + if (borderStyle.has("BS")) { + const dict = borderStyle.get("BS"); + if (dict instanceof Dict) { + const dictType = dict.get("Type"); + if (!dictType || isName(dictType, "Border")) { + this.borderStyle.setWidth(dict.get("W"), this.rectangle); + this.borderStyle.setStyle(dict.get("S")); + this.borderStyle.setDashArray(dict.getArray("D")); + } + } + } else if (borderStyle.has("Border")) { + const array = borderStyle.getArray("Border"); + if (Array.isArray(array) && array.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(array[0]); + this.borderStyle.setVerticalCornerRadius(array[1]); + this.borderStyle.setWidth(array[2], this.rectangle); + if (array.length === 4) { + this.borderStyle.setDashArray(array[3], true); + } + } + } else { + this.borderStyle.setWidth(0); + } + } + setAppearance(dict) { + this.appearance = null; + const appearanceStates = dict.get("AP"); + if (!(appearanceStates instanceof Dict)) { + return; + } + const normalAppearanceState = appearanceStates.get("N"); + if (normalAppearanceState instanceof BaseStream) { + this.appearance = normalAppearanceState; + return; + } + if (!(normalAppearanceState instanceof Dict)) { + return; + } + const as = dict.get("AS"); + if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) { + return; + } + const appearance = normalAppearanceState.get(as.name); + if (appearance instanceof BaseStream) { + this.appearance = appearance; + } + } + setOptionalContent(dict) { + this.oc = null; + const oc = dict.get("OC"); + if (oc instanceof Name) { + warn("setOptionalContent: Support for /Name-entry is not implemented."); + } else if (oc instanceof Dict) { + this.oc = oc; + } + } + loadResources(keys, appearance) { + return appearance.dict.getAsync("Resources").then(resources => { + if (!resources) { + return undefined; + } + const objectLoader = new ObjectLoader(resources, keys, resources.xref); + return objectLoader.load().then(function () { + return resources; + }); + }); + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + const { + hasOwnCanvas, + id, + rect + } = this.data; + let appearance = this.appearance; + const isUsingOwnCanvas = !!(hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY); + if (isUsingOwnCanvas && (rect[0] === rect[2] || rect[1] === rect[3])) { + this.data.hasOwnCanvas = false; + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + if (!appearance) { + if (!isUsingOwnCanvas) { + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + appearance = new StringStream(""); + appearance.dict = new Dict(); + } + const appearanceDict = appearance.dict; + const resources = await this.loadResources(["ExtGState", "ColorSpace", "Pattern", "Shading", "XObject", "Font"], appearance); + const bbox = lookupRect(appearanceDict.getArray("BBox"), [0, 0, 1, 1]); + const matrix = lookupMatrix(appearanceDict.getArray("Matrix"), IDENTITY_MATRIX); + const transform = getTransformMatrix(rect, bbox, matrix); + const opList = new OperatorList(); + let optionalContent; + if (this.oc) { + optionalContent = await evaluator.parseMarkedContentProps(this.oc, null); + } + if (optionalContent !== undefined) { + opList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + opList.addOp(OPS.beginAnnotation, [id, rect, transform, matrix, isUsingOwnCanvas]); + await evaluator.getOperatorList({ + stream: appearance, + task, + resources, + operatorList: opList, + fallbackFontDict: this._fallbackFontDict + }); + opList.addOp(OPS.endAnnotation, []); + if (optionalContent !== undefined) { + opList.addOp(OPS.endMarkedContent, []); + } + this.reset(); + return { + opList, + separateForm: false, + separateCanvas: isUsingOwnCanvas + }; + } + async save(evaluator, task, annotationStorage, changes) { + return null; + } + get hasTextContent() { + return false; + } + async extractTextContent(evaluator, task, viewBox) { + if (!this.appearance) { + return; + } + const resources = await this.loadResources(["ExtGState", "Font", "Properties", "XObject"], this.appearance); + const text = []; + const buffer = []; + let firstPosition = null; + const sink = { + desiredSize: Math.Infinity, + ready: true, + enqueue(chunk, size) { + for (const item of chunk.items) { + if (item.str === undefined) { + continue; + } + firstPosition ||= item.transform.slice(-2); + buffer.push(item.str); + if (item.hasEOL) { + text.push(buffer.join("").trimEnd()); + buffer.length = 0; + } + } + } + }; + await evaluator.getTextContent({ + stream: this.appearance, + task, + resources, + includeMarkedContent: true, + keepWhiteSpace: true, + sink, + viewBox + }); + this.reset(); + if (buffer.length) { + text.push(buffer.join("").trimEnd()); + } + if (text.length > 1 || text[0]) { + const appearanceDict = this.appearance.dict; + const bbox = lookupRect(appearanceDict.getArray("BBox"), null); + const matrix = lookupMatrix(appearanceDict.getArray("Matrix"), null); + this.data.textPosition = this._transformPoint(firstPosition, bbox, matrix); + this.data.textContent = text; + } + } + _transformPoint(coords, bbox, matrix) { + const { + rect + } = this.data; + bbox ||= [0, 0, 1, 1]; + matrix ||= [1, 0, 0, 1, 0, 0]; + const transform = getTransformMatrix(rect, bbox, matrix); + transform[4] -= rect[0]; + transform[5] -= rect[1]; + coords = Util.applyTransform(coords, transform); + return Util.applyTransform(coords, matrix); + } + getFieldObject() { + if (this.data.kidIds) { + return { + id: this.data.id, + actions: this.data.actions, + name: this.data.fieldName, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + type: "", + kidIds: this.data.kidIds, + page: this.data.pageIndex, + rotation: this.rotation + }; + } + return null; + } + reset() { + for (const stream of this._streams) { + stream.reset(); + } + } + _constructFieldName(dict) { + if (!dict.has("T") && !dict.has("Parent")) { + warn("Unknown field name, falling back to empty field name."); + return ""; + } + if (!dict.has("Parent")) { + return stringToPDFString(dict.get("T")); + } + const fieldName = []; + if (dict.has("T")) { + fieldName.unshift(stringToPDFString(dict.get("T"))); + } + let loopDict = dict; + const visited = new RefSet(); + if (dict.objId) { + visited.put(dict.objId); + } + while (loopDict.has("Parent")) { + loopDict = loopDict.get("Parent"); + if (!(loopDict instanceof Dict) || loopDict.objId && visited.has(loopDict.objId)) { + break; + } + if (loopDict.objId) { + visited.put(loopDict.objId); + } + if (loopDict.has("T")) { + fieldName.unshift(stringToPDFString(loopDict.get("T"))); + } + } + return fieldName.join("."); + } +} +class AnnotationBorderStyle { + constructor() { + this.width = 1; + this.rawWidth = 1; + this.style = AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + setWidth(width, rect = [0, 0, 0, 0]) { + if (width instanceof Name) { + this.width = 0; + return; + } + if (typeof width === "number") { + if (width > 0) { + this.rawWidth = width; + const maxWidth = (rect[2] - rect[0]) / 2; + const maxHeight = (rect[3] - rect[1]) / 2; + if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) { + warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`); + width = 1; + } + } + this.width = width; + } + } + setStyle(style) { + if (!(style instanceof Name)) { + return; + } + switch (style.name) { + case "S": + this.style = AnnotationBorderStyleType.SOLID; + break; + case "D": + this.style = AnnotationBorderStyleType.DASHED; + break; + case "B": + this.style = AnnotationBorderStyleType.BEVELED; + break; + case "I": + this.style = AnnotationBorderStyleType.INSET; + break; + case "U": + this.style = AnnotationBorderStyleType.UNDERLINE; + break; + default: + break; + } + } + setDashArray(dashArray, forceStyle = false) { + if (Array.isArray(dashArray)) { + let isValid = true; + let allZeros = true; + for (const element of dashArray) { + const validNumber = +element >= 0; + if (!validNumber) { + isValid = false; + break; + } else if (element > 0) { + allZeros = false; + } + } + if (dashArray.length === 0 || isValid && !allZeros) { + this.dashArray = dashArray; + if (forceStyle) { + this.setStyle(Name.get("D")); + } + } else { + this.width = 0; + } + } else if (dashArray) { + this.width = 0; + } + } + setHorizontalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.horizontalCornerRadius = radius; + } + } + setVerticalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.verticalCornerRadius = radius; + } + } +} +class MarkupAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict + } = params; + if (dict.has("IRT")) { + const rawIRT = dict.getRaw("IRT"); + this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null; + const rt = dict.get("RT"); + this.data.replyType = rt instanceof Name ? rt.name : AnnotationReplyType.REPLY; + } + let popupRef = null; + if (this.data.replyType === AnnotationReplyType.GROUP) { + const parent = dict.get("IRT"); + this.setTitle(parent.get("T")); + this.data.titleObj = this._title; + this.setContents(parent.get("Contents")); + this.data.contentsObj = this._contents; + if (!parent.has("CreationDate")) { + this.data.creationDate = null; + } else { + this.setCreationDate(parent.get("CreationDate")); + this.data.creationDate = this.creationDate; + } + if (!parent.has("M")) { + this.data.modificationDate = null; + } else { + this.setModificationDate(parent.get("M")); + this.data.modificationDate = this.modificationDate; + } + popupRef = parent.getRaw("Popup"); + if (!parent.has("C")) { + this.data.color = null; + } else { + this.setColor(parent.getArray("C")); + this.data.color = this.color; + } + } else { + this.data.titleObj = this._title; + this.setCreationDate(dict.get("CreationDate")); + this.data.creationDate = this.creationDate; + popupRef = dict.getRaw("Popup"); + if (!dict.has("C")) { + this.data.color = null; + } + } + this.data.popupRef = popupRef instanceof Ref ? popupRef.toString() : null; + if (dict.has("RC")) { + this.data.richText = XFAFactory.getRichTextAsHtml(dict.get("RC")); + } + } + setCreationDate(creationDate) { + this.creationDate = typeof creationDate === "string" ? creationDate : null; + } + _setDefaultAppearance({ + xref, + extra, + strokeColor, + fillColor, + blendMode, + strokeAlpha, + fillAlpha, + pointsCallback + }) { + let minX = Number.MAX_VALUE; + let minY = Number.MAX_VALUE; + let maxX = Number.MIN_VALUE; + let maxY = Number.MIN_VALUE; + const buffer = ["q"]; + if (extra) { + buffer.push(extra); + } + if (strokeColor) { + buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`); + } + if (fillColor) { + buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`); + } + const pointsArray = this.data.quadPoints || Float32Array.from([this.rectangle[0], this.rectangle[3], this.rectangle[2], this.rectangle[3], this.rectangle[0], this.rectangle[1], this.rectangle[2], this.rectangle[1]]); + for (let i = 0, ii = pointsArray.length; i < ii; i += 8) { + const [mX, MX, mY, MY] = pointsCallback(buffer, pointsArray.subarray(i, i + 8)); + minX = Math.min(minX, mX); + maxX = Math.max(maxX, MX); + minY = Math.min(minY, mY); + maxY = Math.max(maxY, MY); + } + buffer.push("Q"); + const formDict = new Dict(xref); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("Subtype", Name.get("Form")); + const appearanceStream = new StringStream(buffer.join(" ")); + appearanceStream.dict = appearanceStreamDict; + formDict.set("Fm0", appearanceStream); + const gsDict = new Dict(xref); + if (blendMode) { + gsDict.set("BM", Name.get(blendMode)); + } + if (typeof strokeAlpha === "number") { + gsDict.set("CA", strokeAlpha); + } + if (typeof fillAlpha === "number") { + gsDict.set("ca", fillAlpha); + } + const stateDict = new Dict(xref); + stateDict.set("GS0", gsDict); + const resources = new Dict(xref); + resources.set("ExtGState", stateDict); + resources.set("XObject", formDict); + const appearanceDict = new Dict(xref); + appearanceDict.set("Resources", resources); + const bbox = this.data.rect = [minX, minY, maxX, maxY]; + appearanceDict.set("BBox", bbox); + this.appearance = new StringStream("/GS0 gs /Fm0 Do"); + this.appearance.dict = appearanceDict; + this._streams.push(this.appearance, appearanceStream); + } + static async createNewAnnotation(xref, annotation, changes, params) { + const annotationRef = annotation.ref ||= xref.getNewTemporaryRef(); + const ap = await this.createNewAppearanceStream(annotation, xref, params); + let annotationDict; + if (ap) { + const apRef = xref.getNewTemporaryRef(); + annotationDict = this.createNewDict(annotation, xref, { + apRef + }); + changes.put(apRef, { + data: ap + }); + } else { + annotationDict = this.createNewDict(annotation, xref, {}); + } + if (Number.isInteger(annotation.parentTreeId)) { + annotationDict.set("StructParent", annotation.parentTreeId); + } + changes.put(annotationRef, { + data: annotationDict + }); + return { + ref: annotationRef + }; + } + static async createNewPrintAnnotation(annotationGlobals, xref, annotation, params) { + const ap = await this.createNewAppearanceStream(annotation, xref, params); + const annotationDict = this.createNewDict(annotation, xref, ap ? { + ap + } : {}); + const newAnnotation = new this.prototype.constructor({ + dict: annotationDict, + xref, + annotationGlobals, + evaluatorOptions: params.evaluatorOptions + }); + if (annotation.ref) { + newAnnotation.ref = newAnnotation.refToReplace = annotation.ref; + } + return newAnnotation; + } +} +class WidgetAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict, + xref, + annotationGlobals + } = params; + const data = this.data; + this._needAppearances = params.needAppearances; + data.annotationType = AnnotationType.WIDGET; + if (data.fieldName === undefined) { + data.fieldName = this._constructFieldName(dict); + } + if (data.actions === undefined) { + data.actions = collectActions(xref, dict, AnnotationActionEventType); + } + let fieldValue = getInheritableProperty({ + dict, + key: "V", + getArray: true + }); + data.fieldValue = this._decodeFormValue(fieldValue); + const defaultFieldValue = getInheritableProperty({ + dict, + key: "DV", + getArray: true + }); + data.defaultFieldValue = this._decodeFormValue(defaultFieldValue); + if (fieldValue === undefined && annotationGlobals.xfaDatasets) { + const path = this._title.str; + if (path) { + this._hasValueFromXFA = true; + data.fieldValue = fieldValue = annotationGlobals.xfaDatasets.getValue(path); + } + } + if (fieldValue === undefined && data.defaultFieldValue !== null) { + data.fieldValue = data.defaultFieldValue; + } + data.alternativeText = stringToPDFString(dict.get("TU") || ""); + this.setDefaultAppearance(params); + data.hasAppearance ||= this._needAppearances && data.fieldValue !== undefined && data.fieldValue !== null; + const fieldType = getInheritableProperty({ + dict, + key: "FT" + }); + data.fieldType = fieldType instanceof Name ? fieldType.name : null; + const localResources = getInheritableProperty({ + dict, + key: "DR" + }); + const acroFormResources = annotationGlobals.acroForm.get("DR"); + const appearanceResources = this.appearance?.dict.get("Resources"); + this._fieldResources = { + localResources, + acroFormResources, + appearanceResources, + mergedResources: Dict.merge({ + xref, + dictArray: [localResources, appearanceResources, acroFormResources], + mergeSubDicts: true + }) + }; + data.fieldFlags = getInheritableProperty({ + dict, + key: "Ff" + }); + if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) { + data.fieldFlags = 0; + } + data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY); + data.required = this.hasFieldFlag(AnnotationFieldFlag.REQUIRED); + data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN) || this._hasFlag(data.annotationFlags, AnnotationFlag.NOVIEW); + } + _decodeFormValue(formValue) { + if (Array.isArray(formValue)) { + return formValue.filter(item => typeof item === "string").map(item => stringToPDFString(item)); + } else if (formValue instanceof Name) { + return stringToPDFString(formValue.name); + } else if (typeof formValue === "string") { + return stringToPDFString(formValue); + } + return null; + } + hasFieldFlag(flag) { + return !!(this.data.fieldFlags & flag); + } + _isViewable(flags) { + return true; + } + mustBeViewed(annotationStorage, renderForms) { + if (renderForms) { + return this.viewable; + } + return super.mustBeViewed(annotationStorage, renderForms) && !this._hasFlag(this.flags, AnnotationFlag.NOVIEW); + } + getRotationMatrix(annotationStorage) { + let rotation = annotationStorage?.get(this.data.id)?.rotation; + if (rotation === undefined) { + rotation = this.rotation; + } + if (rotation === 0) { + return IDENTITY_MATRIX; + } + const width = this.data.rect[2] - this.data.rect[0]; + const height = this.data.rect[3] - this.data.rect[1]; + return getRotationMatrix(rotation, width, height); + } + getBorderAndBackgroundAppearances(annotationStorage) { + let rotation = annotationStorage?.get(this.data.id)?.rotation; + if (rotation === undefined) { + rotation = this.rotation; + } + if (!this.backgroundColor && !this.borderColor) { + return ""; + } + const width = this.data.rect[2] - this.data.rect[0]; + const height = this.data.rect[3] - this.data.rect[1]; + const rect = rotation === 0 || rotation === 180 ? `0 0 ${width} ${height} re` : `0 0 ${height} ${width} re`; + let str = ""; + if (this.backgroundColor) { + str = `${getPdfColor(this.backgroundColor, true)} ${rect} f `; + } + if (this.borderColor) { + const borderWidth = this.borderStyle.width || 1; + str += `${borderWidth} w ${getPdfColor(this.borderColor, false)} ${rect} S `; + } + return str; + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + if (intent & RenderingIntentFlag.ANNOTATIONS_FORMS && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) { + return { + opList: new OperatorList(), + separateForm: true, + separateCanvas: false + }; + } + if (!this._hasText) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + const content = await this._getAppearance(evaluator, task, intent, annotationStorage); + if (this.appearance && content === null) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + const opList = new OperatorList(); + if (!this._defaultAppearance || content === null) { + return { + opList, + separateForm: false, + separateCanvas: false + }; + } + const isUsingOwnCanvas = !!(this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY); + const matrix = [1, 0, 0, 1, 0, 0]; + const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]]; + const transform = getTransformMatrix(this.data.rect, bbox, matrix); + let optionalContent; + if (this.oc) { + optionalContent = await evaluator.parseMarkedContentProps(this.oc, null); + } + if (optionalContent !== undefined) { + opList.addOp(OPS.beginMarkedContentProps, ["OC", optionalContent]); + } + opList.addOp(OPS.beginAnnotation, [this.data.id, this.data.rect, transform, this.getRotationMatrix(annotationStorage), isUsingOwnCanvas]); + const stream = new StringStream(content); + await evaluator.getOperatorList({ + stream, + task, + resources: this._fieldResources.mergedResources, + operatorList: opList + }); + opList.addOp(OPS.endAnnotation, []); + if (optionalContent !== undefined) { + opList.addOp(OPS.endMarkedContent, []); + } + return { + opList, + separateForm: false, + separateCanvas: isUsingOwnCanvas + }; + } + _getMKDict(rotation) { + const mk = new Dict(null); + if (rotation) { + mk.set("R", rotation); + } + if (this.borderColor) { + mk.set("BC", getPdfColorArray(this.borderColor)); + } + if (this.backgroundColor) { + mk.set("BG", getPdfColorArray(this.backgroundColor)); + } + return mk.size > 0 ? mk : null; + } + amendSavedDict(annotationStorage, dict) {} + setValue(dict, value, xref, changes) { + const { + dict: parentDict, + ref: parentRef + } = getParentToUpdate(dict, this.ref, xref); + if (!parentDict) { + dict.set("V", value); + } else if (!changes.has(parentRef)) { + const newParentDict = parentDict.clone(); + newParentDict.set("V", value); + changes.put(parentRef, { + data: newParentDict + }); + return newParentDict; + } + return null; + } + async save(evaluator, task, annotationStorage, changes) { + const storageEntry = annotationStorage?.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let value = storageEntry?.value, + rotation = storageEntry?.rotation; + if (value === this.data.fieldValue || value === undefined) { + if (!this._hasValueFromXFA && rotation === undefined && flags === undefined) { + return; + } + value ||= this.data.fieldValue; + } + if (rotation === undefined && !this._hasValueFromXFA && Array.isArray(value) && Array.isArray(this.data.fieldValue) && isArrayEqual(value, this.data.fieldValue) && flags === undefined) { + return; + } + if (rotation === undefined) { + rotation = this.rotation; + } + let appearance = null; + if (!this._needAppearances) { + appearance = await this._getAppearance(evaluator, task, RenderingIntentFlag.SAVE, annotationStorage); + if (appearance === null && flags === undefined) { + return; + } + } else {} + let needAppearances = false; + if (appearance?.needAppearances) { + needAppearances = true; + appearance = null; + } + const { + xref + } = evaluator; + const originalDict = xref.fetchIfRef(this.ref); + if (!(originalDict instanceof Dict)) { + return; + } + const dict = new Dict(xref); + for (const key of originalDict.getKeys()) { + if (key !== "AP") { + dict.set(key, originalDict.getRaw(key)); + } + } + if (flags !== undefined) { + dict.set("F", flags); + if (appearance === null && !needAppearances) { + const ap = originalDict.getRaw("AP"); + if (ap) { + dict.set("AP", ap); + } + } + } + const xfa = { + path: this.data.fieldName, + value + }; + const newParentDict = this.setValue(dict, Array.isArray(value) ? value.map(stringToAsciiOrUTF16BE) : stringToAsciiOrUTF16BE(value), xref, changes); + this.amendSavedDict(annotationStorage, newParentDict || dict); + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances + }); + if (appearance !== null) { + const newRef = xref.getNewTemporaryRef(); + const AP = new Dict(xref); + dict.set("AP", AP); + AP.set("N", newRef); + const resources = this._getSaveFieldResources(xref); + const appearanceStream = new StringStream(appearance); + const appearanceDict = appearanceStream.dict = new Dict(xref); + appearanceDict.set("Subtype", Name.get("Form")); + appearanceDict.set("Resources", resources); + appearanceDict.set("BBox", [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]]); + const rotationMatrix = this.getRotationMatrix(annotationStorage); + if (rotationMatrix !== IDENTITY_MATRIX) { + appearanceDict.set("Matrix", rotationMatrix); + } + changes.put(newRef, { + data: appearanceStream, + xfa: null, + needAppearances: false + }); + } + dict.set("M", `D:${getModificationDate()}`); + } + async _getAppearance(evaluator, task, intent, annotationStorage) { + const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD); + if (isPassword) { + return null; + } + const storageEntry = annotationStorage?.get(this.data.id); + let value, rotation; + if (storageEntry) { + value = storageEntry.formattedValue || storageEntry.value; + rotation = storageEntry.rotation; + } + if (rotation === undefined && value === undefined && !this._needAppearances) { + if (!this._hasValueFromXFA || this.appearance) { + return null; + } + } + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + if (value === undefined) { + value = this.data.fieldValue; + if (!value) { + return `/Tx BMC q ${colors}Q EMC`; + } + } + if (Array.isArray(value) && value.length === 1) { + value = value[0]; + } + assert(typeof value === "string", "Expected `value` to be a string."); + value = value.trimEnd(); + if (this.data.combo) { + const option = this.data.options.find(({ + exportValue + }) => value === exportValue); + value = option?.displayValue || value; + } + if (value === "") { + return `/Tx BMC q ${colors}Q EMC`; + } + if (rotation === undefined) { + rotation = this.rotation; + } + let lineCount = -1; + let lines; + if (this.data.multiLine) { + lines = value.split(/\r\n?|\n/).map(line => line.normalize("NFC")); + lineCount = lines.length; + } else { + lines = [value.replace(/\r\n?|\n/, "").normalize("NFC")]; + } + const defaultPadding = 1; + const defaultHPadding = 2; + let totalHeight = this.data.rect[3] - this.data.rect[1]; + let totalWidth = this.data.rect[2] - this.data.rect[0]; + if (rotation === 90 || rotation === 270) { + [totalWidth, totalHeight] = [totalHeight, totalWidth]; + } + if (!this._defaultAppearance) { + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g"); + } + let font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources); + let defaultAppearance, fontSize, lineHeight; + const encodedLines = []; + let encodingError = false; + for (const line of lines) { + const encodedString = font.encodeString(line); + if (encodedString.length > 1) { + encodingError = true; + } + encodedLines.push(encodedString.join("")); + } + if (encodingError && intent & RenderingIntentFlag.SAVE) { + return { + needAppearances: true + }; + } + if (encodingError && this._isOffscreenCanvasSupported) { + const fontFamily = this.data.comb ? "monospace" : "sans-serif"; + const fakeUnicodeFont = new FakeUnicodeFont(evaluator.xref, fontFamily); + const resources = fakeUnicodeFont.createFontResources(lines.join("")); + const newFont = resources.getRaw("Font"); + if (this._fieldResources.mergedResources.has("Font")) { + const oldFont = this._fieldResources.mergedResources.get("Font"); + for (const key of newFont.getKeys()) { + oldFont.set(key, newFont.getRaw(key)); + } + } else { + this._fieldResources.mergedResources.set("Font", newFont); + } + const fontName = fakeUnicodeFont.fontName.name; + font = await WidgetAnnotation._getFontData(evaluator, task, { + fontName, + fontSize: 0 + }, resources); + for (let i = 0, ii = encodedLines.length; i < ii; i++) { + encodedLines[i] = stringToUTF16String(lines[i]); + } + const savedDefaultAppearance = Object.assign(Object.create(null), this.data.defaultAppearanceData); + this.data.defaultAppearanceData.fontSize = 0; + this.data.defaultAppearanceData.fontName = fontName; + [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount); + this.data.defaultAppearanceData = savedDefaultAppearance; + } else { + if (!this._isOffscreenCanvasSupported) { + warn("_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly."); + } + [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(totalHeight - 2 * defaultPadding, totalWidth - 2 * defaultHPadding, value, font, lineCount); + } + let descent = font.descent; + if (isNaN(descent)) { + descent = BASELINE_FACTOR * lineHeight; + } else { + descent = Math.max(BASELINE_FACTOR * lineHeight, Math.abs(descent) * fontSize); + } + const defaultVPadding = Math.min(Math.floor((totalHeight - fontSize) / 2), defaultPadding); + const alignment = this.data.textAlignment; + if (this.data.multiLine) { + return this._getMultilineAppearance(defaultAppearance, encodedLines, font, fontSize, totalWidth, totalHeight, alignment, defaultHPadding, defaultVPadding, descent, lineHeight, annotationStorage); + } + if (this.data.comb) { + return this._getCombAppearance(defaultAppearance, font, encodedLines[0], fontSize, totalWidth, totalHeight, defaultHPadding, defaultVPadding, descent, lineHeight, annotationStorage); + } + const bottomPadding = defaultVPadding + descent; + if (alignment === 0 || alignment > 2) { + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(defaultHPadding)} ${numberToString(bottomPadding)} Tm (${escapeString(encodedLines[0])}) Tj` + " ET Q EMC"; + } + const prevInfo = { + shift: 0 + }; + const renderedText = this._renderText(encodedLines[0], font, fontSize, totalWidth, alignment, prevInfo, defaultHPadding, bottomPadding); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + " ET Q EMC"; + } + static async _getFontData(evaluator, task, appearanceData, resources) { + const operatorList = new OperatorList(); + const initialState = { + font: null, + clone() { + return this; + } + }; + const { + fontName, + fontSize + } = appearanceData; + await evaluator.handleSetFont(resources, [fontName && Name.get(fontName), fontSize], null, operatorList, task, initialState, null); + return initialState.font; + } + _getTextWidth(text, font) { + return font.charsToGlyphs(text).reduce((width, glyph) => width + glyph.width, 0) / 1000; + } + _computeFontSize(height, width, text, font, lineCount) { + let { + fontSize + } = this.data.defaultAppearanceData; + let lineHeight = (fontSize || 12) * LINE_FACTOR, + numberOfLines = Math.round(height / lineHeight); + if (!fontSize) { + const roundWithTwoDigits = x => Math.floor(x * 100) / 100; + if (lineCount === -1) { + const textWidth = this._getTextWidth(text, font); + fontSize = roundWithTwoDigits(Math.min(height / LINE_FACTOR, width / textWidth)); + numberOfLines = 1; + } else { + const lines = text.split(/\r\n?|\n/); + const cachedLines = []; + for (const line of lines) { + const encoded = font.encodeString(line).join(""); + const glyphs = font.charsToGlyphs(encoded); + const positions = font.getCharPositions(encoded); + cachedLines.push({ + line: encoded, + glyphs, + positions + }); + } + const isTooBig = fsize => { + let totalHeight = 0; + for (const cache of cachedLines) { + const chunks = this._splitLine(null, font, fsize, width, cache); + totalHeight += chunks.length * fsize; + if (totalHeight > height) { + return true; + } + } + return false; + }; + numberOfLines = Math.max(numberOfLines, lineCount); + while (true) { + lineHeight = height / numberOfLines; + fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR); + if (isTooBig(fontSize)) { + numberOfLines++; + continue; + } + break; + } + } + const { + fontName, + fontColor + } = this.data.defaultAppearanceData; + this._defaultAppearance = createDefaultAppearance({ + fontSize, + fontName, + fontColor + }); + } + return [this._defaultAppearance, fontSize, height / numberOfLines]; + } + _renderText(text, font, fontSize, totalWidth, alignment, prevInfo, hPadding, vPadding) { + let shift; + if (alignment === 1) { + const width = this._getTextWidth(text, font) * fontSize; + shift = (totalWidth - width) / 2; + } else if (alignment === 2) { + const width = this._getTextWidth(text, font) * fontSize; + shift = totalWidth - width - hPadding; + } else { + shift = hPadding; + } + const shiftStr = numberToString(shift - prevInfo.shift); + prevInfo.shift = shift; + vPadding = numberToString(vPadding); + return `${shiftStr} ${vPadding} Td (${escapeString(text)}) Tj`; + } + _getSaveFieldResources(xref) { + const { + localResources, + appearanceResources, + acroFormResources + } = this._fieldResources; + const fontName = this.data.defaultAppearanceData?.fontName; + if (!fontName) { + return localResources || Dict.empty; + } + for (const resources of [localResources, appearanceResources]) { + if (resources instanceof Dict) { + const localFont = resources.get("Font"); + if (localFont instanceof Dict && localFont.has(fontName)) { + return resources; + } + } + } + if (acroFormResources instanceof Dict) { + const acroFormFont = acroFormResources.get("Font"); + if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) { + const subFontDict = new Dict(xref); + subFontDict.set(fontName, acroFormFont.getRaw(fontName)); + const subResourcesDict = new Dict(xref); + subResourcesDict.set("Font", subFontDict); + return Dict.merge({ + xref, + dictArray: [subResourcesDict, localResources], + mergeSubDicts: true + }); + } + } + return localResources || Dict.empty; + } + getFieldObject() { + return null; + } +} +class TextWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + const { + dict + } = params; + if (dict.has("PMD")) { + this.flags |= AnnotationFlag.HIDDEN; + this.data.hidden = true; + warn("Barcodes are not supported"); + } + this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML; + this._hasText = true; + if (typeof this.data.fieldValue !== "string") { + this.data.fieldValue = ""; + } + let alignment = getInheritableProperty({ + dict, + key: "Q" + }); + if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) { + alignment = null; + } + this.data.textAlignment = alignment; + let maximumLength = getInheritableProperty({ + dict, + key: "MaxLen" + }); + if (!Number.isInteger(maximumLength) || maximumLength < 0) { + maximumLength = 0; + } + this.data.maxLen = maximumLength; + this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE); + this.data.comb = this.hasFieldFlag(AnnotationFieldFlag.COMB) && !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== 0; + this.data.doNotScroll = this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL); + } + get hasTextContent() { + return !!this.appearance && !this._needAppearances; + } + _getCombAppearance(defaultAppearance, font, text, fontSize, width, height, hPadding, vPadding, descent, lineHeight, annotationStorage) { + const combWidth = width / this.data.maxLen; + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + const buf = []; + const positions = font.getCharPositions(text); + for (const [start, end] of positions) { + buf.push(`(${escapeString(text.substring(start, end))}) Tj`); + } + const renderedComb = buf.join(` ${numberToString(combWidth)} 0 Td `); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${numberToString(hPadding)} ${numberToString(vPadding + descent)} Tm ${renderedComb}` + " ET Q EMC"; + } + _getMultilineAppearance(defaultAppearance, lines, font, fontSize, width, height, alignment, hPadding, vPadding, descent, lineHeight, annotationStorage) { + const buf = []; + const totalWidth = width - 2 * hPadding; + const prevInfo = { + shift: 0 + }; + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; + const chunks = this._splitLine(line, font, fontSize, totalWidth); + for (let j = 0, jj = chunks.length; j < jj; j++) { + const chunk = chunks[j]; + const vShift = i === 0 && j === 0 ? -vPadding - (lineHeight - descent) : -lineHeight; + buf.push(this._renderText(chunk, font, fontSize, width, alignment, prevInfo, hPadding, vShift)); + } + } + const colors = this.getBorderAndBackgroundAppearances(annotationStorage); + const renderedText = buf.join("\n"); + return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 ${numberToString(height)} Tm ${renderedText}` + " ET Q EMC"; + } + _splitLine(line, font, fontSize, width, cache = {}) { + line = cache.line || line; + const glyphs = cache.glyphs || font.charsToGlyphs(line); + if (glyphs.length <= 1) { + return [line]; + } + const positions = cache.positions || font.getCharPositions(line); + const scale = fontSize / 1000; + const chunks = []; + let lastSpacePosInStringStart = -1, + lastSpacePosInStringEnd = -1, + lastSpacePos = -1, + startChunk = 0, + currentWidth = 0; + for (let i = 0, ii = glyphs.length; i < ii; i++) { + const [start, end] = positions[i]; + const glyph = glyphs[i]; + const glyphWidth = glyph.width * scale; + if (glyph.unicode === " ") { + if (currentWidth + glyphWidth > width) { + chunks.push(line.substring(startChunk, start)); + startChunk = start; + currentWidth = glyphWidth; + lastSpacePosInStringStart = -1; + lastSpacePos = -1; + } else { + currentWidth += glyphWidth; + lastSpacePosInStringStart = start; + lastSpacePosInStringEnd = end; + lastSpacePos = i; + } + } else if (currentWidth + glyphWidth > width) { + if (lastSpacePosInStringStart !== -1) { + chunks.push(line.substring(startChunk, lastSpacePosInStringEnd)); + startChunk = lastSpacePosInStringEnd; + i = lastSpacePos + 1; + lastSpacePosInStringStart = -1; + currentWidth = 0; + } else { + chunks.push(line.substring(startChunk, start)); + startChunk = start; + currentWidth = glyphWidth; + } + } else { + currentWidth += glyphWidth; + } + } + if (startChunk < line.length) { + chunks.push(line.substring(startChunk, line.length)); + } + return chunks; + } + async extractTextContent(evaluator, task, viewBox) { + await super.extractTextContent(evaluator, task, viewBox); + const text = this.data.textContent; + if (!text) { + return; + } + const allText = text.join("\n"); + if (allText === this.data.fieldValue) { + return; + } + const regex = allText.replaceAll(/([.*+?^${}()|[\]\\])|(\s+)/g, (_m, p1) => p1 ? `\\${p1}` : "\\s+"); + if (new RegExp(`^\\s*${regex}\\s*$`).test(this.data.fieldValue)) { + this.data.textContent = this.data.fieldValue.split("\n"); + } + } + getFieldObject() { + return { + id: this.data.id, + value: this.data.fieldValue, + defaultValue: this.data.defaultFieldValue || "", + multiline: this.data.multiLine, + password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD), + charLimit: this.data.maxLen, + comb: this.data.comb, + editable: !this.data.readOnly, + hidden: this.data.hidden, + name: this.data.fieldName, + rect: this.data.rect, + actions: this.data.actions, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + type: "text" + }; + } +} +class ButtonWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.checkedAppearance = null; + this.uncheckedAppearance = null; + this.data.checkBox = !this.hasFieldFlag(AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + this.data.radioButton = this.hasFieldFlag(AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON); + this.data.isTooltipOnly = false; + if (this.data.checkBox) { + this._processCheckBox(params); + } else if (this.data.radioButton) { + this._processRadioButton(params); + } else if (this.data.pushButton) { + this.data.hasOwnCanvas = true; + this.data.noHTML = false; + this._processPushButton(params); + } else { + warn("Invalid field flags for button widget annotation"); + } + } + async getOperatorList(evaluator, task, intent, annotationStorage) { + if (this.data.pushButton) { + return super.getOperatorList(evaluator, task, intent, false, annotationStorage); + } + let value = null; + let rotation = null; + if (annotationStorage) { + const storageEntry = annotationStorage.get(this.data.id); + value = storageEntry ? storageEntry.value : null; + rotation = storageEntry ? storageEntry.rotation : null; + } + if (value === null && this.appearance) { + return super.getOperatorList(evaluator, task, intent, annotationStorage); + } + if (value === null || value === undefined) { + value = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue; + } + const appearance = value ? this.checkedAppearance : this.uncheckedAppearance; + if (appearance) { + const savedAppearance = this.appearance; + const savedMatrix = lookupMatrix(appearance.dict.getArray("Matrix"), IDENTITY_MATRIX); + if (rotation) { + appearance.dict.set("Matrix", this.getRotationMatrix(annotationStorage)); + } + this.appearance = appearance; + const operatorList = super.getOperatorList(evaluator, task, intent, annotationStorage); + this.appearance = savedAppearance; + appearance.dict.set("Matrix", savedMatrix); + return operatorList; + } + return { + opList: new OperatorList(), + separateForm: false, + separateCanvas: false + }; + } + async save(evaluator, task, annotationStorage, changes) { + if (this.data.checkBox) { + this._saveCheckbox(evaluator, task, annotationStorage, changes); + return; + } + if (this.data.radioButton) { + this._saveRadioButton(evaluator, task, annotationStorage, changes); + } + } + async _saveCheckbox(evaluator, task, annotationStorage, changes) { + if (!annotationStorage) { + return; + } + const storageEntry = annotationStorage.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let rotation = storageEntry?.rotation, + value = storageEntry?.value; + if (rotation === undefined && flags === undefined) { + if (value === undefined) { + return; + } + const defaultValue = this.data.fieldValue === this.data.exportValue; + if (defaultValue === value) { + return; + } + } + let dict = evaluator.xref.fetchIfRef(this.ref); + if (!(dict instanceof Dict)) { + return; + } + dict = dict.clone(); + if (rotation === undefined) { + rotation = this.rotation; + } + if (value === undefined) { + value = this.data.fieldValue === this.data.exportValue; + } + const xfa = { + path: this.data.fieldName, + value: value ? this.data.exportValue : "" + }; + const name = Name.get(value ? this.data.exportValue : "Off"); + this.setValue(dict, name, evaluator.xref, changes); + dict.set("AS", name); + dict.set("M", `D:${getModificationDate()}`); + if (flags !== undefined) { + dict.set("F", flags); + } + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances: false + }); + } + async _saveRadioButton(evaluator, task, annotationStorage, changes) { + if (!annotationStorage) { + return; + } + const storageEntry = annotationStorage.get(this.data.id); + const flags = this._buildFlags(storageEntry?.noView, storageEntry?.noPrint); + let rotation = storageEntry?.rotation, + value = storageEntry?.value; + if (rotation === undefined && flags === undefined) { + if (value === undefined) { + return; + } + const defaultValue = this.data.fieldValue === this.data.buttonValue; + if (defaultValue === value) { + return; + } + } + let dict = evaluator.xref.fetchIfRef(this.ref); + if (!(dict instanceof Dict)) { + return; + } + dict = dict.clone(); + if (value === undefined) { + value = this.data.fieldValue === this.data.buttonValue; + } + if (rotation === undefined) { + rotation = this.rotation; + } + const xfa = { + path: this.data.fieldName, + value: value ? this.data.buttonValue : "" + }; + const name = Name.get(value ? this.data.buttonValue : "Off"); + if (value) { + this.setValue(dict, name, evaluator.xref, changes); + } + dict.set("AS", name); + dict.set("M", `D:${getModificationDate()}`); + if (flags !== undefined) { + dict.set("F", flags); + } + const maybeMK = this._getMKDict(rotation); + if (maybeMK) { + dict.set("MK", maybeMK); + } + changes.put(this.ref, { + data: dict, + xfa, + needAppearances: false + }); + } + _getDefaultCheckedAppearance(params, type) { + const width = this.data.rect[2] - this.data.rect[0]; + const height = this.data.rect[3] - this.data.rect[1]; + const bbox = [0, 0, width, height]; + const FONT_RATIO = 0.8; + const fontSize = Math.min(width, height) * FONT_RATIO; + let metrics, char; + if (type === "check") { + metrics = { + width: 0.755 * fontSize, + height: 0.705 * fontSize + }; + char = "\x33"; + } else if (type === "disc") { + metrics = { + width: 0.791 * fontSize, + height: 0.705 * fontSize + }; + char = "\x6C"; + } else { + unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`); + } + const xShift = numberToString((width - metrics.width) / 2); + const yShift = numberToString((height - metrics.height) / 2); + const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`; + const appearanceStreamDict = new Dict(params.xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", bbox); + appearanceStreamDict.set("Matrix", [1, 0, 0, 1, 0, 0]); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(params.xref); + const font = new Dict(params.xref); + font.set("PdfJsZaDb", this.fallbackFontDict); + resources.set("Font", font); + appearanceStreamDict.set("Resources", resources); + this.checkedAppearance = new StringStream(appearance); + this.checkedAppearance.dict = appearanceStreamDict; + this._streams.push(this.checkedAppearance); + } + _processCheckBox(params) { + const customAppearance = params.dict.get("AP"); + if (!(customAppearance instanceof Dict)) { + return; + } + const normalAppearance = customAppearance.get("N"); + if (!(normalAppearance instanceof Dict)) { + return; + } + const asValue = this._decodeFormValue(params.dict.get("AS")); + if (typeof asValue === "string") { + this.data.fieldValue = asValue; + } + const yes = this.data.fieldValue !== null && this.data.fieldValue !== "Off" ? this.data.fieldValue : "Yes"; + const exportValues = normalAppearance.getKeys(); + if (exportValues.length === 0) { + exportValues.push("Off", yes); + } else if (exportValues.length === 1) { + if (exportValues[0] === "Off") { + exportValues.push(yes); + } else { + exportValues.unshift("Off"); + } + } else if (exportValues.includes(yes)) { + exportValues.length = 0; + exportValues.push("Off", yes); + } else { + const otherYes = exportValues.find(v => v !== "Off"); + exportValues.length = 0; + exportValues.push("Off", otherYes); + } + if (!exportValues.includes(this.data.fieldValue)) { + this.data.fieldValue = "Off"; + } + this.data.exportValue = exportValues[1]; + const checkedAppearance = normalAppearance.get(this.data.exportValue); + this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null; + const uncheckedAppearance = normalAppearance.get("Off"); + this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null; + if (this.checkedAppearance) { + this._streams.push(this.checkedAppearance); + } else { + this._getDefaultCheckedAppearance(params, "check"); + } + if (this.uncheckedAppearance) { + this._streams.push(this.uncheckedAppearance); + } + this._fallbackFontDict = this.fallbackFontDict; + if (this.data.defaultFieldValue === null) { + this.data.defaultFieldValue = "Off"; + } + } + _processRadioButton(params) { + this.data.buttonValue = null; + const fieldParent = params.dict.get("Parent"); + if (fieldParent instanceof Dict) { + this.parent = params.dict.getRaw("Parent"); + const fieldParentValue = fieldParent.get("V"); + if (fieldParentValue instanceof Name) { + this.data.fieldValue = this._decodeFormValue(fieldParentValue); + } + } + const appearanceStates = params.dict.get("AP"); + if (!(appearanceStates instanceof Dict)) { + return; + } + const normalAppearance = appearanceStates.get("N"); + if (!(normalAppearance instanceof Dict)) { + return; + } + for (const key of normalAppearance.getKeys()) { + if (key !== "Off") { + this.data.buttonValue = this._decodeFormValue(key); + break; + } + } + const checkedAppearance = normalAppearance.get(this.data.buttonValue); + this.checkedAppearance = checkedAppearance instanceof BaseStream ? checkedAppearance : null; + const uncheckedAppearance = normalAppearance.get("Off"); + this.uncheckedAppearance = uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null; + if (this.checkedAppearance) { + this._streams.push(this.checkedAppearance); + } else { + this._getDefaultCheckedAppearance(params, "disc"); + } + if (this.uncheckedAppearance) { + this._streams.push(this.uncheckedAppearance); + } + this._fallbackFontDict = this.fallbackFontDict; + if (this.data.defaultFieldValue === null) { + this.data.defaultFieldValue = "Off"; + } + } + _processPushButton(params) { + const { + dict, + annotationGlobals + } = params; + if (!dict.has("A") && !dict.has("AA") && !this.data.alternativeText) { + warn("Push buttons without action dictionaries are not supported"); + return; + } + this.data.isTooltipOnly = !dict.has("A") && !dict.has("AA"); + Catalog.parseDestDictionary({ + destDict: dict, + resultObj: this.data, + docBaseUrl: annotationGlobals.baseUrl, + docAttachments: annotationGlobals.attachments + }); + } + getFieldObject() { + let type = "button"; + let exportValues; + if (this.data.checkBox) { + type = "checkbox"; + exportValues = this.data.exportValue; + } else if (this.data.radioButton) { + type = "radiobutton"; + exportValues = this.data.buttonValue; + } + return { + id: this.data.id, + value: this.data.fieldValue || "Off", + defaultValue: this.data.defaultFieldValue, + exportValues, + editable: !this.data.readOnly, + name: this.data.fieldName, + rect: this.data.rect, + hidden: this.data.hidden, + actions: this.data.actions, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + type + }; + } + get fallbackFontDict() { + const dict = new Dict(); + dict.set("BaseFont", Name.get("ZapfDingbats")); + dict.set("Type", Name.get("FallbackType")); + dict.set("Subtype", Name.get("FallbackType")); + dict.set("Encoding", Name.get("ZapfDingbatsEncoding")); + return shadow(this, "fallbackFontDict", dict); + } +} +class ChoiceWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.indices = dict.getArray("I"); + this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0; + this.data.options = []; + const options = getInheritableProperty({ + dict, + key: "Opt" + }); + if (Array.isArray(options)) { + for (let i = 0, ii = options.length; i < ii; i++) { + const option = xref.fetchIfRef(options[i]); + const isOptionArray = Array.isArray(option); + this.data.options[i] = { + exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option), + displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option) + }; + } + } + if (!this.hasIndices) { + if (typeof this.data.fieldValue === "string") { + this.data.fieldValue = [this.data.fieldValue]; + } else if (!this.data.fieldValue) { + this.data.fieldValue = []; + } + } else { + this.data.fieldValue = []; + const ii = this.data.options.length; + for (const i of this.indices) { + if (Number.isInteger(i) && i >= 0 && i < ii) { + this.data.fieldValue.push(this.data.options[i].exportValue); + } + } + } + if (this.data.options.length === 0 && this.data.fieldValue.length > 0) { + this.data.options = this.data.fieldValue.map(value => ({ + exportValue: value, + displayValue: value + })); + } + this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO); + this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT); + this._hasText = true; + } + getFieldObject() { + const type = this.data.combo ? "combobox" : "listbox"; + const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null; + return { + id: this.data.id, + value, + defaultValue: this.data.defaultFieldValue, + editable: !this.data.readOnly, + name: this.data.fieldName, + rect: this.data.rect, + numItems: this.data.fieldValue.length, + multipleSelection: this.data.multiSelect, + hidden: this.data.hidden, + actions: this.data.actions, + items: this.data.options, + page: this.data.pageIndex, + strokeColor: this.data.borderColor, + fillColor: this.data.backgroundColor, + rotation: this.rotation, + type + }; + } + amendSavedDict(annotationStorage, dict) { + if (!this.hasIndices) { + return; + } + let values = annotationStorage?.get(this.data.id)?.value; + if (!Array.isArray(values)) { + values = [values]; + } + const indices = []; + const { + options + } = this.data; + for (let i = 0, j = 0, ii = options.length; i < ii; i++) { + if (options[i].exportValue === values[j]) { + indices.push(i); + j += 1; + } + } + dict.set("I", indices); + } + async _getAppearance(evaluator, task, intent, annotationStorage) { + if (this.data.combo) { + return super._getAppearance(evaluator, task, intent, annotationStorage); + } + let exportedValue, rotation; + const storageEntry = annotationStorage?.get(this.data.id); + if (storageEntry) { + rotation = storageEntry.rotation; + exportedValue = storageEntry.value; + } + if (rotation === undefined && exportedValue === undefined && !this._needAppearances) { + return null; + } + if (exportedValue === undefined) { + exportedValue = this.data.fieldValue; + } else if (!Array.isArray(exportedValue)) { + exportedValue = [exportedValue]; + } + const defaultPadding = 1; + const defaultHPadding = 2; + let totalHeight = this.data.rect[3] - this.data.rect[1]; + let totalWidth = this.data.rect[2] - this.data.rect[0]; + if (rotation === 90 || rotation === 270) { + [totalWidth, totalHeight] = [totalHeight, totalWidth]; + } + const lineCount = this.data.options.length; + const valueIndices = []; + for (let i = 0; i < lineCount; i++) { + const { + exportValue + } = this.data.options[i]; + if (exportedValue.includes(exportValue)) { + valueIndices.push(i); + } + } + if (!this._defaultAppearance) { + this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g"); + } + const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources); + let defaultAppearance; + let { + fontSize + } = this.data.defaultAppearanceData; + if (!fontSize) { + const lineHeight = (totalHeight - defaultPadding) / lineCount; + let lineWidth = -1; + let value; + for (const { + displayValue + } of this.data.options) { + const width = this._getTextWidth(displayValue, font); + if (width > lineWidth) { + lineWidth = width; + value = displayValue; + } + } + [defaultAppearance, fontSize] = this._computeFontSize(lineHeight, totalWidth - 2 * defaultHPadding, value, font, -1); + } else { + defaultAppearance = this._defaultAppearance; + } + const lineHeight = fontSize * LINE_FACTOR; + const vPadding = (lineHeight - fontSize) / 2; + const numberOfVisibleLines = Math.floor(totalHeight / lineHeight); + let firstIndex = 0; + if (valueIndices.length > 0) { + const minIndex = Math.min(...valueIndices); + const maxIndex = Math.max(...valueIndices); + firstIndex = Math.max(0, maxIndex - numberOfVisibleLines + 1); + if (firstIndex > minIndex) { + firstIndex = minIndex; + } + } + const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount); + const buf = ["/Tx BMC q", `1 1 ${totalWidth} ${totalHeight} re W n`]; + if (valueIndices.length) { + buf.push("0.600006 0.756866 0.854904 rg"); + for (const index of valueIndices) { + if (firstIndex <= index && index < end) { + buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`); + } + } + } + buf.push("BT", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`); + const prevInfo = { + shift: 0 + }; + for (let i = firstIndex; i < end; i++) { + const { + displayValue + } = this.data.options[i]; + const vpadding = i === firstIndex ? vPadding : 0; + buf.push(this._renderText(displayValue, font, fontSize, totalWidth, 0, prevInfo, defaultHPadding, -lineHeight + vpadding)); + } + buf.push("ET Q EMC"); + return buf.join("\n"); + } +} +class SignatureWidgetAnnotation extends WidgetAnnotation { + constructor(params) { + super(params); + this.data.fieldValue = null; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = !this.data.hasOwnCanvas; + } + getFieldObject() { + return { + id: this.data.id, + value: null, + page: this.data.pageIndex, + type: "signature" + }; + } +} +class TextAnnotation extends MarkupAnnotation { + constructor(params) { + const DEFAULT_ICON_SIZE = 22; + super(params); + this.data.noRotate = true; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const { + dict + } = params; + this.data.annotationType = AnnotationType.TEXT; + if (this.data.hasAppearance) { + this.data.name = "NoIcon"; + } else { + this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE; + this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE; + this.data.name = dict.has("Name") ? dict.get("Name").name : "Note"; + } + if (dict.has("State")) { + this.data.state = dict.get("State") || null; + this.data.stateModel = dict.get("StateModel") || null; + } else { + this.data.state = null; + this.data.stateModel = null; + } + } +} +class LinkAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict, + annotationGlobals + } = params; + this.data.annotationType = AnnotationType.LINK; + this.data.noHTML = false; + const quadPoints = getQuadPoints(dict, this.rectangle); + if (quadPoints) { + this.data.quadPoints = quadPoints; + } + this.data.borderColor ||= this.data.color; + Catalog.parseDestDictionary({ + destDict: dict, + resultObj: this.data, + docBaseUrl: annotationGlobals.baseUrl, + docAttachments: annotationGlobals.attachments + }); + } +} +class PopupAnnotation extends Annotation { + constructor(params) { + super(params); + const { + dict + } = params; + this.data.annotationType = AnnotationType.POPUP; + this.data.noHTML = false; + if (this.data.rect[0] === this.data.rect[2] || this.data.rect[1] === this.data.rect[3]) { + this.data.rect = null; + } + let parentItem = dict.get("Parent"); + if (!parentItem) { + warn("Popup annotation has a missing or invalid parent annotation."); + return; + } + this.data.parentRect = lookupNormalRect(parentItem.getArray("Rect"), null); + const rt = parentItem.get("RT"); + if (isName(rt, AnnotationReplyType.GROUP)) { + parentItem = parentItem.get("IRT"); + } + if (!parentItem.has("M")) { + this.data.modificationDate = null; + } else { + this.setModificationDate(parentItem.get("M")); + this.data.modificationDate = this.modificationDate; + } + if (!parentItem.has("C")) { + this.data.color = null; + } else { + this.setColor(parentItem.getArray("C")); + this.data.color = this.color; + } + if (!this.viewable) { + const parentFlags = parentItem.get("F"); + if (this._isViewable(parentFlags)) { + this.setFlags(parentFlags); + } + } + this.setTitle(parentItem.get("T")); + this.data.titleObj = this._title; + this.setContents(parentItem.get("Contents")); + this.data.contentsObj = this._contents; + if (parentItem.has("RC")) { + this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get("RC")); + } + this.data.open = !!dict.get("Open"); + } +} +class FreeTextAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.hasOwnCanvas = this.data.noRotate; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + const { + evaluatorOptions, + xref + } = params; + this.data.annotationType = AnnotationType.FREETEXT; + this.setDefaultAppearance(params); + this._hasAppearance = !!this.appearance; + if (this._hasAppearance) { + const { + fontColor, + fontSize + } = parseAppearanceStream(this.appearance, evaluatorOptions, xref); + this.data.defaultAppearanceData.fontColor = fontColor; + this.data.defaultAppearanceData.fontSize = fontSize || 10; + } else { + this.data.defaultAppearanceData.fontSize ||= 10; + const { + fontColor, + fontSize + } = this.data.defaultAppearanceData; + if (this._contents.str) { + this.data.textContent = this._contents.str.split(/\r\n?|\n/).map(line => line.trimEnd()); + const { + coords, + bbox, + matrix + } = FakeUnicodeFont.getFirstPositionInfo(this.rectangle, this.rotation, fontSize); + this.data.textPosition = this._transformPoint(coords, bbox, matrix); + } + if (this._isOffscreenCanvasSupported) { + const strokeAlpha = params.dict.get("CA"); + const fakeUnicodeFont = new FakeUnicodeFont(xref, "sans-serif"); + this.appearance = fakeUnicodeFont.createAppearance(this._contents.str, this.rectangle, this.rotation, fontSize, fontColor, strokeAlpha); + this._streams.push(this.appearance); + } else { + warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly."); + } + } + } + get hasTextContent() { + return this._hasAppearance; + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + color, + fontSize, + oldAnnotation, + rect, + rotation, + user, + value + } = annotation; + const freetext = oldAnnotation || new Dict(xref); + freetext.set("Type", Name.get("Annot")); + freetext.set("Subtype", Name.get("FreeText")); + if (oldAnnotation) { + freetext.set("M", `D:${getModificationDate()}`); + freetext.delete("RC"); + } else { + freetext.set("CreationDate", `D:${getModificationDate()}`); + } + freetext.set("Rect", rect); + const da = `/Helv ${fontSize} Tf ${getPdfColor(color, true)}`; + freetext.set("DA", da); + freetext.set("Contents", stringToAsciiOrUTF16BE(value)); + freetext.set("F", 4); + freetext.set("Border", [0, 0, 0]); + freetext.set("Rotate", rotation); + if (user) { + freetext.set("T", stringToAsciiOrUTF16BE(user)); + } + if (apRef || ap) { + const n = new Dict(xref); + freetext.set("AP", n); + if (apRef) { + n.set("N", apRef); + } else { + n.set("N", ap); + } + } + return freetext; + } + static async createNewAppearanceStream(annotation, xref, params) { + const { + baseFontRef, + evaluator, + task + } = params; + const { + color, + fontSize, + rect, + rotation, + value + } = annotation; + const resources = new Dict(xref); + const font = new Dict(xref); + if (baseFontRef) { + font.set("Helv", baseFontRef); + } else { + const baseFont = new Dict(xref); + baseFont.set("BaseFont", Name.get("Helvetica")); + baseFont.set("Type", Name.get("Font")); + baseFont.set("Subtype", Name.get("Type1")); + baseFont.set("Encoding", Name.get("WinAnsiEncoding")); + font.set("Helv", baseFont); + } + resources.set("Font", font); + const helv = await WidgetAnnotation._getFontData(evaluator, task, { + fontName: "Helv", + fontSize + }, resources); + const [x1, y1, x2, y2] = rect; + let w = x2 - x1; + let h = y2 - y1; + if (rotation % 180 !== 0) { + [w, h] = [h, w]; + } + const lines = value.split("\n"); + const scale = fontSize / 1000; + let totalWidth = -Infinity; + const encodedLines = []; + for (let line of lines) { + const encoded = helv.encodeString(line); + if (encoded.length > 1) { + return null; + } + line = encoded.join(""); + encodedLines.push(line); + let lineWidth = 0; + const glyphs = helv.charsToGlyphs(line); + for (const glyph of glyphs) { + lineWidth += glyph.width * scale; + } + totalWidth = Math.max(totalWidth, lineWidth); + } + let hscale = 1; + if (totalWidth > w) { + hscale = w / totalWidth; + } + let vscale = 1; + const lineHeight = LINE_FACTOR * fontSize; + const lineAscent = (LINE_FACTOR - LINE_DESCENT_FACTOR) * fontSize; + const totalHeight = lineHeight * lines.length; + if (totalHeight > h) { + vscale = h / totalHeight; + } + const fscale = Math.min(hscale, vscale); + const newFontSize = fontSize * fscale; + let firstPoint, clipBox, matrix; + switch (rotation) { + case 0: + matrix = [1, 0, 0, 1]; + clipBox = [rect[0], rect[1], w, h]; + firstPoint = [rect[0], rect[3] - lineAscent]; + break; + case 90: + matrix = [0, 1, -1, 0]; + clipBox = [rect[1], -rect[2], w, h]; + firstPoint = [rect[1], -rect[0] - lineAscent]; + break; + case 180: + matrix = [-1, 0, 0, -1]; + clipBox = [-rect[2], -rect[3], w, h]; + firstPoint = [-rect[2], -rect[1] - lineAscent]; + break; + case 270: + matrix = [0, -1, 1, 0]; + clipBox = [-rect[3], rect[0], w, h]; + firstPoint = [-rect[3], rect[2] - lineAscent]; + break; + } + const buffer = ["q", `${matrix.join(" ")} 0 0 cm`, `${clipBox.join(" ")} re W n`, `BT`, `${getPdfColor(color, true)}`, `0 Tc /Helv ${numberToString(newFontSize)} Tf`]; + buffer.push(`${firstPoint.join(" ")} Td (${escapeString(encodedLines[0])}) Tj`); + const vShift = numberToString(lineHeight); + for (let i = 1, ii = encodedLines.length; i < ii; i++) { + const line = encodedLines[i]; + buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`); + } + buffer.push("ET", "Q"); + const appearance = buffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Resources", resources); + appearanceStreamDict.set("Matrix", [1, 0, 0, 1, -rect[0], -rect[1]]); + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class LineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.LINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const lineCoordinates = lookupRect(dict.getArray("L"), [0, 0, 0, 0]); + this.data.lineCoordinates = Util.normalizeRect(lineCoordinates); + this.setLineEndings(dict.getArray("LE")); + this.data.lineEndings = this.lineEndings; + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null; + const fillAlpha = fillColor ? strokeAlpha : null; + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [this.data.lineCoordinates[0] - borderAdjust, this.data.lineCoordinates[1] - borderAdjust, this.data.lineCoordinates[2] + borderAdjust, this.data.lineCoordinates[3] + borderAdjust]; + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`, `${lineCoordinates[2]} ${lineCoordinates[3]} l`, "S"); + return [points[0] - borderWidth, points[2] + borderWidth, points[7] - borderWidth, points[3] + borderWidth]; + } + }); + } + } +} +class SquareAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.SQUARE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null; + const fillAlpha = fillColor ? strokeAlpha : null; + if (this.borderStyle.width === 0 && !fillColor) { + return; + } + this._setDefaultAppearance({ + xref, + extra: `${this.borderStyle.width} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + const x = points[4] + this.borderStyle.width / 2; + const y = points[5] + this.borderStyle.width / 2; + const width = points[6] - points[4] - this.borderStyle.width; + const height = points[3] - points[7] - this.borderStyle.width; + buffer.push(`${x} ${y} ${width} ${height} re`); + if (fillColor) { + buffer.push("B"); + } else { + buffer.push("S"); + } + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } +} +class CircleAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.CIRCLE; + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + const interiorColor = getRgbColor(dict.getArray("IC"), null); + const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null; + const fillAlpha = fillColor ? strokeAlpha : null; + if (this.borderStyle.width === 0 && !fillColor) { + return; + } + const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4)); + this._setDefaultAppearance({ + xref, + extra: `${this.borderStyle.width} w`, + strokeColor, + fillColor, + strokeAlpha, + fillAlpha, + pointsCallback: (buffer, points) => { + const x0 = points[0] + this.borderStyle.width / 2; + const y0 = points[1] - this.borderStyle.width / 2; + const x1 = points[6] - this.borderStyle.width / 2; + const y1 = points[7] + this.borderStyle.width / 2; + const xMid = x0 + (x1 - x0) / 2; + const yMid = y0 + (y1 - y0) / 2; + const xOffset = (x1 - x0) / 2 * controlPointsDistance; + const yOffset = (y1 - y0) / 2 * controlPointsDistance; + buffer.push(`${xMid} ${y1} m`, `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`, `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`, `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`, `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`, "h"); + if (fillColor) { + buffer.push("B"); + } else { + buffer.push("S"); + } + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } +} +class PolylineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.POLYLINE; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + this.data.vertices = null; + if (!(this instanceof PolygonAnnotation)) { + this.setLineEndings(dict.getArray("LE")); + this.data.lineEndings = this.lineEndings; + } + const rawVertices = dict.getArray("Vertices"); + if (!isNumberArray(rawVertices, null)) { + return; + } + const vertices = this.data.vertices = Float32Array.from(rawVertices); + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [Infinity, Infinity, -Infinity, -Infinity]; + for (let i = 0, ii = vertices.length; i < ii; i += 2) { + bbox[0] = Math.min(bbox[0], vertices[i] - borderAdjust); + bbox[1] = Math.min(bbox[1], vertices[i + 1] - borderAdjust); + bbox[2] = Math.max(bbox[2], vertices[i] + borderAdjust); + bbox[3] = Math.max(bbox[3], vertices[i + 1] + borderAdjust); + } + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + for (let i = 0, ii = vertices.length; i < ii; i += 2) { + buffer.push(`${vertices[i]} ${vertices[i + 1]} ${i === 0 ? "m" : "l"}`); + } + buffer.push("S"); + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } +} +class PolygonAnnotation extends PolylineAnnotation { + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.POLYGON; + } +} +class CaretAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.CARET; + } +} +class InkAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.INK; + this.data.inkLists = []; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + this.data.opacity = dict.get("CA") || 1; + const rawInkLists = dict.getArray("InkList"); + if (!Array.isArray(rawInkLists)) { + return; + } + for (let i = 0, ii = rawInkLists.length; i < ii; ++i) { + if (!Array.isArray(rawInkLists[i])) { + continue; + } + const inkList = new Float32Array(rawInkLists[i].length); + this.data.inkLists.push(inkList); + for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) { + const x = xref.fetchIfRef(rawInkLists[i][j]), + y = xref.fetchIfRef(rawInkLists[i][j + 1]); + if (typeof x === "number" && typeof y === "number") { + inkList[j] = x; + inkList[j + 1] = y; + } + } + } + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + const borderWidth = this.borderStyle.width || 1, + borderAdjust = 2 * borderWidth; + const bbox = [Infinity, Infinity, -Infinity, -Infinity]; + for (const inkList of this.data.inkLists) { + for (let i = 0, ii = inkList.length; i < ii; i += 2) { + bbox[0] = Math.min(bbox[0], inkList[i] - borderAdjust); + bbox[1] = Math.min(bbox[1], inkList[i + 1] - borderAdjust); + bbox[2] = Math.max(bbox[2], inkList[i] + borderAdjust); + bbox[3] = Math.max(bbox[3], inkList[i + 1] + borderAdjust); + } + } + if (!Util.intersect(this.rectangle, bbox)) { + this.rectangle = bbox; + } + this._setDefaultAppearance({ + xref, + extra: `${borderWidth} w`, + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + for (const inkList of this.data.inkLists) { + for (let i = 0, ii = inkList.length; i < ii; i += 2) { + buffer.push(`${inkList[i]} ${inkList[i + 1]} ${i === 0 ? "m" : "l"}`); + } + buffer.push("S"); + } + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + oldAnnotation, + color, + opacity, + paths, + outlines, + rect, + rotation, + thickness, + user + } = annotation; + const ink = oldAnnotation || new Dict(xref); + ink.set("Type", Name.get("Annot")); + ink.set("Subtype", Name.get("Ink")); + ink.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate()}`); + ink.set("Rect", rect); + ink.set("InkList", outlines?.points || paths.points); + ink.set("F", 4); + ink.set("Rotate", rotation); + if (user) { + ink.set("T", stringToAsciiOrUTF16BE(user)); + } + if (outlines) { + ink.set("IT", Name.get("InkHighlight")); + } + const bs = new Dict(xref); + ink.set("BS", bs); + bs.set("W", thickness); + ink.set("C", Array.from(color, c => c / 255)); + ink.set("CA", opacity); + const n = new Dict(xref); + ink.set("AP", n); + if (apRef) { + n.set("N", apRef); + } else { + n.set("N", ap); + } + return ink; + } + static async createNewAppearanceStream(annotation, xref, params) { + if (annotation.outlines) { + return this.createNewAppearanceStreamForHighlight(annotation, xref, params); + } + const { + color, + rect, + paths, + thickness, + opacity + } = annotation; + const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${getPdfColor(color, false)}`]; + if (opacity !== 1) { + appearanceBuffer.push("/R0 gs"); + } + for (const outline of paths.lines) { + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`); + for (let i = 6, ii = outline.length; i < ii; i += 6) { + if (isNaN(outline[i])) { + appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`); + } else { + const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6); + appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(" ") + " c"); + } + } + if (outline.length === 6) { + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} l`); + } + } + appearanceBuffer.push("S"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + if (opacity !== 1) { + const resources = new Dict(xref); + const extGState = new Dict(xref); + const r0 = new Dict(xref); + r0.set("CA", opacity); + r0.set("Type", Name.get("ExtGState")); + extGState.set("R0", r0); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } + static async createNewAppearanceStreamForHighlight(annotation, xref, params) { + const { + color, + rect, + outlines: { + outline + }, + opacity + } = annotation; + const appearanceBuffer = [`${getPdfColor(color, true)}`, "/R0 gs"]; + appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`); + for (let i = 6, ii = outline.length; i < ii; i += 6) { + if (isNaN(outline[i])) { + appearanceBuffer.push(`${numberToString(outline[i + 4])} ${numberToString(outline[i + 5])} l`); + } else { + const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6); + appearanceBuffer.push([c1x, c1y, c2x, c2y, x, y].map(numberToString).join(" ") + " c"); + } + } + appearanceBuffer.push("h f"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(xref); + const extGState = new Dict(xref); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + const r0 = new Dict(xref); + extGState.set("R0", r0); + r0.set("BM", Name.get("Multiply")); + if (opacity !== 1) { + r0.set("ca", opacity); + r0.set("Type", Name.get("ExtGState")); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class HighlightAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.HIGHLIGHT; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + this.data.opacity = dict.get("CA") || 1; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + const resources = this.appearance?.dict.get("Resources"); + if (!this.appearance || !resources?.has("ExtGState")) { + if (this.appearance) { + warn("HighlightAnnotation - ignoring built-in appearance stream."); + } + const fillColor = this.color ? getPdfColorArray(this.color) : [1, 1, 0]; + const fillAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + fillColor, + blendMode: "Multiply", + fillAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${points[0]} ${points[1]} m`, `${points[2]} ${points[3]} l`, `${points[6]} ${points[7]} l`, `${points[4]} ${points[5]} l`, "f"); + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + color, + oldAnnotation, + opacity, + rect, + rotation, + user, + quadPoints + } = annotation; + const highlight = oldAnnotation || new Dict(xref); + highlight.set("Type", Name.get("Annot")); + highlight.set("Subtype", Name.get("Highlight")); + highlight.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate()}`); + highlight.set("CreationDate", `D:${getModificationDate()}`); + highlight.set("Rect", rect); + highlight.set("F", 4); + highlight.set("Border", [0, 0, 0]); + highlight.set("Rotate", rotation); + highlight.set("QuadPoints", quadPoints); + highlight.set("C", Array.from(color, c => c / 255)); + highlight.set("CA", opacity); + if (user) { + highlight.set("T", stringToAsciiOrUTF16BE(user)); + } + if (apRef || ap) { + const n = new Dict(xref); + highlight.set("AP", n); + n.set("N", apRef || ap); + } + return highlight; + } + static async createNewAppearanceStream(annotation, xref, params) { + const { + color, + rect, + outlines, + opacity + } = annotation; + const appearanceBuffer = [`${getPdfColor(color, true)}`, "/R0 gs"]; + const buffer = []; + for (const outline of outlines) { + buffer.length = 0; + buffer.push(`${numberToString(outline[0])} ${numberToString(outline[1])} m`); + for (let i = 2, ii = outline.length; i < ii; i += 2) { + buffer.push(`${numberToString(outline[i])} ${numberToString(outline[i + 1])} l`); + } + buffer.push("h"); + appearanceBuffer.push(buffer.join("\n")); + } + appearanceBuffer.push("f*"); + const appearance = appearanceBuffer.join("\n"); + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", rect); + appearanceStreamDict.set("Length", appearance.length); + const resources = new Dict(xref); + const extGState = new Dict(xref); + resources.set("ExtGState", extGState); + appearanceStreamDict.set("Resources", resources); + const r0 = new Dict(xref); + extGState.set("R0", r0); + r0.set("BM", Name.get("Multiply")); + if (opacity !== 1) { + r0.set("ca", opacity); + r0.set("Type", Name.get("ExtGState")); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class UnderlineAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.UNDERLINE; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 0.571 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${points[4]} ${points[5] + 1.3} m`, `${points[6]} ${points[7] + 1.3} l`, "S"); + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } +} +class SquigglyAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.SQUIGGLY; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 1 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + const dy = (points[1] - points[5]) / 6; + let shift = dy; + let x = points[4]; + const y = points[5]; + const xEnd = points[6]; + buffer.push(`${x} ${y + shift} m`); + do { + x += 2; + shift = shift === 0 ? dy : 0; + buffer.push(`${x} ${y + shift} l`); + } while (x < xEnd); + buffer.push("S"); + return [points[4], xEnd, y - 2 * dy, y + 2 * dy]; + } + }); + } + } else { + this.data.popupRef = null; + } + } +} +class StrikeOutAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + this.data.annotationType = AnnotationType.STRIKEOUT; + const quadPoints = this.data.quadPoints = getQuadPoints(dict, null); + if (quadPoints) { + if (!this.appearance) { + const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0]; + const strokeAlpha = dict.get("CA"); + this._setDefaultAppearance({ + xref, + extra: "[] 0 d 1 w", + strokeColor, + strokeAlpha, + pointsCallback: (buffer, points) => { + buffer.push(`${(points[0] + points[4]) / 2} ` + `${(points[1] + points[5]) / 2} m`, `${(points[2] + points[6]) / 2} ` + `${(points[3] + points[7]) / 2} l`, "S"); + return [points[0], points[2], points[7], points[3]]; + } + }); + } + } else { + this.data.popupRef = null; + } + } +} +class StampAnnotation extends MarkupAnnotation { + #savedHasOwnCanvas; + constructor(params) { + super(params); + this.data.annotationType = AnnotationType.STAMP; + this.#savedHasOwnCanvas = this.data.hasOwnCanvas = this.data.noRotate; + this.data.isEditable = !this.data.noHTML; + this.data.noHTML = false; + } + mustBeViewedWhenEditing(isEditing, modifiedIds = null) { + if (isEditing) { + if (!this.data.isEditable) { + return false; + } + this.#savedHasOwnCanvas = this.data.hasOwnCanvas; + this.data.hasOwnCanvas = true; + return true; + } + this.data.hasOwnCanvas = this.#savedHasOwnCanvas; + return !modifiedIds?.has(this.data.id); + } + static async createImage(bitmap, xref) { + const { + width, + height + } = bitmap; + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d", { + alpha: true + }); + ctx.drawImage(bitmap, 0, 0); + const data = ctx.getImageData(0, 0, width, height).data; + const buf32 = new Uint32Array(data.buffer); + const hasAlpha = buf32.some(FeatureTest.isLittleEndian ? x => x >>> 24 !== 0xff : x => (x & 0xff) !== 0xff); + if (hasAlpha) { + ctx.fillStyle = "white"; + ctx.fillRect(0, 0, width, height); + ctx.drawImage(bitmap, 0, 0); + } + const jpegBufferPromise = canvas.convertToBlob({ + type: "image/jpeg", + quality: 1 + }).then(blob => blob.arrayBuffer()); + const xobjectName = Name.get("XObject"); + const imageName = Name.get("Image"); + const image = new Dict(xref); + image.set("Type", xobjectName); + image.set("Subtype", imageName); + image.set("BitsPerComponent", 8); + image.set("ColorSpace", Name.get("DeviceRGB")); + image.set("Filter", Name.get("DCTDecode")); + image.set("BBox", [0, 0, width, height]); + image.set("Width", width); + image.set("Height", height); + let smaskStream = null; + if (hasAlpha) { + const alphaBuffer = new Uint8Array(buf32.length); + if (FeatureTest.isLittleEndian) { + for (let i = 0, ii = buf32.length; i < ii; i++) { + alphaBuffer[i] = buf32[i] >>> 24; + } + } else { + for (let i = 0, ii = buf32.length; i < ii; i++) { + alphaBuffer[i] = buf32[i] & 0xff; + } + } + const smask = new Dict(xref); + smask.set("Type", xobjectName); + smask.set("Subtype", imageName); + smask.set("BitsPerComponent", 8); + smask.set("ColorSpace", Name.get("DeviceGray")); + smask.set("Width", width); + smask.set("Height", height); + smaskStream = new Stream(alphaBuffer, 0, 0, smask); + } + const imageStream = new Stream(await jpegBufferPromise, 0, 0, image); + return { + imageStream, + smaskStream, + width, + height + }; + } + static createNewDict(annotation, xref, { + apRef, + ap + }) { + const { + oldAnnotation, + rect, + rotation, + user + } = annotation; + const stamp = oldAnnotation || new Dict(xref); + stamp.set("Type", Name.get("Annot")); + stamp.set("Subtype", Name.get("Stamp")); + stamp.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate()}`); + stamp.set("Rect", rect); + stamp.set("F", 4); + stamp.set("Border", [0, 0, 0]); + stamp.set("Rotate", rotation); + if (user) { + stamp.set("T", stringToAsciiOrUTF16BE(user)); + } + if (apRef || ap) { + const n = new Dict(xref); + stamp.set("AP", n); + if (apRef) { + n.set("N", apRef); + } else { + n.set("N", ap); + } + } + return stamp; + } + static async createNewAppearanceStream(annotation, xref, params) { + if (annotation.oldAnnotation) { + return null; + } + const { + rotation + } = annotation; + const { + imageRef, + width, + height + } = params.image; + const resources = new Dict(xref); + const xobject = new Dict(xref); + resources.set("XObject", xobject); + xobject.set("Im0", imageRef); + const appearance = `q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`; + const appearanceStreamDict = new Dict(xref); + appearanceStreamDict.set("FormType", 1); + appearanceStreamDict.set("Subtype", Name.get("Form")); + appearanceStreamDict.set("Type", Name.get("XObject")); + appearanceStreamDict.set("BBox", [0, 0, width, height]); + appearanceStreamDict.set("Resources", resources); + if (rotation) { + const matrix = getRotationMatrix(rotation, width, height); + appearanceStreamDict.set("Matrix", matrix); + } + const ap = new StringStream(appearance); + ap.dict = appearanceStreamDict; + return ap; + } +} +class FileAttachmentAnnotation extends MarkupAnnotation { + constructor(params) { + super(params); + const { + dict, + xref + } = params; + const file = new FileSpec(dict.get("FS"), xref); + this.data.annotationType = AnnotationType.FILEATTACHMENT; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.noHTML = false; + this.data.file = file.serializable; + const name = dict.get("Name"); + this.data.name = name instanceof Name ? stringToPDFString(name.name) : "PushPin"; + const fillAlpha = dict.get("ca"); + this.data.fillAlpha = typeof fillAlpha === "number" && fillAlpha >= 0 && fillAlpha <= 1 ? fillAlpha : null; + } +} + +;// ./src/core/decrypt_stream.js + +const chunkSize = 512; +class DecryptStream extends DecodeStream { + constructor(str, maybeLength, decrypt) { + super(maybeLength); + this.str = str; + this.dict = str.dict; + this.decrypt = decrypt; + this.nextChunk = null; + this.initialized = false; + } + readBlock() { + let chunk; + if (this.initialized) { + chunk = this.nextChunk; + } else { + chunk = this.str.getBytes(chunkSize); + this.initialized = true; + } + if (!chunk?.length) { + this.eof = true; + return; + } + this.nextChunk = this.str.getBytes(chunkSize); + const hasMoreData = this.nextChunk?.length > 0; + const decrypt = this.decrypt; + chunk = decrypt(chunk, !hasMoreData); + const bufferLength = this.bufferLength, + newLength = bufferLength + chunk.length, + buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + } +} + +;// ./src/core/crypto.js + + + +class ARCFourCipher { + constructor(key) { + this.a = 0; + this.b = 0; + const s = new Uint8Array(256); + const keyLength = key.length; + for (let i = 0; i < 256; ++i) { + s[i] = i; + } + for (let i = 0, j = 0; i < 256; ++i) { + const tmp = s[i]; + j = j + tmp + key[i % keyLength] & 0xff; + s[i] = s[j]; + s[j] = tmp; + } + this.s = s; + } + encryptBlock(data) { + let a = this.a, + b = this.b; + const s = this.s; + const n = data.length; + const output = new Uint8Array(n); + for (let i = 0; i < n; ++i) { + a = a + 1 & 0xff; + const tmp = s[a]; + b = b + tmp & 0xff; + const tmp2 = s[b]; + s[a] = tmp2; + s[b] = tmp; + output[i] = data[i] ^ s[tmp + tmp2 & 0xff]; + } + this.a = a; + this.b = b; + return output; + } + decryptBlock(data) { + return this.encryptBlock(data); + } + encrypt(data) { + return this.encryptBlock(data); + } +} +const calculateMD5 = function calculateMD5Closure() { + const r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]); + const k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]); + function hash(data, offset, length) { + let h0 = 1732584193, + h1 = -271733879, + h2 = -1732584194, + h3 = 271733878; + const paddedLength = length + 72 & ~63; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 8; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = length << 3 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >>> 29 & 0xff; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + const w = new Int32Array(16); + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j, i += 4) { + w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24; + } + let a = h0, + b = h1, + c = h2, + d = h3, + f, + g; + for (j = 0; j < 64; ++j) { + if (j < 16) { + f = b & c | ~b & d; + g = j; + } else if (j < 32) { + f = d & b | ~d & c; + g = 5 * j + 1 & 15; + } else if (j < 48) { + f = b ^ c ^ d; + g = 3 * j + 5 & 15; + } else { + f = c ^ (b | ~d); + g = 7 * j & 15; + } + const tmp = d, + rotateArg = a + f + k[j] + w[g] | 0, + rotate = r[j]; + d = c; + c = b; + b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0; + a = tmp; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + } + return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]); + } + return hash; +}(); +class Word64 { + constructor(highInteger, lowInteger) { + this.high = highInteger | 0; + this.low = lowInteger | 0; + } + and(word) { + this.high &= word.high; + this.low &= word.low; + } + xor(word) { + this.high ^= word.high; + this.low ^= word.low; + } + or(word) { + this.high |= word.high; + this.low |= word.low; + } + shiftRight(places) { + if (places >= 32) { + this.low = this.high >>> places - 32 | 0; + this.high = 0; + } else { + this.low = this.low >>> places | this.high << 32 - places; + this.high = this.high >>> places | 0; + } + } + shiftLeft(places) { + if (places >= 32) { + this.high = this.low << places - 32; + this.low = 0; + } else { + this.high = this.high << places | this.low >>> 32 - places; + this.low <<= places; + } + } + rotateRight(places) { + let low, high; + if (places & 32) { + high = this.low; + low = this.high; + } else { + low = this.low; + high = this.high; + } + places &= 31; + this.low = low >>> places | high << 32 - places; + this.high = high >>> places | low << 32 - places; + } + not() { + this.high = ~this.high; + this.low = ~this.low; + } + add(word) { + const lowAdd = (this.low >>> 0) + (word.low >>> 0); + let highAdd = (this.high >>> 0) + (word.high >>> 0); + if (lowAdd > 0xffffffff) { + highAdd += 1; + } + this.low = lowAdd | 0; + this.high = highAdd | 0; + } + copyTo(bytes, offset) { + bytes[offset] = this.high >>> 24 & 0xff; + bytes[offset + 1] = this.high >> 16 & 0xff; + bytes[offset + 2] = this.high >> 8 & 0xff; + bytes[offset + 3] = this.high & 0xff; + bytes[offset + 4] = this.low >>> 24 & 0xff; + bytes[offset + 5] = this.low >> 16 & 0xff; + bytes[offset + 6] = this.low >> 8 & 0xff; + bytes[offset + 7] = this.low & 0xff; + } + assign(word) { + this.high = word.high; + this.low = word.low; + } +} +const calculateSHA256 = function calculateSHA256Closure() { + function rotr(x, n) { + return x >>> n | x << 32 - n; + } + function ch(x, y, z) { + return x & y ^ ~x & z; + } + function maj(x, y, z) { + return x & y ^ x & z ^ y & z; + } + function sigma(x) { + return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22); + } + function sigmaPrime(x) { + return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25); + } + function littleSigma(x) { + return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3; + } + function littleSigmaPrime(x) { + return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10; + } + const k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; + function hash(data, offset, length) { + let h0 = 0x6a09e667, + h1 = 0xbb67ae85, + h2 = 0x3c6ef372, + h3 = 0xa54ff53a, + h4 = 0x510e527f, + h5 = 0x9b05688c, + h6 = 0x1f83d9ab, + h7 = 0x5be0cd19; + const paddedLength = Math.ceil((length + 9) / 64) * 64; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 8; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length << 3 & 0xff; + const w = new Uint32Array(64); + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + i += 4; + } + for (j = 16; j < 64; ++j) { + w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0; + } + let a = h0, + b = h1, + c = h2, + d = h3, + e = h4, + f = h5, + g = h6, + h = h7, + t1, + t2; + for (j = 0; j < 64; ++j) { + t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j]; + t2 = sigma(a) + maj(a, b, c); + h = g; + g = f; + f = e; + e = d + t1 | 0; + d = c; + c = b; + b = a; + a = t1 + t2 | 0; + } + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + h4 = h4 + e | 0; + h5 = h5 + f | 0; + h6 = h6 + g | 0; + h7 = h7 + h | 0; + } + return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]); + } + return hash; +}(); +const calculateSHA512 = function calculateSHA512Closure() { + function ch(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.not(); + tmp.and(z); + result.xor(tmp); + } + function maj(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.and(z); + result.xor(tmp); + tmp.assign(y); + tmp.and(z); + result.xor(tmp); + } + function sigma(result, x, tmp) { + result.assign(x); + result.rotateRight(28); + tmp.assign(x); + tmp.rotateRight(34); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(39); + result.xor(tmp); + } + function sigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(14); + tmp.assign(x); + tmp.rotateRight(18); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(41); + result.xor(tmp); + } + function littleSigma(result, x, tmp) { + result.assign(x); + result.rotateRight(1); + tmp.assign(x); + tmp.rotateRight(8); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(7); + result.xor(tmp); + } + function littleSigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(19); + tmp.assign(x); + tmp.rotateRight(61); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(6); + result.xor(tmp); + } + const k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)]; + function hash(data, offset, length, mode384 = false) { + let h0, h1, h2, h3, h4, h5, h6, h7; + if (!mode384) { + h0 = new Word64(0x6a09e667, 0xf3bcc908); + h1 = new Word64(0xbb67ae85, 0x84caa73b); + h2 = new Word64(0x3c6ef372, 0xfe94f82b); + h3 = new Word64(0xa54ff53a, 0x5f1d36f1); + h4 = new Word64(0x510e527f, 0xade682d1); + h5 = new Word64(0x9b05688c, 0x2b3e6c1f); + h6 = new Word64(0x1f83d9ab, 0xfb41bd6b); + h7 = new Word64(0x5be0cd19, 0x137e2179); + } else { + h0 = new Word64(0xcbbb9d5d, 0xc1059ed8); + h1 = new Word64(0x629a292a, 0x367cd507); + h2 = new Word64(0x9159015a, 0x3070dd17); + h3 = new Word64(0x152fecd8, 0xf70e5939); + h4 = new Word64(0x67332667, 0xffc00b31); + h5 = new Word64(0x8eb44a87, 0x68581511); + h6 = new Word64(0xdb0c2e0d, 0x64f98fa7); + h7 = new Word64(0x47b5481d, 0xbefa4fa4); + } + const paddedLength = Math.ceil((length + 17) / 128) * 128; + const padded = new Uint8Array(paddedLength); + let i, j; + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + padded[i++] = 0x80; + const n = paddedLength - 16; + while (i < n) { + padded[i++] = 0; + } + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xff; + padded[i++] = length >> 21 & 0xff; + padded[i++] = length >> 13 & 0xff; + padded[i++] = length >> 5 & 0xff; + padded[i++] = length << 3 & 0xff; + const w = new Array(80); + for (i = 0; i < 80; i++) { + w[i] = new Word64(0, 0); + } + let a = new Word64(0, 0), + b = new Word64(0, 0), + c = new Word64(0, 0); + let d = new Word64(0, 0), + e = new Word64(0, 0), + f = new Word64(0, 0); + let g = new Word64(0, 0), + h = new Word64(0, 0); + const t1 = new Word64(0, 0), + t2 = new Word64(0, 0); + const tmp1 = new Word64(0, 0), + tmp2 = new Word64(0, 0); + let tmp3; + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7]; + i += 8; + } + for (j = 16; j < 80; ++j) { + tmp3 = w[j]; + littleSigmaPrime(tmp3, w[j - 2], tmp2); + tmp3.add(w[j - 7]); + littleSigma(tmp1, w[j - 15], tmp2); + tmp3.add(tmp1); + tmp3.add(w[j - 16]); + } + a.assign(h0); + b.assign(h1); + c.assign(h2); + d.assign(h3); + e.assign(h4); + f.assign(h5); + g.assign(h6); + h.assign(h7); + for (j = 0; j < 80; ++j) { + t1.assign(h); + sigmaPrime(tmp1, e, tmp2); + t1.add(tmp1); + ch(tmp1, e, f, g, tmp2); + t1.add(tmp1); + t1.add(k[j]); + t1.add(w[j]); + sigma(t2, a, tmp2); + maj(tmp1, a, b, c, tmp2); + t2.add(tmp1); + tmp3 = h; + h = g; + g = f; + f = e; + d.add(t1); + e = d; + d = c; + c = b; + b = a; + tmp3.assign(t1); + tmp3.add(t2); + a = tmp3; + } + h0.add(a); + h1.add(b); + h2.add(c); + h3.add(d); + h4.add(e); + h5.add(f); + h6.add(g); + h7.add(h); + } + let result; + if (!mode384) { + result = new Uint8Array(64); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + h6.copyTo(result, 48); + h7.copyTo(result, 56); + } else { + result = new Uint8Array(48); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + } + return result; + } + return hash; +}(); +function calculateSHA384(data, offset, length) { + return calculateSHA512(data, offset, length, true); +} +class NullCipher { + decryptBlock(data) { + return data; + } + encrypt(data) { + return data; + } +} +class AESBaseCipher { + constructor() { + this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]); + this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]); + this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); + this._mixCol = new Uint8Array(256); + for (let i = 0; i < 256; i++) { + this._mixCol[i] = i < 128 ? i << 1 : i << 1 ^ 0x1b; + } + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + _expandKey(cipherKey) { + unreachable("Cannot call `_expandKey` on the base class"); + } + _decrypt(input, key) { + let t, u, v; + const state = new Uint8Array(16); + state.set(input); + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) { + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; + } + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + for (let j = 0; j < 16; j += 4) { + const s0 = this._mix[state[j]]; + const s1 = this._mix[state[j + 1]]; + const s2 = this._mix[state[j + 2]]; + const s3 = this._mix[state[j + 3]]; + t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; + state[j] = t >>> 24 & 0xff; + state[j + 1] = t >> 16 & 0xff; + state[j + 2] = t >> 8 & 0xff; + state[j + 3] = t & 0xff; + } + } + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + for (let j = 0; j < 16; ++j) { + state[j] = this._inv_s[state[j]]; + state[j] ^= key[j]; + } + return state; + } + _encrypt(input, key) { + const s = this._s; + let t, u, v; + const state = new Uint8Array(16); + state.set(input); + for (let j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } + for (let i = 1; i < this._cyclesOfRepetition; i++) { + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (let j = 0; j < 16; j += 4) { + const s0 = state[j + 0]; + const s1 = state[j + 1]; + const s2 = state[j + 2]; + const s3 = state[j + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[j + 0] ^= t ^ this._mixCol[s0 ^ s1]; + state[j + 1] ^= t ^ this._mixCol[s1 ^ s2]; + state[j + 2] ^= t ^ this._mixCol[s2 ^ s3]; + state[j + 3] ^= t ^ this._mixCol[s3 ^ s0]; + } + for (let j = 0, k = i * 16; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + } + for (let j = 0; j < 16; ++j) { + state[j] = s[state[j]]; + } + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + for (let j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + return state; + } + _decryptBlock2(data, finalize) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + let iv = this.iv; + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + const plain = this._decrypt(buffer, this._key); + for (let j = 0; j < 16; ++j) { + plain[j] ^= iv[j]; + } + iv = buffer; + result.push(plain); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array(0); + } + let outputLength = 16 * result.length; + if (finalize) { + const lastBlock = result.at(-1); + let psLen = lastBlock[15]; + if (psLen <= 16) { + for (let i = 15, ii = 16 - psLen; i >= ii; --i) { + if (lastBlock[i] !== psLen) { + psLen = 0; + break; + } + } + outputLength -= psLen; + result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); + } + } + const output = new Uint8Array(outputLength); + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } + decryptBlock(data, finalize, iv = null) { + const sourceLength = data.length; + const buffer = this.buffer; + let bufferLength = this.bufferPosition; + if (iv) { + this.iv = iv; + } else { + for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array(0); + } + this.iv = buffer; + data = data.subarray(16); + } + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(data, finalize); + } + encrypt(data, iv) { + const sourceLength = data.length; + let buffer = this.buffer, + bufferLength = this.bufferPosition; + const result = []; + if (!iv) { + iv = new Uint8Array(16); + } + for (let i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + if (bufferLength < 16) { + continue; + } + for (let j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + const cipher = this._encrypt(buffer, this._key); + iv = cipher; + result.push(cipher); + buffer = new Uint8Array(16); + bufferLength = 0; + } + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + if (result.length === 0) { + return new Uint8Array(0); + } + const outputLength = 16 * result.length; + const output = new Uint8Array(outputLength); + for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) { + output.set(result[i], j); + } + return output; + } +} +class AES128Cipher extends AESBaseCipher { + constructor(key) { + super(); + this._cyclesOfRepetition = 10; + this._keySize = 160; + this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]); + this._key = this._expandKey(key); + } + _expandKey(cipherKey) { + const b = 176; + const s = this._s; + const rcon = this._rcon; + const result = new Uint8Array(b); + result.set(cipherKey); + for (let j = 16, i = 1; j < b; ++i) { + let t1 = result[j - 3]; + let t2 = result[j - 2]; + let t3 = result[j - 1]; + let t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 ^= rcon[i]; + for (let n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 16]; + j++; + result[j] = t2 ^= result[j - 16]; + j++; + result[j] = t3 ^= result[j - 16]; + j++; + result[j] = t4 ^= result[j - 16]; + j++; + } + } + return result; + } +} +class AES256Cipher extends AESBaseCipher { + constructor(key) { + super(); + this._cyclesOfRepetition = 14; + this._keySize = 224; + this._key = this._expandKey(key); + } + _expandKey(cipherKey) { + const b = 240; + const s = this._s; + const result = new Uint8Array(b); + result.set(cipherKey); + let r = 1; + let t1, t2, t3, t4; + for (let j = 32, i = 1; j < b; ++i) { + if (j % 32 === 16) { + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + } else if (j % 32 === 0) { + t1 = result[j - 3]; + t2 = result[j - 2]; + t3 = result[j - 1]; + t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 ^= r; + if ((r <<= 1) >= 256) { + r = (r ^ 0x1b) & 0xff; + } + } + for (let n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 32]; + j++; + result[j] = t2 ^= result[j - 32]; + j++; + result[j] = t3 ^= result[j - 32]; + j++; + result[j] = t4 ^= result[j - 32]; + j++; + } + } + return result; + } +} +class PDF17 { + checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + const result = calculateSHA256(hashData, 0, hashData.length); + return isArrayEqual(result, ownerPassword); + } + checkUserPassword(password, userValidationSalt, userPassword) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + const result = calculateSHA256(hashData, 0, hashData.length); + return isArrayEqual(result, userPassword); + } + getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + const key = calculateSHA256(hashData, 0, hashData.length); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + } + getUserKey(password, userKeySalt, userEncryption) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + const key = calculateSHA256(hashData, 0, hashData.length); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } +} +class PDF20 { + _hash(password, input, userBytes) { + let k = calculateSHA256(input, 0, input.length).subarray(0, 32); + let e = [0]; + let i = 0; + while (i < 64 || e.at(-1) > i - 32) { + const combinedLength = password.length + k.length + userBytes.length, + combinedArray = new Uint8Array(combinedLength); + let writeOffset = 0; + combinedArray.set(password, writeOffset); + writeOffset += password.length; + combinedArray.set(k, writeOffset); + writeOffset += k.length; + combinedArray.set(userBytes, writeOffset); + const k1 = new Uint8Array(combinedLength * 64); + for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) { + k1.set(combinedArray, pos); + } + const cipher = new AES128Cipher(k.subarray(0, 16)); + e = cipher.encrypt(k1, k.subarray(16, 32)); + const remainder = e.slice(0, 16).reduce((a, b) => a + b, 0) % 3; + if (remainder === 0) { + k = calculateSHA256(e, 0, e.length); + } else if (remainder === 1) { + k = calculateSHA384(e, 0, e.length); + } else if (remainder === 2) { + k = calculateSHA512(e, 0, e.length); + } + i++; + } + return k.subarray(0, 32); + } + checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + const result = this._hash(password, hashData, userBytes); + return isArrayEqual(result, ownerPassword); + } + checkUserPassword(password, userValidationSalt, userPassword) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + const result = this._hash(password, hashData, []); + return isArrayEqual(result, userPassword); + } + getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + const hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + const key = this._hash(password, hashData, userBytes); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + } + getUserKey(password, userKeySalt, userEncryption) { + const hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + const key = this._hash(password, hashData, []); + const cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } +} +class CipherTransform { + constructor(stringCipherConstructor, streamCipherConstructor) { + this.StringCipherConstructor = stringCipherConstructor; + this.StreamCipherConstructor = streamCipherConstructor; + } + createStream(stream, length) { + const cipher = new this.StreamCipherConstructor(); + return new DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) { + return cipher.decryptBlock(data, finalize); + }); + } + decryptString(s) { + const cipher = new this.StringCipherConstructor(); + let data = stringToBytes(s); + data = cipher.decryptBlock(data, true); + return bytesToString(data); + } + encryptString(s) { + const cipher = new this.StringCipherConstructor(); + if (cipher instanceof AESBaseCipher) { + const strLen = s.length; + const pad = 16 - strLen % 16; + s += String.fromCharCode(pad).repeat(pad); + const iv = new Uint8Array(16); + if (typeof crypto !== "undefined") { + crypto.getRandomValues(iv); + } else { + for (let i = 0; i < 16; i++) { + iv[i] = Math.floor(256 * Math.random()); + } + } + let data = stringToBytes(s); + data = cipher.encrypt(data, iv); + const buf = new Uint8Array(16 + data.length); + buf.set(iv); + buf.set(data, 16); + return bytesToString(buf); + } + let data = stringToBytes(s); + data = cipher.encrypt(data); + return bytesToString(data); + } +} +class CipherTransformFactory { + static #defaultPasswordBytes = new Uint8Array([0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a]); + #createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) { + if (password) { + const passwordLength = Math.min(127, password.length); + password = password.subarray(0, passwordLength); + } else { + password = []; + } + const pdfAlgorithm = revision === 6 ? new PDF20() : new PDF17(); + if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) { + return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption); + } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) { + return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption); + } + return null; + } + #prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) { + const hashDataSize = 40 + ownerPassword.length + fileId.length; + const hashData = new Uint8Array(hashDataSize); + let i = 0, + j, + n; + if (password) { + n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + } + j = 0; + while (i < 32) { + hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++]; + } + for (j = 0, n = ownerPassword.length; j < n; ++j) { + hashData[i++] = ownerPassword[j]; + } + hashData[i++] = flags & 0xff; + hashData[i++] = flags >> 8 & 0xff; + hashData[i++] = flags >> 16 & 0xff; + hashData[i++] = flags >>> 24 & 0xff; + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + if (revision >= 4 && !encryptMetadata) { + hashData[i++] = 0xff; + hashData[i++] = 0xff; + hashData[i++] = 0xff; + hashData[i++] = 0xff; + } + let hash = calculateMD5(hashData, 0, i); + const keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, keyLengthInBytes); + } + } + const encryptionKey = hash.subarray(0, keyLengthInBytes); + let cipher, checkData; + if (revision >= 3) { + for (i = 0; i < 32; ++i) { + hashData[i] = CipherTransformFactory.#defaultPasswordBytes[i]; + } + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); + n = encryptionKey.length; + const derivedKey = new Uint8Array(n); + for (j = 1; j <= 19; ++j) { + for (let k = 0; k < n; ++k) { + derivedKey[k] = encryptionKey[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + checkData = cipher.encryptBlock(checkData); + } + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } else { + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(CipherTransformFactory.#defaultPasswordBytes); + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } + return encryptionKey; + } + #decodeUserPassword(password, ownerPassword, revision, keyLength) { + const hashData = new Uint8Array(32); + let i = 0; + const n = Math.min(32, password.length); + for (; i < n; ++i) { + hashData[i] = password[i]; + } + let j = 0; + while (i < 32) { + hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++]; + } + let hash = calculateMD5(hashData, 0, i); + const keyLengthInBytes = keyLength >> 3; + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, hash.length); + } + } + let cipher, userPassword; + if (revision >= 3) { + userPassword = ownerPassword; + const derivedKey = new Uint8Array(keyLengthInBytes); + for (j = 19; j >= 0; j--) { + for (let k = 0; k < keyLengthInBytes; ++k) { + derivedKey[k] = hash[k] ^ j; + } + cipher = new ARCFourCipher(derivedKey); + userPassword = cipher.encryptBlock(userPassword); + } + } else { + cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes)); + userPassword = cipher.encryptBlock(ownerPassword); + } + return userPassword; + } + #buildObjectKey(num, gen, encryptionKey, isAes = false) { + const key = new Uint8Array(encryptionKey.length + 9); + const n = encryptionKey.length; + let i; + for (i = 0; i < n; ++i) { + key[i] = encryptionKey[i]; + } + key[i++] = num & 0xff; + key[i++] = num >> 8 & 0xff; + key[i++] = num >> 16 & 0xff; + key[i++] = gen & 0xff; + key[i++] = gen >> 8 & 0xff; + if (isAes) { + key[i++] = 0x73; + key[i++] = 0x41; + key[i++] = 0x6c; + key[i++] = 0x54; + } + const hash = calculateMD5(key, 0, i); + return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); + } + #buildCipherConstructor(cf, name, num, gen, key) { + if (!(name instanceof Name)) { + throw new FormatError("Invalid crypt filter name."); + } + const self = this; + const cryptFilter = cf.get(name.name); + const cfm = cryptFilter?.get("CFM"); + if (!cfm || cfm.name === "None") { + return function () { + return new NullCipher(); + }; + } + if (cfm.name === "V2") { + return function () { + return new ARCFourCipher(self.#buildObjectKey(num, gen, key, false)); + }; + } + if (cfm.name === "AESV2") { + return function () { + return new AES128Cipher(self.#buildObjectKey(num, gen, key, true)); + }; + } + if (cfm.name === "AESV3") { + return function () { + return new AES256Cipher(key); + }; + } + throw new FormatError("Unknown crypto method"); + } + constructor(dict, fileId, password) { + const filter = dict.get("Filter"); + if (!isName(filter, "Standard")) { + throw new FormatError("unknown encryption method"); + } + this.filterName = filter.name; + this.dict = dict; + const algorithm = dict.get("V"); + if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) { + throw new FormatError("unsupported encryption algorithm"); + } + this.algorithm = algorithm; + let keyLength = dict.get("Length"); + if (!keyLength) { + if (algorithm <= 3) { + keyLength = 40; + } else { + const cfDict = dict.get("CF"); + const streamCryptoName = dict.get("StmF"); + if (cfDict instanceof Dict && streamCryptoName instanceof Name) { + cfDict.suppressEncryption = true; + const handlerDict = cfDict.get(streamCryptoName.name); + keyLength = handlerDict?.get("Length") || 128; + if (keyLength < 40) { + keyLength <<= 3; + } + } + } + } + if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) { + throw new FormatError("invalid key length"); + } + const ownerBytes = stringToBytes(dict.get("O")), + userBytes = stringToBytes(dict.get("U")); + const ownerPassword = ownerBytes.subarray(0, 32); + const userPassword = userBytes.subarray(0, 32); + const flags = dict.get("P"); + const revision = dict.get("R"); + const encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get("EncryptMetadata") !== false; + this.encryptMetadata = encryptMetadata; + const fileIdBytes = stringToBytes(fileId); + let passwordBytes; + if (password) { + if (revision === 6) { + try { + password = utf8StringToString(password); + } catch { + warn("CipherTransformFactory: Unable to convert UTF8 encoded password."); + } + } + passwordBytes = stringToBytes(password); + } + let encryptionKey; + if (algorithm !== 5) { + encryptionKey = this.#prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } else { + const ownerValidationSalt = ownerBytes.subarray(32, 40); + const ownerKeySalt = ownerBytes.subarray(40, 48); + const uBytes = userBytes.subarray(0, 48); + const userValidationSalt = userBytes.subarray(32, 40); + const userKeySalt = userBytes.subarray(40, 48); + const ownerEncryption = stringToBytes(dict.get("OE")); + const userEncryption = stringToBytes(dict.get("UE")); + const perms = stringToBytes(dict.get("Perms")); + encryptionKey = this.#createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms); + } + if (!encryptionKey && !password) { + throw new PasswordException("No password given", PasswordResponses.NEED_PASSWORD); + } else if (!encryptionKey && password) { + const decodedPassword = this.#decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength); + encryptionKey = this.#prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } + if (!encryptionKey) { + throw new PasswordException("Incorrect Password", PasswordResponses.INCORRECT_PASSWORD); + } + this.encryptionKey = encryptionKey; + if (algorithm >= 4) { + const cf = dict.get("CF"); + if (cf instanceof Dict) { + cf.suppressEncryption = true; + } + this.cf = cf; + this.stmf = dict.get("StmF") || Name.get("Identity"); + this.strf = dict.get("StrF") || Name.get("Identity"); + this.eff = dict.get("EFF") || this.stmf; + } + } + createCipherTransform(num, gen) { + if (this.algorithm === 4 || this.algorithm === 5) { + return new CipherTransform(this.#buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey), this.#buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey)); + } + const key = this.#buildObjectKey(num, gen, this.encryptionKey, false); + const cipherConstructor = function () { + return new ARCFourCipher(key); + }; + return new CipherTransform(cipherConstructor, cipherConstructor); + } +} + +;// ./src/core/dataset_reader.js + + + +function decodeString(str) { + try { + return stringToUTF8String(str); + } catch (ex) { + warn(`UTF-8 decoding failed: "${ex}".`); + return str; + } +} +class DatasetXMLParser extends SimpleXMLParser { + constructor(options) { + super(options); + this.node = null; + } + onEndElement(name) { + const node = super.onEndElement(name); + if (node && name === "xfa:datasets") { + this.node = node; + throw new Error("Aborting DatasetXMLParser."); + } + } +} +class DatasetReader { + constructor(data) { + if (data.datasets) { + this.node = new SimpleXMLParser({ + hasAttributes: true + }).parseFromString(data.datasets).documentElement; + } else { + const parser = new DatasetXMLParser({ + hasAttributes: true + }); + try { + parser.parseFromString(data["xdp:xdp"]); + } catch {} + this.node = parser.node; + } + } + getValue(path) { + if (!this.node || !path) { + return ""; + } + const node = this.node.searchNode(parseXFAPath(path), 0); + if (!node) { + return ""; + } + const first = node.firstChild; + if (first?.nodeName === "value") { + return node.children.map(child => decodeString(child.textContent)); + } + return decodeString(node.textContent); + } +} + +;// ./src/core/xref.js + + + + + + +class XRef { + #firstXRefStmPos = null; + constructor(stream, pdfManager) { + this.stream = stream; + this.pdfManager = pdfManager; + this.entries = []; + this._xrefStms = new Set(); + this._cacheMap = new Map(); + this._pendingRefs = new RefSet(); + this._newPersistentRefNum = null; + this._newTemporaryRefNum = null; + this._persistentRefsCache = null; + } + getNewPersistentRef(obj) { + if (this._newPersistentRefNum === null) { + this._newPersistentRefNum = this.entries.length || 1; + } + const num = this._newPersistentRefNum++; + this._cacheMap.set(num, obj); + return Ref.get(num, 0); + } + getNewTemporaryRef() { + if (this._newTemporaryRefNum === null) { + this._newTemporaryRefNum = this.entries.length || 1; + if (this._newPersistentRefNum) { + this._persistentRefsCache = new Map(); + for (let i = this._newTemporaryRefNum; i < this._newPersistentRefNum; i++) { + this._persistentRefsCache.set(i, this._cacheMap.get(i)); + this._cacheMap.delete(i); + } + } + } + return Ref.get(this._newTemporaryRefNum++, 0); + } + resetNewTemporaryRef() { + this._newTemporaryRefNum = null; + if (this._persistentRefsCache) { + for (const [num, obj] of this._persistentRefsCache) { + this._cacheMap.set(num, obj); + } + } + this._persistentRefsCache = null; + } + setStartXRef(startXRef) { + this.startXRefQueue = [startXRef]; + } + parse(recoveryMode = false) { + let trailerDict; + if (!recoveryMode) { + trailerDict = this.readXRef(); + } else { + warn("Indexing all PDF objects"); + trailerDict = this.indexObjects(); + } + trailerDict.assignXref(this); + this.trailer = trailerDict; + let encrypt; + try { + encrypt = trailerDict.get("Encrypt"); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`); + } + if (encrypt instanceof Dict) { + const ids = trailerDict.get("ID"); + const fileId = ids?.length ? ids[0] : ""; + encrypt.suppressEncryption = true; + this.encrypt = new CipherTransformFactory(encrypt, fileId, this.pdfManager.password); + } + let root; + try { + root = trailerDict.get("Root"); + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Root" reference: "${ex}".`); + } + if (root instanceof Dict) { + try { + const pages = root.get("Pages"); + if (pages instanceof Dict) { + this.root = root; + return; + } + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`XRef.parse - Invalid "Pages" reference: "${ex}".`); + } + } + if (!recoveryMode) { + throw new XRefParseException(); + } + throw new InvalidPDFException("Invalid Root reference."); + } + processXRefTable(parser) { + if (!("tableState" in this)) { + this.tableState = { + entryNum: 0, + streamPos: parser.lexer.stream.pos, + parserBuf1: parser.buf1, + parserBuf2: parser.buf2 + }; + } + const obj = this.readXRefTable(parser); + if (!isCmd(obj, "trailer")) { + throw new FormatError("Invalid XRef table: could not find trailer dictionary"); + } + let dict = parser.getObj(); + if (!(dict instanceof Dict) && dict.dict) { + dict = dict.dict; + } + if (!(dict instanceof Dict)) { + throw new FormatError("Invalid XRef table: could not parse trailer dictionary"); + } + delete this.tableState; + return dict; + } + readXRefTable(parser) { + const stream = parser.lexer.stream; + const tableState = this.tableState; + stream.pos = tableState.streamPos; + parser.buf1 = tableState.parserBuf1; + parser.buf2 = tableState.parserBuf2; + let obj; + while (true) { + if (!("firstEntryNum" in tableState) || !("entryCount" in tableState)) { + if (isCmd(obj = parser.getObj(), "trailer")) { + break; + } + tableState.firstEntryNum = obj; + tableState.entryCount = parser.getObj(); + } + let first = tableState.firstEntryNum; + const count = tableState.entryCount; + if (!Number.isInteger(first) || !Number.isInteger(count)) { + throw new FormatError("Invalid XRef table: wrong types in subsection header"); + } + for (let i = tableState.entryNum; i < count; i++) { + tableState.streamPos = stream.pos; + tableState.entryNum = i; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + const entry = {}; + entry.offset = parser.getObj(); + entry.gen = parser.getObj(); + const type = parser.getObj(); + if (type instanceof Cmd) { + switch (type.cmd) { + case "f": + entry.free = true; + break; + case "n": + entry.uncompressed = true; + break; + } + } + if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) { + throw new FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`); + } + if (i === 0 && entry.free && first === 1) { + first = 0; + } + if (!this.entries[i + first]) { + this.entries[i + first] = entry; + } + } + tableState.entryNum = 0; + tableState.streamPos = stream.pos; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + delete tableState.firstEntryNum; + delete tableState.entryCount; + } + if (this.entries[0] && !this.entries[0].free) { + throw new FormatError("Invalid XRef table: unexpected first object"); + } + return obj; + } + processXRefStream(stream) { + if (!("streamState" in this)) { + const { + dict, + pos + } = stream; + const byteWidths = dict.get("W"); + const range = dict.get("Index") || [0, dict.get("Size")]; + this.streamState = { + entryRanges: range, + byteWidths, + entryNum: 0, + streamPos: pos + }; + } + this.readXRefStream(stream); + delete this.streamState; + return stream.dict; + } + readXRefStream(stream) { + const streamState = this.streamState; + stream.pos = streamState.streamPos; + const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] = streamState.byteWidths; + const entryRanges = streamState.entryRanges; + while (entryRanges.length > 0) { + const [first, n] = entryRanges; + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`); + } + if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) { + throw new FormatError(`Invalid XRef entry fields length: ${first}, ${n}`); + } + for (let i = streamState.entryNum; i < n; ++i) { + streamState.entryNum = i; + streamState.streamPos = stream.pos; + let type = 0, + offset = 0, + generation = 0; + for (let j = 0; j < typeFieldWidth; ++j) { + const typeByte = stream.getByte(); + if (typeByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'type'."); + } + type = type << 8 | typeByte; + } + if (typeFieldWidth === 0) { + type = 1; + } + for (let j = 0; j < offsetFieldWidth; ++j) { + const offsetByte = stream.getByte(); + if (offsetByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'offset'."); + } + offset = offset << 8 | offsetByte; + } + for (let j = 0; j < generationFieldWidth; ++j) { + const generationByte = stream.getByte(); + if (generationByte === -1) { + throw new FormatError("Invalid XRef byteWidths 'generation'."); + } + generation = generation << 8 | generationByte; + } + const entry = {}; + entry.offset = offset; + entry.gen = generation; + switch (type) { + case 0: + entry.free = true; + break; + case 1: + entry.uncompressed = true; + break; + case 2: + break; + default: + throw new FormatError(`Invalid XRef entry type: ${type}`); + } + if (!this.entries[first + i]) { + this.entries[first + i] = entry; + } + } + streamState.entryNum = 0; + streamState.streamPos = stream.pos; + entryRanges.splice(0, 2); + } + } + indexObjects() { + const TAB = 0x9, + LF = 0xa, + CR = 0xd, + SPACE = 0x20; + const PERCENT = 0x25, + LT = 0x3c; + function readToken(data, offset) { + let token = "", + ch = data[offset]; + while (ch !== LF && ch !== CR && ch !== LT) { + if (++offset >= data.length) { + break; + } + token += String.fromCharCode(ch); + ch = data[offset]; + } + return token; + } + function skipUntil(data, offset, what) { + const length = what.length, + dataLength = data.length; + let skipped = 0; + while (offset < dataLength) { + let i = 0; + while (i < length && data[offset + i] === what[i]) { + ++i; + } + if (i >= length) { + break; + } + offset++; + skipped++; + } + return skipped; + } + const gEndobjRegExp = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g; + const gStartxrefRegExp = /\b(startxref|\d+\s+\d+\s+obj)\b/g; + const objRegExp = /^(\d+)\s+(\d+)\s+obj\b/; + const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); + const startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]); + const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); + this.entries.length = 0; + this._cacheMap.clear(); + const stream = this.stream; + stream.pos = 0; + const buffer = stream.getBytes(), + bufferStr = bytesToString(buffer), + length = buffer.length; + let position = stream.start; + const trailers = [], + xrefStms = []; + while (position < length) { + let ch = buffer[position]; + if (ch === TAB || ch === LF || ch === CR || ch === SPACE) { + ++position; + continue; + } + if (ch === PERCENT) { + do { + ++position; + if (position >= length) { + break; + } + ch = buffer[position]; + } while (ch !== LF && ch !== CR); + continue; + } + const token = readToken(buffer, position); + let m; + if (token.startsWith("xref") && (token.length === 4 || /\s/.test(token[4]))) { + position += skipUntil(buffer, position, trailerBytes); + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else if (m = objRegExp.exec(token)) { + const num = m[1] | 0, + gen = m[2] | 0; + const startPos = position + token.length; + let contentLength, + updateEntries = false; + if (!this.entries[num]) { + updateEntries = true; + } else if (this.entries[num].gen === gen) { + try { + const parser = new Parser({ + lexer: new Lexer(stream.makeSubStream(startPos)) + }); + parser.getObj(); + updateEntries = true; + } catch (ex) { + if (ex instanceof ParserEOFException) { + warn(`indexObjects -- checking object (${token}): "${ex}".`); + } else { + updateEntries = true; + } + } + } + if (updateEntries) { + this.entries[num] = { + offset: position - stream.start, + gen, + uncompressed: true + }; + } + gEndobjRegExp.lastIndex = startPos; + const match = gEndobjRegExp.exec(bufferStr); + if (match) { + const endPos = gEndobjRegExp.lastIndex + 1; + contentLength = endPos - position; + if (match[1] !== "endobj") { + warn(`indexObjects: Found "${match[1]}" inside of another "obj", ` + 'caused by missing "endobj" -- trying to recover.'); + contentLength -= match[1].length + 1; + } + } else { + contentLength = length - position; + } + const content = buffer.subarray(position, position + contentLength); + const xrefTagOffset = skipUntil(content, 0, xrefBytes); + if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) { + xrefStms.push(position - stream.start); + this._xrefStms.add(position - stream.start); + } + position += contentLength; + } else if (token.startsWith("trailer") && (token.length === 7 || /\s/.test(token[7]))) { + trailers.push(position); + const startPos = position + token.length; + let contentLength; + gStartxrefRegExp.lastIndex = startPos; + const match = gStartxrefRegExp.exec(bufferStr); + if (match) { + const endPos = gStartxrefRegExp.lastIndex + 1; + contentLength = endPos - position; + if (match[1] !== "startxref") { + warn(`indexObjects: Found "${match[1]}" after "trailer", ` + 'caused by missing "startxref" -- trying to recover.'); + contentLength -= match[1].length + 1; + } + } else { + contentLength = length - position; + } + position += contentLength; + } else { + position += token.length + 1; + } + } + for (const xrefStm of xrefStms) { + this.startXRefQueue.push(xrefStm); + this.readXRef(true); + } + const trailerDicts = []; + let isEncrypted = false; + for (const trailer of trailers) { + stream.pos = trailer; + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true, + recoveryMode: true + }); + const obj = parser.getObj(); + if (!isCmd(obj, "trailer")) { + continue; + } + const dict = parser.getObj(); + if (!(dict instanceof Dict)) { + continue; + } + trailerDicts.push(dict); + if (dict.has("Encrypt")) { + isEncrypted = true; + } + } + let trailerDict, trailerError; + for (const dict of [...trailerDicts, "genFallback", ...trailerDicts]) { + if (dict === "genFallback") { + if (!trailerError) { + break; + } + this._generationFallback = true; + continue; + } + let validPagesDict = false; + try { + const rootDict = dict.get("Root"); + if (!(rootDict instanceof Dict)) { + continue; + } + const pagesDict = rootDict.get("Pages"); + if (!(pagesDict instanceof Dict)) { + continue; + } + const pagesCount = pagesDict.get("Count"); + if (Number.isInteger(pagesCount)) { + validPagesDict = true; + } + } catch (ex) { + trailerError = ex; + continue; + } + if (validPagesDict && (!isEncrypted || dict.has("Encrypt")) && dict.has("ID")) { + return dict; + } + trailerDict = dict; + } + if (trailerDict) { + return trailerDict; + } + if (this.topDict) { + return this.topDict; + } + if (!trailerDicts.length) { + for (const [num, entry] of this.entries.entries()) { + if (!entry) { + continue; + } + const ref = Ref.get(num, entry.gen); + let obj; + try { + obj = this.fetch(ref); + } catch { + continue; + } + if (obj instanceof BaseStream) { + obj = obj.dict; + } + if (obj instanceof Dict && obj.has("Root")) { + return obj; + } + } + } + throw new InvalidPDFException("Invalid PDF structure."); + } + readXRef(recoveryMode = false) { + const stream = this.stream; + const startXRefParsedCache = new Set(); + while (this.startXRefQueue.length) { + try { + const startXRef = this.startXRefQueue[0]; + if (startXRefParsedCache.has(startXRef)) { + warn("readXRef - skipping XRef table since it was already parsed."); + this.startXRefQueue.shift(); + continue; + } + startXRefParsedCache.add(startXRef); + stream.pos = startXRef + stream.start; + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + let obj = parser.getObj(); + let dict; + if (isCmd(obj, "xref")) { + dict = this.processXRefTable(parser); + if (!this.topDict) { + this.topDict = dict; + } + obj = dict.get("XRefStm"); + if (Number.isInteger(obj) && !this._xrefStms.has(obj)) { + this._xrefStms.add(obj); + this.startXRefQueue.push(obj); + this.#firstXRefStmPos ??= obj; + } + } else if (Number.isInteger(obj)) { + if (!Number.isInteger(parser.getObj()) || !isCmd(parser.getObj(), "obj") || !((obj = parser.getObj()) instanceof BaseStream)) { + throw new FormatError("Invalid XRef stream"); + } + dict = this.processXRefStream(obj); + if (!this.topDict) { + this.topDict = dict; + } + if (!dict) { + throw new FormatError("Failed to read XRef stream"); + } + } else { + throw new FormatError("Invalid XRef stream header"); + } + obj = dict.get("Prev"); + if (Number.isInteger(obj)) { + this.startXRefQueue.push(obj); + } else if (obj instanceof Ref) { + this.startXRefQueue.push(obj.num); + } + } catch (e) { + if (e instanceof MissingDataException) { + throw e; + } + info("(while reading XRef): " + e); + } + this.startXRefQueue.shift(); + } + if (this.topDict) { + return this.topDict; + } + if (recoveryMode) { + return undefined; + } + throw new XRefParseException(); + } + get lastXRefStreamPos() { + return this.#firstXRefStmPos ?? (this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null); + } + getEntry(i) { + const xrefEntry = this.entries[i]; + if (xrefEntry && !xrefEntry.free && xrefEntry.offset) { + return xrefEntry; + } + return null; + } + fetchIfRef(obj, suppressEncryption = false) { + if (obj instanceof Ref) { + return this.fetch(obj, suppressEncryption); + } + return obj; + } + fetch(ref, suppressEncryption = false) { + if (!(ref instanceof Ref)) { + throw new Error("ref object is not a reference"); + } + const num = ref.num; + const cacheEntry = this._cacheMap.get(num); + if (cacheEntry !== undefined) { + if (cacheEntry instanceof Dict && !cacheEntry.objId) { + cacheEntry.objId = ref.toString(); + } + return cacheEntry; + } + let xrefEntry = this.getEntry(num); + if (xrefEntry === null) { + this._cacheMap.set(num, xrefEntry); + return xrefEntry; + } + if (this._pendingRefs.has(ref)) { + this._pendingRefs.remove(ref); + warn(`Ignoring circular reference: ${ref}.`); + return CIRCULAR_REF; + } + this._pendingRefs.put(ref); + try { + xrefEntry = xrefEntry.uncompressed ? this.fetchUncompressed(ref, xrefEntry, suppressEncryption) : this.fetchCompressed(ref, xrefEntry, suppressEncryption); + this._pendingRefs.remove(ref); + } catch (ex) { + this._pendingRefs.remove(ref); + throw ex; + } + if (xrefEntry instanceof Dict) { + xrefEntry.objId = ref.toString(); + } else if (xrefEntry instanceof BaseStream) { + xrefEntry.dict.objId = ref.toString(); + } + return xrefEntry; + } + fetchUncompressed(ref, xrefEntry, suppressEncryption = false) { + const gen = ref.gen; + let num = ref.num; + if (xrefEntry.gen !== gen) { + const msg = `Inconsistent generation in XRef: ${ref}`; + if (this._generationFallback && xrefEntry.gen < gen) { + warn(msg); + return this.fetchUncompressed(Ref.get(num, xrefEntry.gen), xrefEntry, suppressEncryption); + } + throw new XRefEntryException(msg); + } + const stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start); + const parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + const obj1 = parser.getObj(); + const obj2 = parser.getObj(); + const obj3 = parser.getObj(); + if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) { + throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); + } + if (obj3.cmd !== "obj") { + if (obj3.cmd.startsWith("obj")) { + num = parseInt(obj3.cmd.substring(3), 10); + if (!Number.isNaN(num)) { + return num; + } + } + throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`); + } + xrefEntry = this.encrypt && !suppressEncryption ? parser.getObj(this.encrypt.createCipherTransform(num, gen)) : parser.getObj(); + if (!(xrefEntry instanceof BaseStream)) { + this._cacheMap.set(num, xrefEntry); + } + return xrefEntry; + } + fetchCompressed(ref, xrefEntry, suppressEncryption = false) { + const tableOffset = xrefEntry.offset; + const stream = this.fetch(Ref.get(tableOffset, 0)); + if (!(stream instanceof BaseStream)) { + throw new FormatError("bad ObjStm stream"); + } + const first = stream.dict.get("First"); + const n = stream.dict.get("N"); + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new FormatError("invalid first and n parameters for ObjStm stream"); + } + let parser = new Parser({ + lexer: new Lexer(stream), + xref: this, + allowStreams: true + }); + const nums = new Array(n); + const offsets = new Array(n); + for (let i = 0; i < n; ++i) { + const num = parser.getObj(); + if (!Number.isInteger(num)) { + throw new FormatError(`invalid object number in the ObjStm stream: ${num}`); + } + const offset = parser.getObj(); + if (!Number.isInteger(offset)) { + throw new FormatError(`invalid object offset in the ObjStm stream: ${offset}`); + } + nums[i] = num; + offsets[i] = offset; + } + const start = (stream.start || 0) + first; + const entries = new Array(n); + for (let i = 0; i < n; ++i) { + const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined; + if (length < 0) { + throw new FormatError("Invalid offset in the ObjStm stream."); + } + parser = new Parser({ + lexer: new Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)), + xref: this, + allowStreams: true + }); + const obj = parser.getObj(); + entries[i] = obj; + if (obj instanceof BaseStream) { + continue; + } + const num = nums[i], + entry = this.entries[num]; + if (entry && entry.offset === tableOffset && entry.gen === i) { + this._cacheMap.set(num, obj); + } + } + xrefEntry = entries[xrefEntry.gen]; + if (xrefEntry === undefined) { + throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`); + } + return xrefEntry; + } + async fetchIfRefAsync(obj, suppressEncryption) { + if (obj instanceof Ref) { + return this.fetchAsync(obj, suppressEncryption); + } + return obj; + } + async fetchAsync(ref, suppressEncryption) { + try { + return this.fetch(ref, suppressEncryption); + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + throw ex; + } + await this.pdfManager.requestRange(ex.begin, ex.end); + return this.fetchAsync(ref, suppressEncryption); + } + } + getCatalogObj() { + return this.root; + } +} + +;// ./src/core/document.js + + + + + + + + + + + + + + + + + + + +const LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; +class Page { + constructor({ + pdfManager, + xref, + pageIndex, + pageDict, + ref, + globalIdFactory, + fontCache, + builtInCMapCache, + standardFontDataCache, + globalImageCache, + systemFontCache, + nonBlendModesSet, + xfaFactory + }) { + this.pdfManager = pdfManager; + this.pageIndex = pageIndex; + this.pageDict = pageDict; + this.xref = xref; + this.ref = ref; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.standardFontDataCache = standardFontDataCache; + this.globalImageCache = globalImageCache; + this.systemFontCache = systemFontCache; + this.nonBlendModesSet = nonBlendModesSet; + this.evaluatorOptions = pdfManager.evaluatorOptions; + this.resourcesPromise = null; + this.xfaFactory = xfaFactory; + const idCounters = { + obj: 0 + }; + this._localIdFactory = class extends globalIdFactory { + static createObjId() { + return `p${pageIndex}_${++idCounters.obj}`; + } + static getPageObjId() { + return `p${ref.toString()}`; + } + }; + } + _getInheritableProperty(key, getArray = false) { + const value = getInheritableProperty({ + dict: this.pageDict, + key, + getArray, + stopWhenFound: false + }); + if (!Array.isArray(value)) { + return value; + } + if (value.length === 1 || !(value[0] instanceof Dict)) { + return value[0]; + } + return Dict.merge({ + xref: this.xref, + dictArray: value + }); + } + get content() { + return this.pageDict.getArray("Contents"); + } + get resources() { + const resources = this._getInheritableProperty("Resources"); + return shadow(this, "resources", resources instanceof Dict ? resources : Dict.empty); + } + _getBoundingBox(name) { + if (this.xfaData) { + return this.xfaData.bbox; + } + const box = lookupNormalRect(this._getInheritableProperty(name, true), null); + if (box) { + if (box[2] - box[0] > 0 && box[3] - box[1] > 0) { + return box; + } + warn(`Empty, or invalid, /${name} entry.`); + } + return null; + } + get mediaBox() { + return shadow(this, "mediaBox", this._getBoundingBox("MediaBox") || LETTER_SIZE_MEDIABOX); + } + get cropBox() { + return shadow(this, "cropBox", this._getBoundingBox("CropBox") || this.mediaBox); + } + get userUnit() { + const obj = this.pageDict.get("UserUnit"); + return shadow(this, "userUnit", typeof obj === "number" && obj > 0 ? obj : 1.0); + } + get view() { + const { + cropBox, + mediaBox + } = this; + if (cropBox !== mediaBox && !isArrayEqual(cropBox, mediaBox)) { + const box = Util.intersect(cropBox, mediaBox); + if (box && box[2] - box[0] > 0 && box[3] - box[1] > 0) { + return shadow(this, "view", box); + } + warn("Empty /CropBox and /MediaBox intersection."); + } + return shadow(this, "view", mediaBox); + } + get rotate() { + let rotate = this._getInheritableProperty("Rotate") || 0; + if (rotate % 90 !== 0) { + rotate = 0; + } else if (rotate >= 360) { + rotate %= 360; + } else if (rotate < 0) { + rotate = (rotate % 360 + 360) % 360; + } + return shadow(this, "rotate", rotate); + } + _onSubStreamError(reason, objId) { + if (this.evaluatorOptions.ignoreErrors) { + warn(`getContentStream - ignoring sub-stream (${objId}): "${reason}".`); + return; + } + throw reason; + } + getContentStream() { + return this.pdfManager.ensure(this, "content").then(content => { + if (content instanceof BaseStream) { + return content; + } + if (Array.isArray(content)) { + return new StreamsSequenceStream(content, this._onSubStreamError.bind(this)); + } + return new NullStream(); + }); + } + get xfaData() { + return shadow(this, "xfaData", this.xfaFactory ? { + bbox: this.xfaFactory.getBoundingBox(this.pageIndex) + } : null); + } + async #replaceIdByRef(annotations, deletedAnnotations, existingAnnotations) { + const promises = []; + for (const annotation of annotations) { + if (annotation.id) { + const ref = Ref.fromString(annotation.id); + if (!ref) { + warn(`A non-linked annotation cannot be modified: ${annotation.id}`); + continue; + } + if (annotation.deleted) { + deletedAnnotations.put(ref, ref); + if (annotation.popupRef) { + const popupRef = Ref.fromString(annotation.popupRef); + if (popupRef) { + deletedAnnotations.put(popupRef, popupRef); + } + } + continue; + } + existingAnnotations?.put(ref); + annotation.ref = ref; + promises.push(this.xref.fetchAsync(ref).then(obj => { + if (obj instanceof Dict) { + annotation.oldAnnotation = obj.clone(); + } + }, () => { + warn(`Cannot fetch \`oldAnnotation\` for: ${ref}.`); + })); + delete annotation.id; + } + } + await Promise.all(promises); + } + async saveNewAnnotations(handler, task, annotations, imagePromises, changes) { + if (this.xfaFactory) { + throw new Error("XFA: Cannot save new annotations."); + } + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + const deletedAnnotations = new RefSetCache(); + const existingAnnotations = new RefSet(); + await this.#replaceIdByRef(annotations, deletedAnnotations, existingAnnotations); + const pageDict = this.pageDict; + const annotationsArray = this.annotations.filter(a => !(a instanceof Ref && deletedAnnotations.has(a))); + const newData = await AnnotationFactory.saveNewAnnotations(partialEvaluator, task, annotations, imagePromises, changes); + for (const { + ref + } of newData.annotations) { + if (ref instanceof Ref && !existingAnnotations.has(ref)) { + annotationsArray.push(ref); + } + } + const dict = pageDict.clone(); + dict.set("Annots", annotationsArray); + changes.put(this.ref, { + data: dict + }); + for (const deletedRef of deletedAnnotations) { + changes.put(deletedRef, { + data: null + }); + } + } + save(handler, task, annotationStorage, changes) { + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + return this._parsedAnnotations.then(function (annotations) { + const promises = []; + for (const annotation of annotations) { + promises.push(annotation.save(partialEvaluator, task, annotationStorage, changes).catch(function (reason) { + warn("save - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return null; + })); + } + return Promise.all(promises); + }); + } + loadResources(keys) { + this.resourcesPromise ||= this.pdfManager.ensure(this, "resources"); + return this.resourcesPromise.then(() => { + const objectLoader = new ObjectLoader(this.resources, keys, this.xref); + return objectLoader.load(); + }); + } + getOperatorList({ + handler, + sink, + task, + intent, + cacheKey, + annotationStorage = null, + modifiedIds = null + }) { + const contentStreamPromise = this.getContentStream(); + const resourcesPromise = this.loadResources(["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]); + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + const newAnnotsByPage = !this.xfaFactory ? getNewAnnotationsMap(annotationStorage) : null; + const newAnnots = newAnnotsByPage?.get(this.pageIndex); + let newAnnotationsPromise = Promise.resolve(null); + let deletedAnnotations = null; + if (newAnnots) { + const annotationGlobalsPromise = this.pdfManager.ensureDoc("annotationGlobals"); + let imagePromises; + const missingBitmaps = new Set(); + for (const { + bitmapId, + bitmap + } of newAnnots) { + if (bitmapId && !bitmap && !missingBitmaps.has(bitmapId)) { + missingBitmaps.add(bitmapId); + } + } + const { + isOffscreenCanvasSupported + } = this.evaluatorOptions; + if (missingBitmaps.size > 0) { + const annotationWithBitmaps = newAnnots.slice(); + for (const [key, annotation] of annotationStorage) { + if (!key.startsWith(AnnotationEditorPrefix)) { + continue; + } + if (annotation.bitmap && missingBitmaps.has(annotation.bitmapId)) { + annotationWithBitmaps.push(annotation); + } + } + imagePromises = AnnotationFactory.generateImages(annotationWithBitmaps, this.xref, isOffscreenCanvasSupported); + } else { + imagePromises = AnnotationFactory.generateImages(newAnnots, this.xref, isOffscreenCanvasSupported); + } + deletedAnnotations = new RefSet(); + newAnnotationsPromise = Promise.all([annotationGlobalsPromise, this.#replaceIdByRef(newAnnots, deletedAnnotations, null)]).then(([annotationGlobals]) => { + if (!annotationGlobals) { + return null; + } + return AnnotationFactory.printNewAnnotations(annotationGlobals, partialEvaluator, task, newAnnots, imagePromises); + }); + } + const pageListPromise = Promise.all([contentStreamPromise, resourcesPromise]).then(([contentStream]) => { + const opList = new OperatorList(intent, sink); + handler.send("StartRenderPage", { + transparency: partialEvaluator.hasBlendModes(this.resources, this.nonBlendModesSet), + pageIndex: this.pageIndex, + cacheKey + }); + return partialEvaluator.getOperatorList({ + stream: contentStream, + task, + resources: this.resources, + operatorList: opList + }).then(function () { + return opList; + }); + }); + return Promise.all([pageListPromise, this._parsedAnnotations, newAnnotationsPromise]).then(function ([pageOpList, annotations, newAnnotations]) { + if (newAnnotations) { + annotations = annotations.filter(a => !(a.ref && deletedAnnotations.has(a.ref))); + for (let i = 0, ii = newAnnotations.length; i < ii; i++) { + const newAnnotation = newAnnotations[i]; + if (newAnnotation.refToReplace) { + const j = annotations.findIndex(a => a.ref && isRefsEqual(a.ref, newAnnotation.refToReplace)); + if (j >= 0) { + annotations.splice(j, 1, newAnnotation); + newAnnotations.splice(i--, 1); + ii--; + } + } + } + annotations = annotations.concat(newAnnotations); + } + if (annotations.length === 0 || intent & RenderingIntentFlag.ANNOTATIONS_DISABLE) { + pageOpList.flush(true); + return { + length: pageOpList.totalLength + }; + } + const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS), + isEditing = !!(intent & RenderingIntentFlag.IS_EDITING), + intentAny = !!(intent & RenderingIntentFlag.ANY), + intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY), + intentPrint = !!(intent & RenderingIntentFlag.PRINT); + const opListPromises = []; + for (const annotation of annotations) { + if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage, renderForms) && annotation.mustBeViewedWhenEditing(isEditing, modifiedIds) || intentPrint && annotation.mustBePrinted(annotationStorage)) { + opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, annotationStorage).catch(function (reason) { + warn("getOperatorList - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); + return { + opList: null, + separateForm: false, + separateCanvas: false + }; + })); + } + } + return Promise.all(opListPromises).then(function (opLists) { + let form = false, + canvas = false; + for (const { + opList, + separateForm, + separateCanvas + } of opLists) { + pageOpList.addOpList(opList); + form ||= separateForm; + canvas ||= separateCanvas; + } + pageOpList.flush(true, { + form, + canvas + }); + return { + length: pageOpList.totalLength + }; + }); + }); + } + async extractTextContent({ + handler, + task, + includeMarkedContent, + disableNormalization, + sink + }) { + const contentStreamPromise = this.getContentStream(); + const resourcesPromise = this.loadResources(["ExtGState", "Font", "Properties", "XObject"]); + const langPromise = this.pdfManager.ensureCatalog("lang"); + const [contentStream,, lang] = await Promise.all([contentStreamPromise, resourcesPromise, langPromise]); + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + return partialEvaluator.getTextContent({ + stream: contentStream, + task, + resources: this.resources, + includeMarkedContent, + disableNormalization, + sink, + viewBox: this.view, + lang + }); + } + async getStructTree() { + const structTreeRoot = await this.pdfManager.ensureCatalog("structTreeRoot"); + if (!structTreeRoot) { + return null; + } + await this._parsedAnnotations; + const structTree = await this.pdfManager.ensure(this, "_parseStructTree", [structTreeRoot]); + return this.pdfManager.ensure(structTree, "serializable"); + } + _parseStructTree(structTreeRoot) { + const tree = new StructTreePage(structTreeRoot, this.pageDict); + tree.parse(this.ref); + return tree; + } + async getAnnotationsData(handler, task, intent) { + const annotations = await this._parsedAnnotations; + if (annotations.length === 0) { + return annotations; + } + const annotationsData = [], + textContentPromises = []; + let partialEvaluator; + const intentAny = !!(intent & RenderingIntentFlag.ANY), + intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY), + intentPrint = !!(intent & RenderingIntentFlag.PRINT); + for (const annotation of annotations) { + const isVisible = intentAny || intentDisplay && annotation.viewable; + if (isVisible || intentPrint && annotation.printable) { + annotationsData.push(annotation.data); + } + if (annotation.hasTextContent && isVisible) { + partialEvaluator ||= new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: this.pageIndex, + idFactory: this._localIdFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + standardFontDataCache: this.standardFontDataCache, + globalImageCache: this.globalImageCache, + systemFontCache: this.systemFontCache, + options: this.evaluatorOptions + }); + textContentPromises.push(annotation.extractTextContent(partialEvaluator, task, [-Infinity, -Infinity, Infinity, Infinity]).catch(function (reason) { + warn(`getAnnotationsData - ignoring textContent during "${task.name}" task: "${reason}".`); + })); + } + } + await Promise.all(textContentPromises); + return annotationsData; + } + get annotations() { + const annots = this._getInheritableProperty("Annots"); + return shadow(this, "annotations", Array.isArray(annots) ? annots : []); + } + get _parsedAnnotations() { + const promise = this.pdfManager.ensure(this, "annotations").then(async annots => { + if (annots.length === 0) { + return annots; + } + const [annotationGlobals, fieldObjects] = await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"), this.pdfManager.ensureDoc("fieldObjects")]); + if (!annotationGlobals) { + return []; + } + const orphanFields = fieldObjects?.orphanFields; + const annotationPromises = []; + for (const annotationRef of annots) { + annotationPromises.push(AnnotationFactory.create(this.xref, annotationRef, annotationGlobals, this._localIdFactory, false, orphanFields, this.ref).catch(function (reason) { + warn(`_parsedAnnotations: "${reason}".`); + return null; + })); + } + const sortedAnnotations = []; + let popupAnnotations, widgetAnnotations; + for (const annotation of await Promise.all(annotationPromises)) { + if (!annotation) { + continue; + } + if (annotation instanceof WidgetAnnotation) { + (widgetAnnotations ||= []).push(annotation); + continue; + } + if (annotation instanceof PopupAnnotation) { + (popupAnnotations ||= []).push(annotation); + continue; + } + sortedAnnotations.push(annotation); + } + if (widgetAnnotations) { + sortedAnnotations.push(...widgetAnnotations); + } + if (popupAnnotations) { + sortedAnnotations.push(...popupAnnotations); + } + return sortedAnnotations; + }); + return shadow(this, "_parsedAnnotations", promise); + } + get jsActions() { + const actions = collectActions(this.xref, this.pageDict, PageActionEventType); + return shadow(this, "jsActions", actions); + } +} +const PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]); +const STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]); +const ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]); +function find(stream, signature, limit = 1024, backwards = false) { + const signatureLength = signature.length; + const scanBytes = stream.peekBytes(limit); + const scanLength = scanBytes.length - signatureLength; + if (scanLength <= 0) { + return false; + } + if (backwards) { + const signatureEnd = signatureLength - 1; + let pos = scanBytes.length - 1; + while (pos >= signatureEnd) { + let j = 0; + while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) { + j++; + } + if (j >= signatureLength) { + stream.pos += pos - signatureEnd; + return true; + } + pos--; + } + } else { + let pos = 0; + while (pos <= scanLength) { + let j = 0; + while (j < signatureLength && scanBytes[pos + j] === signature[j]) { + j++; + } + if (j >= signatureLength) { + stream.pos += pos; + return true; + } + pos++; + } + } + return false; +} +class PDFDocument { + constructor(pdfManager, stream) { + if (stream.length <= 0) { + throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes."); + } + this.pdfManager = pdfManager; + this.stream = stream; + this.xref = new XRef(stream, pdfManager); + this._pagePromises = new Map(); + this._version = null; + const idCounters = { + font: 0 + }; + this._globalIdFactory = class { + static getDocId() { + return `g_${pdfManager.docId}`; + } + static createFontId() { + return `f${++idCounters.font}`; + } + static createObjId() { + unreachable("Abstract method `createObjId` called."); + } + static getPageObjId() { + unreachable("Abstract method `getPageObjId` called."); + } + }; + } + parse(recoveryMode) { + this.xref.parse(recoveryMode); + this.catalog = new Catalog(this.pdfManager, this.xref); + } + get linearization() { + let linearization = null; + try { + linearization = Linearization.create(this.stream); + } catch (err) { + if (err instanceof MissingDataException) { + throw err; + } + info(err); + } + return shadow(this, "linearization", linearization); + } + get startXRef() { + const stream = this.stream; + let startXRef = 0; + if (this.linearization) { + stream.reset(); + if (find(stream, ENDOBJ_SIGNATURE)) { + stream.skip(6); + let ch = stream.peekByte(); + while (isWhiteSpace(ch)) { + stream.pos++; + ch = stream.peekByte(); + } + startXRef = stream.pos - stream.start; + } + } else { + const step = 1024; + const startXRefLength = STARTXREF_SIGNATURE.length; + let found = false, + pos = stream.end; + while (!found && pos > 0) { + pos -= step - startXRefLength; + if (pos < 0) { + pos = 0; + } + stream.pos = pos; + found = find(stream, STARTXREF_SIGNATURE, step, true); + } + if (found) { + stream.skip(9); + let ch; + do { + ch = stream.getByte(); + } while (isWhiteSpace(ch)); + let str = ""; + while (ch >= 0x20 && ch <= 0x39) { + str += String.fromCharCode(ch); + ch = stream.getByte(); + } + startXRef = parseInt(str, 10); + if (isNaN(startXRef)) { + startXRef = 0; + } + } + } + return shadow(this, "startXRef", startXRef); + } + checkHeader() { + const stream = this.stream; + stream.reset(); + if (!find(stream, PDF_HEADER_SIGNATURE)) { + return; + } + stream.moveStart(); + stream.skip(PDF_HEADER_SIGNATURE.length); + let version = "", + ch; + while ((ch = stream.getByte()) > 0x20 && version.length < 7) { + version += String.fromCharCode(ch); + } + if (PDF_VERSION_REGEXP.test(version)) { + this._version = version; + } else { + warn(`Invalid PDF header version: ${version}`); + } + } + parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + get numPages() { + let num = 0; + if (this.catalog.hasActualNumPages) { + num = this.catalog.numPages; + } else if (this.xfaFactory) { + num = this.xfaFactory.getNumPages(); + } else if (this.linearization) { + num = this.linearization.numPages; + } else { + num = this.catalog.numPages; + } + return shadow(this, "numPages", num); + } + _hasOnlyDocumentSignatures(fields, recursionDepth = 0) { + const RECURSION_LIMIT = 10; + if (!Array.isArray(fields)) { + return false; + } + return fields.every(field => { + field = this.xref.fetchIfRef(field); + if (!(field instanceof Dict)) { + return false; + } + if (field.has("Kids")) { + if (++recursionDepth > RECURSION_LIMIT) { + warn("_hasOnlyDocumentSignatures: maximum recursion depth reached"); + return false; + } + return this._hasOnlyDocumentSignatures(field.get("Kids"), recursionDepth); + } + const isSignature = isName(field.get("FT"), "Sig"); + const rectangle = field.get("Rect"); + const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0); + return isSignature && isInvisible; + }); + } + get _xfaStreams() { + const acroForm = this.catalog.acroForm; + if (!acroForm) { + return null; + } + const xfa = acroForm.get("XFA"); + const entries = { + "xdp:xdp": "", + template: "", + datasets: "", + config: "", + connectionSet: "", + localeSet: "", + stylesheet: "", + "/xdp:xdp": "" + }; + if (xfa instanceof BaseStream && !xfa.isEmpty) { + entries["xdp:xdp"] = xfa; + return entries; + } + if (!Array.isArray(xfa) || xfa.length === 0) { + return null; + } + for (let i = 0, ii = xfa.length; i < ii; i += 2) { + let name; + if (i === 0) { + name = "xdp:xdp"; + } else if (i === ii - 2) { + name = "/xdp:xdp"; + } else { + name = xfa[i]; + } + if (!entries.hasOwnProperty(name)) { + continue; + } + const data = this.xref.fetchIfRef(xfa[i + 1]); + if (!(data instanceof BaseStream) || data.isEmpty) { + continue; + } + entries[name] = data; + } + return entries; + } + get xfaDatasets() { + const streams = this._xfaStreams; + if (!streams) { + return shadow(this, "xfaDatasets", null); + } + for (const key of ["datasets", "xdp:xdp"]) { + const stream = streams[key]; + if (!stream) { + continue; + } + try { + const str = stringToUTF8String(stream.getString()); + const data = { + [key]: str + }; + return shadow(this, "xfaDatasets", new DatasetReader(data)); + } catch { + warn("XFA - Invalid utf-8 string."); + break; + } + } + return shadow(this, "xfaDatasets", null); + } + get xfaData() { + const streams = this._xfaStreams; + if (!streams) { + return null; + } + const data = Object.create(null); + for (const [key, stream] of Object.entries(streams)) { + if (!stream) { + continue; + } + try { + data[key] = stringToUTF8String(stream.getString()); + } catch { + warn("XFA - Invalid utf-8 string."); + return null; + } + } + return data; + } + get xfaFactory() { + let data; + if (this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) { + data = this.xfaData; + } + return shadow(this, "xfaFactory", data ? new XFAFactory(data) : null); + } + get isPureXfa() { + return this.xfaFactory ? this.xfaFactory.isValid() : false; + } + get htmlForXfa() { + return this.xfaFactory ? this.xfaFactory.getPages() : null; + } + async loadXfaImages() { + const xfaImagesDict = await this.pdfManager.ensureCatalog("xfaImages"); + if (!xfaImagesDict) { + return; + } + const keys = xfaImagesDict.getKeys(); + const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref); + await objectLoader.load(); + const xfaImages = new Map(); + for (const key of keys) { + const stream = xfaImagesDict.get(key); + if (stream instanceof BaseStream) { + xfaImages.set(key, stream.getBytes()); + } + } + this.xfaFactory.setImages(xfaImages); + } + async loadXfaFonts(handler, task) { + const acroForm = await this.pdfManager.ensureCatalog("acroForm"); + if (!acroForm) { + return; + } + const resources = await acroForm.getAsync("DR"); + if (!(resources instanceof Dict)) { + return; + } + const objectLoader = new ObjectLoader(resources, ["Font"], this.xref); + await objectLoader.load(); + const fontRes = resources.get("Font"); + if (!(fontRes instanceof Dict)) { + return; + } + const options = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions); + options.useSystemFonts = false; + const partialEvaluator = new PartialEvaluator({ + xref: this.xref, + handler, + pageIndex: -1, + idFactory: this._globalIdFactory, + fontCache: this.catalog.fontCache, + builtInCMapCache: this.catalog.builtInCMapCache, + standardFontDataCache: this.catalog.standardFontDataCache, + options + }); + const operatorList = new OperatorList(); + const pdfFonts = []; + const initialState = { + get font() { + return pdfFonts.at(-1); + }, + set font(font) { + pdfFonts.push(font); + }, + clone() { + return this; + } + }; + const promises = []; + for (const [fontName, font] of fontRes) { + const descriptor = font.get("FontDescriptor"); + if (!(descriptor instanceof Dict)) { + continue; + } + let fontFamily = descriptor.get("FontFamily"); + fontFamily = fontFamily.replaceAll(/[ ]+(\d)/g, "$1"); + const fontWeight = descriptor.get("FontWeight"); + const italicAngle = -descriptor.get("ItalicAngle"); + const cssFontInfo = { + fontFamily, + fontWeight, + italicAngle + }; + if (!validateCSSFont(cssFontInfo)) { + continue; + } + promises.push(partialEvaluator.handleSetFont(resources, [Name.get(fontName), 1], null, operatorList, task, initialState, null, cssFontInfo).catch(function (reason) { + warn(`loadXfaFonts: "${reason}".`); + return null; + })); + } + await Promise.all(promises); + const missingFonts = this.xfaFactory.setFonts(pdfFonts); + if (!missingFonts) { + return; + } + options.ignoreErrors = true; + promises.length = 0; + pdfFonts.length = 0; + const reallyMissingFonts = new Set(); + for (const missing of missingFonts) { + if (!getXfaFontName(`${missing}-Regular`)) { + reallyMissingFonts.add(missing); + } + } + if (reallyMissingFonts.size) { + missingFonts.push("PdfJS-Fallback"); + } + for (const missing of missingFonts) { + if (reallyMissingFonts.has(missing)) { + continue; + } + for (const fontInfo of [{ + name: "Regular", + fontWeight: 400, + italicAngle: 0 + }, { + name: "Bold", + fontWeight: 700, + italicAngle: 0 + }, { + name: "Italic", + fontWeight: 400, + italicAngle: 12 + }, { + name: "BoldItalic", + fontWeight: 700, + italicAngle: 12 + }]) { + const name = `${missing}-${fontInfo.name}`; + const dict = getXfaFontDict(name); + promises.push(partialEvaluator.handleSetFont(resources, [Name.get(name), 1], null, operatorList, task, initialState, dict, { + fontFamily: missing, + fontWeight: fontInfo.fontWeight, + italicAngle: fontInfo.italicAngle + }).catch(function (reason) { + warn(`loadXfaFonts: "${reason}".`); + return null; + })); + } + } + await Promise.all(promises); + this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts); + } + async serializeXfaData(annotationStorage) { + return this.xfaFactory ? this.xfaFactory.serializeData(annotationStorage) : null; + } + get version() { + return this.catalog.version || this._version; + } + get formInfo() { + const formInfo = { + hasFields: false, + hasAcroForm: false, + hasXfa: false, + hasSignatures: false + }; + const acroForm = this.catalog.acroForm; + if (!acroForm) { + return shadow(this, "formInfo", formInfo); + } + try { + const fields = acroForm.get("Fields"); + const hasFields = Array.isArray(fields) && fields.length > 0; + formInfo.hasFields = hasFields; + const xfa = acroForm.get("XFA"); + formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || xfa instanceof BaseStream && !xfa.isEmpty; + const sigFlags = acroForm.get("SigFlags"); + const hasSignatures = !!(sigFlags & 0x1); + const hasOnlyDocumentSignatures = hasSignatures && this._hasOnlyDocumentSignatures(fields); + formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures; + formInfo.hasSignatures = hasSignatures; + } catch (ex) { + if (ex instanceof MissingDataException) { + throw ex; + } + warn(`Cannot fetch form information: "${ex}".`); + } + return shadow(this, "formInfo", formInfo); + } + get documentInfo() { + const docInfo = { + PDFFormatVersion: this.version, + Language: this.catalog.lang, + EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null, + IsLinearized: !!this.linearization, + IsAcroFormPresent: this.formInfo.hasAcroForm, + IsXFAPresent: this.formInfo.hasXfa, + IsCollectionPresent: !!this.catalog.collection, + IsSignaturesPresent: this.formInfo.hasSignatures + }; + let infoDict; + try { + infoDict = this.xref.trailer.get("Info"); + } catch (err) { + if (err instanceof MissingDataException) { + throw err; + } + info("The document information dictionary is invalid."); + } + if (!(infoDict instanceof Dict)) { + return shadow(this, "documentInfo", docInfo); + } + for (const key of infoDict.getKeys()) { + const value = infoDict.get(key); + switch (key) { + case "Title": + case "Author": + case "Subject": + case "Keywords": + case "Creator": + case "Producer": + case "CreationDate": + case "ModDate": + if (typeof value === "string") { + docInfo[key] = stringToPDFString(value); + continue; + } + break; + case "Trapped": + if (value instanceof Name) { + docInfo[key] = value; + continue; + } + break; + default: + let customValue; + switch (typeof value) { + case "string": + customValue = stringToPDFString(value); + break; + case "number": + case "boolean": + customValue = value; + break; + default: + if (value instanceof Name) { + customValue = value; + } + break; + } + if (customValue === undefined) { + warn(`Bad value, for custom key "${key}", in Info: ${value}.`); + continue; + } + if (!docInfo.Custom) { + docInfo.Custom = Object.create(null); + } + docInfo.Custom[key] = customValue; + continue; + } + warn(`Bad value, for key "${key}", in Info: ${value}.`); + } + return shadow(this, "documentInfo", docInfo); + } + get fingerprints() { + const FINGERPRINT_FIRST_BYTES = 1024; + const EMPTY_FINGERPRINT = "\x00".repeat(16); + function validate(data) { + return typeof data === "string" && data.length === 16 && data !== EMPTY_FINGERPRINT; + } + const id = this.xref.trailer.get("ID"); + let hashOriginal, hashModified; + if (Array.isArray(id) && validate(id[0])) { + hashOriginal = stringToBytes(id[0]); + if (id[1] !== id[0] && validate(id[1])) { + hashModified = stringToBytes(id[1]); + } + } else { + hashOriginal = calculateMD5(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); + } + return shadow(this, "fingerprints", [toHexUtil(hashOriginal), hashModified ? toHexUtil(hashModified) : null]); + } + async _getLinearizationPage(pageIndex) { + const { + catalog, + linearization, + xref + } = this; + const ref = Ref.get(linearization.objectNumberFirst, 0); + try { + const obj = await xref.fetchAsync(ref); + if (obj instanceof Dict) { + let type = obj.getRaw("Type"); + if (type instanceof Ref) { + type = await xref.fetchAsync(type); + } + if (isName(type, "Page") || !obj.has("Type") && !obj.has("Kids") && obj.has("Contents")) { + if (!catalog.pageKidsCountCache.has(ref)) { + catalog.pageKidsCountCache.put(ref, 1); + } + if (!catalog.pageIndexCache.has(ref)) { + catalog.pageIndexCache.put(ref, 0); + } + return [obj, ref]; + } + } + throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary."); + } catch (reason) { + warn(`_getLinearizationPage: "${reason.message}".`); + return catalog.getPageDict(pageIndex); + } + } + getPage(pageIndex) { + const cachedPromise = this._pagePromises.get(pageIndex); + if (cachedPromise) { + return cachedPromise; + } + const { + catalog, + linearization, + xfaFactory + } = this; + let promise; + if (xfaFactory) { + promise = Promise.resolve([Dict.empty, null]); + } else if (linearization?.pageFirst === pageIndex) { + promise = this._getLinearizationPage(pageIndex); + } else { + promise = catalog.getPageDict(pageIndex); + } + promise = promise.then(([pageDict, ref]) => { + return new Page({ + pdfManager: this.pdfManager, + xref: this.xref, + pageIndex, + pageDict, + ref, + globalIdFactory: this._globalIdFactory, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + standardFontDataCache: catalog.standardFontDataCache, + globalImageCache: catalog.globalImageCache, + systemFontCache: catalog.systemFontCache, + nonBlendModesSet: catalog.nonBlendModesSet, + xfaFactory + }); + }); + this._pagePromises.set(pageIndex, promise); + return promise; + } + async checkFirstPage(recoveryMode = false) { + if (recoveryMode) { + return; + } + try { + await this.getPage(0); + } catch (reason) { + if (reason instanceof XRefEntryException) { + this._pagePromises.delete(0); + await this.cleanup(); + throw new XRefParseException(); + } + } + } + async checkLastPage(recoveryMode = false) { + const { + catalog, + pdfManager + } = this; + catalog.setActualNumPages(); + let numPages; + try { + await Promise.all([pdfManager.ensureDoc("xfaFactory"), pdfManager.ensureDoc("linearization"), pdfManager.ensureCatalog("numPages")]); + if (this.xfaFactory) { + return; + } else if (this.linearization) { + numPages = this.linearization.numPages; + } else { + numPages = catalog.numPages; + } + if (!Number.isInteger(numPages)) { + throw new FormatError("Page count is not an integer."); + } else if (numPages <= 1) { + return; + } + await this.getPage(numPages - 1); + } catch (reason) { + this._pagePromises.delete(numPages - 1); + await this.cleanup(); + if (reason instanceof XRefEntryException && !recoveryMode) { + throw new XRefParseException(); + } + warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`); + let pagesTree; + try { + pagesTree = await catalog.getAllPageDicts(recoveryMode); + } catch (reasonAll) { + if (reasonAll instanceof XRefEntryException && !recoveryMode) { + throw new XRefParseException(); + } + catalog.setActualNumPages(1); + return; + } + for (const [pageIndex, [pageDict, ref]] of pagesTree) { + let promise; + if (pageDict instanceof Error) { + promise = Promise.reject(pageDict); + promise.catch(() => {}); + } else { + promise = Promise.resolve(new Page({ + pdfManager, + xref: this.xref, + pageIndex, + pageDict, + ref, + globalIdFactory: this._globalIdFactory, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + standardFontDataCache: catalog.standardFontDataCache, + globalImageCache: catalog.globalImageCache, + systemFontCache: catalog.systemFontCache, + nonBlendModesSet: catalog.nonBlendModesSet, + xfaFactory: null + })); + } + this._pagePromises.set(pageIndex, promise); + } + catalog.setActualNumPages(pagesTree.size); + } + } + fontFallback(id, handler) { + return this.catalog.fontFallback(id, handler); + } + async cleanup(manuallyTriggered = false) { + return this.catalog ? this.catalog.cleanup(manuallyTriggered) : clearGlobalCaches(); + } + async #collectFieldObjects(name, parentRef, fieldRef, promises, annotationGlobals, visitedRefs, orphanFields) { + const { + xref + } = this; + if (!(fieldRef instanceof Ref) || visitedRefs.has(fieldRef)) { + return; + } + visitedRefs.put(fieldRef); + const field = await xref.fetchAsync(fieldRef); + if (!(field instanceof Dict)) { + return; + } + if (field.has("T")) { + const partName = stringToPDFString(await field.getAsync("T")); + name = name === "" ? partName : `${name}.${partName}`; + } else { + let obj = field; + while (true) { + obj = obj.getRaw("Parent") || parentRef; + if (obj instanceof Ref) { + if (visitedRefs.has(obj)) { + break; + } + obj = await xref.fetchAsync(obj); + } + if (!(obj instanceof Dict)) { + break; + } + if (obj.has("T")) { + const partName = stringToPDFString(await obj.getAsync("T")); + name = name === "" ? partName : `${name}.${partName}`; + break; + } + } + } + if (parentRef && !field.has("Parent") && isName(field.get("Subtype"), "Widget")) { + orphanFields.put(fieldRef, parentRef); + } + if (!promises.has(name)) { + promises.set(name, []); + } + promises.get(name).push(AnnotationFactory.create(xref, fieldRef, annotationGlobals, null, true, orphanFields, null).then(annotation => annotation?.getFieldObject()).catch(function (reason) { + warn(`#collectFieldObjects: "${reason}".`); + return null; + })); + if (!field.has("Kids")) { + return; + } + const kids = await field.getAsync("Kids"); + if (Array.isArray(kids)) { + for (const kid of kids) { + await this.#collectFieldObjects(name, fieldRef, kid, promises, annotationGlobals, visitedRefs, orphanFields); + } + } + } + get fieldObjects() { + const promise = this.pdfManager.ensureDoc("formInfo").then(async formInfo => { + if (!formInfo.hasFields) { + return null; + } + const [annotationGlobals, acroForm] = await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"), this.pdfManager.ensureCatalog("acroForm")]); + if (!annotationGlobals) { + return null; + } + const visitedRefs = new RefSet(); + const allFields = Object.create(null); + const fieldPromises = new Map(); + const orphanFields = new RefSetCache(); + for (const fieldRef of await acroForm.getAsync("Fields")) { + await this.#collectFieldObjects("", null, fieldRef, fieldPromises, annotationGlobals, visitedRefs, orphanFields); + } + const allPromises = []; + for (const [name, promises] of fieldPromises) { + allPromises.push(Promise.all(promises).then(fields => { + fields = fields.filter(field => !!field); + if (fields.length > 0) { + allFields[name] = fields; + } + })); + } + await Promise.all(allPromises); + return { + allFields, + orphanFields + }; + }); + return shadow(this, "fieldObjects", promise); + } + get hasJSActions() { + const promise = this.pdfManager.ensureDoc("_parseHasJSActions"); + return shadow(this, "hasJSActions", promise); + } + async _parseHasJSActions() { + const [catalogJsActions, fieldObjects] = await Promise.all([this.pdfManager.ensureCatalog("jsActions"), this.pdfManager.ensureDoc("fieldObjects")]); + if (catalogJsActions) { + return true; + } + if (fieldObjects) { + return Object.values(fieldObjects.allFields).some(fieldObject => fieldObject.some(object => object.actions !== null)); + } + return false; + } + get calculationOrderIds() { + const calculationOrder = this.catalog.acroForm?.get("CO"); + if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) { + return shadow(this, "calculationOrderIds", null); + } + const ids = []; + for (const id of calculationOrder) { + if (id instanceof Ref) { + ids.push(id.toString()); + } + } + return shadow(this, "calculationOrderIds", ids.length ? ids : null); + } + get annotationGlobals() { + return shadow(this, "annotationGlobals", AnnotationFactory.createGlobals(this.pdfManager)); + } +} + +;// ./src/core/pdf_manager.js + + + + + +function parseDocBaseUrl(url) { + if (url) { + const absoluteUrl = createValidAbsoluteUrl(url); + if (absoluteUrl) { + return absoluteUrl.href; + } + warn(`Invalid absolute docBaseUrl: "${url}".`); + } + return null; +} +class BasePdfManager { + constructor(args) { + this._docBaseUrl = parseDocBaseUrl(args.docBaseUrl); + this._docId = args.docId; + this._password = args.password; + this.enableXfa = args.enableXfa; + args.evaluatorOptions.isOffscreenCanvasSupported &&= FeatureTest.isOffscreenCanvasSupported; + args.evaluatorOptions.isImageDecoderSupported &&= FeatureTest.isImageDecoderSupported; + this.evaluatorOptions = Object.freeze(args.evaluatorOptions); + } + get docId() { + return this._docId; + } + get password() { + return this._password; + } + get docBaseUrl() { + return this._docBaseUrl; + } + get catalog() { + return this.pdfDocument.catalog; + } + ensureDoc(prop, args) { + return this.ensure(this.pdfDocument, prop, args); + } + ensureXRef(prop, args) { + return this.ensure(this.pdfDocument.xref, prop, args); + } + ensureCatalog(prop, args) { + return this.ensure(this.pdfDocument.catalog, prop, args); + } + getPage(pageIndex) { + return this.pdfDocument.getPage(pageIndex); + } + fontFallback(id, handler) { + return this.pdfDocument.fontFallback(id, handler); + } + loadXfaFonts(handler, task) { + return this.pdfDocument.loadXfaFonts(handler, task); + } + loadXfaImages() { + return this.pdfDocument.loadXfaImages(); + } + serializeXfaData(annotationStorage) { + return this.pdfDocument.serializeXfaData(annotationStorage); + } + cleanup(manuallyTriggered = false) { + return this.pdfDocument.cleanup(manuallyTriggered); + } + async ensure(obj, prop, args) { + unreachable("Abstract method `ensure` called"); + } + requestRange(begin, end) { + unreachable("Abstract method `requestRange` called"); + } + requestLoadedStream(noFetch = false) { + unreachable("Abstract method `requestLoadedStream` called"); + } + sendProgressiveData(chunk) { + unreachable("Abstract method `sendProgressiveData` called"); + } + updatePassword(password) { + this._password = password; + } + terminate(reason) { + unreachable("Abstract method `terminate` called"); + } +} +class LocalPdfManager extends BasePdfManager { + constructor(args) { + super(args); + const stream = new Stream(args.source); + this.pdfDocument = new PDFDocument(this, stream); + this._loadedStreamPromise = Promise.resolve(stream); + } + async ensure(obj, prop, args) { + const value = obj[prop]; + if (typeof value === "function") { + return value.apply(obj, args); + } + return value; + } + requestRange(begin, end) { + return Promise.resolve(); + } + requestLoadedStream(noFetch = false) { + return this._loadedStreamPromise; + } + terminate(reason) {} +} +class NetworkPdfManager extends BasePdfManager { + constructor(args) { + super(args); + this.streamManager = new ChunkedStreamManager(args.source, { + msgHandler: args.handler, + length: args.length, + disableAutoFetch: args.disableAutoFetch, + rangeChunkSize: args.rangeChunkSize + }); + this.pdfDocument = new PDFDocument(this, this.streamManager.getStream()); + } + async ensure(obj, prop, args) { + try { + const value = obj[prop]; + if (typeof value === "function") { + return value.apply(obj, args); + } + return value; + } catch (ex) { + if (!(ex instanceof MissingDataException)) { + throw ex; + } + await this.requestRange(ex.begin, ex.end); + return this.ensure(obj, prop, args); + } + } + requestRange(begin, end) { + return this.streamManager.requestRange(begin, end); + } + requestLoadedStream(noFetch = false) { + return this.streamManager.requestAllChunks(noFetch); + } + sendProgressiveData(chunk) { + this.streamManager.onReceiveData({ + chunk + }); + } + terminate(reason) { + this.streamManager.abort(reason); + } +} + +;// ./src/shared/message_handler.js + +const CallbackKind = { + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; +function onFn() {} +function wrapReason(ex) { + if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof MissingPDFException || ex instanceof PasswordException || ex instanceof UnexpectedResponseException || ex instanceof UnknownErrorException) { + return ex; + } + if (!(ex instanceof Error || typeof ex === "object" && ex !== null)) { + unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + } + switch (ex.name) { + case "AbortException": + return new AbortException(ex.message); + case "InvalidPDFException": + return new InvalidPDFException(ex.message); + case "MissingPDFException": + return new MissingPDFException(ex.message); + case "PasswordException": + return new PasswordException(ex.message, ex.code); + case "UnexpectedResponseException": + return new UnexpectedResponseException(ex.message, ex.status); + case "UnknownErrorException": + return new UnknownErrorException(ex.message, ex.details); + } + return new UnknownErrorException(ex.message, ex.toString()); +} +class MessageHandler { + #messageAC = new AbortController(); + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + comObj.addEventListener("message", this.#onMessage.bind(this), { + signal: this.#messageAC.signal + }); + } + #onMessage({ + data + }) { + if (data.targetName !== this.sourceName) { + return; + } + if (data.stream) { + this.#processStreamMessage(data); + return; + } + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + delete this.callbackCapabilities[callbackId]; + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + return; + } + const action = this.actionHandler[data.action]; + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); + } + if (data.callbackId) { + const sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + Promise.try(action, data.data).then(function (result) { + comObj.postMessage({ + sourceName, + targetName, + callback: CallbackKind.DATA, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + callback: CallbackKind.ERROR, + callbackId: data.callbackId, + reason: wrapReason(reason) + }); + }); + return; + } + if (data.streamId) { + this.#createStreamSink(data); + return; + } + action(data.data); + } + on(actionName, handler) { + const ah = this.actionHandler; + if (ah[actionName]) { + throw new Error(`There is already an actionName called "${actionName}"`); + } + ah[actionName] = handler; + } + send(actionName, data, transfers) { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = Promise.withResolvers(); + this.callbackCapabilities[callbackId] = capability; + try { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); + } + return capability.promise; + } + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++, + sourceName = this.sourceName, + targetName = this.targetName, + comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = Promise.withResolvers(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + comObj.postMessage({ + sourceName, + targetName, + action: actionName, + streamId, + data, + desiredSize: controller.desiredSize + }, transfers); + return startCapability.promise; + }, + pull: controller => { + const pullCapability = Promise.withResolvers(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize + }); + return pullCapability.promise; + }, + cancel: reason => { + assert(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = Promise.withResolvers(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) + }); + return cancelCapability.promise; + } + }, queueingStrategy); + } + #createStreamSink(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const self = this, + action = this.actionHandler[data.action]; + const streamSink = { + enqueue(chunk, size = 1, transfers) { + if (this.isCancelled) { + return; + } + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = Promise.withResolvers(); + this.ready = this.sinkCapability.promise; + } + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + close() { + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId + }); + delete self.streamSinks[streamId]; + }, + error(reason) { + assert(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) + }); + }, + sinkCapability: Promise.withResolvers(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + Promise.try(action, data.data, streamSink).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } + #processStreamMessage(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const streamController = this.streamControllers[streamId], + streamSink = this.streamSinks[streamId]; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + streamController.startCall.resolve(); + } else { + streamController.startCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + streamController.pullCall.resolve(); + } else { + streamController.pullCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL: + if (!streamSink) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + break; + } + if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { + streamSink.sinkCapability.resolve(); + } + streamSink.desiredSize = data.desiredSize; + Promise.try(streamSink.onPull || onFn).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + case StreamKind.ENQUEUE: + assert(streamController, "enqueue should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.controller.enqueue(data.chunk); + break; + case StreamKind.CLOSE: + assert(streamController, "close should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.isClosed = true; + streamController.controller.close(); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.ERROR: + assert(streamController, "error should have stream controller"); + streamController.controller.error(wrapReason(data.reason)); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + streamController.cancelCall.resolve(); + } else { + streamController.cancelCall.reject(wrapReason(data.reason)); + } + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL: + if (!streamSink) { + break; + } + const dataReason = wrapReason(data.reason); + Promise.try(streamSink.onCancel || onFn, dataReason).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + streamSink.sinkCapability.reject(dataReason); + streamSink.isCancelled = true; + delete this.streamSinks[streamId]; + break; + default: + throw new Error("Unexpected stream case"); + } + } + async #deleteStreamController(streamController, streamId) { + await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]); + delete this.streamControllers[streamId]; + } + destroy() { + this.#messageAC?.abort(); + this.#messageAC = null; + } +} + +;// ./src/core/writer.js + + + + + + + +async function writeObject(ref, obj, buffer, { + encrypt = null +}) { + const transform = encrypt?.createCipherTransform(ref.num, ref.gen); + buffer.push(`${ref.num} ${ref.gen} obj\n`); + if (obj instanceof Dict) { + await writeDict(obj, buffer, transform); + } else if (obj instanceof BaseStream) { + await writeStream(obj, buffer, transform); + } else if (Array.isArray(obj) || ArrayBuffer.isView(obj)) { + await writeArray(obj, buffer, transform); + } + buffer.push("\nendobj\n"); +} +async function writeDict(dict, buffer, transform) { + buffer.push("<<"); + for (const key of dict.getKeys()) { + buffer.push(` /${escapePDFName(key)} `); + await writeValue(dict.getRaw(key), buffer, transform); + } + buffer.push(">>"); +} +async function writeStream(stream, buffer, transform) { + let bytes = stream.getBytes(); + const { + dict + } = stream; + const [filter, params] = await Promise.all([dict.getAsync("Filter"), dict.getAsync("DecodeParms")]); + const filterZero = Array.isArray(filter) ? await dict.xref.fetchIfRefAsync(filter[0]) : filter; + const isFilterZeroFlateDecode = isName(filterZero, "FlateDecode"); + const MIN_LENGTH_FOR_COMPRESSING = 256; + if (bytes.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode) { + try { + const cs = new CompressionStream("deflate"); + const writer = cs.writable.getWriter(); + await writer.ready; + writer.write(bytes).then(async () => { + await writer.ready; + await writer.close(); + }).catch(() => {}); + const buf = await new Response(cs.readable).arrayBuffer(); + bytes = new Uint8Array(buf); + let newFilter, newParams; + if (!filter) { + newFilter = Name.get("FlateDecode"); + } else if (!isFilterZeroFlateDecode) { + newFilter = Array.isArray(filter) ? [Name.get("FlateDecode"), ...filter] : [Name.get("FlateDecode"), filter]; + if (params) { + newParams = Array.isArray(params) ? [null, ...params] : [null, params]; + } + } + if (newFilter) { + dict.set("Filter", newFilter); + } + if (newParams) { + dict.set("DecodeParms", newParams); + } + } catch (ex) { + info(`writeStream - cannot compress data: "${ex}".`); + } + } + let string = bytesToString(bytes); + if (transform) { + string = transform.encryptString(string); + } + dict.set("Length", string.length); + await writeDict(dict, buffer, transform); + buffer.push(" stream\n", string, "\nendstream"); +} +async function writeArray(array, buffer, transform) { + buffer.push("["); + let first = true; + for (const val of array) { + if (!first) { + buffer.push(" "); + } else { + first = false; + } + await writeValue(val, buffer, transform); + } + buffer.push("]"); +} +async function writeValue(value, buffer, transform) { + if (value instanceof Name) { + buffer.push(`/${escapePDFName(value.name)}`); + } else if (value instanceof Ref) { + buffer.push(`${value.num} ${value.gen} R`); + } else if (Array.isArray(value) || ArrayBuffer.isView(value)) { + await writeArray(value, buffer, transform); + } else if (typeof value === "string") { + if (transform) { + value = transform.encryptString(value); + } + buffer.push(`(${escapeString(value)})`); + } else if (typeof value === "number") { + buffer.push(numberToString(value)); + } else if (typeof value === "boolean") { + buffer.push(value.toString()); + } else if (value instanceof Dict) { + await writeDict(value, buffer, transform); + } else if (value instanceof BaseStream) { + await writeStream(value, buffer, transform); + } else if (value === null) { + buffer.push("null"); + } else { + warn(`Unhandled value in writer: ${typeof value}, please file a bug.`); + } +} +function writeInt(number, size, offset, buffer) { + for (let i = size + offset - 1; i > offset - 1; i--) { + buffer[i] = number & 0xff; + number >>= 8; + } + return offset + size; +} +function writeString(string, offset, buffer) { + for (let i = 0, len = string.length; i < len; i++) { + buffer[offset + i] = string.charCodeAt(i) & 0xff; + } +} +function computeMD5(filesize, xrefInfo) { + const time = Math.floor(Date.now() / 1000); + const filename = xrefInfo.filename || ""; + const md5Buffer = [time.toString(), filename, filesize.toString()]; + let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0); + for (const value of Object.values(xrefInfo.info)) { + md5Buffer.push(value); + md5BufferLen += value.length; + } + const array = new Uint8Array(md5BufferLen); + let offset = 0; + for (const str of md5Buffer) { + writeString(str, offset, array); + offset += str.length; + } + return bytesToString(calculateMD5(array)); +} +function writeXFADataForAcroform(str, changes) { + const xml = new SimpleXMLParser({ + hasAttributes: true + }).parseFromString(str); + for (const { + xfa + } of changes) { + if (!xfa) { + continue; + } + const { + path, + value + } = xfa; + if (!path) { + continue; + } + const nodePath = parseXFAPath(path); + let node = xml.documentElement.searchNode(nodePath, 0); + if (!node && nodePath.length > 1) { + node = xml.documentElement.searchNode([nodePath.at(-1)], 0); + } + if (node) { + node.childNodes = Array.isArray(value) ? value.map(val => new SimpleDOMNode("value", val)) : [new SimpleDOMNode("#text", value)]; + } else { + warn(`Node not found for path: ${path}`); + } + } + const buffer = []; + xml.documentElement.dump(buffer); + return buffer.join(""); +} +async function updateAcroform({ + xref, + acroForm, + acroFormRef, + hasXfa, + hasXfaDatasetsEntry, + xfaDatasetsRef, + needAppearances, + changes +}) { + if (hasXfa && !hasXfaDatasetsEntry && !xfaDatasetsRef) { + warn("XFA - Cannot save it"); + } + if (!needAppearances && (!hasXfa || !xfaDatasetsRef || hasXfaDatasetsEntry)) { + return; + } + const dict = acroForm.clone(); + if (hasXfa && !hasXfaDatasetsEntry) { + const newXfa = acroForm.get("XFA").slice(); + newXfa.splice(2, 0, "datasets"); + newXfa.splice(3, 0, xfaDatasetsRef); + dict.set("XFA", newXfa); + } + if (needAppearances) { + dict.set("NeedAppearances", true); + } + changes.put(acroFormRef, { + data: dict + }); +} +function updateXFA({ + xfaData, + xfaDatasetsRef, + changes, + xref +}) { + if (xfaData === null) { + const datasets = xref.fetchIfRef(xfaDatasetsRef); + xfaData = writeXFADataForAcroform(datasets.getString(), changes); + } + const xfaDataStream = new StringStream(xfaData); + xfaDataStream.dict = new Dict(xref); + xfaDataStream.dict.set("Type", Name.get("EmbeddedFile")); + changes.put(xfaDatasetsRef, { + data: xfaDataStream + }); +} +async function getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer) { + buffer.push("xref\n"); + const indexes = getIndexes(newRefs); + let indexesPosition = 0; + for (const { + ref, + data + } of newRefs) { + if (ref.num === indexes[indexesPosition]) { + buffer.push(`${indexes[indexesPosition]} ${indexes[indexesPosition + 1]}\n`); + indexesPosition += 2; + } + if (data !== null) { + buffer.push(`${baseOffset.toString().padStart(10, "0")} ${Math.min(ref.gen, 0xffff).toString().padStart(5, "0")} n\r\n`); + baseOffset += data.length; + } else { + buffer.push(`0000000000 ${Math.min(ref.gen + 1, 0xffff).toString().padStart(5, "0")} f\r\n`); + } + } + computeIDs(baseOffset, xrefInfo, newXref); + buffer.push("trailer\n"); + await writeDict(newXref, buffer); + buffer.push("\nstartxref\n", baseOffset.toString(), "\n%%EOF\n"); +} +function getIndexes(newRefs) { + const indexes = []; + for (const { + ref + } of newRefs) { + if (ref.num === indexes.at(-2) + indexes.at(-1)) { + indexes[indexes.length - 1] += 1; + } else { + indexes.push(ref.num, 1); + } + } + return indexes; +} +async function getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) { + const xrefTableData = []; + let maxOffset = 0; + let maxGen = 0; + for (const { + ref, + data + } of newRefs) { + let gen; + maxOffset = Math.max(maxOffset, baseOffset); + if (data !== null) { + gen = Math.min(ref.gen, 0xffff); + xrefTableData.push([1, baseOffset, gen]); + baseOffset += data.length; + } else { + gen = Math.min(ref.gen + 1, 0xffff); + xrefTableData.push([0, 0, gen]); + } + maxGen = Math.max(maxGen, gen); + } + newXref.set("Index", getIndexes(newRefs)); + const offsetSize = getSizeInBytes(maxOffset); + const maxGenSize = getSizeInBytes(maxGen); + const sizes = [1, offsetSize, maxGenSize]; + newXref.set("W", sizes); + computeIDs(baseOffset, xrefInfo, newXref); + const structSize = sizes.reduce((a, x) => a + x, 0); + const data = new Uint8Array(structSize * xrefTableData.length); + const stream = new Stream(data); + stream.dict = newXref; + let offset = 0; + for (const [type, objOffset, gen] of xrefTableData) { + offset = writeInt(type, sizes[0], offset, data); + offset = writeInt(objOffset, sizes[1], offset, data); + offset = writeInt(gen, sizes[2], offset, data); + } + await writeObject(xrefInfo.newRef, stream, buffer, {}); + buffer.push("startxref\n", baseOffset.toString(), "\n%%EOF\n"); +} +function computeIDs(baseOffset, xrefInfo, newXref) { + if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) { + const md5 = computeMD5(baseOffset, xrefInfo); + newXref.set("ID", [xrefInfo.fileIds[0], md5]); + } +} +function getTrailerDict(xrefInfo, changes, useXrefStream) { + const newXref = new Dict(null); + newXref.set("Prev", xrefInfo.startXRef); + const refForXrefTable = xrefInfo.newRef; + if (useXrefStream) { + changes.put(refForXrefTable, { + data: "" + }); + newXref.set("Size", refForXrefTable.num + 1); + newXref.set("Type", Name.get("XRef")); + } else { + newXref.set("Size", refForXrefTable.num); + } + if (xrefInfo.rootRef !== null) { + newXref.set("Root", xrefInfo.rootRef); + } + if (xrefInfo.infoRef !== null) { + newXref.set("Info", xrefInfo.infoRef); + } + if (xrefInfo.encryptRef !== null) { + newXref.set("Encrypt", xrefInfo.encryptRef); + } + return newXref; +} +async function writeChanges(changes, xref, buffer = []) { + const newRefs = []; + for (const [ref, { + data + }] of changes.items()) { + if (data === null || typeof data === "string") { + newRefs.push({ + ref, + data + }); + continue; + } + await writeObject(ref, data, buffer, xref); + newRefs.push({ + ref, + data: buffer.join("") + }); + buffer.length = 0; + } + return newRefs.sort((a, b) => a.ref.num - b.ref.num); +} +async function incrementalUpdate({ + originalData, + xrefInfo, + changes, + xref = null, + hasXfa = false, + xfaDatasetsRef = null, + hasXfaDatasetsEntry = false, + needAppearances, + acroFormRef = null, + acroForm = null, + xfaData = null, + useXrefStream = false +}) { + await updateAcroform({ + xref, + acroForm, + acroFormRef, + hasXfa, + hasXfaDatasetsEntry, + xfaDatasetsRef, + needAppearances, + changes + }); + if (hasXfa) { + updateXFA({ + xfaData, + xfaDatasetsRef, + changes, + xref + }); + } + const newXref = getTrailerDict(xrefInfo, changes, useXrefStream); + const buffer = []; + const newRefs = await writeChanges(changes, xref, buffer); + let baseOffset = originalData.length; + const lastByte = originalData.at(-1); + if (lastByte !== 0x0a && lastByte !== 0x0d) { + buffer.push("\n"); + baseOffset += 1; + } + for (const { + data + } of newRefs) { + if (data !== null) { + buffer.push(data); + } + } + await (useXrefStream ? getXRefStreamTable(xrefInfo, baseOffset, newRefs, newXref, buffer) : getXRefTable(xrefInfo, baseOffset, newRefs, newXref, buffer)); + const totalLength = buffer.reduce((a, str) => a + str.length, originalData.length); + const array = new Uint8Array(totalLength); + array.set(originalData); + let offset = originalData.length; + for (const str of buffer) { + writeString(str, offset, array); + offset += str.length; + } + return array; +} + +;// ./src/core/worker_stream.js + +class PDFWorkerStream { + constructor(msgHandler) { + this._msgHandler = msgHandler; + this._contentLength = null; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + getFullReader() { + assert(!this._fullRequestReader, "PDFWorkerStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +class PDFWorkerStreamReader { + constructor(msgHandler) { + this._msgHandler = msgHandler; + this.onProgress = null; + this._contentLength = null; + this._isRangeSupported = false; + this._isStreamingSupported = false; + const readableStream = this._msgHandler.sendWithStream("GetReader"); + this._reader = readableStream.getReader(); + this._headersReady = this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data => { + this._isStreamingSupported = data.isStreamingSupported; + this._isRangeSupported = data.isRangeSupported; + this._contentLength = data.contentLength; + }); + } + get headersReady() { + return this._headersReady; + } + get contentLength() { + return this._contentLength; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get isRangeSupported() { + return this._isRangeSupported; + } + async read() { + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value: undefined, + done: true + }; + } + return { + value: value.buffer, + done: false + }; + } + cancel(reason) { + this._reader.cancel(reason); + } +} +class PDFWorkerStreamRangeReader { + constructor(begin, end, msgHandler) { + this._msgHandler = msgHandler; + this.onProgress = null; + const readableStream = this._msgHandler.sendWithStream("GetRangeReader", { + begin, + end + }); + this._reader = readableStream.getReader(); + } + get isStreamingSupported() { + return false; + } + async read() { + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value: undefined, + done: true + }; + } + return { + value: value.buffer, + done: false + }; + } + cancel(reason) { + this._reader.cancel(reason); + } +} + +;// ./src/core/worker.js + + + + + + + + + + +class WorkerTask { + constructor(name) { + this.name = name; + this.terminated = false; + this._capability = Promise.withResolvers(); + } + get finished() { + return this._capability.promise; + } + finish() { + this._capability.resolve(); + } + terminate() { + this.terminated = true; + } + ensureNotTerminated() { + if (this.terminated) { + throw new Error("Worker task was terminated"); + } + } +} +class WorkerMessageHandler { + static { + if (typeof window === "undefined" && !isNodeJS && typeof self !== "undefined" && typeof self.postMessage === "function" && "onmessage" in self) { + this.initializeFromPort(self); + } + } + static setup(handler, port) { + let testMessageProcessed = false; + handler.on("test", data => { + if (testMessageProcessed) { + return; + } + testMessageProcessed = true; + handler.send("test", data instanceof Uint8Array); + }); + handler.on("configure", data => { + setVerbosityLevel(data.verbosity); + }); + handler.on("GetDocRequest", data => this.createDocumentHandler(data, port)); + } + static createDocumentHandler(docParams, port) { + let pdfManager; + let terminated = false; + let cancelXHRs = null; + const WorkerTasks = new Set(); + const verbosity = getVerbosityLevel(); + const { + docId, + apiVersion + } = docParams; + const workerVersion = "4.10.38"; + if (apiVersion !== workerVersion) { + throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); + } + const enumerableProperties = []; + for (const property in []) { + enumerableProperties.push(property); + } + if (enumerableProperties.length) { + throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s."); + } + const workerHandlerName = docId + "_worker"; + let handler = new MessageHandler(workerHandlerName, docId, port); + function ensureNotTerminated() { + if (terminated) { + throw new Error("Worker was terminated"); + } + } + function startWorkerTask(task) { + WorkerTasks.add(task); + } + function finishWorkerTask(task) { + task.finish(); + WorkerTasks.delete(task); + } + async function loadDocument(recoveryMode) { + await pdfManager.ensureDoc("checkHeader"); + await pdfManager.ensureDoc("parseStartXRef"); + await pdfManager.ensureDoc("parse", [recoveryMode]); + await pdfManager.ensureDoc("checkFirstPage", [recoveryMode]); + await pdfManager.ensureDoc("checkLastPage", [recoveryMode]); + const isPureXfa = await pdfManager.ensureDoc("isPureXfa"); + if (isPureXfa) { + const task = new WorkerTask("loadXfaFonts"); + startWorkerTask(task); + await Promise.all([pdfManager.loadXfaFonts(handler, task).catch(reason => {}).then(() => finishWorkerTask(task)), pdfManager.loadXfaImages()]); + } + const [numPages, fingerprints] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprints")]); + const htmlForXfa = isPureXfa ? await pdfManager.ensureDoc("htmlForXfa") : null; + return { + numPages, + fingerprints, + htmlForXfa + }; + } + async function getPdfManager({ + data, + password, + disableAutoFetch, + rangeChunkSize, + length, + docBaseUrl, + enableXfa, + evaluatorOptions + }) { + const pdfManagerArgs = { + source: null, + disableAutoFetch, + docBaseUrl, + docId, + enableXfa, + evaluatorOptions, + handler, + length, + password, + rangeChunkSize + }; + if (data) { + pdfManagerArgs.source = data; + return new LocalPdfManager(pdfManagerArgs); + } + const pdfStream = new PDFWorkerStream(handler), + fullRequest = pdfStream.getFullReader(); + const pdfManagerCapability = Promise.withResolvers(); + let newPdfManager, + cachedChunks = [], + loaded = 0; + fullRequest.headersReady.then(function () { + if (!fullRequest.isRangeSupported) { + return; + } + pdfManagerArgs.source = pdfStream; + pdfManagerArgs.length = fullRequest.contentLength; + pdfManagerArgs.disableAutoFetch ||= fullRequest.isStreamingSupported; + newPdfManager = new NetworkPdfManager(pdfManagerArgs); + for (const chunk of cachedChunks) { + newPdfManager.sendProgressiveData(chunk); + } + cachedChunks = []; + pdfManagerCapability.resolve(newPdfManager); + cancelXHRs = null; + }).catch(function (reason) { + pdfManagerCapability.reject(reason); + cancelXHRs = null; + }); + new Promise(function (resolve, reject) { + const readChunk = function ({ + value, + done + }) { + try { + ensureNotTerminated(); + if (done) { + if (!newPdfManager) { + const pdfFile = arrayBuffersToBytes(cachedChunks); + cachedChunks = []; + if (length && pdfFile.length !== length) { + warn("reported HTTP length is different from actual"); + } + pdfManagerArgs.source = pdfFile; + newPdfManager = new LocalPdfManager(pdfManagerArgs); + pdfManagerCapability.resolve(newPdfManager); + } + cancelXHRs = null; + return; + } + loaded += value.byteLength; + if (!fullRequest.isStreamingSupported) { + handler.send("DocProgress", { + loaded, + total: Math.max(loaded, fullRequest.contentLength || 0) + }); + } + if (newPdfManager) { + newPdfManager.sendProgressiveData(value); + } else { + cachedChunks.push(value); + } + fullRequest.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + fullRequest.read().then(readChunk, reject); + }).catch(function (e) { + pdfManagerCapability.reject(e); + cancelXHRs = null; + }); + cancelXHRs = reason => { + pdfStream.cancelAllRequests(reason); + }; + return pdfManagerCapability.promise; + } + function setupDoc(data) { + function onSuccess(doc) { + ensureNotTerminated(); + handler.send("GetDoc", { + pdfInfo: doc + }); + } + function onFailure(ex) { + ensureNotTerminated(); + if (ex instanceof PasswordException) { + const task = new WorkerTask(`PasswordException: response ${ex.code}`); + startWorkerTask(task); + handler.sendWithPromise("PasswordRequest", ex).then(function ({ + password + }) { + finishWorkerTask(task); + pdfManager.updatePassword(password); + pdfManagerReady(); + }).catch(function () { + finishWorkerTask(task); + handler.send("DocException", ex); + }); + } else { + handler.send("DocException", wrapReason(ex)); + } + } + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(false).then(onSuccess, function (reason) { + ensureNotTerminated(); + if (!(reason instanceof XRefParseException)) { + onFailure(reason); + return; + } + pdfManager.requestLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(true).then(onSuccess, onFailure); + }); + }); + } + ensureNotTerminated(); + getPdfManager(data).then(function (newPdfManager) { + if (terminated) { + newPdfManager.terminate(new AbortException("Worker was terminated.")); + throw new Error("Worker was terminated"); + } + pdfManager = newPdfManager; + pdfManager.requestLoadedStream(true).then(stream => { + handler.send("DataLoaded", { + length: stream.bytes.byteLength + }); + }); + }).then(pdfManagerReady, onFailure); + } + handler.on("GetPage", function (data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) { + return { + rotate, + ref, + refStr: ref?.toString() ?? null, + userUnit, + view + }; + }); + }); + }); + handler.on("GetPageIndex", function (data) { + const pageRef = Ref.get(data.num, data.gen); + return pdfManager.ensureCatalog("getPageIndex", [pageRef]); + }); + handler.on("GetDestinations", function (data) { + return pdfManager.ensureCatalog("destinations"); + }); + handler.on("GetDestination", function (data) { + return pdfManager.ensureCatalog("getDestination", [data.id]); + }); + handler.on("GetPageLabels", function (data) { + return pdfManager.ensureCatalog("pageLabels"); + }); + handler.on("GetPageLayout", function (data) { + return pdfManager.ensureCatalog("pageLayout"); + }); + handler.on("GetPageMode", function (data) { + return pdfManager.ensureCatalog("pageMode"); + }); + handler.on("GetViewerPreferences", function (data) { + return pdfManager.ensureCatalog("viewerPreferences"); + }); + handler.on("GetOpenAction", function (data) { + return pdfManager.ensureCatalog("openAction"); + }); + handler.on("GetAttachments", function (data) { + return pdfManager.ensureCatalog("attachments"); + }); + handler.on("GetDocJSActions", function (data) { + return pdfManager.ensureCatalog("jsActions"); + }); + handler.on("GetPageJSActions", function ({ + pageIndex + }) { + return pdfManager.getPage(pageIndex).then(function (page) { + return pdfManager.ensure(page, "jsActions"); + }); + }); + handler.on("GetOutline", function (data) { + return pdfManager.ensureCatalog("documentOutline"); + }); + handler.on("GetOptionalContentConfig", function (data) { + return pdfManager.ensureCatalog("optionalContentConfig"); + }); + handler.on("GetPermissions", function (data) { + return pdfManager.ensureCatalog("permissions"); + }); + handler.on("GetMetadata", function (data) { + return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]); + }); + handler.on("GetMarkInfo", function (data) { + return pdfManager.ensureCatalog("markInfo"); + }); + handler.on("GetData", function (data) { + return pdfManager.requestLoadedStream().then(function (stream) { + return stream.bytes; + }); + }); + handler.on("GetAnnotations", function ({ + pageIndex, + intent + }) { + return pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`); + startWorkerTask(task); + return page.getAnnotationsData(handler, task, intent).then(data => { + finishWorkerTask(task); + return data; + }, reason => { + finishWorkerTask(task); + throw reason; + }); + }); + }); + handler.on("GetFieldObjects", function (data) { + return pdfManager.ensureDoc("fieldObjects").then(fieldObjects => fieldObjects?.allFields || null); + }); + handler.on("HasJSActions", function (data) { + return pdfManager.ensureDoc("hasJSActions"); + }); + handler.on("GetCalculationOrderIds", function (data) { + return pdfManager.ensureDoc("calculationOrderIds"); + }); + handler.on("SaveDocument", async function ({ + isPureXfa, + numPages, + annotationStorage, + filename + }) { + const globalPromises = [pdfManager.requestLoadedStream(), pdfManager.ensureCatalog("acroForm"), pdfManager.ensureCatalog("acroFormRef"), pdfManager.ensureDoc("startXRef"), pdfManager.ensureDoc("xref"), pdfManager.ensureDoc("linearization"), pdfManager.ensureCatalog("structTreeRoot")]; + const changes = new RefSetCache(); + const promises = []; + const newAnnotationsByPage = !isPureXfa ? getNewAnnotationsMap(annotationStorage) : null; + const [stream, acroForm, acroFormRef, startXRef, xref, linearization, _structTreeRoot] = await Promise.all(globalPromises); + const catalogRef = xref.trailer.getRaw("Root") || null; + let structTreeRoot; + if (newAnnotationsByPage) { + if (!_structTreeRoot) { + if (await StructTreeRoot.canCreateStructureTree({ + catalogRef, + pdfManager, + newAnnotationsByPage + })) { + structTreeRoot = null; + } + } else if (await _structTreeRoot.canUpdateStructTree({ + pdfManager, + xref, + newAnnotationsByPage + })) { + structTreeRoot = _structTreeRoot; + } + const imagePromises = AnnotationFactory.generateImages(annotationStorage.values(), xref, pdfManager.evaluatorOptions.isOffscreenCanvasSupported); + const newAnnotationPromises = structTreeRoot === undefined ? promises : []; + for (const [pageIndex, annotations] of newAnnotationsByPage) { + newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page => { + const task = new WorkerTask(`Save (editor): page ${pageIndex}`); + startWorkerTask(task); + return page.saveNewAnnotations(handler, task, annotations, imagePromises, changes).finally(function () { + finishWorkerTask(task); + }); + })); + } + if (structTreeRoot === null) { + promises.push(Promise.all(newAnnotationPromises).then(async () => { + await StructTreeRoot.createStructureTree({ + newAnnotationsByPage, + xref, + catalogRef, + pdfManager, + changes + }); + })); + } else if (structTreeRoot) { + promises.push(Promise.all(newAnnotationPromises).then(async () => { + await structTreeRoot.updateStructureTree({ + newAnnotationsByPage, + pdfManager, + changes + }); + })); + } + } + if (isPureXfa) { + promises.push(pdfManager.serializeXfaData(annotationStorage)); + } else { + for (let pageIndex = 0; pageIndex < numPages; pageIndex++) { + promises.push(pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`Save: page ${pageIndex}`); + startWorkerTask(task); + return page.save(handler, task, annotationStorage, changes).finally(function () { + finishWorkerTask(task); + }); + })); + } + } + const refs = await Promise.all(promises); + let xfaData = null; + if (isPureXfa) { + xfaData = refs[0]; + if (!xfaData) { + return stream.bytes; + } + } else if (changes.size === 0) { + return stream.bytes; + } + const needAppearances = acroFormRef && acroForm instanceof Dict && changes.values().some(ref => ref.needAppearances); + const xfa = acroForm instanceof Dict && acroForm.get("XFA") || null; + let xfaDatasetsRef = null; + let hasXfaDatasetsEntry = false; + if (Array.isArray(xfa)) { + for (let i = 0, ii = xfa.length; i < ii; i += 2) { + if (xfa[i] === "datasets") { + xfaDatasetsRef = xfa[i + 1]; + hasXfaDatasetsEntry = true; + } + } + if (xfaDatasetsRef === null) { + xfaDatasetsRef = xref.getNewTemporaryRef(); + } + } else if (xfa) { + warn("Unsupported XFA type."); + } + let newXrefInfo = Object.create(null); + if (xref.trailer) { + const infoObj = Object.create(null); + const xrefInfo = xref.trailer.get("Info") || null; + if (xrefInfo instanceof Dict) { + for (const [key, value] of xrefInfo) { + if (typeof value === "string") { + infoObj[key] = stringToPDFString(value); + } + } + } + newXrefInfo = { + rootRef: catalogRef, + encryptRef: xref.trailer.getRaw("Encrypt") || null, + newRef: xref.getNewTemporaryRef(), + infoRef: xref.trailer.getRaw("Info") || null, + info: infoObj, + fileIds: xref.trailer.get("ID") || null, + startXRef: linearization ? startXRef : xref.lastXRefStreamPos ?? startXRef, + filename + }; + } + return incrementalUpdate({ + originalData: stream.bytes, + xrefInfo: newXrefInfo, + changes, + xref, + hasXfa: !!xfa, + xfaDatasetsRef, + hasXfaDatasetsEntry, + needAppearances, + acroFormRef, + acroForm, + xfaData, + useXrefStream: isDict(xref.topDict, "XRef") + }).finally(() => { + xref.resetNewTemporaryRef(); + }); + }); + handler.on("GetOperatorList", function (data, sink) { + const pageIndex = data.pageIndex; + pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`); + startWorkerTask(task); + const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0; + page.getOperatorList({ + handler, + sink, + task, + intent: data.intent, + cacheKey: data.cacheKey, + annotationStorage: data.annotationStorage, + modifiedIds: data.modifiedIds + }).then(function (operatorListInfo) { + finishWorkerTask(task); + if (start) { + info(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`); + } + sink.close(); + }, function (reason) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + sink.error(reason); + }); + }); + }); + handler.on("GetTextContent", function (data, sink) { + const { + pageIndex, + includeMarkedContent, + disableNormalization + } = data; + pdfManager.getPage(pageIndex).then(function (page) { + const task = new WorkerTask("GetTextContent: page " + pageIndex); + startWorkerTask(task); + const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0; + page.extractTextContent({ + handler, + task, + sink, + includeMarkedContent, + disableNormalization + }).then(function () { + finishWorkerTask(task); + if (start) { + info(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`); + } + sink.close(); + }, function (reason) { + finishWorkerTask(task); + if (task.terminated) { + return; + } + sink.error(reason); + }); + }); + }); + handler.on("GetStructTree", function (data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + return pdfManager.ensure(page, "getStructTree"); + }); + }); + handler.on("FontFallback", function (data) { + return pdfManager.fontFallback(data.id, handler); + }); + handler.on("Cleanup", function (data) { + return pdfManager.cleanup(true); + }); + handler.on("Terminate", function (data) { + terminated = true; + const waitOn = []; + if (pdfManager) { + pdfManager.terminate(new AbortException("Worker was terminated.")); + const cleanupPromise = pdfManager.cleanup(); + waitOn.push(cleanupPromise); + pdfManager = null; + } else { + clearGlobalCaches(); + } + cancelXHRs?.(new AbortException("Worker was terminated.")); + for (const task of WorkerTasks) { + waitOn.push(task.finished); + task.terminate(); + } + return Promise.all(waitOn).then(function () { + handler.destroy(); + handler = null; + }); + }); + handler.on("Ready", function (data) { + setupDoc(docParams); + docParams = null; + }); + return workerHandlerName; + } + static initializeFromPort(port) { + const handler = new MessageHandler("worker", "main", port); + this.setup(handler, port); + handler.send("ready", null); + } +} + +;// ./src/pdf.worker.js + +const pdfjsVersion = "4.10.38"; +const pdfjsBuild = "f9bea397f"; + +var __webpack_exports__WorkerMessageHandler = __webpack_exports__.WorkerMessageHandler; +export { __webpack_exports__WorkerMessageHandler as WorkerMessageHandler }; + +//# sourceMappingURL=pdf.worker.mjs.map \ No newline at end of file