From 981f4fdaf96b200c327c11cc1e41ecb97a71270b Mon Sep 17 00:00:00 2001 From: adonis Date: Thu, 24 Sep 2026 20:16:16 +0330 Subject: [PATCH] build: refresh admin production assets Publish the verified admin build output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dist/assets/ActiveSwitchCell-DIzTn08M.js | 1 - dist/assets/ActiveSwitchCell-DJZQHZ-8.js | 1 + dist/assets/AdminCurrencyInput-D6MsBhvR.js | 1 + dist/assets/AdminCurrencyInput-DxQX_Gwe.js | 1 - dist/assets/AdminImagePicker-C0OGC-bB.js | 1 - dist/assets/AdminImagePicker-C4toq7MG.js | 1 + dist/assets/AdminPageSkeleton-BJpm6oxf.js | 1 - dist/assets/AdminPageSkeleton-CTgUqaAu.js | 1 + dist/assets/AdminSelect-9UfEJQzN.js | 1 + dist/assets/AdminSelect-BeLNl2Qz.js | 1 - dist/assets/BankAccountsView-33uUkn7P.js | 1 - dist/assets/BankAccountsView-CjjgU3ea.js | 1 + dist/assets/BannersView-CZaBcIQn.js | 1 - dist/assets/BannersView-KHMLub3-.js | 1 + dist/assets/BaseEmptyState-BmO9aDcK.js | 1 + dist/assets/BaseEmptyState-DGu6Pfui.js | 1 - dist/assets/BaseSwitch-TV5Yvtf7.js | 1 + dist/assets/BaseSwitch-dp2xMemS.js | 1 - dist/assets/BrandsView-CPBAGKxa.js | 1 - dist/assets/BrandsView-Il4Q4zqB.js | 1 + dist/assets/CashPaymentsView-BmPMXCl-.js | 1 + dist/assets/CashPaymentsView-C7RaPyP8.js | 1 - dist/assets/CatalogRequestsView-DQu3_M_v.js | 1 + dist/assets/CatalogRequestsView-DSpZCB11.js | 1 - dist/assets/CatalogsView-BqUCTvB5.js | 1 - dist/assets/CatalogsView-DJJrDHxo.js | 1 + dist/assets/CategoriesView-DAT9P8-Q.js | 1 + dist/assets/CategoriesView-jQSu6NG7.js | 1 - dist/assets/CheckManagementView-D9Dy0r7I.js | 1 + dist/assets/CheckManagementView-DFrKKIXW.js | 1 - dist/assets/ChecksListView-BQ_mFtUm.js | 1 - dist/assets/ChecksListView-DgtZLWw5.js | 1 + dist/assets/CompaniesView-C28l_bkY.js | 1 + dist/assets/CompaniesView-CFgjGQke.js | 1 - dist/assets/CustomersView-2wzqQ3p0.js | 1 - dist/assets/CustomersView-D2DfLX0j.js | 1 + dist/assets/DashboardView-BXkuwSW-.js | 1 - dist/assets/DashboardView-cyaZFrOQ.js | 1 + dist/assets/LevelsView-Cos5Q_ra.js | 3 + dist/assets/LevelsView-rP_u9G1_.js | 3 - dist/assets/LoginView-BIWJ8gRk.css | 1 - dist/assets/LoginView-D1CCMfxr.js | 1 - dist/assets/LoginView-IFH_z0sG.css | 1 + dist/assets/LoginView-w-SE2utd.js | 1 + dist/assets/NotFoundView-BAomeX7E.js | 1 + dist/assets/NotFoundView-CY2m4474.css | 1 + dist/assets/OrderPricingView-CvBkBKTY.js | 1 - dist/assets/OrderPricingView-vS7IKrtc.js | 1 + dist/assets/OrdersView-D-3A1wX9.js | 1 - dist/assets/OrdersView-DGNYhZg3.js | 1 + dist/assets/ProductsView-NLVncfjZ.js | 1 + dist/assets/ProductsView-V-E7JmoO.js | 1 - dist/assets/ReportsView-Caau4ET1.js | 1 - dist/assets/ReportsView-uTGceQoW.js | 1 + dist/assets/SettingsView-BSpASBj1.js | 1 + dist/assets/SettingsView-DUUxvo0M.js | 1 - dist/assets/ShippingView-Ck9kASgn.js | 1 + dist/assets/ShippingView-XJtm6EAp.js | 1 - dist/assets/StatusBadge-Cg2zTE2k.js | 1 + dist/assets/StatusBadge-D3ThrLrU.js | 1 - dist/assets/StockAlertsView-B7WDBhjL.js | 1 + dist/assets/StockAlertsView-by4e-dTJ.js | 1 - dist/assets/SuggestionsView-DKPC0xly.js | 1 - dist/assets/SuggestionsView-SvmEopB3.js | 1 + dist/assets/UsersView-DIwx8h0p.js | 1 - dist/assets/UsersView-OSVbK-od.js | 1 + .../_plugin-vue_export-helper-OaxA6A2f.js | 1 + dist/assets/index-B2VD3zy8.js | 382 ------------------ dist/assets/index-CXa4EMLW.js | 382 ++++++++++++++++++ dist/index.html | 3 +- 70 files changed, 421 insertions(+), 417 deletions(-) delete mode 100644 dist/assets/ActiveSwitchCell-DIzTn08M.js create mode 100644 dist/assets/ActiveSwitchCell-DJZQHZ-8.js create mode 100644 dist/assets/AdminCurrencyInput-D6MsBhvR.js delete mode 100644 dist/assets/AdminCurrencyInput-DxQX_Gwe.js delete mode 100644 dist/assets/AdminImagePicker-C0OGC-bB.js create mode 100644 dist/assets/AdminImagePicker-C4toq7MG.js delete mode 100644 dist/assets/AdminPageSkeleton-BJpm6oxf.js create mode 100644 dist/assets/AdminPageSkeleton-CTgUqaAu.js create mode 100644 dist/assets/AdminSelect-9UfEJQzN.js delete mode 100644 dist/assets/AdminSelect-BeLNl2Qz.js delete mode 100644 dist/assets/BankAccountsView-33uUkn7P.js create mode 100644 dist/assets/BankAccountsView-CjjgU3ea.js delete mode 100644 dist/assets/BannersView-CZaBcIQn.js create mode 100644 dist/assets/BannersView-KHMLub3-.js create mode 100644 dist/assets/BaseEmptyState-BmO9aDcK.js delete mode 100644 dist/assets/BaseEmptyState-DGu6Pfui.js create mode 100644 dist/assets/BaseSwitch-TV5Yvtf7.js delete mode 100644 dist/assets/BaseSwitch-dp2xMemS.js delete mode 100644 dist/assets/BrandsView-CPBAGKxa.js create mode 100644 dist/assets/BrandsView-Il4Q4zqB.js create mode 100644 dist/assets/CashPaymentsView-BmPMXCl-.js delete mode 100644 dist/assets/CashPaymentsView-C7RaPyP8.js create mode 100644 dist/assets/CatalogRequestsView-DQu3_M_v.js delete mode 100644 dist/assets/CatalogRequestsView-DSpZCB11.js delete mode 100644 dist/assets/CatalogsView-BqUCTvB5.js create mode 100644 dist/assets/CatalogsView-DJJrDHxo.js create mode 100644 dist/assets/CategoriesView-DAT9P8-Q.js delete mode 100644 dist/assets/CategoriesView-jQSu6NG7.js create mode 100644 dist/assets/CheckManagementView-D9Dy0r7I.js delete mode 100644 dist/assets/CheckManagementView-DFrKKIXW.js delete mode 100644 dist/assets/ChecksListView-BQ_mFtUm.js create mode 100644 dist/assets/ChecksListView-DgtZLWw5.js create mode 100644 dist/assets/CompaniesView-C28l_bkY.js delete mode 100644 dist/assets/CompaniesView-CFgjGQke.js delete mode 100644 dist/assets/CustomersView-2wzqQ3p0.js create mode 100644 dist/assets/CustomersView-D2DfLX0j.js delete mode 100644 dist/assets/DashboardView-BXkuwSW-.js create mode 100644 dist/assets/DashboardView-cyaZFrOQ.js create mode 100644 dist/assets/LevelsView-Cos5Q_ra.js delete mode 100644 dist/assets/LevelsView-rP_u9G1_.js delete mode 100644 dist/assets/LoginView-BIWJ8gRk.css delete mode 100644 dist/assets/LoginView-D1CCMfxr.js create mode 100644 dist/assets/LoginView-IFH_z0sG.css create mode 100644 dist/assets/LoginView-w-SE2utd.js create mode 100644 dist/assets/NotFoundView-BAomeX7E.js create mode 100644 dist/assets/NotFoundView-CY2m4474.css delete mode 100644 dist/assets/OrderPricingView-CvBkBKTY.js create mode 100644 dist/assets/OrderPricingView-vS7IKrtc.js delete mode 100644 dist/assets/OrdersView-D-3A1wX9.js create mode 100644 dist/assets/OrdersView-DGNYhZg3.js create mode 100644 dist/assets/ProductsView-NLVncfjZ.js delete mode 100644 dist/assets/ProductsView-V-E7JmoO.js delete mode 100644 dist/assets/ReportsView-Caau4ET1.js create mode 100644 dist/assets/ReportsView-uTGceQoW.js create mode 100644 dist/assets/SettingsView-BSpASBj1.js delete mode 100644 dist/assets/SettingsView-DUUxvo0M.js create mode 100644 dist/assets/ShippingView-Ck9kASgn.js delete mode 100644 dist/assets/ShippingView-XJtm6EAp.js create mode 100644 dist/assets/StatusBadge-Cg2zTE2k.js delete mode 100644 dist/assets/StatusBadge-D3ThrLrU.js create mode 100644 dist/assets/StockAlertsView-B7WDBhjL.js delete mode 100644 dist/assets/StockAlertsView-by4e-dTJ.js delete mode 100644 dist/assets/SuggestionsView-DKPC0xly.js create mode 100644 dist/assets/SuggestionsView-SvmEopB3.js delete mode 100644 dist/assets/UsersView-DIwx8h0p.js create mode 100644 dist/assets/UsersView-OSVbK-od.js create mode 100644 dist/assets/_plugin-vue_export-helper-OaxA6A2f.js delete mode 100644 dist/assets/index-B2VD3zy8.js create mode 100644 dist/assets/index-CXa4EMLW.js diff --git a/dist/assets/ActiveSwitchCell-DIzTn08M.js b/dist/assets/ActiveSwitchCell-DIzTn08M.js deleted file mode 100644 index 0ee36db..0000000 --- a/dist/assets/ActiveSwitchCell-DIzTn08M.js +++ /dev/null @@ -1 +0,0 @@ -import{L as e,Q as t,bt as n,it as r,lt as i,yt as a,z as o}from"./index-B2VD3zy8.js";import{t as s}from"./BaseSwitch-dp2xMemS.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let t=a(null),n=a(null),r=o();async function i(i,a){if(t.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;t.value=i,n.value=null;let s=a;try{return await e.onPersist(o),r.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return n.value=i,r.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{t.value=null}}function s(e){return t.value===e}function c(e){return n.value===e}return{toggle:i,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(r,{emit:a}){let o=r,u=a,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{o.persist?await o.persist(o.id,e):await c()},successMessage:e=>e?`${o.entityType??`مورد`} «${o.entityName}» فعال شد.`:`${o.entityType??`مورد`} «${o.entityName}» غیرفعال شد.`});async function m(t){if(t===o.modelValue)return;let n=o.entityType??`مورد`;if(!await e({title:t?`فعال‌سازی ${n}`:`غیرفعال‌سازی ${n}`,message:t?`آیا از فعال کردن «${o.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${o.entityName}» مطمئن هستید؟`,tone:t?`primary`:`danger`,confirmLabel:t?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let r=await d(o.id,o.modelValue);u(`update:modelValue`,r)}return(e,a)=>(i(),t(s,{"model-value":r.modelValue,loading:n(f)(r.id),error:n(p)(r.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; \ No newline at end of file diff --git a/dist/assets/ActiveSwitchCell-DJZQHZ-8.js b/dist/assets/ActiveSwitchCell-DJZQHZ-8.js new file mode 100644 index 0000000..b1965db --- /dev/null +++ b/dist/assets/ActiveSwitchCell-DJZQHZ-8.js @@ -0,0 +1 @@ +import{O as e,Z as t,at as n,g as r,l as i}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{L as a,z as o}from"./index-CXa4EMLW.js";import{t as s}from"./BaseSwitch-TV5Yvtf7.js";function c(e=480){return new Promise(t=>{window.setTimeout(t,e)})}function l(e){let n=t(null),r=t(null),i=o();async function a(t,a){if(n.value)return a;let o=!a;if(!o&&e.confirmOff&&!await e.confirmOff())return a;n.value=t,r.value=null;let s=a;try{return await e.onPersist(o),i.success(e.successMessage?.(o)??(o?`وضعیت فعال شد.`:`وضعیت غیرفعال شد.`)),o}catch{return r.value=t,i.error(e.errorMessage??`به‌روزرسانی وضعیت انجام نشد.`),s}finally{n.value=null}}function s(e){return n.value===e}function c(e){return r.value===e}return{toggle:a,isLoading:s,hasError:c}}var u=r({__name:`ActiveSwitchCell`,props:{id:{},modelValue:{type:Boolean},entityName:{},entityType:{},persist:{type:Function}},emits:[`update:modelValue`],setup(t,{emit:r}){let o=t,u=r,{toggle:d,isLoading:f,hasError:p}=l({onPersist:async e=>{o.persist?await o.persist(o.id,e):await c()},successMessage:e=>e?`${o.entityType??`مورد`} «${o.entityName}» فعال شد.`:`${o.entityType??`مورد`} «${o.entityName}» غیرفعال شد.`});async function m(e){if(e===o.modelValue)return;let t=o.entityType??`مورد`;if(!await a({title:e?`فعال‌سازی ${t}`:`غیرفعال‌سازی ${t}`,message:e?`آیا از فعال کردن «${o.entityName}» مطمئن هستید؟`:`آیا از غیرفعال کردن «${o.entityName}» مطمئن هستید؟`,tone:e?`primary`:`danger`,confirmLabel:e?`فعال کردن`:`غیرفعال کردن`,cancelLabel:`انصراف`}))return;let n=await d(o.id,o.modelValue);u(`update:modelValue`,n)}return(r,a)=>(e(),i(s,{"model-value":t.modelValue,loading:n(f)(t.id),error:n(p)(t.id),"onUpdate:modelValue":m},null,8,[`model-value`,`loading`,`error`]))}});export{u as t}; \ No newline at end of file diff --git a/dist/assets/AdminCurrencyInput-D6MsBhvR.js b/dist/assets/AdminCurrencyInput-D6MsBhvR.js new file mode 100644 index 0000000..8e42bd3 --- /dev/null +++ b/dist/assets/AdminCurrencyInput-D6MsBhvR.js @@ -0,0 +1 @@ +import{O as e,Tt as t,d as n,g as r,s as i,t as a}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{o,t as s}from"./index-CXa4EMLW.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=a(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(r,{emit:a}){let l=r,u=a,d=i(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:o(l.modelValue));function f(e){let t=e.target,n=s(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=o(r)}return(i,a)=>(e(),n(`input`,{id:r.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:t([`admin-currency-input`,r.inputClass]),value:d.value,placeholder:r.placeholder,disabled:r.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t}; \ No newline at end of file diff --git a/dist/assets/AdminCurrencyInput-DxQX_Gwe.js b/dist/assets/AdminCurrencyInput-DxQX_Gwe.js deleted file mode 100644 index 5ae7f52..0000000 --- a/dist/assets/AdminCurrencyInput-DxQX_Gwe.js +++ /dev/null @@ -1 +0,0 @@ -import{V as e,X as t,et as n,it as r,lt as i,o as a,t as o,xt as s}from"./index-B2VD3zy8.js";var c=[`id`,`value`,`placeholder`,`disabled`],l=e(r({__name:`AdminCurrencyInput`,props:{modelValue:{default:null},placeholder:{default:``},disabled:{type:Boolean,default:!1},id:{},inputClass:{default:`admin-input`},allowEmpty:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(e,{emit:r}){let l=e,u=r,d=t(()=>l.modelValue==null||!Number.isFinite(l.modelValue)?``:a(l.modelValue));function f(e){let t=e.target,n=o(t.value);if(!n){u(`update:modelValue`,l.allowEmpty?null:0),t.value=``;return}let r=Number(n);u(`update:modelValue`,r),t.value=a(r)}return(t,r)=>(i(),n(`input`,{id:e.id,type:`text`,inputmode:`numeric`,dir:`ltr`,class:s([`admin-currency-input`,e.inputClass]),value:d.value,placeholder:e.placeholder,disabled:e.disabled,onInput:f},null,42,c))}}),[[`__scopeId`,`data-v-56435fc8`]]);export{l as t}; \ No newline at end of file diff --git a/dist/assets/AdminImagePicker-C0OGC-bB.js b/dist/assets/AdminImagePicker-C0OGC-bB.js deleted file mode 100644 index b33d118..0000000 --- a/dist/assets/AdminImagePicker-C0OGC-bB.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,St as n,V as r,Z as i,bt as a,et as o,it as s,lt as c,xt as l,yt as u}from"./index-B2VD3zy8.js";var d=960,f=.82;function p(e){let t=e.trim();return t?`url("${t.replace(/"/g,`\\"`)}")`:``}async function m(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return g(await h(e))}function h(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function g(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,d/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,f))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var _={class:`image-picker`},v={key:0,class:`image-picker__label`},y={class:`image-picker__row`},b={class:`image-picker__actions`},x=[`disabled`],S=[`disabled`],C={key:1,class:`image-picker__error`},w={key:2,class:`image-picker__ok`},T=r(s({__name:`AdminImagePicker`,props:{modelValue:{},label:{}},emits:[`update:modelValue`],setup(r,{emit:s}){let d=r,f=s,h=u(null),g=u(!1),T=u(``),E=u(!1);function D(){h.value?.click()}async function O(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){g.value=!0,T.value=``,E.value=!1;try{f(`update:modelValue`,await m(n)),E.value=!0}catch(e){T.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{g.value=!1}}}function k(){f(`update:modelValue`,null)}return(s,u)=>(c(),o(`div`,_,[r.label?(c(),o(`p`,v,t(r.label),1)):e(``,!0),i(`div`,y,[i(`div`,{class:l([`image-picker__preview`,{"image-picker__preview--empty":!d.modelValue}]),style:n(d.modelValue?{backgroundImage:a(p)(d.modelValue)}:void 0)},null,6),i(`div`,b,[i(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:D},t(d.modelValue?`تغییر تصویر`:`افزودن تصویر`),9,x),d.modelValue?(c(),o(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:k},` حذف `,8,S)):e(``,!0),T.value?(c(),o(`p`,C,t(T.value),1)):E.value?(c(),o(`p`,w,`تصویر انتخاب شد — برای ثبت نهایی «ذخیره» را بزنید.`)):e(``,!0)])]),i(`input`,{ref_key:`inputRef`,ref:h,type:`file`,accept:`image/*`,class:`image-picker__file`,onChange:O},null,544)]))}}),[[`__scopeId`,`data-v-05db5be7`]]);export{m as n,p as r,T as t}; \ No newline at end of file diff --git a/dist/assets/AdminImagePicker-C4toq7MG.js b/dist/assets/AdminImagePicker-C4toq7MG.js new file mode 100644 index 0000000..3e80fec --- /dev/null +++ b/dist/assets/AdminImagePicker-C4toq7MG.js @@ -0,0 +1 @@ +import{Dt as e,O as t,Ot as n,Tt as r,Z as i,at as a,c as o,d as s,g as c,t as l,u}from"./_plugin-vue_export-helper-OaxA6A2f.js";var d=960,f=.82;function p(e){let t=e.trim();return t?`url("${t.replace(/"/g,`\\"`)}")`:``}async function m(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return g(await h(e))}function h(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function g(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,d/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,f))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var _={class:`image-picker`},v={key:0,class:`image-picker__label`},y={class:`image-picker__row`},b={class:`image-picker__actions`},x=[`disabled`],S=[`disabled`],C={key:1,class:`image-picker__error`},w={key:2,class:`image-picker__ok`},T=l(c({__name:`AdminImagePicker`,props:{modelValue:{},label:{}},emits:[`update:modelValue`],setup(c,{emit:l}){let d=c,f=l,h=i(null),g=i(!1),T=i(``),E=i(!1);function D(){h.value?.click()}async function O(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){g.value=!0,T.value=``,E.value=!1;try{f(`update:modelValue`,await m(n)),E.value=!0}catch(e){T.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{g.value=!1}}}function k(){f(`update:modelValue`,null)}return(i,l)=>(t(),s(`div`,_,[c.label?(t(),s(`p`,v,n(c.label),1)):u(``,!0),o(`div`,y,[o(`div`,{class:r([`image-picker__preview`,{"image-picker__preview--empty":!d.modelValue}]),style:e(d.modelValue?{backgroundImage:a(p)(d.modelValue)}:void 0)},null,6),o(`div`,b,[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:D},n(d.modelValue?`تغییر تصویر`:`افزودن تصویر`),9,x),d.modelValue?(t(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,disabled:g.value,onClick:k},` حذف `,8,S)):u(``,!0),T.value?(t(),s(`p`,C,n(T.value),1)):E.value?(t(),s(`p`,w,`تصویر انتخاب شد — برای ثبت نهایی «ذخیره» را بزنید.`)):u(``,!0)])]),o(`input`,{ref_key:`inputRef`,ref:h,type:`file`,accept:`image/*`,class:`image-picker__file`,onChange:O},null,544)]))}}),[[`__scopeId`,`data-v-05db5be7`]]);export{m as n,p as r,T as t}; \ No newline at end of file diff --git a/dist/assets/AdminPageSkeleton-BJpm6oxf.js b/dist/assets/AdminPageSkeleton-BJpm6oxf.js deleted file mode 100644 index f2eee0f..0000000 --- a/dist/assets/AdminPageSkeleton-BJpm6oxf.js +++ /dev/null @@ -1 +0,0 @@ -import{J as e,V as t,Z as n,dt as r,et as i,it as a,lt as o,tt as s}from"./index-B2VD3zy8.js";var c={class:`admin-page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},l={class:`admin-card admin-page-skeleton__table`},u={key:1,class:`admin-card admin-page-skeleton__form`},d={key:2,class:`admin-card admin-page-skeleton__detail`},f={key:3,class:`admin-page-skeleton__cards`},p=t(a({__name:`AdminPageSkeleton`,props:{variant:{default:`cards`},rows:{default:5}},setup(t){return(a,p)=>(o(),i(`div`,c,[t.variant===`table`?(o(),i(e,{key:0},[p[1]||=n(`div`,{class:`admin-page-skeleton__toolbar`},[n(`span`,{class:`admin-skeleton admin-page-skeleton__search`}),n(`span`,{class:`admin-skeleton admin-page-skeleton__btn`})],-1),n(`div`,l,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__tr`},[...p[0]||=[s(``,5)]]))),128))])],64)):t.variant===`form`?(o(),i(`div`,u,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-page-skeleton__field`},[...p[2]||=[n(`span`,{class:`admin-skeleton`,style:{width:`28%`,height:`10px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`100%`,height:`40px`,"border-radius":`10px`}},null,-1)]]))),128))])):t.variant===`detail`?(o(),i(`div`,d,[...p[3]||=[s(``,5)]])):(o(),i(`div`,f,[(o(!0),i(e,null,r(t.rows,e=>(o(),i(`div`,{key:e,class:`admin-card admin-page-skeleton__card`},[...p[4]||=[n(`span`,{class:`admin-skeleton`,style:{width:`45%`,height:`14px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`70%`,height:`11px`}},null,-1),n(`span`,{class:`admin-skeleton`,style:{width:`35%`,height:`11px`}},null,-1)]]))),128))]))]))}}),[[`__scopeId`,`data-v-8283cd1d`]]);export{p as t}; \ No newline at end of file diff --git a/dist/assets/AdminPageSkeleton-CTgUqaAu.js b/dist/assets/AdminPageSkeleton-CTgUqaAu.js new file mode 100644 index 0000000..0df9128 --- /dev/null +++ b/dist/assets/AdminPageSkeleton-CTgUqaAu.js @@ -0,0 +1 @@ +import{O as e,c as t,d as n,g as r,j as i,p as a,r as o,t as s}from"./_plugin-vue_export-helper-OaxA6A2f.js";var c={class:`admin-page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},l={class:`admin-card admin-page-skeleton__table`},u={key:1,class:`admin-card admin-page-skeleton__form`},d={key:2,class:`admin-card admin-page-skeleton__detail`},f={key:3,class:`admin-page-skeleton__cards`},p=s(r({__name:`AdminPageSkeleton`,props:{variant:{default:`cards`},rows:{default:5}},setup(r){return(s,p)=>(e(),n(`div`,c,[r.variant===`table`?(e(),n(o,{key:0},[p[1]||=t(`div`,{class:`admin-page-skeleton__toolbar`},[t(`span`,{class:`admin-skeleton admin-page-skeleton__search`}),t(`span`,{class:`admin-skeleton admin-page-skeleton__btn`})],-1),t(`div`,l,[(e(!0),n(o,null,i(r.rows,t=>(e(),n(`div`,{key:t,class:`admin-page-skeleton__tr`},[...p[0]||=[a(``,5)]]))),128))])],64)):r.variant===`form`?(e(),n(`div`,u,[(e(!0),n(o,null,i(r.rows,r=>(e(),n(`div`,{key:r,class:`admin-page-skeleton__field`},[...p[2]||=[t(`span`,{class:`admin-skeleton`,style:{width:`28%`,height:`10px`}},null,-1),t(`span`,{class:`admin-skeleton`,style:{width:`100%`,height:`40px`,"border-radius":`10px`}},null,-1)]]))),128))])):r.variant===`detail`?(e(),n(`div`,d,[...p[3]||=[a(``,5)]])):(e(),n(`div`,f,[(e(!0),n(o,null,i(r.rows,r=>(e(),n(`div`,{key:r,class:`admin-card admin-page-skeleton__card`},[...p[4]||=[t(`span`,{class:`admin-skeleton`,style:{width:`45%`,height:`14px`}},null,-1),t(`span`,{class:`admin-skeleton`,style:{width:`70%`,height:`11px`}},null,-1),t(`span`,{class:`admin-skeleton`,style:{width:`35%`,height:`11px`}},null,-1)]]))),128))]))]))}}),[[`__scopeId`,`data-v-8283cd1d`]]);export{p as t}; \ No newline at end of file diff --git a/dist/assets/AdminSelect-9UfEJQzN.js b/dist/assets/AdminSelect-9UfEJQzN.js new file mode 100644 index 0000000..a40daf4 --- /dev/null +++ b/dist/assets/AdminSelect-9UfEJQzN.js @@ -0,0 +1 @@ +import{C as e,Dt as t,E as n,M as r,O as i,Ot as a,R as o,Tt as s,V as c,Z as l,a as u,c as d,d as f,g as p,h as m,j as h,l as g,r as _,s as v,t as y,u as b}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{G as x,K as S,O as C,P as w,W as T}from"./index-CXa4EMLW.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=y(p({__name:`AdminSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:`جستجو…`},id:{default:void 0}},emits:[`update:modelValue`],setup(p,{emit:y}){let L=p,R=y,z=l(!1),B=l(``),V=l(null),H=l(null),U=l(null),W=l({});C(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=v(()=>L.options.find(e=>e.value===L.modelValue)),K=v(()=>G.value?.label??L.placeholder),q=v(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=rr,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await e(),J(),L.searchable&&(B.value=``,await e(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return o(z,t=>{Y(t),t&&e(()=>J())}),n(()=>{Y(!1)}),(e,n)=>(i(),f(`div`,{id:p.id,ref_key:`rootRef`,ref:V,class:s([`admin-select`,{"admin-select--open":z.value,"admin-select--block":p.block}])},[d(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":p.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[d(`span`,O,[r(e.$slots,`option-leading`,{option:G.value},void 0,!0),d(`span`,k,a(K.value),1)]),d(`span`,A,[m(w,{name:`chevron-down`,size:16})])],8,D),(i(),g(u,{to:`body`},[z.value?(i(),f(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":p.ariaLabel,style:t(W.value)},[p.searchable?(i(),f(`li`,M,[c(d(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":n[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:p.searchPlaceholder,onClick:n[1]||=S(()=>{},[`stop`]),onKeydown:n[2]||=x(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[T,B.value]])])):b(``,!0),q.value.length?b(``,!0):(i(),f(`li`,P,` موردی یافت نشد `)),(i(!0),f(_,null,h(q.value,t=>(i(),f(`li`,{key:t.value,role:`presentation`},[d(`button`,{type:`button`,class:s([`admin-select__option`,{"admin-select__option--active":t.value===p.modelValue}]),role:`option`,"aria-selected":t.value===p.modelValue,onClick:e=>Z(t.value)},[d(`span`,I,[r(e.$slots,`option-leading`,{option:t},void 0,!0),d(`span`,null,a(t.label),1)]),t.value===p.modelValue?(i(),g(w,{key:0,name:`check`,size:16,class:`admin-select__check`})):b(``,!0)],10,F)]))),128))],12,j)):b(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t}; \ No newline at end of file diff --git a/dist/assets/AdminSelect-BeLNl2Qz.js b/dist/assets/AdminSelect-BeLNl2Qz.js deleted file mode 100644 index b4753db..0000000 --- a/dist/assets/AdminSelect-BeLNl2Qz.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,J as r,K as i,O as a,P as o,Q as s,St as c,V as l,X as u,Y as d,Z as f,ct as p,dt as m,et as h,ft as g,gt as _,it as v,lt as y,mt as b,ot as x,q as S,rt as C,xt as w,yt as T}from"./index-B2VD3zy8.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=l(v({__name:`AdminSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:`جستجو…`},id:{default:void 0}},emits:[`update:modelValue`],setup(l,{emit:v}){let L=l,R=v,z=T(!1),B=T(``),V=T(null),H=T(null),U=T(null),W=T({});a(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=u(()=>L.options.find(e=>e.value===L.modelValue)),K=u(()=>G.value?.label??L.placeholder),q=u(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=rr,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await x(),J(),L.searchable&&(B.value=``,await x(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return b(z,e=>{Y(e),e&&x(()=>J())}),p(()=>{Y(!1)}),(a,u)=>(y(),h(`div`,{id:l.id,ref_key:`rootRef`,ref:V,class:w([`admin-select`,{"admin-select--open":z.value,"admin-select--block":l.block}])},[f(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":l.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[f(`span`,O,[g(a.$slots,`option-leading`,{option:G.value},void 0,!0),f(`span`,k,t(K.value),1)]),f(`span`,A,[C(o,{name:`chevron-down`,size:16})])],8,D),(y(),s(d,{to:`body`},[z.value?(y(),h(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":l.ariaLabel,style:c(W.value)},[l.searchable?(y(),h(`li`,M,[_(f(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":u[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:l.searchPlaceholder,onClick:u[1]||=S(()=>{},[`stop`]),onKeydown:u[2]||=i(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[n,B.value]])])):e(``,!0),q.value.length?e(``,!0):(y(),h(`li`,P,` موردی یافت نشد `)),(y(!0),h(r,null,m(q.value,n=>(y(),h(`li`,{key:n.value,role:`presentation`},[f(`button`,{type:`button`,class:w([`admin-select__option`,{"admin-select__option--active":n.value===l.modelValue}]),role:`option`,"aria-selected":n.value===l.modelValue,onClick:e=>Z(n.value)},[f(`span`,I,[g(a.$slots,`option-leading`,{option:n},void 0,!0),f(`span`,null,t(n.label),1)]),n.value===l.modelValue?(y(),s(o,{key:0,name:`check`,size:16,class:`admin-select__check`})):e(``,!0)],10,F)]))),128))],12,j)):e(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t}; \ No newline at end of file diff --git a/dist/assets/BankAccountsView-33uUkn7P.js b/dist/assets/BankAccountsView-33uUkn7P.js deleted file mode 100644 index 4e74838..0000000 --- a/dist/assets/BankAccountsView-33uUkn7P.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,G as r,I as i,J as a,N as o,Q as ee,R as te,V as ne,X as s,Z as c,c as l,dt as u,et as d,gt as f,h as re,ht as p,it as m,lt as h,nt as g,q as ie,rt as _,st as ae,vt as v,yt as y,z as oe}from"./index-B2VD3zy8.js";import{t as b}from"./BaseSwitch-dp2xMemS.js";import{t as se}from"./BaseEmptyState-DGu6Pfui.js";import{t as x}from"./ActiveSwitchCell-DIzTn08M.js";var S={class:`accounts-page`},ce={class:`admin-page-header`},le={class:`admin-page-header__title`},ue={key:1,class:`accounts-page__table admin-card desktop-only`},de={class:`admin-table-wrap`},fe={class:`admin-table`},pe={class:`status`},me={key:2,class:`compact-only admin-card-list`},C={class:`admin-card-item__header`},w={class:`admin-card-item__title`},T={class:`admin-card-item__meta`},E={key:0},D={key:1,dir:`ltr`},O={key:0,class:`admin-form__error`,role:`alert`},k={class:`admin-form__row`},A={class:`admin-form__field`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__row`},P={class:`admin-form__field`},F={class:`admin-form__field`},I={class:`admin-form__field`},L=[`disabled`],R=ne(m({__name:`BankAccountsView`,setup(ne){let m=n(),R=i(),z=oe(),B=y(null),V=y([]),H=y(!1),U=y(``),W=y(!1),G=s(()=>String(m.params.companyId)),K=s(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=v(q()),Y=s(()=>J.bankName.trim().length>0&&J.accountNumber.trim().length>0&&J.accountHolder.trim().length>0);async function he(){try{let[e,t]=await Promise.all([re.get(G.value),l.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof o?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}ae(()=>{he()});function X(){Object.assign(J,q()),U.value=``,H.value=!0}function Z(){H.value=!1,U.value=``}async function Q(){if(!Y.value){U.value=`فیلدهای ستاره‌دار الزامی هستند.`;return}W.value=!0;try{let e=await l.create(G.value,{bankName:J.bankName.trim(),accountNumber:J.accountNumber.trim(),accountHolder:J.accountHolder.trim(),cardNumber:J.cardNumber.trim()||`-`,iban:J.iban.trim()||`-`,isActive:J.isActive,displayOrder:V.value.length+1});V.value.push(e),z.success(`حساب بانکی جدید ثبت شد.`),Z()}catch(e){z.error(e instanceof o?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await l.setActive(e,t)}function ge(){R.push(`/companies`)}return(n,i)=>(h(),d(`div`,S,[c(`div`,ce,[c(`div`,null,[c(`h1`,le,` مدیریت حساب‌های بانکی — `+t(B.value?.name??`…`),1)]),c(`div`,{class:`admin-action-group`},[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(h(),d(`div`,ue,[c(`div`,de,[c(`table`,fe,[i[6]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`بانک`),c(`th`,null,`حساب بانکی`),c(`th`,null,`نام صاحب`),c(`th`,null,`شماره کارت`),c(`th`,null,`شماره شبا`),c(`th`,{class:`status`},`وضعیت`)])],-1),c(`tbody`,null,[(h(!0),d(a,null,u(K.value,e=>(h(),d(`tr`,{key:e.id},[c(`td`,null,t(e.bankName),1),c(`td`,null,t(e.accountNumber),1),c(`td`,null,t(e.accountHolder),1),c(`td`,null,t(e.cardNumber||`—`),1),c(`td`,null,t(e.iban||`—`),1),c(`td`,pe,[_(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])])]))),128))])])])])):(h(),ee(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:p(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(h(),d(`div`,me,[(h(!0),d(a,null,u(K.value,n=>(h(),d(`article`,{key:n.id,class:`admin-card-item`},[c(`div`,C,[c(`p`,w,`بانک `+t(n.bankName),1),_(x,{id:n.id,modelValue:n.isActive,"onUpdate:modelValue":e=>n.isActive=e,"entity-name":n.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`div`,T,[c(`span`,null,t(n.accountHolder),1),c(`span`,null,`حساب: `+t(n.accountNumber),1),n.cardNumber?(h(),d(`span`,E,`کارت: `+t(n.cardNumber),1)):e(``,!0),n.iban?(h(),d(`span`,D,t(n.iban),1)):e(``,!0)])]))),128))])):e(``,!0),_(te,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:p(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,L)]),default:p(()=>[c(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[U.value?(h(),d(`p`,O,t(U.value),1)):e(``,!0),c(`div`,k,[c(`div`,A,[i[7]||=c(`label`,{for:`bank-name`},[g(`نام بانک `),c(`span`,{class:`admin-form__required`},`*`)],-1),f(c(`input`,{id:`bank-name`,"onUpdate:modelValue":i[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[r,J.bankName]])]),c(`div`,j,[i[8]||=c(`label`,{for:`account-number`},[g(` شماره حساب `),c(`span`,{class:`admin-form__required`},`*`)],-1),f(c(`input`,{id:`account-number`,"onUpdate:modelValue":i[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[r,J.accountNumber]])])]),c(`div`,M,[i[9]||=c(`label`,{for:`account-holder`},[g(` نام صاحب حساب `),c(`span`,{class:`admin-form__required`},`*`)],-1),f(c(`input`,{id:`account-holder`,"onUpdate:modelValue":i[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[r,J.accountHolder]])]),c(`div`,N,[c(`div`,P,[i[10]||=c(`label`,{for:`card-number`},`شماره کارت`,-1),f(c(`input`,{id:`card-number`,"onUpdate:modelValue":i[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[r,J.cardNumber]])]),c(`div`,F,[i[11]||=c(`label`,{for:`iban`},`شماره شبا`,-1),f(c(`input`,{id:`iban`,"onUpdate:modelValue":i[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[r,J.iban]])])]),c(`div`,I,[_(b,{modelValue:J.isActive,"onUpdate:modelValue":i[5]||=e=>J.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-0011826b`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/BankAccountsView-CjjgU3ea.js b/dist/assets/BankAccountsView-CjjgU3ea.js new file mode 100644 index 0000000..e8eb6fe --- /dev/null +++ b/dist/assets/BankAccountsView-CjjgU3ea.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as g,I as ne,K as re,N as _,R as v,W as y,c as b,h as ie,z as ae}from"./index-CXa4EMLW.js";import{t as oe}from"./BaseSwitch-TV5Yvtf7.js";import{t as se}from"./BaseEmptyState-BmO9aDcK.js";import{t as x}from"./ActiveSwitchCell-DJZQHZ-8.js";var ce={class:`accounts-page`},le={class:`admin-page-header`},ue={class:`admin-page-header__title`},de={key:1,class:`accounts-page__table admin-card desktop-only`},fe={class:`admin-table-wrap`},pe={class:`admin-table`},S={class:`status`},C={key:2,class:`compact-only admin-card-list`},w={class:`admin-card-item__header`},T={class:`admin-card-item__title`},E={class:`admin-card-item__meta`},D={key:0},O={key:1,dir:`ltr`},k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__row`},j={class:`admin-form__field`},M={class:`admin-form__field`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},me=[`disabled`],R=m(te({__name:`BankAccountsView`,setup(te){let m=g(),R=ne(),z=ae(),B=a(null),V=a([]),H=a(!1),U=a(``),W=a(!1),G=p(()=>String(m.params.companyId)),K=p(()=>V.value),q=()=>({bankName:``,accountNumber:``,accountHolder:B.value?.name??``,cardNumber:``,iban:``,isActive:!0}),J=i(q()),Y=p(()=>J.bankName.trim().length>0&&J.accountNumber.trim().length>0&&J.accountHolder.trim().length>0);async function he(){try{let[e,t]=await Promise.all([ie.get(G.value),b.listByCompany(G.value)]);B.value=e,V.value=t}catch(e){z.error(e instanceof _?e.message:`بارگذاری حساب‌ها انجام نشد.`)}}ee(()=>{he()});function X(){Object.assign(J,q()),U.value=``,H.value=!0}function Z(){H.value=!1,U.value=``}async function Q(){if(!Y.value){U.value=`فیلدهای ستاره‌دار الزامی هستند.`;return}W.value=!0;try{let e=await b.create(G.value,{bankName:J.bankName.trim(),accountNumber:J.accountNumber.trim(),accountHolder:J.accountHolder.trim(),cardNumber:J.cardNumber.trim()||`-`,iban:J.iban.trim()||`-`,isActive:J.isActive,displayOrder:V.value.length+1});V.value.push(e),z.success(`حساب بانکی جدید ثبت شد.`),Z()}catch(e){z.error(e instanceof _?e.message:`ثبت حساب انجام نشد.`)}finally{W.value=!1}}async function $(e,t){await b.setActive(e,t)}function ge(){R.push(`/companies`)}return(ee,i)=>(t(),s(`div`,ce,[o(`div`,le,[o(`div`,null,[o(`h1`,ue,` مدیریت حساب‌های بانکی — `+n(B.value?.name??`…`),1)]),o(`div`,{class:`admin-action-group`},[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:X},` افزودن حساب `),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ge},` بازگشت `)])]),K.value.length?(t(),s(`div`,de,[o(`div`,fe,[o(`table`,pe,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`بانک`),o(`th`,null,`حساب بانکی`),o(`th`,null,`نام صاحب`),o(`th`,null,`شماره کارت`),o(`th`,null,`شماره شبا`),o(`th`,{class:`status`},`وضعیت`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,n(e.bankName),1),o(`td`,null,n(e.accountNumber),1),o(`td`,null,n(e.accountHolder),1),o(`td`,null,n(e.cardNumber||`—`),1),o(`td`,null,n(e.iban||`—`),1),o(`td`,S,[c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])])]))),128))])])])])):(t(),u(se,{key:0,class:`admin-card`,icon:`wallet`,title:`حساب بانکی ثبت نشده`,description:`برای این شرکت هنوز حساب بانکی ثبت نشده است.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:X},` افزودن حساب `)]),_:1})),K.value.length?(t(),s(`div`,C,[(t(!0),s(f,null,l(K.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,w,[o(`p`,T,`بانک `+n(e.bankName),1),c(x,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.bankName,"entity-type":`حساب بانکی`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,E,[o(`span`,null,n(e.accountHolder),1),o(`span`,null,`حساب: `+n(e.accountNumber),1),e.cardNumber?(t(),s(`span`,D,`کارت: `+n(e.cardNumber),1)):h(``,!0),e.iban?(t(),s(`span`,O,n(e.iban),1)):h(``,!0)])]))),128))])):h(``,!0),c(v,{open:H.value,title:`افزودن حساب بانکی`,size:`lg`,onClose:Z},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت حساب `,8,me)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[U.value?(t(),s(`p`,k,n(U.value),1)):h(``,!0),o(`div`,A,[o(`div`,j,[i[7]||=o(`label`,{for:`bank-name`},[d(`نام بانک `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`bank-name`,"onUpdate:modelValue":i[0]||=e=>J.bankName=e,type:`text`,class:`admin-input`,placeholder:`مثال: ملت`},null,512),[[y,J.bankName]])]),o(`div`,M,[i[8]||=o(`label`,{for:`account-number`},[d(` شماره حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-number`,"onUpdate:modelValue":i[1]||=e=>J.accountNumber=e,type:`text`,class:`admin-input`,placeholder:`1234567890`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.accountNumber]])])]),o(`div`,N,[i[9]||=o(`label`,{for:`account-holder`},[d(` نام صاحب حساب `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`account-holder`,"onUpdate:modelValue":i[2]||=e=>J.accountHolder=e,type:`text`,class:`admin-input`},null,512),[[y,J.accountHolder]])]),o(`div`,P,[o(`div`,F,[i[10]||=o(`label`,{for:`card-number`},`شماره کارت`,-1),r(o(`input`,{id:`card-number`,"onUpdate:modelValue":i[3]||=e=>J.cardNumber=e,type:`text`,class:`admin-input`,placeholder:`6104 3378 0077 1234`,inputmode:`numeric`,dir:`ltr`},null,512),[[y,J.cardNumber]])]),o(`div`,I,[i[11]||=o(`label`,{for:`iban`},`شماره شبا`,-1),r(o(`input`,{id:`iban`,"onUpdate:modelValue":i[4]||=e=>J.iban=e,type:`text`,class:`admin-input`,placeholder:`IR...`,dir:`ltr`},null,512),[[y,J.iban]])])]),o(`div`,L,[c(oe,{modelValue:J.isActive,"onUpdate:modelValue":i[5]||=e=>J.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-0011826b`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/BannersView-CZaBcIQn.js b/dist/assets/BannersView-CZaBcIQn.js deleted file mode 100644 index a7e7640..0000000 --- a/dist/assets/BannersView-CZaBcIQn.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,J as r,N as i,Q as a,R as o,St as s,V as c,X as l,Z as u,dt as d,et as f,gt as p,ht as m,it as h,l as g,lt as _,nt as v,rt as y,st as ee,vt as b,xt as x,yt as S,z as C}from"./index-B2VD3zy8.js";import{t as w}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as T}from"./BaseSwitch-dp2xMemS.js";import{t as te}from"./BaseEmptyState-DGu6Pfui.js";import{t as E}from"./AdminImagePicker-C0OGC-bB.js";import{t as D}from"./AdminSelect-BeLNl2Qz.js";var O={class:`banners-page`},k={key:2,class:`admin-card`},A={class:`admin-table`},j={key:0,class:`banner-sub`},M={class:`actions`},N=[`onClick`],P=[`onClick`],F={class:`field`},I={class:`field`},L={class:`field__head`},R={class:`field`},z={class:`field__head`},B={class:`field`},ne={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=c(h({__name:`BannersView`,setup(c){let h=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=S([]),G=S(!0),K=S(!1),q=S(!1),J=S(null),Y=C(),X=b({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),Z=l(()=>J.value?`ویرایش بنر`:`افزودن بنر`);function re(e){return h.find(t=>t.value===e)?.label??e}async function Q(){G.value=!0;try{W.value=await g.list()}catch(e){Y.error(e instanceof i?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{G.value=!1}}function $(){J.value=null,Object.assign(X,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:W.value.length,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),q.value=!0}function ie(e){J.value=e.id,Object.assign(X,{slot:e.slot,title:e.title,subtitle:e.subtitle,ctaLabel:e.ctaLabel,ctaLink:e.ctaLink||`/categories`,imageUrl:e.imageUrl||null,displayOrder:e.displayOrder,isActive:e.isActive,showTitle:e.showTitle!==!1,showSubtitle:e.showSubtitle!==!1,showCta:e.showCta!==!1}),q.value=!0}async function ae(){if(X.title.trim()){K.value=!0;try{let e={slot:X.slot,title:X.title.trim(),subtitle:X.subtitle.trim()||null,ctaLabel:X.ctaLabel.trim()||null,ctaLink:X.ctaLink.trim()||null,imageUrl:X.imageUrl,displayOrder:X.displayOrder,isActive:X.isActive,showTitle:X.showTitle,showSubtitle:X.showSubtitle,showCta:X.showCta};J.value?await g.update(J.value,e):await g.create(e),q.value=!1,Y.success(`بنر ذخیره شد.`),await Q()}catch(e){Y.error(e instanceof i?e.message:`ذخیره بنر ناموفق بود.`)}finally{K.value=!1}}}async function oe(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await g.remove(e.id),Y.success(`بنر حذف شد.`),await Q()}catch(e){Y.error(e instanceof i?e.message:`حذف بنر ناموفق بود.`)}}return ee(()=>{Q()}),(i,c)=>(_(),f(`div`,O,[u(`div`,{class:`admin-page-header`},[c[13]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`بنرها`),u(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(_(),a(w,{key:0,variant:`table`})):W.value.length?(_(),f(`div`,k,[u(`table`,A,[c[14]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`تصویر`),u(`th`,null,`عنوان`),u(`th`,null,`بخش`),u(`th`,null,`دکمه`),u(`th`,null,`فعال`),u(`th`,{class:`actions`},`عملیات`)])],-1),u(`tbody`,null,[(_(!0),f(r,null,d(W.value,n=>(_(),f(`tr`,{key:n.id},[u(`td`,null,[u(`span`,{class:x([`banner-thumb`,{"banner-thumb--empty":!n.imageUrl}]),style:s(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},null,6)]),u(`td`,null,[u(`strong`,null,t(n.title),1),n.subtitle?(_(),f(`p`,j,t(n.subtitle),1)):e(``,!0)]),u(`td`,null,t(re(n.slot)),1),u(`td`,null,t(n.ctaLabel||`—`),1),u(`td`,null,t(n.isActive?`بله`:`خیر`),1),u(`td`,M,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>ie(n)},` ویرایش `,8,N),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>oe(n)},` حذف `,8,P)])]))),128))])])])):(_(),a(te,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:m(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),y(o,{open:q.value,title:Z.value,onClose:c[12]||=e=>q.value=!1},{footer:m(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:c[11]||=e=>q.value=!1},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},t(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:m(()=>[u(`label`,F,[c[15]||=v(` بخش نمایش `,-1),y(D,{modelValue:X.slot,"onUpdate:modelValue":c[0]||=e=>X.slot=e,options:h},null,8,[`modelValue`])]),u(`div`,I,[u(`span`,L,[c[16]||=v(` عنوان `,-1),y(T,{modelValue:X.showTitle,"onUpdate:modelValue":c[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[2]||=e=>X.title=e,class:`admin-input`},null,512),[[n,X.title]])]),u(`div`,R,[u(`span`,z,[c[17]||=v(` زیرعنوان `,-1),y(T,{modelValue:X.showSubtitle,"onUpdate:modelValue":c[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[n,X.subtitle]])]),u(`div`,B,[u(`span`,ne,[c[18]||=v(` متن دکمه `,-1),y(T,{modelValue:X.showCta,"onUpdate:modelValue":c[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),p(u(`input`,{"onUpdate:modelValue":c[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[n,X.ctaLabel]])]),u(`label`,V,[c[19]||=v(` لینک دکمه `,-1),p(u(`input`,{"onUpdate:modelValue":c[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[n,X.ctaLink]])]),u(`label`,H,[c[20]||=v(`ترتیب نمایش`,-1),p(u(`input`,{"onUpdate:modelValue":c[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[n,X.displayOrder,void 0,{number:!0}]])]),y(E,{modelValue:X.imageUrl,"onUpdate:modelValue":c[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),y(T,{modelValue:X.isActive,"onUpdate:modelValue":c[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/BannersView-KHMLub3-.js b/dist/assets/BannersView-KHMLub3-.js new file mode 100644 index 0000000..c6519d2 --- /dev/null +++ b/dist/assets/BannersView-KHMLub3-.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot as r,T as i,Tt as a,V as o,Y as s,Z as c,c as l,d as u,g as d,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as b,R as ee,W as x,l as S,z as C}from"./index-CXa4EMLW.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as w}from"./BaseSwitch-TV5Yvtf7.js";import{t as T}from"./BaseEmptyState-BmO9aDcK.js";import{t as E}from"./AdminImagePicker-C4toq7MG.js";import{t as D}from"./AdminSelect-9UfEJQzN.js";var O={class:`banners-page`},k={key:2,class:`admin-card`},A={class:`admin-table`},j={key:0,class:`banner-sub`},M={class:`actions`},N=[`onClick`],P=[`onClick`],F={class:`field`},I={class:`field`},L={class:`field__head`},R={class:`field`},z={class:`field__head`},B={class:`field`},ne={class:`field__head`},V={class:`field`},H={class:`field`},U=[`disabled`],W=v(d({__name:`BannersView`,setup(d){let v=[{value:`home_hero`,label:`خانه — بنر اصلی`},{value:`products_hero`,label:`لیست محصولات`},{value:`categories_hero`,label:`دسته‌بندی‌ها`}],W=c([]),G=c(!0),K=c(!1),q=c(!1),J=c(null),Y=C(),X=s({slot:`home_hero`,title:``,subtitle:``,ctaLabel:``,ctaLink:`/categories`,imageUrl:null,displayOrder:0,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),Z=_(()=>J.value?`ویرایش بنر`:`افزودن بنر`);function re(e){return v.find(t=>t.value===e)?.label??e}async function Q(){G.value=!0;try{W.value=await S.list()}catch(e){Y.error(e instanceof b?e.message:`بارگذاری بنرها ناموفق بود.`)}finally{G.value=!1}}function $(){J.value=null,Object.assign(X,{slot:`home_hero`,title:``,subtitle:``,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:null,displayOrder:W.value.length,isActive:!0,showTitle:!0,showSubtitle:!0,showCta:!0}),q.value=!0}function ie(e){J.value=e.id,Object.assign(X,{slot:e.slot,title:e.title,subtitle:e.subtitle,ctaLabel:e.ctaLabel,ctaLink:e.ctaLink||`/categories`,imageUrl:e.imageUrl||null,displayOrder:e.displayOrder,isActive:e.isActive,showTitle:e.showTitle!==!1,showSubtitle:e.showSubtitle!==!1,showCta:e.showCta!==!1}),q.value=!0}async function ae(){if(X.title.trim()){K.value=!0;try{let e={slot:X.slot,title:X.title.trim(),subtitle:X.subtitle.trim()||null,ctaLabel:X.ctaLabel.trim()||null,ctaLink:X.ctaLink.trim()||null,imageUrl:X.imageUrl,displayOrder:X.displayOrder,isActive:X.isActive,showTitle:X.showTitle,showSubtitle:X.showSubtitle,showCta:X.showCta};J.value?await S.update(J.value,e):await S.create(e),q.value=!1,Y.success(`بنر ذخیره شد.`),await Q()}catch(e){Y.error(e instanceof b?e.message:`ذخیره بنر ناموفق بود.`)}finally{K.value=!1}}}async function oe(e){if(window.confirm(`بنر «${e.title}» حذف شود؟`))try{await S.remove(e.id),Y.success(`بنر حذف شد.`),await Q()}catch(e){Y.error(e instanceof b?e.message:`حذف بنر ناموفق بود.`)}}return i(()=>{Q()}),(i,s)=>(n(),u(`div`,O,[l(`div`,{class:`admin-page-header`},[s[13]||=l(`div`,null,[l(`h1`,{class:`admin-page-header__title`},`بنرها`),l(`p`,{class:`admin-page-header__sub`},`بنر بخش‌های مختلف اپ کاربر را از اینجا مدیریت کنید.`)],-1),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:$},`افزودن بنر`)]),G.value?(n(),m(te,{key:0,variant:`table`})):W.value.length?(n(),u(`div`,k,[l(`table`,A,[s[14]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`تصویر`),l(`th`,null,`عنوان`),l(`th`,null,`بخش`),l(`th`,null,`دکمه`),l(`th`,null,`فعال`),l(`th`,{class:`actions`},`عملیات`)])],-1),l(`tbody`,null,[(n(!0),u(g,null,p(W.value,e=>(n(),u(`tr`,{key:e.id},[l(`td`,null,[l(`span`,{class:a([`banner-thumb`,{"banner-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),l(`td`,null,[l(`strong`,null,r(e.title),1),e.subtitle?(n(),u(`p`,j,r(e.subtitle),1)):y(``,!0)]),l(`td`,null,r(re(e.slot)),1),l(`td`,null,r(e.ctaLabel||`—`),1),l(`td`,null,r(e.isActive?`بله`:`خیر`),1),l(`td`,M,[l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>ie(e)},` ویرایش `,8,N),l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>oe(e)},` حذف `,8,P)])]))),128))])])])):(n(),m(T,{key:1,title:`بنری ثبت نشده`,description:`اولین بنر خانه را اضافه کنید.`},{default:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:$},` افزودن بنر `)]),_:1})),f(ee,{open:q.value,title:Z.value,onClose:s[12]||=e=>q.value=!1},{footer:e(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[11]||=e=>q.value=!1},`انصراف`),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.title.trim()||K.value,onClick:ae},r(K.value?`در حال ذخیره...`:`ذخیره`),9,U)]),default:e(()=>[l(`label`,F,[s[15]||=h(` بخش نمایش `,-1),f(D,{modelValue:X.slot,"onUpdate:modelValue":s[0]||=e=>X.slot=e,options:v},null,8,[`modelValue`])]),l(`div`,I,[l(`span`,L,[s[16]||=h(` عنوان `,-1),f(w,{modelValue:X.showTitle,"onUpdate:modelValue":s[1]||=e=>X.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[2]||=e=>X.title=e,class:`admin-input`},null,512),[[x,X.title]])]),l(`div`,R,[l(`span`,z,[s[17]||=h(` زیرعنوان `,-1),f(w,{modelValue:X.showSubtitle,"onUpdate:modelValue":s[3]||=e=>X.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[4]||=e=>X.subtitle=e,class:`admin-input`},null,512),[[x,X.subtitle]])]),l(`div`,B,[l(`span`,ne,[s[18]||=h(` متن دکمه `,-1),f(w,{modelValue:X.showCta,"onUpdate:modelValue":s[5]||=e=>X.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`])]),o(l(`input`,{"onUpdate:modelValue":s[6]||=e=>X.ctaLabel=e,class:`admin-input`},null,512),[[x,X.ctaLabel]])]),l(`label`,V,[s[19]||=h(` لینک دکمه `,-1),o(l(`input`,{"onUpdate:modelValue":s[7]||=e=>X.ctaLink=e,class:`admin-input`,dir:`ltr`,placeholder:`/categories`},null,512),[[x,X.ctaLink]])]),l(`label`,H,[s[20]||=h(`ترتیب نمایش`,-1),o(l(`input`,{"onUpdate:modelValue":s[8]||=e=>X.displayOrder=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[x,X.displayOrder,void 0,{number:!0}]])]),f(E,{modelValue:X.imageUrl,"onUpdate:modelValue":s[9]||=e=>X.imageUrl=e,label:`تصویر بنر`},null,8,[`modelValue`]),f(w,{modelValue:X.isActive,"onUpdate:modelValue":s[10]||=e=>X.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-1ca3d686`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/BaseEmptyState-BmO9aDcK.js b/dist/assets/BaseEmptyState-BmO9aDcK.js new file mode 100644 index 0000000..a9c7d65 --- /dev/null +++ b/dist/assets/BaseEmptyState-BmO9aDcK.js @@ -0,0 +1 @@ +import{M as e,O as t,Ot as n,Tt as r,c as i,d as a,g as o,h as s,t as c,u as l}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{P as u}from"./index-CXa4EMLW.js";var d={class:`base-empty__icon`,"aria-hidden":`true`},f={class:`base-empty__title`},p={key:0,class:`base-empty__description`},m={key:1,class:`base-empty__actions`},h=c(o({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(o){return(c,h)=>(t(),a(`div`,{class:r([`base-empty`,{"base-empty--compact":o.compact}])},[i(`div`,d,[s(u,{name:o.icon,size:o.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,n(o.title),1),o.description?(t(),a(`p`,p,n(o.description),1)):l(``,!0),c.$slots.default||c.$slots.secondary?(t(),a(`div`,m,[e(c.$slots,`default`,{},void 0,!0),e(c.$slots,`secondary`,{},void 0,!0)])):l(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file diff --git a/dist/assets/BaseEmptyState-DGu6Pfui.js b/dist/assets/BaseEmptyState-DGu6Pfui.js deleted file mode 100644 index 2ecb131..0000000 --- a/dist/assets/BaseEmptyState-DGu6Pfui.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,P as n,V as r,Z as i,et as a,ft as o,it as s,lt as c,rt as l,xt as u}from"./index-B2VD3zy8.js";var d={class:`base-empty__icon`,"aria-hidden":`true`},f={class:`base-empty__title`},p={key:0,class:`base-empty__description`},m={key:1,class:`base-empty__actions`},h=r(s({__name:`BaseEmptyState`,props:{icon:{default:`file`},title:{},description:{},compact:{type:Boolean}},emits:[`action`,`secondary`],setup(r){return(s,h)=>(c(),a(`div`,{class:u([`base-empty`,{"base-empty--compact":r.compact}])},[i(`div`,d,[l(n,{name:r.icon,size:r.compact?28:36},null,8,[`name`,`size`])]),i(`h3`,f,t(r.title),1),r.description?(c(),a(`p`,p,t(r.description),1)):e(``,!0),s.$slots.default||s.$slots.secondary?(c(),a(`div`,m,[o(s.$slots,`default`,{},void 0,!0),o(s.$slots,`secondary`,{},void 0,!0)])):e(``,!0)],2))}}),[[`__scopeId`,`data-v-47ea81e4`]]);export{h as t}; \ No newline at end of file diff --git a/dist/assets/BaseSwitch-TV5Yvtf7.js b/dist/assets/BaseSwitch-TV5Yvtf7.js new file mode 100644 index 0000000..a0115d5 --- /dev/null +++ b/dist/assets/BaseSwitch-TV5Yvtf7.js @@ -0,0 +1 @@ +import{O as e,Ot as t,Tt as n,c as r,d as i,g as a,s as o,t as s,u as c}from"./_plugin-vue_export-helper-OaxA6A2f.js";var l=[`title`],u={key:0,class:`base-switch__label`},d={class:`base-switch__control`},f=[`id`,`checked`,`disabled`,`aria-checked`,`aria-label`],p={class:`base-switch__track`,"aria-hidden":`true`},m={class:`base-switch__thumb`},h={key:0,class:`base-switch__spinner`},g=s(a({__name:`BaseSwitch`,props:{modelValue:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},error:{type:Boolean},label:{},activeText:{default:`فعال`},inactiveText:{default:`غیرفعال`},id:{}},emits:[`update:modelValue`],setup(a,{emit:s}){let g=a,_=s,v=o(()=>g.id??`switch-${crypto.randomUUID().slice(0,8)}`),y=o(()=>g.modelValue?g.activeText:g.inactiveText);function b(e){let t=e.target,n=t.checked;t.checked=g.modelValue,!(g.disabled||g.loading)&&_(`update:modelValue`,n)}return(o,s)=>(e(),i(`label`,{class:n([`base-switch`,{"base-switch--disabled":a.disabled||a.loading,"base-switch--error":a.error}]),title:y.value},[a.label?(e(),i(`span`,u,t(a.label),1)):c(``,!0),r(`span`,d,[r(`input`,{id:v.value,class:`base-switch__input`,type:`checkbox`,role:`switch`,checked:a.modelValue,disabled:a.disabled||a.loading,"aria-checked":a.modelValue,"aria-label":a.label||y.value,onChange:b},null,40,f),r(`span`,p,[r(`span`,m,[a.loading?(e(),i(`span`,h)):c(``,!0)])])])],10,l))}}),[[`__scopeId`,`data-v-0410eed4`]]);export{g as t}; \ No newline at end of file diff --git a/dist/assets/BaseSwitch-dp2xMemS.js b/dist/assets/BaseSwitch-dp2xMemS.js deleted file mode 100644 index a6a696c..0000000 --- a/dist/assets/BaseSwitch-dp2xMemS.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,V as n,X as r,Z as i,et as a,it as o,lt as s,xt as c}from"./index-B2VD3zy8.js";var l=[`title`],u={key:0,class:`base-switch__label`},d={class:`base-switch__control`},f=[`id`,`checked`,`disabled`,`aria-checked`,`aria-label`],p={class:`base-switch__track`,"aria-hidden":`true`},m={class:`base-switch__thumb`},h={key:0,class:`base-switch__spinner`},g=n(o({__name:`BaseSwitch`,props:{modelValue:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},error:{type:Boolean},label:{},activeText:{default:`فعال`},inactiveText:{default:`غیرفعال`},id:{}},emits:[`update:modelValue`],setup(n,{emit:o}){let g=n,_=o,v=r(()=>g.id??`switch-${crypto.randomUUID().slice(0,8)}`),y=r(()=>g.modelValue?g.activeText:g.inactiveText);function b(e){let t=e.target,n=t.checked;t.checked=g.modelValue,!(g.disabled||g.loading)&&_(`update:modelValue`,n)}return(r,o)=>(s(),a(`label`,{class:c([`base-switch`,{"base-switch--disabled":n.disabled||n.loading,"base-switch--error":n.error}]),title:y.value},[n.label?(s(),a(`span`,u,t(n.label),1)):e(``,!0),i(`span`,d,[i(`input`,{id:v.value,class:`base-switch__input`,type:`checkbox`,role:`switch`,checked:n.modelValue,disabled:n.disabled||n.loading,"aria-checked":n.modelValue,"aria-label":n.label||y.value,onChange:b},null,40,f),i(`span`,p,[i(`span`,m,[n.loading?(s(),a(`span`,h)):e(``,!0)])])])],10,l))}}),[[`__scopeId`,`data-v-0410eed4`]]);export{g as t}; \ No newline at end of file diff --git a/dist/assets/BrandsView-CPBAGKxa.js b/dist/assets/BrandsView-CPBAGKxa.js deleted file mode 100644 index 4e5b973..0000000 --- a/dist/assets/BrandsView-CPBAGKxa.js +++ /dev/null @@ -1 +0,0 @@ -import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,u as v,vt as y,yt as b,z as x}from"./index-B2VD3zy8.js";import{t as S}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as C}from"./BaseSwitch-dp2xMemS.js";import{t as w}from"./BaseEmptyState-DGu6Pfui.js";var T={class:`admin-page`},E={key:2,class:`admin-table`},D={dir:`ltr`},O=[`onClick`],k={class:`field`},A={class:`field`},j={class:`field`},M={class:`field`},N=[`disabled`],P=o(p({__name:`BrandsView`,setup(o){let p=b([]),P=b(!0),F=b(!1),I=b(null),L=x(),R=y({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=s(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{p.value=await v.list()}catch(e){L.error(e instanceof r?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:p.value.length+1,isActive:!0}),F.value=!0}function H(e){I.value=e.id,Object.assign(R,{name:e.name,slug:e.slug??``,description:e.description??``,displayOrder:e.displayOrder,isActive:e.isActive}),F.value=!0}async function U(){try{let e={name:R.name.trim(),slug:R.slug.trim()||void 0,description:R.description.trim()||void 0,displayOrder:R.displayOrder,isActive:R.isActive};I.value?await v.update(I.value,e):await v.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof r?e.message:`ذخیره ناموفق بود`)}}return _(()=>{B()}),(r,o)=>(m(),u(`div`,T,[c(`header`,{class:`admin-page__head`},[o[6]||=c(`div`,null,[c(`h1`,null,`برندها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(m(),i(S,{key:0,variant:`table`})):p.value.length?(m(),u(`table`,E,[o[7]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`نام`),c(`th`,null,`شناسه لاتین`),c(`th`,null,`مشتریان`),c(`th`,null,`فعال`),c(`th`)])],-1),c(`tbody`,null,[(m(!0),u(n,null,l(p.value,t=>(m(),u(`tr`,{key:t.id},[c(`td`,null,e(t.name),1),c(`td`,D,e(t.slug||`—`),1),c(`td`,null,e(t.customersCount??0),1),c(`td`,null,e(t.isActive?`بله`:`خیر`),1),c(`td`,null,[c(`button`,{type:`button`,class:`link`,onClick:e=>H(t)},`ویرایش`,8,O)])]))),128))])])):(m(),i(w,{key:1,title:`برندی ثبت نشده`})),g(a,{open:F.value,title:z.value,onClose:o[5]||=e=>F.value=!1},{footer:f(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:f(()=>[c(`label`,k,[o[8]||=h(`نام`,-1),d(c(`input`,{"onUpdate:modelValue":o[0]||=e=>R.name=e,class:`admin-input`},null,512),[[t,R.name]])]),c(`label`,A,[o[9]||=h(`شناسه لاتین`,-1),d(c(`input`,{"onUpdate:modelValue":o[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[t,R.slug]])]),c(`label`,j,[o[10]||=h(`توضیح`,-1),d(c(`textarea`,{"onUpdate:modelValue":o[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[t,R.description]])]),c(`label`,M,[o[11]||=h(`ترتیب`,-1),d(c(`input`,{"onUpdate:modelValue":o[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[t,R.displayOrder,void 0,{number:!0}]])]),g(C,{modelValue:R.isActive,"onUpdate:modelValue":o[4]||=e=>R.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-88043806`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/BrandsView-Il4Q4zqB.js b/dist/assets/BrandsView-Il4Q4zqB.js new file mode 100644 index 0000000..5e935b2 --- /dev/null +++ b/dist/assets/BrandsView-Il4Q4zqB.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as _,R as v,W as y,u as b,z as x}from"./index-CXa4EMLW.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseSwitch-TV5Yvtf7.js";import{t as w}from"./BaseEmptyState-BmO9aDcK.js";var T={class:`admin-page`},E={key:2,class:`admin-table`},D={dir:`ltr`},O=[`onClick`],k={class:`field`},A={class:`field`},j={class:`field`},M={class:`field`},N=[`disabled`],P=g(l({__name:`BrandsView`,setup(l){let g=o([]),P=o(!0),F=o(!1),I=o(null),L=x(),R=a({name:``,slug:``,description:``,displayOrder:0,isActive:!0}),z=h(()=>I.value?`ویرایش برند`:`افزودن برند`);async function B(){P.value=!0;try{g.value=await b.list()}catch(e){L.error(e instanceof _?e.message:`بارگذاری برندها ناموفق بود`)}finally{P.value=!1}}function V(){I.value=null,Object.assign(R,{name:``,slug:``,description:``,displayOrder:g.value.length+1,isActive:!0}),F.value=!0}function H(e){I.value=e.id,Object.assign(R,{name:e.name,slug:e.slug??``,description:e.description??``,displayOrder:e.displayOrder,isActive:e.isActive}),F.value=!0}async function U(){try{let e={name:R.name.trim(),slug:R.slug.trim()||void 0,description:R.description.trim()||void 0,displayOrder:R.displayOrder,isActive:R.isActive};I.value?await b.update(I.value,e):await b.create(e),F.value=!1,L.success(`ذخیره شد`),await B()}catch(e){L.error(e instanceof _?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,T,[s(`header`,{class:`admin-page__head`},[a[6]||=s(`div`,null,[s(`h1`,null,`برندها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`افزودن برند`)]),P.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,E,[a[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`شناسه لاتین`),s(`th`,null,`مشتریان`),s(`th`,null,`فعال`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.name),1),s(`td`,D,n(e.slug||`—`),1),s(`td`,null,n(e.customersCount??0),1),s(`td`,null,n(e.isActive?`بله`:`خیر`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,O)])]))),128))])])):(t(),f(w,{key:1,title:`برندی ثبت نشده`})),u(v,{open:F.value,title:z.value,onClose:a[5]||=e=>F.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!R.name.trim(),onClick:U},`ذخیره`,8,N)]),default:e(()=>[s(`label`,k,[a[8]||=p(`نام`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>R.name=e,class:`admin-input`},null,512),[[y,R.name]])]),s(`label`,A,[a[9]||=p(`شناسه لاتین`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>R.slug=e,class:`admin-input`,dir:`ltr`,placeholder:`مثلاً nademi-silk`},null,512),[[y,R.slug]])]),s(`label`,j,[a[10]||=p(`توضیح`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[2]||=e=>R.description=e,class:`admin-input`,rows:`3`},null,512),[[y,R.description]])]),s(`label`,M,[a[11]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>R.displayOrder=e,type:`number`,class:`admin-input`},null,512),[[y,R.displayOrder,void 0,{number:!0}]])]),u(C,{modelValue:R.isActive,"onUpdate:modelValue":a[4]||=e=>R.isActive=e,label:`فعال`},null,8,[`modelValue`])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-88043806`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CashPaymentsView-BmPMXCl-.js b/dist/assets/CashPaymentsView-BmPMXCl-.js new file mode 100644 index 0000000..0e7d38a --- /dev/null +++ b/dist/assets/CashPaymentsView-BmPMXCl-.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Tt as r,V as ee,Z as i,at as a,c as o,d as s,g as te,h as c,j as l,l as u,r as d,s as ne,t as f,u as p}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,N as m,P as h,W as g,d as _,i as v,n as y,x as ie,z as ae}from"./index-CXa4EMLW.js";import{t as b}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as oe}from"./AdminSelect-9UfEJQzN.js";import{n as x,t as S}from"./adminLabels-Cz9ccm1Z.js";var se={class:`cash-payments-page`},C={class:`cash-payments-page__filters admin-card`},w={class:`cash-payments-page__search`},T={class:`cash-payments-page__table admin-card desktop-only`},E={class:`admin-table-wrap`},D={class:`admin-table`},O={dir:`ltr`},k={key:0,class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M={key:1,class:`admin-action-group`},N=[`disabled`,`onClick`],P={key:2},F={class:`compact-only admin-card-list`},I={class:`admin-card-item__header`},L={class:`admin-card-item__title`},ce={class:`admin-card-item__meta`},R={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=f(te({__name:`CashPaymentsView`,setup(te){let f=re(),W=i([]),G=i(f.query.order??``),K=i(`all`),q=i(!0),J=ae(),Y=i(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=ne(()=>{let e=W.value;K.value!==`all`&&(e=e.filter(e=>e.status===K.value));let t=G.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingCode.includes(t))),e});async function ue(){q.value=!0;try{W.value=await _.list()}catch(e){J.error(e instanceof m?e.message:`بارگذاری پرداخت‌ها انجام نشد.`)}finally{q.value=!1}}n(()=>{ue()});async function Z(e){Y.value=e.id;try{let t=await _.updateStatus(e.id,{status:`approved`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.success(`پرداخت سفارش ${e.orderNumber} تأیید شد.`)}catch(e){J.error(e instanceof m?e.message:`تأیید پرداخت انجام نشد.`)}finally{Y.value=null}}async function Q(e){Y.value=e.id;try{await ie.updateStatus(e.orderId,{status:`final_approved`,note:`تأیید نهایی پس از تأیید رسید نقدی`}),J.success(`سفارش ${e.orderNumber} تأیید نهایی شد.`)}catch(e){J.error(e instanceof m?e.message:`تأیید نهایی انجام نشد.`)}finally{Y.value=null}}async function $(e){Y.value=e.id;try{let t=await _.updateStatus(e.id,{status:`rejected`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.warning(`پرداخت سفارش ${e.orderNumber} رد شد.`)}catch(e){J.error(e instanceof m?e.message:`رد پرداخت انجام نشد.`)}finally{Y.value=null}}return(n,i)=>(e(),s(`div`,se,[i[3]||=o(`div`,{class:`admin-page-header`},[o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),o(`div`,C,[o(`div`,w,[c(h,{name:`search`,size:18}),ee(o(`input`,{"onUpdate:modelValue":i[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[g,G.value]])]),c(oe,{modelValue:K.value,"onUpdate:modelValue":i[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(e(),u(b,{key:0,variant:`table`})):(e(),s(d,{key:1},[o(`div`,T,[o(`div`,E,[o(`table`,D,[i[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`مبلغ فاکتور`),o(`th`,null,`مبلغ واریزی`),o(`th`,null,`تاریخ واریز`),o(`th`,null,`شماره پیگیری`),o(`th`,null,`پایان اعتبار`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(d,null,l(X.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,t(n.orderNumber),1),o(`td`,null,t(n.customerName),1),o(`td`,null,t(a(y)(n.amount)),1),o(`td`,null,t(n.paidAmount?a(y)(n.paidAmount):`—`),1),o(`td`,null,t(n.transferDate?a(v)(n.transferDate):`—`),1),o(`td`,O,t(n.trackingCode),1),o(`td`,null,t(a(v)(n.expiresAt)),1),o(`td`,null,[o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`td`,null,[n.status===`pending_review`?(e(),s(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,j)])):n.status===`approved`?(e(),s(`div`,M,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,N)])):(e(),s(`span`,P,`—`))])]))),128))])])])]),o(`div`,F,[(e(!0),s(d,null,l(X.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,I,[o(`p`,L,t(n.orderNumber),1),o(`span`,{class:r([`admin-badge`,a(S)[n.status]])},t(a(x)[n.status]),3)]),o(`div`,ce,[o(`span`,null,t(n.customerName),1),o(`span`,null,t(a(y)(n.amount)),1),n.paidAmount==null?p(``,!0):(e(),s(`span`,R,`پرداختی: `+t(a(y)(n.paidAmount)),1)),o(`span`,z,t(n.trackingCode),1)]),n.status===`pending_review`||n.status===`approved`?(e(),s(`div`,B,[n.status===`pending_review`?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,V)):p(``,!0),n.status===`pending_review`?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,H)):p(``,!0),n.status===`approved`?(e(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,U)):p(``,!0)])):p(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/CashPaymentsView-C7RaPyP8.js b/dist/assets/CashPaymentsView-C7RaPyP8.js deleted file mode 100644 index 06aa9ca..0000000 --- a/dist/assets/CashPaymentsView-C7RaPyP8.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,G as r,J as i,N as a,P as o,Q as s,V as ee,X as te,Z as c,bt as l,d as u,dt as d,et as f,gt as ne,i as p,it as m,lt as h,n as g,rt as _,st as re,x as ie,xt as v,yt as y,z as ae}from"./index-B2VD3zy8.js";import{t as oe}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as se}from"./AdminSelect-BeLNl2Qz.js";import{n as b,t as x}from"./adminLabels-Cz9ccm1Z.js";var S={class:`cash-payments-page`},C={class:`cash-payments-page__filters admin-card`},w={class:`cash-payments-page__search`},T={class:`cash-payments-page__table admin-card desktop-only`},E={class:`admin-table-wrap`},D={class:`admin-table`},O={dir:`ltr`},k={key:0,class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M={key:1,class:`admin-action-group`},N=[`disabled`,`onClick`],P={key:2},F={class:`compact-only admin-card-list`},I={class:`admin-card-item__header`},L={class:`admin-card-item__title`},ce={class:`admin-card-item__meta`},R={key:0},z={dir:`ltr`},B={key:0,class:`admin-card-item__actions`},V=[`disabled`,`onClick`],H=[`disabled`,`onClick`],U=[`disabled`,`onClick`],W=ee(m({__name:`CashPaymentsView`,setup(ee){let m=n(),W=y([]),G=y(m.query.order??``),K=y(`all`),q=y(!0),J=ae(),Y=y(null),le=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار تأیید`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`},{value:`expired`,label:`منقضی‌شده`}],X=te(()=>{let e=W.value;K.value!==`all`&&(e=e.filter(e=>e.status===K.value));let t=G.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingCode.includes(t))),e});async function ue(){q.value=!0;try{W.value=await u.list()}catch(e){J.error(e instanceof a?e.message:`بارگذاری پرداخت‌ها انجام نشد.`)}finally{q.value=!1}}re(()=>{ue()});async function Z(e){Y.value=e.id;try{let t=await u.updateStatus(e.id,{status:`approved`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.success(`پرداخت سفارش ${e.orderNumber} تأیید شد.`)}catch(e){J.error(e instanceof a?e.message:`تأیید پرداخت انجام نشد.`)}finally{Y.value=null}}async function Q(e){Y.value=e.id;try{await ie.updateStatus(e.orderId,{status:`final_approved`,note:`تأیید نهایی پس از تأیید رسید نقدی`}),J.success(`سفارش ${e.orderNumber} تأیید نهایی شد.`)}catch(e){J.error(e instanceof a?e.message:`تأیید نهایی انجام نشد.`)}finally{Y.value=null}}async function $(e){Y.value=e.id;try{let t=await u.updateStatus(e.id,{status:`rejected`}),n=W.value.findIndex(t=>t.id===e.id);n!==-1&&(W.value[n]={...W.value[n],...t}),J.warning(`پرداخت سفارش ${e.orderNumber} رد شد.`)}catch(e){J.error(e instanceof a?e.message:`رد پرداخت انجام نشد.`)}finally{Y.value=null}}return(n,a)=>(h(),f(`div`,S,[a[3]||=c(`div`,{class:`admin-page-header`},[c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`پرداخت‌های نقدی`)])],-1),c(`div`,C,[c(`div`,w,[_(o,{name:`search`,size:18}),ne(c(`input`,{"onUpdate:modelValue":a[0]||=e=>G.value=e,type:`search`,class:`cash-payments-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، پیگیری...`},null,512),[[r,G.value]])]),_(se,{modelValue:K.value,"onUpdate:modelValue":a[1]||=e=>K.value=e,class:`cash-payments-page__status-select`,"aria-label":`فیلتر وضعیت پرداخت`,options:le},null,8,[`modelValue`])]),q.value?(h(),s(oe,{key:0,variant:`table`})):(h(),f(i,{key:1},[c(`div`,T,[c(`div`,E,[c(`table`,D,[a[2]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`شماره سفارش`),c(`th`,null,`مشتری`),c(`th`,null,`مبلغ فاکتور`),c(`th`,null,`مبلغ واریزی`),c(`th`,null,`تاریخ واریز`),c(`th`,null,`شماره پیگیری`),c(`th`,null,`پایان اعتبار`),c(`th`,null,`وضعیت`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(h(!0),f(i,null,d(X.value,e=>(h(),f(`tr`,{key:e.id},[c(`td`,null,t(e.orderNumber),1),c(`td`,null,t(e.customerName),1),c(`td`,null,t(l(g)(e.amount)),1),c(`td`,null,t(e.paidAmount?l(g)(e.paidAmount):`—`),1),c(`td`,null,t(e.transferDate?l(p)(e.transferDate):`—`),1),c(`td`,O,t(e.trackingCode),1),c(`td`,null,t(l(p)(e.expiresAt)),1),c(`td`,null,[c(`span`,{class:v([`admin-badge`,l(x)[e.status]])},t(l(b)[e.status]),3)]),c(`td`,null,[e.status===`pending_review`?(h(),f(`div`,k,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Z(e)},` تأیید `,8,A),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>$(e)},` رد `,8,j)])):e.status===`approved`?(h(),f(`div`,M,[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===e.id,onClick:t=>Q(e)},` تأیید نهایی سفارش `,8,N)])):(h(),f(`span`,P,`—`))])]))),128))])])])]),c(`div`,F,[(h(!0),f(i,null,d(X.value,n=>(h(),f(`article`,{key:n.id,class:`admin-card-item`},[c(`div`,I,[c(`p`,L,t(n.orderNumber),1),c(`span`,{class:v([`admin-badge`,l(x)[n.status]])},t(l(b)[n.status]),3)]),c(`div`,ce,[c(`span`,null,t(n.customerName),1),c(`span`,null,t(l(g)(n.amount)),1),n.paidAmount==null?e(``,!0):(h(),f(`span`,R,`پرداختی: `+t(l(g)(n.paidAmount)),1)),c(`span`,z,t(n.trackingCode),1)]),n.status===`pending_review`||n.status===`approved`?(h(),f(`div`,B,[n.status===`pending_review`?(h(),f(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Z(n)},` تأیید `,8,V)):e(``,!0),n.status===`pending_review`?(h(),f(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>$(n)},` رد `,8,H)):e(``,!0),n.status===`approved`?(h(),f(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--primary admin-btn--xs`,disabled:Y.value===n.id,onClick:e=>Q(n)},` تأیید نهایی سفارش `,8,U)):e(``,!0)])):e(``,!0)]))),128))])],64))]))}}),[[`__scopeId`,`data-v-9afb2a83`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-DQu3_M_v.js b/dist/assets/CatalogRequestsView-DQu3_M_v.js new file mode 100644 index 0000000..1f64cd0 --- /dev/null +++ b/dist/assets/CatalogRequestsView-DQu3_M_v.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as s,h as c,j as l,l as u,m as d,r as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as h,f as g,i as _,z as v}from"./index-CXa4EMLW.js";import{t as y}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as b}from"./BaseEmptyState-BmO9aDcK.js";import{t as x}from"./AdminSelect-9UfEJQzN.js";var S={class:`admin-page`},C={class:`admin-page__head`},w={class:`request-card__top`},T={class:`muted`,dir:`ltr`},E={class:`badge`},D={key:0,class:`muted`},O={class:`admin-table`},k={dir:`ltr`},A={key:0,class:`movements`},j={class:`muted`},M=p(s({__name:`CatalogRequestsView`,setup(s){let p=[{value:``,label:`همه وضعیت‌ها`},{value:`new`,label:`درخواست جدید`},{value:`approved`,label:`تأیید شده`},{value:`ready_to_ship`,label:`آماده ارسال`},{value:`delivered`,label:`تحویل به مشتری`},{value:`returned`,label:`بازگردانده شده`},{value:`cancelled`,label:`لغو شده`}],M=[{value:`warehouse`,label:`انبار`},{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],N=Object.fromEntries(p.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=r([]),I=r(``),L=r(!0),R=r(null),z=v();async function B(){L.value=!0;try{F.value=await g.list(I.value||void 0)}catch(e){z.error(e instanceof h?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await g.updateStatus(e,t),z.success(`وضعیت به‌روز شد`),await B()}catch(e){z.error(e instanceof h?e.message:`به‌روزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await g.updateHolder(e,{holderType:t}),z.success(`محل نگهداری به‌روز شد`),await B()}catch(e){z.error(e instanceof h?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return n(()=>{B()}),(n,r)=>(e(),o(`div`,S,[a(`header`,C,[r[1]||=a(`div`,null,[a(`h1`,null,`درخواست کالیته فیزیکی`),a(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),c(x,{modelValue:I.value,"onUpdate:modelValue":[r[0]||=e=>I.value=e,B],options:p},null,8,[`modelValue`])]),L.value?(e(),u(y,{key:0,variant:`cards`})):F.value.length?(e(!0),o(f,{key:2},l(F.value,n=>(e(),o(`div`,{key:n.id,class:`request-card`},[a(`div`,w,[a(`div`,null,[a(`strong`,null,t(n.customerName),1),a(`span`,T,t(n.customerPhone),1),a(`span`,E,t(i(N)[n.status]??n.status),1)]),c(x,{"model-value":n.status,options:p.filter(e=>e.value),"onUpdate:modelValue":e=>V(n.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),n.note?(e(),o(`p`,D,t(n.note),1)):m(``,!0),a(`table`,O,[r[2]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد`),a(`th`,null,`محل`)])],-1),a(`tbody`,null,[(e(!0),o(f,null,l(n.items,n=>(e(),o(`tr`,{key:n.id},[a(`td`,null,t(n.productName),1),a(`td`,k,t(n.productCode),1),a(`td`,null,t(n.quantity),1),a(`td`,null,[c(x,{"model-value":n.holderType,options:M,"onUpdate:modelValue":e=>H(n.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),n.movements?.length?(e(),o(`ul`,A,[(e(!0),o(f,null,l(n.movements,n=>(e(),o(`li`,{key:n.id},[d(t(U(n.fromHolder))+` → `+t(U(n.toHolder))+` `,1),a(`span`,j,t(i(_)(n.movedAt)),1)]))),128))])):m(``,!0)])]))),128))])])]))),128)):(e(),u(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-DSpZCB11.js b/dist/assets/CatalogRequestsView-DSpZCB11.js deleted file mode 100644 index b7b8aa9..0000000 --- a/dist/assets/CatalogRequestsView-DSpZCB11.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,J as n,N as r,Q as i,V as a,Z as o,bt as s,dt as c,et as l,f as u,i as d,it as f,lt as p,nt as m,rt as h,st as g,yt as _,z as v}from"./index-B2VD3zy8.js";import{t as y}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as b}from"./BaseEmptyState-DGu6Pfui.js";import{t as x}from"./AdminSelect-BeLNl2Qz.js";var S={class:`admin-page`},C={class:`admin-page__head`},w={class:`request-card__top`},T={class:`muted`,dir:`ltr`},E={class:`badge`},D={key:0,class:`muted`},O={class:`admin-table`},k={dir:`ltr`},A={key:0,class:`movements`},j={class:`muted`},M=a(f({__name:`CatalogRequestsView`,setup(a){let f=[{value:``,label:`همه وضعیت‌ها`},{value:`new`,label:`درخواست جدید`},{value:`approved`,label:`تأیید شده`},{value:`ready_to_ship`,label:`آماده ارسال`},{value:`delivered`,label:`تحویل به مشتری`},{value:`returned`,label:`بازگردانده شده`},{value:`cancelled`,label:`لغو شده`}],M=[{value:`warehouse`,label:`انبار`},{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],N=Object.fromEntries(f.filter(e=>e.value).map(e=>[e.value,e.label])),P=Object.fromEntries(M.map(e=>[e.value,e.label])),F=_([]),I=_(``),L=_(!0),R=_(null),z=v();async function B(){L.value=!0;try{F.value=await u.list(I.value||void 0)}catch(e){z.error(e instanceof r?e.message:`بارگذاری انجام نشد`)}finally{L.value=!1}}async function V(e,t){try{await u.updateStatus(e,t),z.success(`وضعیت به‌روز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`به‌روزرسانی ناموفق بود`)}}async function H(e,t){if(!R.value){R.value=e;try{await u.updateHolder(e,{holderType:t}),z.success(`محل نگهداری به‌روز شد`),await B()}catch(e){z.error(e instanceof r?e.message:`به‌روزرسانی محل ناموفق بود`)}finally{R.value=null}}}function U(e){return P[e]??e}return g(()=>{B()}),(r,a)=>(p(),l(`div`,S,[o(`header`,C,[a[1]||=o(`div`,null,[o(`h1`,null,`درخواست کالیته فیزیکی`),o(`p`,null,`بررسی، گردش وضعیت و محل نگهداری اقلام`)],-1),h(x,{modelValue:I.value,"onUpdate:modelValue":[a[0]||=e=>I.value=e,B],options:f},null,8,[`modelValue`])]),L.value?(p(),i(y,{key:0,variant:`cards`})):F.value.length?(p(!0),l(n,{key:2},c(F.value,r=>(p(),l(`div`,{key:r.id,class:`request-card`},[o(`div`,w,[o(`div`,null,[o(`strong`,null,t(r.customerName),1),o(`span`,T,t(r.customerPhone),1),o(`span`,E,t(s(N)[r.status]??r.status),1)]),h(x,{"model-value":r.status,options:f.filter(e=>e.value),"onUpdate:modelValue":e=>V(r.id,String(e))},null,8,[`model-value`,`options`,`onUpdate:modelValue`])]),r.note?(p(),l(`p`,D,t(r.note),1)):e(``,!0),o(`table`,O,[a[2]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`محصول`),o(`th`,null,`کد`),o(`th`,null,`تعداد`),o(`th`,null,`محل`)])],-1),o(`tbody`,null,[(p(!0),l(n,null,c(r.items,r=>(p(),l(`tr`,{key:r.id},[o(`td`,null,t(r.productName),1),o(`td`,k,t(r.productCode),1),o(`td`,null,t(r.quantity),1),o(`td`,null,[h(x,{"model-value":r.holderType,options:M,"onUpdate:modelValue":e=>H(r.id,String(e))},null,8,[`model-value`,`onUpdate:modelValue`]),r.movements?.length?(p(),l(`ul`,A,[(p(!0),l(n,null,c(r.movements,e=>(p(),l(`li`,{key:e.id},[m(t(U(e.fromHolder))+` → `+t(U(e.toHolder))+` `,1),o(`span`,j,t(s(d)(e.movedAt)),1)]))),128))])):e(``,!0)])]))),128))])])]))),128)):(p(),i(b,{key:1,title:`درخواستی نیست`}))]))}}),[[`__scopeId`,`data-v-747d8f88`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsView-BqUCTvB5.js b/dist/assets/CatalogsView-BqUCTvB5.js deleted file mode 100644 index 8ed9895..0000000 --- a/dist/assets/CatalogsView-BqUCTvB5.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,J as r,N as i,P as ee,Q as a,R as te,St as o,V as s,X as c,Z as l,dt as u,et as d,gt as f,h as ne,ht as p,it as m,lt as h,nt as g,p as _,q as re,rt as v,st as ie,vt as ae,xt as y,yt as b,z as oe}from"./index-B2VD3zy8.js";import{t as se}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as ce}from"./BaseSwitch-dp2xMemS.js";import{t as le}from"./BaseEmptyState-DGu6Pfui.js";import{t as ue}from"./AdminImagePicker-C0OGC-bB.js";import{t as x}from"./AdminSelect-BeLNl2Qz.js";import{t as S}from"./ActiveSwitchCell-DIzTn08M.js";var de={class:`catalogs-page`},fe={class:`catalogs-page__filters admin-card`},pe={class:`catalogs-page__search`},me={key:2,class:`catalogs-page__table admin-card desktop-only`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`status`},be={class:`actions`},xe=[`onClick`],C={key:3,class:`compact-only admin-card-list`},w={class:`admin-card-item__header`},T={class:`admin-card-item__title`},E={class:`admin-card-item__meta`},D={class:`admin-card-item__actions`},O=[`onClick`],k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__field`},j={class:`admin-form__row`},M={class:`admin-form__field`},Se={class:`admin-form__field`},Ce={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee=[`disabled`],N=s(m({__name:`CatalogsView`,setup(s){let m=b([]),N=b([]),P=b(``),F=b(`all`),I=b(!0),L=b(null),R=b(null),z=b(``),B=b(!1),V=oe(),De=c(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Oe=c(()=>N.value.map(e=>({value:e.id,label:e.name}))),H=()=>({companyId:N.value[0]?.id??``,code:``,name:``,displayOrder:m.value.length+1,isActive:!0,imageUrl:null}),U=ae(H()),ke=c(()=>L.value!==null),W=c(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=c(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=c(()=>P.value.trim().length>0||F.value!==`all`),q=c(()=>{let e=m.value;F.value!==`all`&&(e=e.filter(e=>e.companyId===F.value));let t=P.value.trim();return t&&(e=e.filter(e=>e.code.includes(t)||e.name.includes(t)||e.companyName.includes(t))),e});async function Ae(){I.value=!0;try{let[e,t]=await Promise.all([_.list(),ne.list()]);m.value=e,N.value=t}catch(e){V.error(e instanceof i?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}ie(()=>{Ae()});function J(e){return N.value.find(t=>t.id===e)?.name??`—`}function Y(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function X(e){L.value=`edit`,R.value=e.id,U.companyId=e.companyId,U.code=e.code,U.name=e.name,U.displayOrder=e.displayOrder,U.isActive=e.isActive,U.imageUrl=e.imageUrl??null,z.value=``}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!G.value){z.value=`کد، نام و شرکت الزامی هستند.`;return}B.value=!0;try{if(L.value===`edit`&&R.value){let e=await _.update(R.value,{code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl}),t=m.value.findIndex(e=>e.id===R.value);t!==-1&&(m.value[t]={...m.value[t],...e,companyName:J(U.companyId)}),V.success(`اطلاعات کالیته به‌روزرسانی شد.`)}else{let e=await _.create({companyId:U.companyId,code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl});m.value.push({...e,companyName:e.companyName||J(U.companyId),productCount:e.productCount??0}),V.success(`کالیته جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof i?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await _.setActive(e,t)}function je(){P.value=``,F.value=`all`}return(i,s)=>(h(),d(`div`,de,[l(`div`,{class:`admin-page-header`},[s[8]||=l(`div`,null,[l(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),l(`div`,fe,[l(`div`,pe,[v(ee,{name:`search`,size:18}),f(l(`input`,{"onUpdate:modelValue":s[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[n,P.value]])]),v(x,{modelValue:F.value,"onUpdate:modelValue":s[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:De.value},null,8,[`modelValue`,`options`])]),I.value?(h(),a(se,{key:0,variant:`table`})):q.value.length?(h(),d(`div`,me,[l(`div`,he,[l(`table`,ge,[s[9]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`تصویر`),l(`th`,null,`کد`),l(`th`,null,`نام کالیته`),l(`th`,null,`شرکت`),l(`th`,{class:`numeric`},`ترتیب`),l(`th`,{class:`numeric`},`تعداد محصول`),l(`th`,{class:`status`},`وضعیت`),l(`th`,{class:`actions`},`عملیات`)])],-1),l(`tbody`,null,[(h(!0),d(r,null,u(q.value,e=>(h(),d(`tr`,{key:e.id},[l(`td`,null,[l(`span`,{class:y([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:o(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),l(`td`,null,t(e.code),1),l(`td`,null,t(e.name),1),l(`td`,null,t(e.companyName),1),l(`td`,_e,t(e.displayOrder),1),l(`td`,ve,t(e.productCount),1),l(`td`,ye,[v(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),l(`td`,be,[l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(h(),a(le,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:p(()=>[K.value?(h(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:je},` پاک کردن فیلترها `)):(h(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کالیته `))]),_:1},8,[`title`,`description`])),!I.value&&q.value.length?(h(),d(`div`,C,[(h(!0),d(r,null,u(q.value,e=>(h(),d(`article`,{key:e.id,class:`admin-card-item`},[l(`div`,w,[l(`span`,{class:y([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:o(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6),l(`p`,T,`کالیته `+t(e.code)+` — `+t(e.name),1),v(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),l(`div`,E,[l(`span`,null,t(e.companyName),1),l(`span`,null,t(e.productCount)+` محصول`,1),l(`span`,null,`ترتیب: `+t(e.displayOrder),1)]),l(`div`,D,[l(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,O)])]))),128))])):e(``,!0),v(te,{open:ke.value,title:W.value,size:`lg`,onClose:Z},{footer:p(()=>[l(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},t(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ee)]),default:p(()=>[l(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[z.value?(h(),d(`p`,k,t(z.value),1)):e(``,!0),l(`div`,A,[s[10]||=l(`label`,null,[g(`شرکت `),l(`span`,{class:`admin-form__required`},`*`)],-1),v(x,{modelValue:U.companyId,"onUpdate:modelValue":s[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Oe.value},null,8,[`modelValue`,`options`])]),l(`div`,j,[l(`div`,M,[s[11]||=l(`label`,{for:`catalog-code`},[g(`کد کالیته `),l(`span`,{class:`admin-form__required`},`*`)],-1),f(l(`input`,{id:`catalog-code`,"onUpdate:modelValue":s[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[n,U.code]])]),l(`div`,Se,[s[12]||=l(`label`,{for:`catalog-name`},[g(`نام کالیته `),l(`span`,{class:`admin-form__required`},`*`)],-1),f(l(`input`,{id:`catalog-name`,"onUpdate:modelValue":s[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[n,U.name]])])]),l(`div`,Ce,[l(`div`,we,[s[13]||=l(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),f(l(`input`,{id:`catalog-order`,"onUpdate:modelValue":s[5]||=e=>U.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[n,U.displayOrder,void 0,{number:!0}]])]),l(`div`,Te,[v(ce,{modelValue:U.isActive,"onUpdate:modelValue":s[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])]),v(ue,{modelValue:U.imageUrl,"onUpdate:modelValue":s[7]||=e=>U.imageUrl=e,label:`تصویر بنر کالیته`},null,8,[`modelValue`])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-4fb827ad`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsView-DJJrDHxo.js b/dist/assets/CatalogsView-DJJrDHxo.js new file mode 100644 index 0000000..159ccd4 --- /dev/null +++ b/dist/assets/CatalogsView-DJJrDHxo.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot as r,T as ee,Tt as i,V as a,Y as o,Z as s,c,d as l,g as te,h as u,j as d,l as f,m as p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{K as ne,N as v,P as re,R as ie,W as y,h as ae,p as b,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ce}from"./BaseSwitch-TV5Yvtf7.js";import{t as le}from"./BaseEmptyState-BmO9aDcK.js";import{t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as x}from"./AdminSelect-9UfEJQzN.js";import{t as S}from"./ActiveSwitchCell-DJZQHZ-8.js";var de={class:`catalogs-page`},fe={class:`catalogs-page__filters admin-card`},pe={class:`catalogs-page__search`},me={key:2,class:`catalogs-page__table admin-card desktop-only`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={class:`numeric`},ve={class:`numeric`},ye={class:`status`},be={class:`actions`},xe=[`onClick`],C={key:3,class:`compact-only admin-card-list`},w={class:`admin-card-item__header`},T={class:`admin-card-item__title`},E={class:`admin-card-item__meta`},D={class:`admin-card-item__actions`},O=[`onClick`],k={key:0,class:`admin-form__error`,role:`alert`},A={class:`admin-form__field`},j={class:`admin-form__row`},M={class:`admin-form__field`},Se={class:`admin-form__field`},Ce={class:`admin-form__row`},we={class:`admin-form__field`},Te={class:`admin-form__field`},Ee=[`disabled`],N=g(te({__name:`CatalogsView`,setup(te){let g=s([]),N=s([]),P=s(``),F=s(`all`),I=s(!0),L=s(null),R=s(null),z=s(``),B=s(!1),V=oe(),De=h(()=>[{value:`all`,label:`همه شرکت‌ها`},...N.value.map(e=>({value:e.id,label:e.name}))]),Oe=h(()=>N.value.map(e=>({value:e.id,label:e.name}))),H=()=>({companyId:N.value[0]?.id??``,code:``,name:``,displayOrder:g.value.length+1,isActive:!0,imageUrl:null}),U=o(H()),ke=h(()=>L.value!==null),W=h(()=>L.value===`edit`?`ویرایش کالیته`:`افزودن کالیته`),G=h(()=>U.code.trim()&&U.name.trim()&&U.companyId),K=h(()=>P.value.trim().length>0||F.value!==`all`),q=h(()=>{let e=g.value;F.value!==`all`&&(e=e.filter(e=>e.companyId===F.value));let t=P.value.trim();return t&&(e=e.filter(e=>e.code.includes(t)||e.name.includes(t)||e.companyName.includes(t))),e});async function Ae(){I.value=!0;try{let[e,t]=await Promise.all([b.list(),ae.list()]);g.value=e,N.value=t}catch(e){V.error(e instanceof v?e.message:`بارگذاری کالیته‌ها انجام نشد.`)}finally{I.value=!1}}ee(()=>{Ae()});function J(e){return N.value.find(t=>t.id===e)?.name??`—`}function Y(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function X(e){L.value=`edit`,R.value=e.id,U.companyId=e.companyId,U.code=e.code,U.name=e.name,U.displayOrder=e.displayOrder,U.isActive=e.isActive,U.imageUrl=e.imageUrl??null,z.value=``}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!G.value){z.value=`کد، نام و شرکت الزامی هستند.`;return}B.value=!0;try{if(L.value===`edit`&&R.value){let e=await b.update(R.value,{code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl}),t=g.value.findIndex(e=>e.id===R.value);t!==-1&&(g.value[t]={...g.value[t],...e,companyName:J(U.companyId)}),V.success(`اطلاعات کالیته به‌روزرسانی شد.`)}else{let e=await b.create({companyId:U.companyId,code:U.code.trim(),name:U.name.trim(),displayOrder:Number(U.displayOrder)||1,isActive:U.isActive,imageUrl:U.imageUrl});g.value.push({...e,companyName:e.companyName||J(U.companyId),productCount:e.productCount??0}),V.success(`کالیته جدید ثبت شد.`)}Z()}catch(e){V.error(e instanceof v?e.message:`ذخیره کالیته انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await b.setActive(e,t)}function je(){P.value=``,F.value=`all`}return(ee,o)=>(n(),l(`div`,de,[c(`div`,{class:`admin-page-header`},[o[8]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`کالیته‌ها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کالیته `)]),c(`div`,fe,[c(`div`,pe,[u(re,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":o[0]||=e=>P.value=e,type:`search`,class:`catalogs-page__search-input`,placeholder:`جستجو بر اساس کد یا نام...`},null,512),[[y,P.value]])]),u(x,{modelValue:F.value,"onUpdate:modelValue":o[1]||=e=>F.value=e,class:`catalogs-page__company-filter`,"aria-label":`فیلتر شرکت`,options:De.value},null,8,[`modelValue`,`options`])]),I.value?(n(),f(se,{key:0,variant:`table`})):q.value.length?(n(),l(`div`,me,[c(`div`,he,[c(`table`,ge,[o[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`تصویر`),c(`th`,null,`کد`),c(`th`,null,`نام کالیته`),c(`th`,null,`شرکت`),c(`th`,{class:`numeric`},`ترتیب`),c(`th`,{class:`numeric`},`تعداد محصول`),c(`th`,{class:`status`},`وضعیت`),c(`th`,{class:`actions`},`عملیات`)])],-1),c(`tbody`,null,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`tr`,{key:e.id},[c(`td`,null,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6)]),c(`td`,null,r(e.code),1),c(`td`,null,r(e.name),1),c(`td`,null,r(e.companyName),1),c(`td`,_e,r(e.displayOrder),1),c(`td`,ve,r(e.productCount),1),c(`td`,ye,[u(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`td`,be,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,xe)])]))),128))])])])])):(n(),f(le,{key:1,class:`admin-card`,icon:`catalogs`,title:K.value?`نتیجه‌ای یافت نشد`:`کالیته‌ای ثبت نشده`,description:K.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کالیته را ثبت کنید.`},{default:e(()=>[K.value?(n(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:je},` پاک کردن فیلترها `)):(n(),l(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کالیته `))]),_:1},8,[`title`,`description`])),!I.value&&q.value.length?(n(),l(`div`,C,[(n(!0),l(m,null,d(q.value,e=>(n(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,w,[c(`span`,{class:i([`catalog-thumb`,{"catalog-thumb--empty":!e.imageUrl}]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,6),c(`p`,T,`کالیته `+r(e.code)+` — `+r(e.name),1),u(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`کالیته`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`div`,E,[c(`span`,null,r(e.companyName),1),c(`span`,null,r(e.productCount)+` محصول`,1),c(`span`,null,`ترتیب: `+r(e.displayOrder),1)]),c(`div`,D,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,O)])]))),128))])):_(``,!0),u(ie,{open:ke.value,title:W.value,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!G.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت کالیته`),9,Ee)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[z.value?(n(),l(`p`,k,r(z.value),1)):_(``,!0),c(`div`,A,[o[10]||=c(`label`,null,[p(`شرکت `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(x,{modelValue:U.companyId,"onUpdate:modelValue":o[2]||=e=>U.companyId=e,block:``,"aria-label":`انتخاب شرکت`,placeholder:`انتخاب شرکت`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,j,[c(`div`,M,[o[11]||=c(`label`,{for:`catalog-code`},[p(`کد کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-code`,"onUpdate:modelValue":o[3]||=e=>U.code=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[y,U.code]])]),c(`div`,Se,[o[12]||=c(`label`,{for:`catalog-name`},[p(`نام کالیته `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`catalog-name`,"onUpdate:modelValue":o[4]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[y,U.name]])])]),c(`div`,Ce,[c(`div`,we,[o[13]||=c(`label`,{for:`catalog-order`},`ترتیب نمایش`,-1),a(c(`input`,{id:`catalog-order`,"onUpdate:modelValue":o[5]||=e=>U.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[y,U.displayOrder,void 0,{number:!0}]])]),c(`div`,Te,[u(ce,{modelValue:U.isActive,"onUpdate:modelValue":o[6]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])]),u(ue,{modelValue:U.imageUrl,"onUpdate:modelValue":o[7]||=e=>U.imageUrl=e,label:`تصویر بنر کالیته`},null,8,[`modelValue`])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-4fb827ad`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-DAT9P8-Q.js b/dist/assets/CategoriesView-DAT9P8-Q.js new file mode 100644 index 0000000..d41349c --- /dev/null +++ b/dist/assets/CategoriesView-DAT9P8-Q.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,p,r as m,s as h,t as g,u as _}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{B as v,C as y,N as b,W as x,z as ee}from"./index-CXa4EMLW.js";import{t as te}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./BaseSwitch-TV5Yvtf7.js";import{t as C}from"./AdminImagePicker-C4toq7MG.js";import{t as w}from"./AdminSelect-9UfEJQzN.js";var T={class:`category-icon`,"aria-hidden":`true`},E=[`width`,`height`,`stroke`,`stroke-width`],D=[`width`,`height`,`stroke`,`stroke-width`],O=[`width`,`height`,`stroke`,`stroke-width`],k=[`width`,`height`,`stroke`],A=[`width`,`height`,`stroke`],j=[`width`,`height`,`stroke`],M=g(l({__name:`CategoryIcon`,props:{name:{},size:{default:18},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(e){let n=e,r={bolt:`vuesax-linear:flash`,feather:`vuesax-linear:pen-add`,diamond:`vuesax-linear:diamonds`,grid:`vuesax-linear:element-3`,bag:`vuesax-linear:shopping-bag`,weight:`vuesax-linear:shopping-bag`,"id-card":`vuesax-linear:personalcard`,catalog:`vuesax-linear:category`,headset:`vuesax-linear:headphone`,home:`vuesax-linear:home`},i=h(()=>r[n.name]);return(n,r)=>(t(),c(`span`,T,[i.value?(t(),f(v,{key:0,icon:i.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`])):e.name===`shirt`?(t(),c(`svg`,{key:1,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[0]||=[s(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`},null,-1),s(`path`,{d:`M12 7.75V18.5`},null,-1)]],8,E)):e.name===`suit`?(t(),c(`svg`,{key:2,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[1]||=[s(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`},null,-1),s(`path`,{d:`M12 5.5v13`},null,-1),s(`path`,{d:`M7.5 9 12 11.75 16.5 9`},null,-1),s(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`},null,-1)]],8,D)):e.name===`trousers`?(t(),c(`svg`,{key:3,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":e.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[2]||=[s(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`},null,-1),s(`path`,{d:`M12 8.75v11`},null,-1),s(`path`,{d:`M8 7.25h8`},null,-1)]],8,O)):e.name===`ruler`?(t(),c(`svg`,{key:4,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[3]||=[p(``,5)]],8,k)):e.name===`composition`?(t(),c(`svg`,{key:5,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...r[4]||=[s(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,A)):e.name===`weave`?(t(),c(`svg`,{key:6,width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,stroke:e.color,"stroke-width":`1.6`,"stroke-linecap":`round`},[...r[5]||=[p(``,7)]],8,j)):_(``,!0)]))}}),[[`__scopeId`,`data-v-76e4dc13`]]),ne={class:`categories-admin`},re={class:`admin-page-header`},ie=[`disabled`],ae={key:1,class:`categories-admin__grid`},oe={class:`admin-card categories-panel`},se={class:`categories-panel__head`},ce={key:0,class:`categories-panel__add`},le={key:1,class:`categories-panel__empty`},ue={key:2,class:`categories-panel__list`},N={class:`category-row__fields`},P={class:`category-row__line`},F=[`onUpdate:modelValue`],I={class:`category-row__line`},L=[`onUpdate:modelValue`],R={class:`category-row__line`},z={class:`category-row__id`,dir:`ltr`},B=[`onClick`],V={class:`admin-card categories-panel`},H={class:`categories-panel__head`},U={key:0,class:`categories-panel__add`},de={key:1,class:`categories-panel__empty`},fe={key:2,class:`categories-panel__list`},pe={class:`category-row__fields`},W={class:`category-row__line`},me=[`onUpdate:modelValue`],he={class:`category-row__line`},ge=[`onUpdate:modelValue`],_e={class:`category-row__line`},ve=[`onUpdate:modelValue`],ye={class:`category-row__line`},be={class:`category-row__id`,dir:`ltr`},xe=[`onClick`],G=g(l({__name:`CategoriesView`,setup(l){let p=o([]),g=o([]),v=a({}),T=o(!0),E=o(!1),D=ee(),O=o(!1),k=o(!1),A=[{value:`shirt`,label:`پیراهن`},{value:`suit`,label:`کت‌شلوار`},{value:`trousers`,label:`شلوار`},{value:`bolt`,label:`آذرخش`},{value:`feather`,label:`پر`},{value:`diamond`,label:`الماس`},{value:`grid`,label:`شبکه`},{value:`bag`,label:`کیف`},{value:`id-card`,label:`کارت`},{value:`catalog`,label:`کالیته`},{value:`headset`,label:`پشتیبانی`},{value:`home`,label:`خانه`},{value:`ruler`,label:`عرض`},{value:`composition`,label:`جنس`},{value:`weight`,label:`وزن`},{value:`weave`,label:`نوع بافت`}];function j(e){return e===`shirt`?`shirt`:e===`suit`?`suit`:e===`trousers`?`trousers`:`grid`}function G(e){return e===`summer`?`bolt`:e===`winter`?`feather`:`diamond`}let K=a({id:``,title:``,subtitle:`مشاهده محصولات`,icon:`grid`,showTitle:!0,showSubtitle:!0,showIcon:!0}),q=a({id:``,title:``,description:``,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0});function J(e){return e!==!1}let Y=h(()=>p.value.map(e=>e.id)),X=h(()=>g.value.map(e=>e.id));function Z(e){return e.trim().toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_\u0600-\u06ff-]/gi,``).slice(0,48)}function Q(){let e=[...Y.value,...X.value];for(let t of e)t in v||(v[t]=null);for(let t of Object.keys(v))e.includes(t)||delete v[t]}async function $(){T.value=!0;try{let e=await y.get();p.value=e.categoryDefsJson?.usage?.length?e.categoryDefsJson.usage.map(e=>({id:e.id,title:e.title,subtitle:e.subtitle||`مشاهده محصولات`,icon:e.icon||j(e.id),showTitle:J(e.showTitle),showSubtitle:J(e.showSubtitle),showIcon:J(e.showIcon)})):[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}],g.value=e.categoryDefsJson?.seasons?.length?e.categoryDefsJson.seasons.map(e=>({id:e.id,title:e.title,description:e.description||``,ctaLabel:e.ctaLabel||`مشاهده محصولات`,icon:e.icon||G(e.id),showTitle:J(e.showTitle),showDescription:J(e.showDescription),showCta:J(e.showCta),showIcon:J(e.showIcon)})):[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}],Q();let t=e.categoryImagesJson??{};for(let e of Object.keys(v))v[e]=t[e]??null}catch(e){D.error(e instanceof b?e.message:`بارگذاری دسته‌ها ناموفق بود.`),p.value.length||(p.value=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}]),g.value.length||(g.value=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}]),Q()}finally{T.value=!1}}function Se(){let e=Z(K.id||K.title),t=K.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته کاربرد الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}p.value.push({id:e,title:t,subtitle:K.subtitle.trim()||`مشاهده محصولات`,icon:K.icon,showTitle:K.showTitle,showSubtitle:K.showSubtitle,showIcon:K.showIcon}),v[e]=null,K.id=``,K.title=``,K.subtitle=`مشاهده محصولات`,K.icon=`grid`,K.showTitle=!0,K.showSubtitle=!0,K.showIcon=!0,O.value=!1}function Ce(){let e=Z(q.id||q.title),t=q.title.trim();if(!e||!t){D.error(`شناسه و عنوان دسته فصل الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){D.error(`این شناسه از قبل وجود دارد.`);return}g.value.push({id:e,title:t,description:q.description.trim(),ctaLabel:q.ctaLabel.trim()||`مشاهده محصولات`,icon:q.icon,showTitle:q.showTitle,showDescription:q.showDescription,showCta:q.showCta,showIcon:q.showIcon}),v[e]=null,q.id=``,q.title=``,q.description=``,q.ctaLabel=`مشاهده محصولات`,q.icon=`diamond`,q.showTitle=!0,q.showDescription=!0,q.showCta=!0,q.showIcon=!0,k.value=!1}function we(e){if(p.value.length<=1){D.error(`حداقل یک دسته کاربرد لازم است.`);return}p.value=p.value.filter(t=>t.id!==e),delete v[e]}function Te(e){if(g.value.length<=1){D.error(`حداقل یک دسته فصل لازم است.`);return}g.value=g.value.filter(t=>t.id!==e),delete v[e]}async function Ee(){E.value=!0;try{let e={};for(let[t,n]of Object.entries(v))n&&(e[t]=n);await y.update({categoryDefsJson:{usage:p.value,seasons:g.value},categoryImagesJson:e}),D.success(`دسته‌بندی‌ها ذخیره شد.`),await $()}catch(e){D.error(e instanceof b?e.message:`ذخیره دسته‌بندی‌ها ناموفق بود.`)}finally{E.value=!1}}return r(()=>{$()}),(r,a)=>(t(),c(`div`,ne,[s(`div`,re,[a[8]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`دسته‌بندی‌ها`),s(`p`,{class:`admin-page-header__sub`},` دسته‌های کاربرد و فصل را اضافه کنید. با کلید «نمایش / مخفی» مشخص کنید عنوان و توضیح در اپ کاربر دیده شود. `)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:E.value||T.value,onClick:Ee},n(E.value?`در حال ذخیره...`:`ذخیره تغییرات`),9,ie)]),T.value?(t(),f(te,{key:0,variant:`cards`})):(t(),c(`div`,ae,[s(`section`,oe,[s(`div`,se,[s(`div`,null,[a[9]||=s(`h2`,null,`بر اساس کاربرد`,-1),s(`p`,null,n(p.value.length)+` دسته برای فیلتر محصول در اپ کاربر`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[0]||=e=>O.value=!O.value},n(O.value?`بستن فرم`:`+ افزودن دسته`),1)]),O.value?(t(),c(`div`,ce,[i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>K.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً پارچه‌های مانتویی)`},null,512),[[x,K.title]]),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>K.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً mantle)`},null,512),[[x,K.id]]),i(s(`input`,{"onUpdate:modelValue":a[3]||=e=>K.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,512),[[x,K.subtitle]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Se},`ثبت در لیست`)])):_(``,!0),p.value.length?(t(),c(`div`,ue,[(t(!0),c(m,null,d(p.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":v[r.id],"onUpdate:modelValue":e=>v[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,N,[s(`div`,P,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,F),[[x,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,I,[i(s(`input`,{"onUpdate:modelValue":e=>r.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,8,L),[[x,r.subtitle]]),u(S,{modelValue:r.showSubtitle,"onUpdate:modelValue":e=>r.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,R,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,z,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>we(r.id)},`حذف`,8,B)]))),128))])):(t(),c(`p`,le,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))]),s(`section`,V,[s(`div`,H,[s(`div`,null,[a[10]||=s(`h2`,null,`بر اساس فصل`,-1),s(`p`,null,n(g.value.length)+` دسته فصلی برای فیلتر محصول`,1)]),s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:a[4]||=e=>k.value=!k.value},n(k.value?`بستن فرم`:`+ افزودن دسته`),1)]),k.value?(t(),c(`div`,U,[i(s(`input`,{"onUpdate:modelValue":a[5]||=e=>q.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً بهاره)`},null,512),[[x,q.title]]),i(s(`input`,{"onUpdate:modelValue":a[6]||=e=>q.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً spring)`},null,512),[[x,q.id]]),i(s(`input`,{"onUpdate:modelValue":a[7]||=e=>q.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,512),[[x,q.description]]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Ce},`ثبت در لیست`)])):_(``,!0),g.value.length?(t(),c(`div`,fe,[(t(!0),c(m,null,d(g.value,r=>(t(),c(`article`,{key:r.id,class:`category-row`},[u(C,{"model-value":v[r.id],"onUpdate:modelValue":e=>v[r.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),s(`div`,pe,[s(`div`,W,[i(s(`input`,{"onUpdate:modelValue":e=>r.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,me),[[x,r.title]]),u(S,{modelValue:r.showTitle,"onUpdate:modelValue":e=>r.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,he,[i(s(`input`,{"onUpdate:modelValue":e=>r.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,8,ge),[[x,r.description]]),u(S,{modelValue:r.showDescription,"onUpdate:modelValue":e=>r.showDescription=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,_e,[i(s(`input`,{"onUpdate:modelValue":e=>r.ctaLabel=e,class:`admin-input`,type:`text`,placeholder:`متن لینک (مشاهده محصولات)`},null,8,ve),[[x,r.ctaLabel]]),u(S,{modelValue:r.showCta,"onUpdate:modelValue":e=>r.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`div`,ye,[u(w,{modelValue:r.icon,"onUpdate:modelValue":e=>r.icon=e,options:A,"aria-label":`آیکون`,block:``},{"option-leading":e(({option:e})=>[e?(t(),f(M,{key:0,name:e.value,size:18},null,8,[`name`])):_(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),u(S,{modelValue:r.showIcon,"onUpdate:modelValue":e=>r.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),s(`p`,be,n(r.id),1)]),s(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>Te(r.id)},`حذف`,8,xe)]))),128))])):(t(),c(`p`,de,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))])]))]))}}),[[`__scopeId`,`data-v-092c0b6f`]]);export{G as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-jQSu6NG7.js b/dist/assets/CategoriesView-jQSu6NG7.js deleted file mode 100644 index cfc0967..0000000 --- a/dist/assets/CategoriesView-jQSu6NG7.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,B as t,C as n,Ct as r,G as i,J as a,N as o,Q as s,V as c,X as l,Z as u,dt as d,et as f,gt as p,ht as m,it as h,lt as g,rt as _,st as ee,tt as v,vt as y,yt as b,z as te}from"./index-B2VD3zy8.js";import{t as ne}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as x}from"./BaseSwitch-dp2xMemS.js";import{t as S}from"./AdminImagePicker-C0OGC-bB.js";import{t as C}from"./AdminSelect-BeLNl2Qz.js";var w={class:`category-icon`,"aria-hidden":`true`},T=[`width`,`height`,`stroke`,`stroke-width`],E=[`width`,`height`,`stroke`,`stroke-width`],D=[`width`,`height`,`stroke`,`stroke-width`],O=[`width`,`height`,`stroke`],k=[`width`,`height`,`stroke`],A=[`width`,`height`,`stroke`],j=c(h({__name:`CategoryIcon`,props:{name:{},size:{default:18},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){let r=n,i={bolt:`vuesax-linear:flash`,feather:`vuesax-linear:pen-add`,diamond:`vuesax-linear:diamonds`,grid:`vuesax-linear:element-3`,bag:`vuesax-linear:shopping-bag`,weight:`vuesax-linear:shopping-bag`,"id-card":`vuesax-linear:personalcard`,catalog:`vuesax-linear:category`,headset:`vuesax-linear:headphone`,home:`vuesax-linear:home`},a=l(()=>i[r.name]);return(r,i)=>(g(),f(`span`,w,[a.value?(g(),s(t,{key:0,icon:a.value,size:n.size,"stroke-width":n.strokeWidth,color:n.color},null,8,[`icon`,`size`,`stroke-width`,`color`])):n.name===`shirt`?(g(),f(`svg`,{key:1,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...i[0]||=[u(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`},null,-1),u(`path`,{d:`M12 7.75V18.5`},null,-1)]],8,T)):n.name===`suit`?(g(),f(`svg`,{key:2,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...i[1]||=[u(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`},null,-1),u(`path`,{d:`M12 5.5v13`},null,-1),u(`path`,{d:`M7.5 9 12 11.75 16.5 9`},null,-1),u(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`},null,-1)]],8,E)):n.name===`trousers`?(g(),f(`svg`,{key:3,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...i[2]||=[u(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`},null,-1),u(`path`,{d:`M12 8.75v11`},null,-1),u(`path`,{d:`M8 7.25h8`},null,-1)]],8,D)):n.name===`ruler`?(g(),f(`svg`,{key:4,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...i[3]||=[v(``,5)]],8,O)):n.name===`composition`?(g(),f(`svg`,{key:5,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...i[4]||=[u(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,k)):n.name===`weave`?(g(),f(`svg`,{key:6,width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":`1.6`,"stroke-linecap":`round`},[...i[5]||=[v(``,7)]],8,A)):e(``,!0)]))}}),[[`__scopeId`,`data-v-76e4dc13`]]),re={class:`categories-admin`},ie={class:`admin-page-header`},ae=[`disabled`],oe={key:1,class:`categories-admin__grid`},se={class:`admin-card categories-panel`},ce={class:`categories-panel__head`},le={key:0,class:`categories-panel__add`},ue={key:1,class:`categories-panel__empty`},M={key:2,class:`categories-panel__list`},N={class:`category-row__fields`},P={class:`category-row__line`},F=[`onUpdate:modelValue`],I={class:`category-row__line`},L=[`onUpdate:modelValue`],R={class:`category-row__line`},z={class:`category-row__id`,dir:`ltr`},B=[`onClick`],V={class:`admin-card categories-panel`},H={class:`categories-panel__head`},U={key:0,class:`categories-panel__add`},W={key:1,class:`categories-panel__empty`},de={key:2,class:`categories-panel__list`},fe={class:`category-row__fields`},pe={class:`category-row__line`},me=[`onUpdate:modelValue`],he={class:`category-row__line`},ge=[`onUpdate:modelValue`],_e={class:`category-row__line`},ve=[`onUpdate:modelValue`],ye={class:`category-row__line`},be={class:`category-row__id`,dir:`ltr`},xe=[`onClick`],G=c(h({__name:`CategoriesView`,setup(t){let c=b([]),h=b([]),v=y({}),w=b(!0),T=b(!1),E=te(),D=b(!1),O=b(!1),k=[{value:`shirt`,label:`پیراهن`},{value:`suit`,label:`کت‌شلوار`},{value:`trousers`,label:`شلوار`},{value:`bolt`,label:`آذرخش`},{value:`feather`,label:`پر`},{value:`diamond`,label:`الماس`},{value:`grid`,label:`شبکه`},{value:`bag`,label:`کیف`},{value:`id-card`,label:`کارت`},{value:`catalog`,label:`کالیته`},{value:`headset`,label:`پشتیبانی`},{value:`home`,label:`خانه`},{value:`ruler`,label:`عرض`},{value:`composition`,label:`جنس`},{value:`weight`,label:`وزن`},{value:`weave`,label:`نوع بافت`}];function A(e){return e===`shirt`?`shirt`:e===`suit`?`suit`:e===`trousers`?`trousers`:`grid`}function G(e){return e===`summer`?`bolt`:e===`winter`?`feather`:`diamond`}let K=y({id:``,title:``,subtitle:`مشاهده محصولات`,icon:`grid`,showTitle:!0,showSubtitle:!0,showIcon:!0}),q=y({id:``,title:``,description:``,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0});function J(e){return e!==!1}let Y=l(()=>c.value.map(e=>e.id)),X=l(()=>h.value.map(e=>e.id));function Z(e){return e.trim().toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_\u0600-\u06ff-]/gi,``).slice(0,48)}function Q(){let e=[...Y.value,...X.value];for(let t of e)t in v||(v[t]=null);for(let t of Object.keys(v))e.includes(t)||delete v[t]}async function $(){w.value=!0;try{let e=await n.get();c.value=e.categoryDefsJson?.usage?.length?e.categoryDefsJson.usage.map(e=>({id:e.id,title:e.title,subtitle:e.subtitle||`مشاهده محصولات`,icon:e.icon||A(e.id),showTitle:J(e.showTitle),showSubtitle:J(e.showSubtitle),showIcon:J(e.showIcon)})):[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}],h.value=e.categoryDefsJson?.seasons?.length?e.categoryDefsJson.seasons.map(e=>({id:e.id,title:e.title,description:e.description||``,ctaLabel:e.ctaLabel||`مشاهده محصولات`,icon:e.icon||G(e.id),showTitle:J(e.showTitle),showDescription:J(e.showDescription),showCta:J(e.showCta),showIcon:J(e.showIcon)})):[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}],Q();let t=e.categoryImagesJson??{};for(let e of Object.keys(v))v[e]=t[e]??null}catch(e){E.error(e instanceof o?e.message:`بارگذاری دسته‌ها ناموفق بود.`),c.value.length||(c.value=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`,icon:`trousers`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`,icon:`suit`,showTitle:!0,showSubtitle:!0,showIcon:!0},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`,icon:`shirt`,showTitle:!0,showSubtitle:!0,showIcon:!0}]),h.value.length||(h.value=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`,ctaLabel:`مشاهده محصولات`,icon:`bolt`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`,ctaLabel:`مشاهده محصولات`,icon:`feather`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`,ctaLabel:`مشاهده محصولات`,icon:`diamond`,showTitle:!0,showDescription:!0,showCta:!0,showIcon:!0}]),Q()}finally{w.value=!1}}function Se(){let e=Z(K.id||K.title),t=K.title.trim();if(!e||!t){E.error(`شناسه و عنوان دسته کاربرد الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){E.error(`این شناسه از قبل وجود دارد.`);return}c.value.push({id:e,title:t,subtitle:K.subtitle.trim()||`مشاهده محصولات`,icon:K.icon,showTitle:K.showTitle,showSubtitle:K.showSubtitle,showIcon:K.showIcon}),v[e]=null,K.id=``,K.title=``,K.subtitle=`مشاهده محصولات`,K.icon=`grid`,K.showTitle=!0,K.showSubtitle=!0,K.showIcon=!0,D.value=!1}function Ce(){let e=Z(q.id||q.title),t=q.title.trim();if(!e||!t){E.error(`شناسه و عنوان دسته فصل الزامی است.`);return}if(Y.value.includes(e)||X.value.includes(e)){E.error(`این شناسه از قبل وجود دارد.`);return}h.value.push({id:e,title:t,description:q.description.trim(),ctaLabel:q.ctaLabel.trim()||`مشاهده محصولات`,icon:q.icon,showTitle:q.showTitle,showDescription:q.showDescription,showCta:q.showCta,showIcon:q.showIcon}),v[e]=null,q.id=``,q.title=``,q.description=``,q.ctaLabel=`مشاهده محصولات`,q.icon=`diamond`,q.showTitle=!0,q.showDescription=!0,q.showCta=!0,q.showIcon=!0,O.value=!1}function we(e){if(c.value.length<=1){E.error(`حداقل یک دسته کاربرد لازم است.`);return}c.value=c.value.filter(t=>t.id!==e),delete v[e]}function Te(e){if(h.value.length<=1){E.error(`حداقل یک دسته فصل لازم است.`);return}h.value=h.value.filter(t=>t.id!==e),delete v[e]}async function Ee(){T.value=!0;try{let e={};for(let[t,n]of Object.entries(v))n&&(e[t]=n);await n.update({categoryDefsJson:{usage:c.value,seasons:h.value},categoryImagesJson:e}),E.success(`دسته‌بندی‌ها ذخیره شد.`),await $()}catch(e){E.error(e instanceof o?e.message:`ذخیره دسته‌بندی‌ها ناموفق بود.`)}finally{T.value=!1}}return ee(()=>{$()}),(t,n)=>(g(),f(`div`,re,[u(`div`,ie,[n[8]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`دسته‌بندی‌ها`),u(`p`,{class:`admin-page-header__sub`},` دسته‌های کاربرد و فصل را اضافه کنید. با کلید «نمایش / مخفی» مشخص کنید عنوان و توضیح در اپ کاربر دیده شود. `)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:T.value||w.value,onClick:Ee},r(T.value?`در حال ذخیره...`:`ذخیره تغییرات`),9,ae)]),w.value?(g(),s(ne,{key:0,variant:`cards`})):(g(),f(`div`,oe,[u(`section`,se,[u(`div`,ce,[u(`div`,null,[n[9]||=u(`h2`,null,`بر اساس کاربرد`,-1),u(`p`,null,r(c.value.length)+` دسته برای فیلتر محصول در اپ کاربر`,1)]),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:n[0]||=e=>D.value=!D.value},r(D.value?`بستن فرم`:`+ افزودن دسته`),1)]),D.value?(g(),f(`div`,le,[p(u(`input`,{"onUpdate:modelValue":n[1]||=e=>K.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً پارچه‌های مانتویی)`},null,512),[[i,K.title]]),p(u(`input`,{"onUpdate:modelValue":n[2]||=e=>K.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً mantle)`},null,512),[[i,K.id]]),p(u(`input`,{"onUpdate:modelValue":n[3]||=e=>K.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,512),[[i,K.subtitle]]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Se},`ثبت در لیست`)])):e(``,!0),c.value.length?(g(),f(`div`,M,[(g(!0),f(a,null,d(c.value,t=>(g(),f(`article`,{key:t.id,class:`category-row`},[_(S,{"model-value":v[t.id],"onUpdate:modelValue":e=>v[t.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),u(`div`,N,[u(`div`,P,[p(u(`input`,{"onUpdate:modelValue":e=>t.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,F),[[i,t.title]]),_(x,{modelValue:t.showTitle,"onUpdate:modelValue":e=>t.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`div`,I,[p(u(`input`,{"onUpdate:modelValue":e=>t.subtitle=e,class:`admin-input`,type:`text`,placeholder:`زیرعنوان`},null,8,L),[[i,t.subtitle]]),_(x,{modelValue:t.showSubtitle,"onUpdate:modelValue":e=>t.showSubtitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`div`,R,[_(C,{modelValue:t.icon,"onUpdate:modelValue":e=>t.icon=e,options:k,"aria-label":`آیکون`,block:``},{"option-leading":m(({option:t})=>[t?(g(),s(j,{key:0,name:t.value,size:18},null,8,[`name`])):e(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),_(x,{modelValue:t.showIcon,"onUpdate:modelValue":e=>t.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`p`,z,r(t.id),1)]),u(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>we(t.id)},`حذف`,8,B)]))),128))])):(g(),f(`p`,ue,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))]),u(`section`,V,[u(`div`,H,[u(`div`,null,[n[10]||=u(`h2`,null,`بر اساس فصل`,-1),u(`p`,null,r(h.value.length)+` دسته فصلی برای فیلتر محصول`,1)]),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:n[4]||=e=>O.value=!O.value},r(O.value?`بستن فرم`:`+ افزودن دسته`),1)]),O.value?(g(),f(`div`,U,[p(u(`input`,{"onUpdate:modelValue":n[5]||=e=>q.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان (مثلاً بهاره)`},null,512),[[i,q.title]]),p(u(`input`,{"onUpdate:modelValue":n[6]||=e=>q.id=e,class:`admin-input`,type:`text`,dir:`ltr`,placeholder:`شناسه انگلیسی (اختیاری، مثلاً spring)`},null,512),[[i,q.id]]),p(u(`input`,{"onUpdate:modelValue":n[7]||=e=>q.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,512),[[i,q.description]]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Ce},`ثبت در لیست`)])):e(``,!0),h.value.length?(g(),f(`div`,de,[(g(!0),f(a,null,d(h.value,t=>(g(),f(`article`,{key:t.id,class:`category-row`},[_(S,{"model-value":v[t.id],"onUpdate:modelValue":e=>v[t.id]=e},null,8,[`model-value`,`onUpdate:modelValue`]),u(`div`,fe,[u(`div`,pe,[p(u(`input`,{"onUpdate:modelValue":e=>t.title=e,class:`admin-input`,type:`text`,placeholder:`عنوان دسته`},null,8,me),[[i,t.title]]),_(x,{modelValue:t.showTitle,"onUpdate:modelValue":e=>t.showTitle=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`div`,he,[p(u(`input`,{"onUpdate:modelValue":e=>t.description=e,class:`admin-input`,type:`text`,placeholder:`توضیح`},null,8,ge),[[i,t.description]]),_(x,{modelValue:t.showDescription,"onUpdate:modelValue":e=>t.showDescription=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`div`,_e,[p(u(`input`,{"onUpdate:modelValue":e=>t.ctaLabel=e,class:`admin-input`,type:`text`,placeholder:`متن لینک (مشاهده محصولات)`},null,8,ve),[[i,t.ctaLabel]]),_(x,{modelValue:t.showCta,"onUpdate:modelValue":e=>t.showCta=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`div`,ye,[_(C,{modelValue:t.icon,"onUpdate:modelValue":e=>t.icon=e,options:k,"aria-label":`آیکون`,block:``},{"option-leading":m(({option:t})=>[t?(g(),s(j,{key:0,name:t.value,size:18},null,8,[`name`])):e(``,!0)]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),_(x,{modelValue:t.showIcon,"onUpdate:modelValue":e=>t.showIcon=e,"active-text":`نمایش`,"inactive-text":`مخفی`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`p`,be,r(t.id),1)]),u(`button`,{type:`button`,class:`category-row__remove`,onClick:e=>Te(t.id)},`حذف`,8,xe)]))),128))])):(g(),f(`p`,W,`هنوز دسته‌ای ثبت نشده. با «افزودن دسته» شروع کنید.`))])]))]))}}),[[`__scopeId`,`data-v-092c0b6f`]]);export{G as default}; \ No newline at end of file diff --git a/dist/assets/CheckManagementView-D9Dy0r7I.js b/dist/assets/CheckManagementView-D9Dy0r7I.js new file mode 100644 index 0000000..c7dc1c9 --- /dev/null +++ b/dist/assets/CheckManagementView-D9Dy0r7I.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Tt as r,Z as i,a as ee,at as a,c as o,d as s,g as te,h as c,j as l,l as ne,m as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,I as ie,K as h,L as g,N as _,i as ae,m as v,n as y,r as b,x,y as oe,z as se}from"./index-CXa4EMLW.js";import{c as S}from"./orderStatus-CYVblRJB.js";import{t as C}from"./StatusBadge-Cg2zTE2k.js";var ce={class:`checks-page`},le={class:`admin-page-header`},ue={key:0,class:`checks-page__order-meta`},de={class:`checks-page__stats`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`checks-page__stat`},he={class:`checks-page__stat`},ge={class:`admin-tabs`},_e={key:0,class:`admin-empty-placeholder admin-card`},ve={key:1,class:`checks-page__list admin-card`},ye=[`onClick`],be={class:`check-row__chevron`,"aria-hidden":`true`},w=[`onClick`],T=[`src`],E={key:1,class:`check-row__thumb check-row__thumb--empty`},D={class:`check-row__meta`},O=[`disabled`,`onClick`],k=[`disabled`,`onClick`],A={key:0,class:`check-row__panel`},j={key:0,class:`check-row__fields`},M=[`dir`],N={key:1,class:`check-row__hint`},xe={class:`check-row__photos`},Se=[`onClick`],Ce=[`src`],we=[`onClick`],Te=[`src`],Ee={key:2,class:`check-row__hint`},De={class:`checks-page__footer`},Oe={class:`checks-page__note`},ke={class:`admin-action-group`},Ae=[`disabled`],je={key:0,class:`admin-empty-placeholder admin-card`},Me={key:1,class:`checks-page__history`},P={class:`checks-page__history-item-head`},Ne={class:`checks-page__history-meta`},Pe={key:0,class:`checks-page__history-note`},Fe={key:1,class:`checks-page__history-note`},Ie={class:`checks-page__history-item-head`},Le={class:`checks-page__history-note`},Re=[`src`],F=p(te({__name:`CheckManagementView`,setup(te){let p=re(),F=ie(),I=se(),L=i(`info`),R=i(null),z=i([]),B=i(null),V=i(null),H=i(null),U=f(()=>R.value?oe(R.value):null),ze=f(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=f(()=>z.value.filter(e=>e.status===`pending_review`)),Be=f(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=f(()=>!Be.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=i(!1),q=f(()=>{let e=R.value?.statusHistory??[],t=new Set([`check_in_progress`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`]),n=e.filter(e=>t.has(e.toStatus)||e.fromStatus&&t.has(e.fromStatus)||/چک/.test(e.note||``)||/چک/.test(e.reason||``));return[...n.length?n:e].sort((e,t)=>new Date(t.changedAt).getTime()-new Date(e.changedAt).getTime())}),J=f(()=>z.value.filter(e=>e.notes?.trim()).map(e=>({id:e.id,row:e.row,status:e.status,notes:e.notes,updatedAt:e.updatedAt})));async function Ve(){let e=String(p.params.id);try{let[t,n]=await Promise.all([x.get(e),v.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof _?e.message:`بارگذاری چک‌ها انجام نشد.`)}}n(()=>{Ve()});function He(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function Ue(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){return ae(e)}function We(e){return[e.ownerFirstName,e.ownerLastName].filter(Boolean).join(` `)}function Z(e){return[{label:`بانک`,value:e.bankName},{label:`شعبه`,value:e.branchName},{label:`شناسه صیادی`,value:e.sayadId,ltr:!0},{label:`شماره چک`,value:e.checkNumber,ltr:!0},{label:`صاحب چک`,value:We(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function Ge(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await v.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await x.get(String(p.params.id)),!0}catch(e){return I.error(e instanceof _?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`),!1}finally{B.value=null}}async function $(e,t){if(t!==`approved`&&t!==`rejected`)return;let n=y(e.amount);await g(t===`approved`?{title:`تأیید چک`,message:`آیا از تأیید چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید چک`,cancelLabel:`انصراف`}:{title:`رد چک`,message:`آیا از رد چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`danger`,confirmLabel:`رد چک`,cancelLabel:`انصراف`})&&await Q(e,t)&&I.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}async function Ke(){let e=W.value;if(!e.length){I.error(`چکی برای تأیید وجود ندارد.`);return}if(await g({title:`تأیید همه چک‌ها`,message:`آیا از تأیید ${e.length} چک در انتظار بررسی مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید همه`,cancelLabel:`انصراف`})){for(let t of e)if(!await Q(t,`approved`))return;I.success(`همه چک‌های در انتظار تأیید شدند.`)}}async function qe(){if(!(!R.value||K.value)&&await g({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await x.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof _?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(n,i)=>(e(),s(`div`,ce,[o(`div`,le,[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(e(),s(`div`,ue,[c(C,{status:U.value.status},null,8,[`status`])])):m(``,!0)]),o(`div`,de,[o(`div`,fe,[i[6]||=o(`span`,null,`تعداد`,-1),o(`strong`,null,t(z.value.length),1)]),o(`div`,pe,[i[7]||=o(`span`,null,`راس`,-1),o(`strong`,null,t(R.value?.checkRassDays??`—`)+` روز`,1)]),o(`div`,me,[i[8]||=o(`span`,null,`مجموع چک`,-1),o(`strong`,null,t(a(y)(ze.value)),1)]),o(`div`,he,[i[9]||=o(`span`,null,`مبلغ سفارش`,-1),o(`strong`,null,t(U.value?.totalAmount?a(y)(U.value.totalAmount):`—`),1)])]),o(`div`,ge,[o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`info`}]),onClick:i[0]||=e=>L.value=`info`},` چک‌ها (`+t(z.value.length)+`) `,3),o(`button`,{type:`button`,class:r([`admin-tab`,{active:L.value===`history`}]),onClick:i[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(e(),s(d,{key:0},[z.value.length?(e(),s(`div`,ve,[(e(!0),s(d,null,l(z.value,n=>(e(),s(`div`,{key:n.id,class:r([`check-row`,{open:V.value===n.id}])},[o(`button`,{type:`button`,class:`check-row__main`,onClick:e=>Ge(n)},[o(`span`,be,t(V.value===n.id?`▾`:`◂`),1),n.frontImage||n.backImage?(e(),s(`span`,{key:0,class:`check-row__thumb`,onClick:h(e=>H.value=n.frontImage||n.backImage,[`stop`])},[o(`img`,{src:n.frontImage||n.backImage,alt:``},null,8,T)],8,w)):(e(),s(`span`,E,`بدون عکس`)),o(`span`,D,[o(`strong`,null,`چک `+t(n.row),1),o(`small`,null,[u(t(a(y)(n.amount))+` `,1),n.bankName?(e(),s(d,{key:0},[u(` · `+t(n.bankName),1)],64)):m(``,!0),u(` · `+t(a(b)(n.dueDate)),1)])]),c(C,{status:Y(n.status)},null,8,[`status`])],8,ye),o(`div`,{class:`check-row__actions`,onClick:i[2]||=h(()=>{},[`stop`])},[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,O),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,k)],64)):m(``,!0)]),V.value===n.id?(e(),s(`div`,A,[Z(n).length?(e(),s(`div`,j,[(e(!0),s(d,null,l(Z(n),n=>(e(),s(`div`,{key:n.label,class:`check-row__field`},[o(`span`,null,t(n.label),1),o(`strong`,{dir:n.ltr?`ltr`:void 0},t(n.value),9,M)]))),128))])):(e(),s(`p`,N,`جزئیات متنی بیشتری ثبت نشده است.`)),o(`div`,xe,[n.frontImage?(e(),s(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.frontImage},[o(`img`,{src:n.frontImage,alt:`روی چک`},null,8,Ce),i[10]||=o(`span`,null,`روی`,-1)],8,Se)):m(``,!0),n.backImage?(e(),s(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.backImage},[o(`img`,{src:n.backImage,alt:`پشت چک`},null,8,Te),i[11]||=o(`span`,null,`پشت`,-1)],8,we)):m(``,!0),!n.frontImage&&!n.backImage?(e(),s(`p`,Ee,` تصویری ثبت نشده. `)):m(``,!0)])])):m(``,!0)],2))),128))])):(e(),s(`div`,_e,` چکی برای این سفارش ثبت نشده است. `)),o(`div`,De,[o(`p`,Oe,[G.value?(e(),s(d,{key:0},[u(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(e(),s(d,{key:1},[u(` راس: `+t(a(b)(R.value.checkRassDate)),1)],64)):(e(),s(d,{key:2},[u(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),o(`div`,ke,[G.value?(e(),s(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:qe},t(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,Ae)):m(``,!0),W.value.length?(e(),s(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ke},` تأیید همه چک‌ها `)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:He},` بازگشت `)])])],64)):(e(),s(d,{key:1},[!q.value.length&&!J.value.length?(e(),s(`div`,je,` هنوز تاریخچه‌ای ثبت نشده است. `)):(e(),s(`div`,Me,[(e(!0),s(d,null,l(q.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card checks-page__history-item`},[o(`div`,P,[o(`strong`,null,t(n.fromStatus?a(S)(n.fromStatus):`—`)+` → `+t(a(S)(n.toStatus)),1),o(`span`,null,t(X(n.changedAt)),1)]),o(`p`,Ne,`توسط `+t(Ue(n.changedBy)),1),n.note?(e(),s(`p`,Pe,t(n.note),1)):m(``,!0),n.reason?(e(),s(`p`,Fe,`دلیل: `+t(n.reason),1)):m(``,!0)]))),128)),(e(!0),s(d,null,l(J.value,n=>(e(),s(`article`,{key:`note-${n.id}`,class:`admin-card checks-page__history-item`},[o(`div`,Ie,[o(`strong`,null,`یادداشت چک `+t(n.row),1),o(`span`,null,t(X(n.updatedAt)),1)]),c(C,{status:Y(n.status)},null,8,[`status`]),o(`p`,Le,t(n.notes),1)]))),128))]))],64)),(e(),ne(ee,{to:`body`},[H.value?(e(),s(`div`,{key:0,class:`checks-page__lightbox`,onClick:i[4]||=h(e=>H.value=null,[`self`])},[o(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:i[3]||=e=>H.value=null},` بستن `),o(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Re)])):m(``,!0)]))]))}}),[[`__scopeId`,`data-v-af5e25db`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/CheckManagementView-DFrKKIXW.js b/dist/assets/CheckManagementView-DFrKKIXW.js deleted file mode 100644 index 9ec0de0..0000000 --- a/dist/assets/CheckManagementView-DFrKKIXW.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,I as r,J as i,L as a,N as o,Q as ee,V as te,X as s,Y as ne,Z as c,bt as l,dt as u,et as d,i as re,it as f,lt as p,m,n as h,nt as g,q as _,r as v,rt as y,st as ie,x as b,xt as x,y as ae,yt as S,z as oe}from"./index-B2VD3zy8.js";import{c as C}from"./orderStatus-CYVblRJB.js";import{t as w}from"./StatusBadge-D3ThrLrU.js";var se={class:`checks-page`},ce={class:`admin-page-header`},le={key:0,class:`checks-page__order-meta`},ue={class:`checks-page__stats`},de={class:`checks-page__stat`},fe={class:`checks-page__stat`},pe={class:`checks-page__stat`},me={class:`checks-page__stat`},he={class:`admin-tabs`},ge={key:0,class:`admin-empty-placeholder admin-card`},_e={key:1,class:`checks-page__list admin-card`},ve=[`onClick`],ye={class:`check-row__chevron`,"aria-hidden":`true`},be=[`onClick`],T=[`src`],E={key:1,class:`check-row__thumb check-row__thumb--empty`},D={class:`check-row__meta`},O=[`disabled`,`onClick`],k=[`disabled`,`onClick`],A={key:0,class:`check-row__panel`},j={key:0,class:`check-row__fields`},M=[`dir`],N={key:1,class:`check-row__hint`},xe={class:`check-row__photos`},Se=[`onClick`],Ce=[`src`],we=[`onClick`],Te=[`src`],Ee={key:2,class:`check-row__hint`},De={class:`checks-page__footer`},Oe={class:`checks-page__note`},ke={class:`admin-action-group`},Ae=[`disabled`],je={key:0,class:`admin-empty-placeholder admin-card`},Me={key:1,class:`checks-page__history`},Ne={class:`checks-page__history-item-head`},P={class:`checks-page__history-meta`},Pe={key:0,class:`checks-page__history-note`},Fe={key:1,class:`checks-page__history-note`},Ie={class:`checks-page__history-item-head`},Le={class:`checks-page__history-note`},Re=[`src`],F=te(f({__name:`CheckManagementView`,setup(te){let f=n(),F=r(),I=oe(),L=S(`info`),R=S(null),z=S([]),B=S(null),V=S(null),H=S(null),U=s(()=>R.value?ae(R.value):null),ze=s(()=>z.value.reduce((e,t)=>e+t.amount,0)),W=s(()=>z.value.filter(e=>e.status===`pending_review`)),Be=s(()=>z.value.length>0&&z.value.every(e=>e.status===`approved`)),G=s(()=>!Be.value||!R.value?!1:(R.value.rawStatus??R.value.status)===`checks_approved`),K=S(!1),q=s(()=>{let e=R.value?.statusHistory??[],t=new Set([`check_in_progress`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`]),n=e.filter(e=>t.has(e.toStatus)||e.fromStatus&&t.has(e.fromStatus)||/چک/.test(e.note||``)||/چک/.test(e.reason||``));return[...n.length?n:e].sort((e,t)=>new Date(t.changedAt).getTime()-new Date(e.changedAt).getTime())}),J=s(()=>z.value.filter(e=>e.notes?.trim()).map(e=>({id:e.id,row:e.row,status:e.status,notes:e.notes,updatedAt:e.updatedAt})));async function Ve(){let e=String(f.params.id);try{let[t,n]=await Promise.all([b.get(e),m.listByOrder(e)]);R.value=t,z.value=n,n.length===1&&(V.value=n[0].id)}catch(e){I.error(e instanceof o?e.message:`بارگذاری چک‌ها انجام نشد.`)}}ie(()=>{Ve()});function He(){F.push(`/orders`)}function Y(e){return e===`approved`?`check_approved`:e===`rejected`?`check_rejected`:`pending_check_review`}function Ue(e){return e?e===`customer`?`مشتری`:e.startsWith(`admin:`)?`ادمین`:e:`—`}function X(e){return re(e)}function We(e){return[e.ownerFirstName,e.ownerLastName].filter(Boolean).join(` `)}function Z(e){return[{label:`بانک`,value:e.bankName},{label:`شعبه`,value:e.branchName},{label:`شناسه صیادی`,value:e.sayadId,ltr:!0},{label:`شماره چک`,value:e.checkNumber,ltr:!0},{label:`صاحب چک`,value:We(e)},{label:`کد ملی`,value:e.ownerNationalId,ltr:!0},{label:`یادداشت`,value:e.notes}].filter(e=>!!e.value?.trim())}function Ge(e){V.value=V.value===e.id?null:e.id}async function Q(e,t){B.value=e.id;try{let n=await m.updateStatus(e.id,{status:t}),r=z.value.findIndex(t=>t.id===e.id);return r!==-1&&(z.value[r]=n),R.value=await b.get(String(f.params.id)),!0}catch(e){return I.error(e instanceof o?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`),!1}finally{B.value=null}}async function $(e,t){if(t!==`approved`&&t!==`rejected`)return;let n=h(e.amount);await a(t===`approved`?{title:`تأیید چک`,message:`آیا از تأیید چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید چک`,cancelLabel:`انصراف`}:{title:`رد چک`,message:`آیا از رد چک ردیف ${e.row} به مبلغ ${n} مطمئن هستید؟`,tone:`danger`,confirmLabel:`رد چک`,cancelLabel:`انصراف`})&&await Q(e,t)&&I.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}async function Ke(){let e=W.value;if(!e.length){I.error(`چکی برای تأیید وجود ندارد.`);return}if(await a({title:`تأیید همه چک‌ها`,message:`آیا از تأیید ${e.length} چک در انتظار بررسی مطمئن هستید؟`,tone:`primary`,confirmLabel:`تأیید همه`,cancelLabel:`انصراف`})){for(let t of e)if(!await Q(t,`approved`))return;I.success(`همه چک‌های در انتظار تأیید شدند.`)}}async function qe(){if(!(!R.value||K.value)&&await a({title:`تأیید نهایی سفارش`,message:`با تأیید نهایی، سفارش از مرحله بررسی چک خارج می‌شود و وارد آماده‌سازی می‌گردد. ادامه می‌دهید؟`,tone:`primary`,confirmLabel:`تأیید نهایی`,cancelLabel:`انصراف`})){K.value=!0;try{let e=await b.updateStatus(R.value.id,{status:`final_approved`,note:`تأیید نهایی پس از تأیید همه چک‌ها`});R.value=e,I.success(`سفارش تأیید نهایی شد.`)}catch(e){I.error(e instanceof o?e.message:`تأیید نهایی انجام نشد.`)}finally{K.value=!1}}}return(n,r)=>(p(),d(`div`,se,[c(`div`,ce,[r[5]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`مدیریت چک‌های سفارش`)],-1),U.value?(p(),d(`div`,le,[y(w,{status:U.value.status},null,8,[`status`])])):e(``,!0)]),c(`div`,ue,[c(`div`,de,[r[6]||=c(`span`,null,`تعداد`,-1),c(`strong`,null,t(z.value.length),1)]),c(`div`,fe,[r[7]||=c(`span`,null,`راس`,-1),c(`strong`,null,t(R.value?.checkRassDays??`—`)+` روز`,1)]),c(`div`,pe,[r[8]||=c(`span`,null,`مجموع چک`,-1),c(`strong`,null,t(l(h)(ze.value)),1)]),c(`div`,me,[r[9]||=c(`span`,null,`مبلغ سفارش`,-1),c(`strong`,null,t(U.value?.totalAmount?l(h)(U.value.totalAmount):`—`),1)])]),c(`div`,he,[c(`button`,{type:`button`,class:x([`admin-tab`,{active:L.value===`info`}]),onClick:r[0]||=e=>L.value=`info`},` چک‌ها (`+t(z.value.length)+`) `,3),c(`button`,{type:`button`,class:x([`admin-tab`,{active:L.value===`history`}]),onClick:r[1]||=e=>L.value=`history`},` تاریخچه `,2)]),L.value===`info`?(p(),d(i,{key:0},[z.value.length?(p(),d(`div`,_e,[(p(!0),d(i,null,u(z.value,n=>(p(),d(`div`,{key:n.id,class:x([`check-row`,{open:V.value===n.id}])},[c(`button`,{type:`button`,class:`check-row__main`,onClick:e=>Ge(n)},[c(`span`,ye,t(V.value===n.id?`▾`:`◂`),1),n.frontImage||n.backImage?(p(),d(`span`,{key:0,class:`check-row__thumb`,onClick:_(e=>H.value=n.frontImage||n.backImage,[`stop`])},[c(`img`,{src:n.frontImage||n.backImage,alt:``},null,8,T)],8,be)):(p(),d(`span`,E,`بدون عکس`)),c(`span`,D,[c(`strong`,null,`چک `+t(n.row),1),c(`small`,null,[g(t(l(h)(n.amount))+` `,1),n.bankName?(p(),d(i,{key:0},[g(` · `+t(n.bankName),1)],64)):e(``,!0),g(` · `+t(l(v)(n.dueDate)),1)])]),y(w,{status:Y(n.status)},null,8,[`status`])],8,ve),c(`div`,{class:`check-row__actions`,onClick:r[2]||=_(()=>{},[`stop`])},[n.status===`pending_review`?(p(),d(i,{key:0},[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,O),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:B.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,k)],64)):e(``,!0)]),V.value===n.id?(p(),d(`div`,A,[Z(n).length?(p(),d(`div`,j,[(p(!0),d(i,null,u(Z(n),e=>(p(),d(`div`,{key:e.label,class:`check-row__field`},[c(`span`,null,t(e.label),1),c(`strong`,{dir:e.ltr?`ltr`:void 0},t(e.value),9,M)]))),128))])):(p(),d(`p`,N,`جزئیات متنی بیشتری ثبت نشده است.`)),c(`div`,xe,[n.frontImage?(p(),d(`button`,{key:0,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.frontImage},[c(`img`,{src:n.frontImage,alt:`روی چک`},null,8,Ce),r[10]||=c(`span`,null,`روی`,-1)],8,Se)):e(``,!0),n.backImage?(p(),d(`button`,{key:1,type:`button`,class:`check-row__photo`,onClick:e=>H.value=n.backImage},[c(`img`,{src:n.backImage,alt:`پشت چک`},null,8,Te),r[11]||=c(`span`,null,`پشت`,-1)],8,we)):e(``,!0),!n.frontImage&&!n.backImage?(p(),d(`p`,Ee,` تصویری ثبت نشده. `)):e(``,!0)])])):e(``,!0)],2))),128))])):(p(),d(`div`,ge,` چکی برای این سفارش ثبت نشده است. `)),c(`div`,De,[c(`p`,Oe,[G.value?(p(),d(i,{key:0},[g(` همه چک‌ها تأیید شده‌اند. برای ادامه، تأیید نهایی سفارش را ثبت کنید. `)],64)):R.value?.checkRassDate?(p(),d(i,{key:1},[g(` راس: `+t(l(v)(R.value.checkRassDate)),1)],64)):(p(),d(i,{key:2},[g(`راس بر اساس تاریخ ثبت سفارش محاسبه می‌شود.`)],64))]),c(`div`,ke,[G.value?(p(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:K.value,onClick:qe},t(K.value?`در حال ثبت…`:`تأیید نهایی سفارش`),9,Ae)):e(``,!0),W.value.length?(p(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,onClick:Ke},` تأیید همه چک‌ها `)):e(``,!0),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:He},` بازگشت `)])])],64)):(p(),d(i,{key:1},[!q.value.length&&!J.value.length?(p(),d(`div`,je,` هنوز تاریخچه‌ای ثبت نشده است. `)):(p(),d(`div`,Me,[(p(!0),d(i,null,u(q.value,n=>(p(),d(`article`,{key:n.id,class:`admin-card checks-page__history-item`},[c(`div`,Ne,[c(`strong`,null,t(n.fromStatus?l(C)(n.fromStatus):`—`)+` → `+t(l(C)(n.toStatus)),1),c(`span`,null,t(X(n.changedAt)),1)]),c(`p`,P,`توسط `+t(Ue(n.changedBy)),1),n.note?(p(),d(`p`,Pe,t(n.note),1)):e(``,!0),n.reason?(p(),d(`p`,Fe,`دلیل: `+t(n.reason),1)):e(``,!0)]))),128)),(p(!0),d(i,null,u(J.value,e=>(p(),d(`article`,{key:`note-${e.id}`,class:`admin-card checks-page__history-item`},[c(`div`,Ie,[c(`strong`,null,`یادداشت چک `+t(e.row),1),c(`span`,null,t(X(e.updatedAt)),1)]),y(w,{status:Y(e.status)},null,8,[`status`]),c(`p`,Le,t(e.notes),1)]))),128))]))],64)),(p(),ee(ne,{to:`body`},[H.value?(p(),d(`div`,{key:0,class:`checks-page__lightbox`,onClick:r[4]||=_(e=>H.value=null,[`self`])},[c(`button`,{type:`button`,class:`checks-page__lightbox-close`,onClick:r[3]||=e=>H.value=null},` بستن `),c(`img`,{src:H.value,alt:`پیش‌نمایش`},null,8,Re)])):e(``,!0)]))]))}}),[[`__scopeId`,`data-v-af5e25db`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/ChecksListView-BQ_mFtUm.js b/dist/assets/ChecksListView-BQ_mFtUm.js deleted file mode 100644 index 31a5454..0000000 --- a/dist/assets/ChecksListView-BQ_mFtUm.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,I as r,J as i,N as a,P as ee,Q as o,V as te,X as s,Z as c,bt as l,dt as u,et as d,gt as ne,i as re,it as f,lt as p,m,n as h,rt as g,st as ie,x as _,yt as v,z as ae}from"./index-B2VD3zy8.js";import{t as y}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as oe}from"./AdminSelect-BeLNl2Qz.js";import{t as b}from"./StatusBadge-D3ThrLrU.js";var se={class:`checks-list-page`},ce={class:`admin-page-header`},le={class:`checks-list-page__summary`},x={key:0},S={class:`checks-list-page__filters admin-card`},C={class:`checks-list-page__search`},w={class:`checks-list-page__table admin-card desktop-only`},T={class:`admin-table-wrap`},E={class:`admin-table`},D=[`onClick`],O={dir:`ltr`},k={class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M=[`onClick`],N={key:0,class:`checks-list-page__empty`},P={class:`compact-only admin-card-list`},F={class:`admin-card-item__header`},ue={class:`admin-card-item__title`},I={class:`admin-card-item__meta`},L={key:0},R={class:`admin-card-item__actions`},z=[`disabled`,`onClick`],B=[`disabled`,`onClick`],V=[`onClick`],H={key:0,class:`checks-list-page__empty`},U=te(f({__name:`ChecksListView`,setup(te){let f=r(),U=ae(),W=v([]),G=v(!0),K=v(``),q=v(`all`),J=v(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=s(()=>{let e=W.value;q.value!==`all`&&(e=e.filter(e=>e.status===q.value));let t=K.value.trim();return t&&(e=e.filter(e=>(e.orderNumber??``).includes(t)||(e.customerName??``).includes(t)||(e.bankName??``).includes(t)||(e.sayadId??``).includes(t))),e}),X=s(()=>W.value.filter(e=>e.status===`pending_review`).length);function Z(e){return e===`approved`?`final_approval`:e===`rejected`?`needs_correction`:`pending_check_review`}async function fe(){let e=await _.list();W.value=e.flatMap(e=>(e.checks??[]).map(t=>({...t,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.status,settlementType:e.settlementMethod??e.settlementType??null})))}async function pe(){G.value=!0;try{W.value=await m.list()}catch{try{await fe()}catch(e){U.error(e instanceof a?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}ie(()=>{pe()});function Q(e){f.push(`/orders/${e.orderId}/checks`)}async function $(e,t){J.value=e.id;try{let n=await m.updateStatus(e.id,{status:t}),r=W.value.findIndex(t=>t.id===e.id);r!==-1&&(W.value[r]={...W.value[r],...n,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.orderStatus,settlementType:e.settlementType}),U.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}catch(e){U.error(e instanceof a?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(r,a)=>(p(),d(`div`,se,[c(`div`,ce,[a[2]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),c(`div`,le,[c(`span`,null,t(W.value.length)+` چک`,1),X.value?(p(),d(`span`,x,t(X.value)+` در انتظار بررسی`,1)):e(``,!0)])]),c(`div`,S,[c(`div`,C,[g(ee,{name:`search`,size:18}),ne(c(`input`,{"onUpdate:modelValue":a[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[n,K.value]])]),g(oe,{modelValue:q.value,"onUpdate:modelValue":a[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(p(),o(y,{key:0,variant:`table`})):(p(),d(i,{key:1},[c(`div`,w,[c(`div`,T,[c(`table`,E,[a[3]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`شماره سفارش`),c(`th`,null,`مشتری`),c(`th`,null,`ردیف`),c(`th`,null,`مبلغ`),c(`th`,null,`بانک`),c(`th`,null,`شناسه صیادی`),c(`th`,null,`سررسید`),c(`th`,null,`وضعیت`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(p(!0),d(i,null,u(Y.value,n=>(p(),d(`tr`,{key:n.id},[c(`td`,null,[c(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:e=>Q(n)},t(n.orderNumber||n.orderId),9,D)]),c(`td`,null,t(n.customerName||`—`),1),c(`td`,null,t(n.row),1),c(`td`,null,t(l(h)(n.amount)),1),c(`td`,null,t(n.bankName||`—`),1),c(`td`,O,t(n.sayadId||`—`),1),c(`td`,null,t(n.dueDate.slice(0,10)),1),c(`td`,null,[g(b,{status:Z(n.status)},null,8,[`status`])]),c(`td`,null,[c(`div`,k,[n.status===`pending_review`?(p(),d(i,{key:0},[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,A),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,j)],64)):e(``,!0),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?e(``,!0):(p(),d(`p`,N,` چکی با این فیلتر یافت نشد. `))]),c(`div`,P,[(p(!0),d(i,null,u(Y.value,n=>(p(),d(`article`,{key:n.id,class:`admin-card-item`},[c(`div`,F,[c(`p`,ue,t(n.orderNumber||n.orderId)+` — چک `+t(n.row),1),g(b,{status:Z(n.status)},null,8,[`status`])]),c(`div`,I,[c(`span`,null,t(n.customerName||`—`),1),c(`span`,null,t(l(h)(n.amount)),1),c(`span`,null,t(n.bankName||`—`),1),c(`span`,null,`سررسید `+t(n.dueDate.slice(0,10)),1),n.createdAt?(p(),d(`span`,L,`ثبت `+t(l(re)(n.createdAt)),1)):e(``,!0)]),c(`div`,R,[n.status===`pending_review`?(p(),d(i,{key:0},[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,z),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,B)],64)):e(``,!0),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?e(``,!0):(p(),d(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/ChecksListView-DgtZLWw5.js b/dist/assets/ChecksListView-DgtZLWw5.js new file mode 100644 index 0000000..3e64e1f --- /dev/null +++ b/dist/assets/ChecksListView-DgtZLWw5.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,V as r,Z as i,at as a,c as o,d as s,g as ee,h as c,j as l,l as u,r as d,s as f,t as p,u as m}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as te,N as h,P as ne,W as re,i as ie,m as g,n as _,x as ae,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ce}from"./AdminSelect-9UfEJQzN.js";import{t as v}from"./StatusBadge-Cg2zTE2k.js";var le={class:`checks-list-page`},y={class:`admin-page-header`},b={class:`checks-list-page__summary`},x={key:0},S={class:`checks-list-page__filters admin-card`},C={class:`checks-list-page__search`},w={class:`checks-list-page__table admin-card desktop-only`},T={class:`admin-table-wrap`},E={class:`admin-table`},D=[`onClick`],O={dir:`ltr`},k={class:`admin-action-group`},A=[`disabled`,`onClick`],j=[`disabled`,`onClick`],M=[`onClick`],N={key:0,class:`checks-list-page__empty`},P={class:`compact-only admin-card-list`},F={class:`admin-card-item__header`},ue={class:`admin-card-item__title`},I={class:`admin-card-item__meta`},L={key:0},R={class:`admin-card-item__actions`},z=[`disabled`,`onClick`],B=[`disabled`,`onClick`],V=[`onClick`],H={key:0,class:`checks-list-page__empty`},U=p(ee({__name:`ChecksListView`,setup(ee){let p=te(),U=oe(),W=i([]),G=i(!0),K=i(``),q=i(`all`),J=i(null),de=[{value:`all`,label:`همه وضعیت‌ها`},{value:`pending_review`,label:`در انتظار بررسی`},{value:`approved`,label:`تأیید شده`},{value:`rejected`,label:`رد شده`}],Y=f(()=>{let e=W.value;q.value!==`all`&&(e=e.filter(e=>e.status===q.value));let t=K.value.trim();return t&&(e=e.filter(e=>(e.orderNumber??``).includes(t)||(e.customerName??``).includes(t)||(e.bankName??``).includes(t)||(e.sayadId??``).includes(t))),e}),X=f(()=>W.value.filter(e=>e.status===`pending_review`).length);function Z(e){return e===`approved`?`final_approval`:e===`rejected`?`needs_correction`:`pending_check_review`}async function fe(){let e=await ae.list();W.value=e.flatMap(e=>(e.checks??[]).map(t=>({...t,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.status,settlementType:e.settlementMethod??e.settlementType??null})))}async function pe(){G.value=!0;try{W.value=await g.list()}catch{try{await fe()}catch(e){U.error(e instanceof h?e.message:`بارگذاری چک‌ها انجام نشد.`)}}finally{G.value=!1}}n(()=>{pe()});function Q(e){p.push(`/orders/${e.orderId}/checks`)}async function $(e,t){J.value=e.id;try{let n=await g.updateStatus(e.id,{status:t}),r=W.value.findIndex(t=>t.id===e.id);r!==-1&&(W.value[r]={...W.value[r],...n,orderNumber:e.orderNumber,customerName:e.customerName,orderStatus:e.orderStatus,settlementType:e.settlementType}),U.success(t===`approved`?`چک تأیید شد.`:`چک رد شد.`)}catch(e){U.error(e instanceof h?e.message:`به‌روزرسانی وضعیت چک انجام نشد.`)}finally{J.value=null}}return(n,i)=>(e(),s(`div`,le,[o(`div`,y,[i[2]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`چک‌ها`)],-1),o(`div`,b,[o(`span`,null,t(W.value.length)+` چک`,1),X.value?(e(),s(`span`,x,t(X.value)+` در انتظار بررسی`,1)):m(``,!0)])]),o(`div`,S,[o(`div`,C,[c(ne,{name:`search`,size:18}),r(o(`input`,{"onUpdate:modelValue":i[0]||=e=>K.value=e,type:`search`,class:`checks-list-page__search-input`,placeholder:`جستجو در شماره سفارش، مشتری، بانک، صیاد...`},null,512),[[re,K.value]])]),c(ce,{modelValue:q.value,"onUpdate:modelValue":i[1]||=e=>q.value=e,class:`checks-list-page__status-select`,"aria-label":`فیلتر وضعیت چک`,options:de},null,8,[`modelValue`])]),G.value?(e(),u(se,{key:0,variant:`table`})):(e(),s(d,{key:1},[o(`div`,w,[o(`div`,T,[o(`table`,E,[i[3]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`شماره سفارش`),o(`th`,null,`مشتری`),o(`th`,null,`ردیف`),o(`th`,null,`مبلغ`),o(`th`,null,`بانک`),o(`th`,null,`شناسه صیادی`),o(`th`,null,`سررسید`),o(`th`,null,`وضعیت`),o(`th`,null,`عملیات`)])],-1),o(`tbody`,null,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`tr`,{key:n.id},[o(`td`,null,[o(`button`,{type:`button`,class:`checks-list-page__order-link`,onClick:e=>Q(n)},t(n.orderNumber||n.orderId),9,D)]),o(`td`,null,t(n.customerName||`—`),1),o(`td`,null,t(n.row),1),o(`td`,null,t(a(_)(n.amount)),1),o(`td`,null,t(n.bankName||`—`),1),o(`td`,O,t(n.sayadId||`—`),1),o(`td`,null,t(n.dueDate.slice(0,10)),1),o(`td`,null,[c(v,{status:Z(n.status)},null,8,[`status`])]),o(`td`,null,[o(`div`,k,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,j)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,M)])])]))),128))])])]),Y.value.length?m(``,!0):(e(),s(`p`,N,` چکی با این فیلتر یافت نشد. `))]),o(`div`,P,[(e(!0),s(d,null,l(Y.value,n=>(e(),s(`article`,{key:n.id,class:`admin-card-item`},[o(`div`,F,[o(`p`,ue,t(n.orderNumber||n.orderId)+` — چک `+t(n.row),1),c(v,{status:Z(n.status)},null,8,[`status`])]),o(`div`,I,[o(`span`,null,t(n.customerName||`—`),1),o(`span`,null,t(a(_)(n.amount)),1),o(`span`,null,t(n.bankName||`—`),1),o(`span`,null,`سررسید `+t(n.dueDate.slice(0,10)),1),n.createdAt?(e(),s(`span`,L,`ثبت `+t(a(ie)(n.createdAt)),1)):m(``,!0)]),o(`div`,R,[n.status===`pending_review`?(e(),s(d,{key:0},[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-success admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`approved`)},` تأیید `,8,z),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,disabled:J.value===n.id,onClick:e=>$(n,`rejected`)},` رد `,8,B)],64)):m(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>Q(n)},` جزئیات سفارش `,8,V)])]))),128)),Y.value.length?m(``,!0):(e(),s(`p`,H,` چکی با این فیلتر یافت نشد. `))])],64))]))}}),[[`__scopeId`,`data-v-09633f1f`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CompaniesView-C28l_bkY.js b/dist/assets/CompaniesView-C28l_bkY.js new file mode 100644 index 0000000..85ec57b --- /dev/null +++ b/dist/assets/CompaniesView-C28l_bkY.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,c as o,d as s,g as te,h as c,j as l,l as u,m as d,r as f,s as p,t as m,u as h}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as ne,K as re,L as ie,N as g,R as ae,T as oe,W as _,h as v,z as se}from"./index-CXa4EMLW.js";import{t as ce}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as le}from"./BaseSwitch-TV5Yvtf7.js";import{t as ue}from"./BaseEmptyState-BmO9aDcK.js";import{t as y}from"./ActiveSwitchCell-DJZQHZ-8.js";var de={class:`companies-page`},fe={key:2,class:`companies-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he=[`src`,`alt`],ge={key:1,class:`company-logo company-logo--fallback`},_e={class:`numeric`},ve={class:`status`},ye={class:`actions`},be={class:`admin-action-group`},xe=[`onClick`],b=[`onClick`],x={key:3,class:`compact-only admin-card-list`},S={class:`admin-card-item__header`},C={class:`companies-page__card-logo`},w=[`src`,`alt`],T={key:1,class:`company-logo company-logo--fallback`},E={class:`admin-card-item__title`},D={class:`companies-page__card-desc`},O={class:`admin-card-item__meta`},k={class:`admin-card-item__actions`},A=[`onClick`],j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},Se={class:`admin-form__field`},Ce={class:`logo-upload`},we={key:0,class:`logo-upload__preview-wrap`},Te=[`src`],Ee={key:1,class:`logo-upload__dropzone`,for:`company-logo-file`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},N={class:`admin-form__row`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=m(te({__name:`CompaniesView`,setup(te){let m=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=ne(),F=se(),I=a([]),L=a(!0),R=a(null),z=a(null),B=a(null),V=a(null),H=a(!1);async function Ne(){L.value=!0;try{I.value=await v.list()}catch(e){F.error(e instanceof g?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}ee(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=i(U()),G=a(``),Pe=p(()=>R.value!==null),Fe=p(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=p(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=p(()=>W.name.trim().length>0&&B.value!==null);function K(){B.value=null,V.value&&(V.value.value=``)}function q(){R.value=`add`,z.value=null,Object.assign(W,U()),K(),G.value=``}function J(e){R.value=`edit`,z.value=e.id,W.name=e.name,W.description=e.description===`—`?``:e.description,W.displayOrder=e.displayOrder,W.isActive=e.isActive,B.value=e.logoUrl,V.value&&(V.value.value=``),G.value=``}function Y(){R.value=null,z.value=null,G.value=``,K()}function Re(e){let t=e.target.files?.[0];if(!t)return;if(!m.includes(t.type)){G.value=`فرمت مجاز: PNG، JPG، WEBP یا SVG`;return}if(t.size>Me){G.value=`حداکثر حجم تصویر ۲ مگابایت است.`;return}G.value=``;let n=new FileReader;n.onload=()=>{B.value=n.result},n.readAsDataURL(t)}async function ze(){B.value&&await ie({title:`حذف تصویر`,message:`آیا از حذف لوگوی شرکت مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&K()}async function X(){let e=W.name.trim();if(!e){G.value=`نام شرکت الزامی است.`;return}if(!B.value){G.value=`آپلود لوگو الزامی است.`;return}if(I.value.some(t=>t.name===e&&t.id!==z.value)){G.value=`شرکتی با این نام قبلاً ثبت شده است.`;return}H.value=!0;try{if(R.value===`edit`&&z.value){let t=await v.update(z.value,{name:e,description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||1,isActive:W.isActive,logoUrl:B.value}),n=I.value.findIndex(e=>e.id===z.value);n!==-1&&(I.value[n]={...I.value[n],...t}),F.success(`اطلاعات شرکت به‌روزرسانی شد.`)}else{let t=await v.create({name:e,slug:oe(e),description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||I.value.length+1,isActive:W.isActive,logoUrl:B.value});I.value.push(t),F.success(`شرکت جدید ثبت شد.`)}Y()}catch(e){F.error(e instanceof g?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await v.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(ee,i)=>(t(),s(`div`,de,[o(`div`,{class:`admin-page-header`},[i[5]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(t(),u(ce,{key:0,variant:`table`})):I.value.length?(t(),s(`div`,fe,[o(`div`,pe,[o(`table`,me,[i[6]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`لوگو`),o(`th`,{class:`numeric`},`ترتیب`),o(`th`,{class:`status`},`وضعیت`),o(`th`,null,`توضیحات`),o(`th`,null,`نام شرکت`),o(`th`,{class:`actions`},`عملیات`)])],-1),o(`tbody`,null,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`tr`,{key:e.id},[o(`td`,null,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,he)):(t(),s(`div`,ge,n($(e.name)),1))]),o(`td`,_e,n(e.displayOrder),1),o(`td`,ve,[c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`td`,null,n(e.description),1),o(`td`,null,n(e.name),1),o(`td`,ye,[o(`div`,be,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,xe),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,b)])])]))),128))])])])])):(t(),u(ue,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(t(),s(`div`,x,[(t(!0),s(f,null,l(I.value,e=>(t(),s(`article`,{key:e.id,class:`admin-card-item`},[o(`div`,S,[o(`div`,C,[e.logoUrl?(t(),s(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(t(),s(`div`,T,n($(e.name)),1)),o(`div`,null,[o(`p`,E,n(e.name),1),o(`p`,D,n(e.description),1)])]),c(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),o(`div`,O,[o(`span`,null,`ترتیب: `+n(e.displayOrder),1)]),o(`div`,k,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):h(``,!0),c(ae,{open:Pe.value,title:Fe.value,onClose:Y},{footer:e(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},n(Ie.value),9,je)]),default:e(()=>[o(`form`,{class:`admin-form`,onSubmit:re(X,[`prevent`])},[G.value?(t(),s(`p`,M,n(G.value),1)):h(``,!0),o(`div`,Se,[i[8]||=o(`label`,null,[d(`لوگو `),o(`span`,{class:`admin-form__required`},`*`)],-1),o(`div`,Ce,[B.value?(t(),s(`div`,we,[o(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),o(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(t(),s(`label`,Ee,[...i[7]||=[o(`span`,{class:`logo-upload__icon`},`+`,-1),o(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),o(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),o(`input`,{id:`company-logo-file`,ref_key:`logoInputRef`,ref:V,type:`file`,accept:`image/png,image/jpeg,image/webp,image/svg+xml`,class:`logo-upload__input`,onChange:Re},null,544),B.value?(t(),s(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:i[0]||=e=>V.value?.click()},` تغییر تصویر `)):h(``,!0)])]),o(`div`,De,[i[9]||=o(`label`,{for:`company-name`},[d(`نام شرکت `),o(`span`,{class:`admin-form__required`},`*`)],-1),r(o(`input`,{id:`company-name`,"onUpdate:modelValue":i[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[_,W.name]])]),o(`div`,Oe,[i[10]||=o(`label`,{for:`company-description`},`توضیحات`,-1),r(o(`textarea`,{id:`company-description`,"onUpdate:modelValue":i[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[_,W.description]])]),o(`div`,N,[o(`div`,ke,[i[11]||=o(`label`,{for:`company-order`},`ترتیب نمایش`,-1),r(o(`input`,{id:`company-order`,"onUpdate:modelValue":i[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[_,W.displayOrder,void 0,{number:!0}]])]),o(`div`,Ae,[c(le,{modelValue:W.isActive,"onUpdate:modelValue":i[4]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b4857c22`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CompaniesView-CFgjGQke.js b/dist/assets/CompaniesView-CFgjGQke.js deleted file mode 100644 index 52e5f67..0000000 --- a/dist/assets/CompaniesView-CFgjGQke.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,I as ee,J as r,L as i,N as a,Q as o,R as te,T as ne,V as re,X as s,Z as c,dt as l,et as u,gt as d,h as f,ht as p,it as m,lt as h,nt as g,q as ie,rt as _,st as ae,vt as oe,yt as v,z as se}from"./index-B2VD3zy8.js";import{t as ce}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as le}from"./BaseSwitch-dp2xMemS.js";import{t as ue}from"./BaseEmptyState-DGu6Pfui.js";import{t as y}from"./ActiveSwitchCell-DIzTn08M.js";var de={class:`companies-page`},fe={key:2,class:`companies-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he=[`src`,`alt`],ge={key:1,class:`company-logo company-logo--fallback`},_e={class:`numeric`},ve={class:`status`},ye={class:`actions`},be={class:`admin-action-group`},xe=[`onClick`],b=[`onClick`],x={key:3,class:`compact-only admin-card-list`},S={class:`admin-card-item__header`},C={class:`companies-page__card-logo`},w=[`src`,`alt`],T={key:1,class:`company-logo company-logo--fallback`},E={class:`admin-card-item__title`},D={class:`companies-page__card-desc`},O={class:`admin-card-item__meta`},k={class:`admin-card-item__actions`},A=[`onClick`],j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},Se={class:`admin-form__field`},Ce={class:`logo-upload`},we={key:0,class:`logo-upload__preview-wrap`},Te=[`src`],Ee={key:1,class:`logo-upload__dropzone`,for:`company-logo-file`},De={class:`admin-form__field`},Oe={class:`admin-form__field`},N={class:`admin-form__row`},ke={class:`admin-form__field`},Ae={class:`admin-form__field`},je=[`disabled`],Me=2097152,P=re(m({__name:`CompaniesView`,setup(re){let m=[`image/png`,`image/jpeg`,`image/webp`,`image/svg+xml`],P=ee(),F=se(),I=v([]),L=v(!0),R=v(null),z=v(null),B=v(null),V=v(null),H=v(!1);async function Ne(){L.value=!0;try{I.value=await f.list()}catch(e){F.error(e instanceof a?e.message:`بارگذاری شرکت‌ها انجام نشد.`)}finally{L.value=!1}}ae(()=>{Ne()});let U=()=>({name:``,description:``,displayOrder:I.value.length+1,isActive:!0}),W=oe(U()),G=v(``),Pe=s(()=>R.value!==null),Fe=s(()=>R.value===`edit`?`ویرایش شرکت`:`افزودن شرکت`),Ie=s(()=>R.value===`edit`?`ذخیره تغییرات`:`ثبت شرکت`),Le=s(()=>W.name.trim().length>0&&B.value!==null);function K(){B.value=null,V.value&&(V.value.value=``)}function q(){R.value=`add`,z.value=null,Object.assign(W,U()),K(),G.value=``}function J(e){R.value=`edit`,z.value=e.id,W.name=e.name,W.description=e.description===`—`?``:e.description,W.displayOrder=e.displayOrder,W.isActive=e.isActive,B.value=e.logoUrl,V.value&&(V.value.value=``),G.value=``}function Y(){R.value=null,z.value=null,G.value=``,K()}function Re(e){let t=e.target.files?.[0];if(!t)return;if(!m.includes(t.type)){G.value=`فرمت مجاز: PNG، JPG، WEBP یا SVG`;return}if(t.size>Me){G.value=`حداکثر حجم تصویر ۲ مگابایت است.`;return}G.value=``;let n=new FileReader;n.onload=()=>{B.value=n.result},n.readAsDataURL(t)}async function ze(){B.value&&await i({title:`حذف تصویر`,message:`آیا از حذف لوگوی شرکت مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&K()}async function X(){let e=W.name.trim();if(!e){G.value=`نام شرکت الزامی است.`;return}if(!B.value){G.value=`آپلود لوگو الزامی است.`;return}if(I.value.some(t=>t.name===e&&t.id!==z.value)){G.value=`شرکتی با این نام قبلاً ثبت شده است.`;return}H.value=!0;try{if(R.value===`edit`&&z.value){let t=await f.update(z.value,{name:e,description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||1,isActive:W.isActive,logoUrl:B.value}),n=I.value.findIndex(e=>e.id===z.value);n!==-1&&(I.value[n]={...I.value[n],...t}),F.success(`اطلاعات شرکت به‌روزرسانی شد.`)}else{let t=await f.create({name:e,slug:ne(e),description:W.description.trim()||void 0,displayOrder:Number(W.displayOrder)||I.value.length+1,isActive:W.isActive,logoUrl:B.value});I.value.push(t),F.success(`شرکت جدید ثبت شد.`)}Y()}catch(e){F.error(e instanceof a?e.message:`ذخیره شرکت انجام نشد.`)}finally{H.value=!1}}async function Z(e,t){await f.setActive(e,t)}function Q(e){P.push(`/companies/${e}/accounts`)}function $(e){return e.trim().charAt(0)||`؟`}return(ee,i)=>(h(),u(`div`,de,[c(`div`,{class:`admin-page-header`},[i[5]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`مدیریت شرکت‌ها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن شرکت `)]),L.value?(h(),o(ce,{key:0,variant:`table`})):I.value.length?(h(),u(`div`,fe,[c(`div`,pe,[c(`table`,me,[i[6]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`لوگو`),c(`th`,{class:`numeric`},`ترتیب`),c(`th`,{class:`status`},`وضعیت`),c(`th`,null,`توضیحات`),c(`th`,null,`نام شرکت`),c(`th`,{class:`actions`},`عملیات`)])],-1),c(`tbody`,null,[(h(!0),u(r,null,l(I.value,e=>(h(),u(`tr`,{key:e.id},[c(`td`,null,[e.logoUrl?(h(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,he)):(h(),u(`div`,ge,t($(e.name)),1))]),c(`td`,_e,t(e.displayOrder),1),c(`td`,ve,[_(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`td`,null,t(e.description),1),c(`td`,null,t(e.name),1),c(`td`,ye,[c(`div`,be,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,xe),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,b)])])]))),128))])])])])):(h(),o(ue,{key:1,class:`admin-card`,icon:`companies`,title:`شرکتی ثبت نشده`,description:`برای شروع، اولین شرکت را ثبت کنید.`},{default:p(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن شرکت `)]),_:1})),!L.value&&I.value.length?(h(),u(`div`,x,[(h(!0),u(r,null,l(I.value,e=>(h(),u(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,S,[c(`div`,C,[e.logoUrl?(h(),u(`img`,{key:0,src:e.logoUrl,alt:`لوگوی ${e.name}`,class:`company-logo`},null,8,w)):(h(),u(`div`,T,t($(e.name)),1)),c(`div`,null,[c(`p`,E,t(e.name),1),c(`p`,D,t(e.description),1)])]),_(y,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`شرکت`,persist:Z},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`div`,O,[c(`span`,null,`ترتیب: `+t(e.displayOrder),1)]),c(`div`,k,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>Q(e.id)},` حساب‌ها `,8,j)])]))),128))])):e(``,!0),_(te,{open:Pe.value,title:Fe.value,onClose:Y},{footer:p(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` انصراف `),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Le.value||H.value,onClick:X},t(Ie.value),9,je)]),default:p(()=>[c(`form`,{class:`admin-form`,onSubmit:ie(X,[`prevent`])},[G.value?(h(),u(`p`,M,t(G.value),1)):e(``,!0),c(`div`,Se,[i[8]||=c(`label`,null,[g(`لوگو `),c(`span`,{class:`admin-form__required`},`*`)],-1),c(`div`,Ce,[B.value?(h(),u(`div`,we,[c(`img`,{src:B.value,alt:`پیش‌نمایش لوگو`,class:`logo-upload__preview`},null,8,Te),c(`button`,{type:`button`,class:`logo-upload__remove`,onClick:ze},` حذف تصویر `)])):(h(),u(`label`,Ee,[...i[7]||=[c(`span`,{class:`logo-upload__icon`},`+`,-1),c(`span`,{class:`logo-upload__text`},`انتخاب یا رها کردن تصویر لوگو`,-1),c(`span`,{class:`logo-upload__hint`},`PNG، JPG، WEBP یا SVG — حداکثر ۲ مگابایت`,-1)]])),c(`input`,{id:`company-logo-file`,ref_key:`logoInputRef`,ref:V,type:`file`,accept:`image/png,image/jpeg,image/webp,image/svg+xml`,class:`logo-upload__input`,onChange:Re},null,544),B.value?(h(),u(`button`,{key:2,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm logo-upload__change`,onClick:i[0]||=e=>V.value?.click()},` تغییر تصویر `)):e(``,!0)])]),c(`div`,De,[i[9]||=c(`label`,{for:`company-name`},[g(`نام شرکت `),c(`span`,{class:`admin-form__required`},`*`)],-1),d(c(`input`,{id:`company-name`,"onUpdate:modelValue":i[1]||=e=>W.name=e,type:`text`,class:`admin-input`,placeholder:`مثال: شرکت پَر`,autocomplete:`off`},null,512),[[n,W.name]])]),c(`div`,Oe,[i[10]||=c(`label`,{for:`company-description`},`توضیحات`,-1),d(c(`textarea`,{id:`company-description`,"onUpdate:modelValue":i[2]||=e=>W.description=e,class:`admin-form__textarea`,placeholder:`تولید و عرضه انواع پارچه`,rows:`3`},null,512),[[n,W.description]])]),c(`div`,N,[c(`div`,ke,[i[11]||=c(`label`,{for:`company-order`},`ترتیب نمایش`,-1),d(c(`input`,{id:`company-order`,"onUpdate:modelValue":i[3]||=e=>W.displayOrder=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[n,W.displayOrder,void 0,{number:!0}]])]),c(`div`,Ae,[_(le,{modelValue:W.isActive,"onUpdate:modelValue":i[4]||=e=>W.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-b4857c22`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-2wzqQ3p0.js b/dist/assets/CustomersView-2wzqQ3p0.js deleted file mode 100644 index 4a034f0..0000000 --- a/dist/assets/CustomersView-2wzqQ3p0.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,D as n,G as r,J as i,N as a,P as ee,Q as o,R as s,S as c,V as l,X as u,Z as d,a as f,bt as p,dt as m,et as h,g,gt as _,ht as v,i as y,it as b,lt as x,mt as S,nt as C,q as w,rt as T,st as te,u as E,v as ne,vt as re,xt as D,yt as O,z as k}from"./index-B2VD3zy8.js";import{t as A}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as ie}from"./BaseSwitch-dp2xMemS.js";import{t as ae}from"./BaseEmptyState-DGu6Pfui.js";import{t as j}from"./AdminSelect-BeLNl2Qz.js";import{r as M}from"./adminLabels-Cz9ccm1Z.js";import{t as N}from"./ActiveSwitchCell-DIzTn08M.js";var P={class:`suggestions-panel`},F={key:0,class:`suggestions-panel__loading`},I={class:`suggestions-panel__add`},L={class:`field`},R={key:0,class:`suggestions-panel__picked`},z=[`onClick`],B={class:`field`},V=[`disabled`],H={key:0,class:`suggestions-panel__list`},U={class:`muted`,dir:`ltr`},W={key:0,class:`note`},G={class:`suggestions-panel__actions`},K=[`onClick`],q={key:1,class:`suggestions-panel__empty`},oe=l(b({__name:`CustomerSuggestionsPanel`,props:{customerId:{}},setup(ee){let o=ee,s=k(),l=O(!0),f=O(!1),p=O([]),g=O([]),v=O([]),y=O(``),b=u(()=>g.value.filter(e=>!p.value.some(t=>t.productId===e.id&&t.isActive)).map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function w(){if(o.customerId){l.value=!0;try{let[e,t]=await Promise.all([n.list(o.customerId),c.list()]);p.value=e,g.value=t}catch(e){s.error(e instanceof a?e.message:`بارگذاری پیشنهادها ناموفق بود`)}finally{l.value=!1}}}async function E(){if(v.value.length){f.value=!0;try{for(let e of v.value)await n.create({customerId:o.customerId,productId:e,note:y.value.trim()||void 0});v.value=[],y.value=``,s.success(`پیشنهادها به صفحه خانه مشتری اضافه شد`),await w()}catch(e){s.error(e instanceof a?e.message:`ثبت پیشنهاد ناموفق بود`)}finally{f.value=!1}}}async function ne(e){try{await n.setActive(e.id,!e.isActive),await w()}catch(e){s.error(e instanceof a?e.message:`به‌روزرسانی ناموفق بود`)}}function re(e){e&&(v.value.includes(e)||(v.value=[...v.value,e]))}function A(e){v.value=v.value.filter(t=>t!==e)}return S(()=>o.customerId,()=>{w()}),te(()=>{w()}),(n,a)=>(x(),h(`section`,P,[a[4]||=d(`header`,{class:`suggestions-panel__head`},[d(`div`,null,[d(`h3`,{class:`suggestions-panel__title`},`پیشنهاد اختصاصی در اپ`),d(`p`,{class:`suggestions-panel__hint`},` محصولات انتخاب‌شده در بخش «پیشنهاد اختصاصی ما برای شما» در صفحه خانه مشتری نمایش داده می‌شوند. `)])],-1),l.value?(x(),h(`div`,F,`در حال بارگذاری...`)):(x(),h(i,{key:1},[d(`div`,I,[d(`label`,L,[a[1]||=C(` افزودن محصول (کد کالیته) `,-1),T(j,{"model-value":``,options:[{value:``,label:`انتخاب محصول...`},...b.value],"onUpdate:modelValue":re},null,8,[`options`])]),v.value.length?(x(),h(`div`,R,[(x(!0),h(i,null,m(v.value,e=>(x(),h(`span`,{key:e,class:`suggestions-panel__chip`},[C(t(g.value.find(t=>t.id===e)?.productCode||e)+` `,1),d(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>A(e)},`×`,8,z)]))),128))])):e(``,!0),d(`label`,B,[a[2]||=C(` یادداشت (اختیاری) `,-1),_(d(`textarea`,{"onUpdate:modelValue":a[0]||=e=>y.value=e,class:`admin-input`,rows:`2`,placeholder:`دلیل پیشنهاد برای مشتری`},null,512),[[r,y.value]])]),d(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!v.value.length||f.value,onClick:E},` افزودن به صفحه خانه مشتری `,8,V)]),p.value.length?(x(),h(`div`,H,[a[3]||=d(`h4`,{class:`suggestions-panel__sub`},`پیشنهادهای ثبت‌شده`,-1),d(`ul`,null,[(x(!0),h(i,null,m(p.value,n=>(x(),h(`li`,{key:n.id,class:`suggestions-panel__row`},[d(`div`,null,[d(`strong`,null,t(n.productName),1),d(`span`,U,`(`+t(n.productCode)+`)`,1),n.note?(x(),h(`p`,W,t(n.note),1)):e(``,!0)]),d(`div`,G,[d(`span`,{class:D(n.isActive?`on`:`off`)},t(n.isActive?`فعال`:`غیرفعال`),3),d(`button`,{type:`button`,class:`link`,onClick:e=>ne(n)},t(n.isActive?`حذف از خانه`:`فعال‌سازی`),9,K)])]))),128))])])):(x(),h(`p`,q,`هنوز پیشنهادی برای این مشتری ثبت نشده است.`))],64))]))}}),[[`__scopeId`,`data-v-4182e847`]]),se={class:`customers-page`},ce={class:`admin-page-header`},le={class:`customers-page__tabs`,role:`tablist`,"aria-label":`نوع کاربر`},ue=[`aria-selected`],de=[`aria-selected`],fe={class:`customers-page__search admin-card`},pe={key:2,class:`customers-page__table admin-card desktop-only`},me={class:`admin-table-wrap`},he={class:`admin-table`},ge={key:0},_e={key:1},ve={key:2},ye={key:3},be={key:4},xe={key:0},Se={key:1},Ce={key:2},we={key:3},Te={key:4},Ee={class:`numeric`},De={class:`numeric`},Oe={class:`status`},ke={class:`actions`},Ae=[`onClick`],je={key:3,class:`compact-only admin-card-list`},Me={class:`admin-card-item__header`},Ne={class:`admin-card-item__title`},Pe={class:`admin-card-item__header-actions`},Fe=[`onClick`],Ie={class:`admin-card-item__meta`},Le={key:0},Re={key:1},ze={key:2},Be={key:3},Ve={key:4},He={key:0,class:`admin-form__error`,role:`alert`},Ue={class:`admin-form__field`},We={class:`admin-form__row`},Ge={class:`admin-form__field`},Ke={class:`admin-form__field`},qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__row`},et={class:`admin-form__field`},tt={key:0,class:`admin-form__field`},nt={key:1,class:`admin-form__field`},rt={class:`customers-page__brands`},it=[`checked`,`onChange`],at={class:`admin-form__field`},ot=[`disabled`],st={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},J=l(b({__name:`CustomersView`,setup(n){let c=O([]),l=O([]),b=O([]),S=O([]),P=O(``),F=O(`customer`),I=O(!0),L=O(null),R=O(null),z=O(``),B=O(!1),V=k();function H(e){if(e==null)return`-`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`-`;let t=e.trim();return!t||t===`—`?`-`:t}function U(e){return e==null||!Number.isFinite(e)?`-`:f(e)}let W=[{value:`wholesale`,label:`عمده‌فروش`},{value:`retail`,label:`خرده‌فروش`}],G=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],K={customer:`مشتری`,agent:`واسطه`};function q(e){return K[e===`agent`?`agent`:`customer`]}let J=u(()=>[{value:``,label:`بدون سطح`},...l.value.map(e=>({value:e.id,label:e.label}))]),ct=u(()=>[{value:``,label:`بدون واسطه`},...b.value.filter(e=>e.id!==R.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),Y=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),X=re(Y()),lt=u(()=>L.value!==null),ut=u(()=>L.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),dt=u(()=>X.name.trim()&&X.phone.trim()&&X.nationalId.trim()),Z=u(()=>{let e=P.value.trim();return e?c.value.filter(t=>t.name.includes(e)||t.phone.includes(e)||t.nationalId.includes(e)||t.companyName.includes(e)):c.value});function ft(e,t){t?X.brandIds.includes(e)||X.brandIds.push(e):X.brandIds=X.brandIds.filter(t=>t!==e)}async function pt(){I.value=!0;try{c.value=await g.list(void 0,F.value)}catch(e){V.error(e instanceof a?e.message:F.value===`agent`?`بارگذاری واسطه‌ها انجام نشد.`:`بارگذاری مشتریان انجام نشد.`)}finally{I.value=!1}}function Q(e){F.value!==e&&(F.value=e,P.value=``,pt())}async function mt(){try{let[e,t,n]=await Promise.all([ne.list(),g.list(void 0,`agent`),E.list()]);l.value=e,b.value=t,S.value=n}catch(e){V.error(e instanceof a?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}te(()=>{pt(),mt()});function ht(){L.value=`add`,R.value=null,Object.assign(X,Y()),X.appRole=F.value,z.value=``}function gt(e){L.value=`edit`,R.value=e.id,X.name=e.name,X.phone=e.phone,X.nationalId=e.nationalId,X.customerType=e.customerType,X.companyName=e.companyName,X.isActive=e.isActive,X.levelDefId=e.levelDefId??``,X.assignedAgentId=e.assignedAgentId??``,X.brandIds=[...e.brandIds??[]],X.appRole=e.appRole===`agent`?`agent`:`customer`,X.agentCode=e.agentCode??``,z.value=``}function $(){L.value=null,R.value=null,z.value=``}async function _t(){if(!dt.value){z.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}B.value=!0;let e={name:X.name.trim(),phone:X.phone.trim(),nationalId:X.nationalId.trim(),customerType:X.customerType,isActive:X.isActive,levelDefId:X.levelDefId||null,assignedAgentId:X.assignedAgentId||null,brandIds:[...X.brandIds],appRole:X.appRole,agentCode:X.appRole===`agent`&&X.agentCode.trim()||null};try{if(L.value===`edit`&&R.value){let t=await g.update(R.value,e),n=c.value.findIndex(e=>e.id===R.value);n!==-1&&(c.value[n]={...c.value[n],...t})}else{let t=await g.create(e);c.value.unshift(t)}V.success(L.value===`edit`?`اطلاعات مشتری به‌روزرسانی شد.`:`مشتری جدید ثبت شد.`),$(),e.appRole===`agent`&&mt()}catch(e){V.error(e instanceof a?e.message:`ذخیره مشتری انجام نشد.`)}finally{B.value=!1}}async function vt(e,t){await g.setActive(e,t)}function yt(){P.value=``}return(n,a)=>(x(),h(`div`,se,[d(`div`,ce,[a[13]||=d(`div`,null,[d(`h1`,{class:`admin-page-header__title`},`مشتریان و واسطه‌ها`)],-1),d(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:ht},t(F.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1)]),d(`div`,le,[d(`button`,{type:`button`,role:`tab`,class:D([`customers-page__tab`,{"is-active":F.value===`customer`}]),"aria-selected":F.value===`customer`,onClick:a[0]||=e=>Q(`customer`)},` مشتریان `,10,ue),d(`button`,{type:`button`,role:`tab`,class:D([`customers-page__tab`,{"is-active":F.value===`agent`}]),"aria-selected":F.value===`agent`,onClick:a[1]||=e=>Q(`agent`)},` واسطه‌ها `,10,de)]),d(`div`,fe,[T(ee,{name:`search`,size:18}),_(d(`input`,{"onUpdate:modelValue":a[2]||=e=>P.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[r,P.value]])]),I.value?(x(),o(A,{key:0,variant:`table`})):Z.value.length?(x(),h(`div`,pe,[d(`div`,me,[d(`table`,he,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,t(F.value===`agent`?`نام واسطه`:`نام مشتری`),1),a[14]||=d(`th`,null,`تلفن`,-1),a[15]||=d(`th`,null,`نقش`,-1),F.value===`agent`?(x(),h(`th`,ge,`کد واسطه`)):e(``,!0),F.value===`customer`?(x(),h(`th`,_e,`نوع`)):e(``,!0),F.value===`customer`?(x(),h(`th`,ve,`سطح`)):e(``,!0),F.value===`customer`?(x(),h(`th`,ye,`واسطه`)):e(``,!0),F.value===`customer`?(x(),h(`th`,be,`شرکت`)):e(``,!0),a[16]||=d(`th`,{class:`numeric`},`تعداد سفارش`,-1),a[17]||=d(`th`,{class:`numeric`},`مجموع متراژ`,-1),a[18]||=d(`th`,{class:`status`},`وضعیت`,-1),a[19]||=d(`th`,null,`تاریخ ثبت`,-1),a[20]||=d(`th`,{class:`actions`},`عملیات`,-1)])]),d(`tbody`,null,[(x(!0),h(i,null,m(Z.value,n=>(x(),h(`tr`,{key:n.id},[d(`td`,null,t(H(n.name)),1),d(`td`,null,t(H(n.phone)),1),d(`td`,null,t(q(n.appRole)),1),F.value===`agent`?(x(),h(`td`,xe,t(H(n.agentCode)),1)):e(``,!0),F.value===`customer`?(x(),h(`td`,Se,t(H(p(M)[n.customerType])),1)):e(``,!0),F.value===`customer`?(x(),h(`td`,Ce,t(H(n.levelLabel)),1)):e(``,!0),F.value===`customer`?(x(),h(`td`,we,t(H(n.assignedAgentName)),1)):e(``,!0),F.value===`customer`?(x(),h(`td`,Te,t(H(n.companyName)),1)):e(``,!0),d(`td`,Ee,t(H(n.orderCount)),1),d(`td`,De,t(U(n.totalMeterage)),1),d(`td`,Oe,[T(N,{id:n.id,modelValue:n.isActive,"onUpdate:modelValue":e=>n.isActive=e,"entity-name":n.name,"entity-type":`مشتری`,persist:vt},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),d(`td`,null,t(H(p(y)(n.registeredAt))),1),d(`td`,ke,[d(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>gt(n)},` ویرایش `,8,Ae)])]))),128))])])])])):(x(),o(ae,{key:1,class:`admin-card`,icon:`customers`,title:P.value.trim()?`نتیجه‌ای یافت نشد`:F.value===`agent`?`واسطه‌ای ثبت نشده`:`مشتریان ثبت شده`,description:P.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:F.value===`agent`?`برای شروع، اولین واسطه را ثبت کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:v(()=>[P.value.trim()?(x(),h(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:yt},` پاک کردن جستجو `)):(x(),h(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:ht},t(F.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1))]),_:1},8,[`title`,`description`])),!I.value&&Z.value.length?(x(),h(`div`,je,[(x(!0),h(i,null,m(Z.value,n=>(x(),h(`article`,{key:n.id,class:`admin-card-item`},[d(`div`,Me,[d(`p`,Ne,t(H(n.name)),1),d(`div`,Pe,[T(N,{id:n.id,modelValue:n.isActive,"onUpdate:modelValue":e=>n.isActive=e,"entity-name":n.name,"entity-type":`مشتری`,persist:vt},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),d(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>gt(n)},` ویرایش `,8,Fe)])]),d(`div`,Ie,[d(`span`,null,t(H(n.phone)),1),F.value===`agent`?(x(),h(`span`,Le,`کد: `+t(H(n.agentCode)),1)):e(``,!0),F.value===`customer`?(x(),h(`span`,Re,t(H(p(M)[n.customerType])),1)):e(``,!0),F.value===`customer`?(x(),h(`span`,ze,t(H(n.levelLabel)),1)):e(``,!0),F.value===`customer`?(x(),h(`span`,Be,`واسطه: `+t(H(n.assignedAgentName)),1)):e(``,!0),F.value===`customer`?(x(),h(`span`,Ve,t(H(n.companyName)),1)):e(``,!0),d(`span`,null,t(H(n.orderCount))+` سفارش · `+t(U(n.totalMeterage)),1)])]))),128))])):e(``,!0),T(s,{open:lt.value,title:ut.value,size:`lg`,onClose:$},{footer:v(()=>[d(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:$},`انصراف`),d(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!dt.value||B.value,onClick:_t},[B.value?(x(),h(`span`,st)):e(``,!0),C(` `+t(L.value===`edit`?`ذخیره تغییرات`:X.appRole===`agent`?`ثبت واسطه`:`ثبت مشتری`),1)],8,ot)]),default:v(()=>[d(`form`,{class:`admin-form`,onSubmit:w(_t,[`prevent`])},[z.value?(x(),h(`p`,He,t(z.value),1)):e(``,!0),d(`div`,Ue,[a[21]||=d(`label`,{for:`customer-name`},[C(`نام مشتری `),d(`span`,{class:`admin-form__required`},`*`)],-1),_(d(`input`,{id:`customer-name`,"onUpdate:modelValue":a[3]||=e=>X.name=e,type:`text`,class:`admin-input`},null,512),[[r,X.name]])]),d(`div`,We,[d(`div`,Ge,[a[22]||=d(`label`,{for:`customer-phone`},[C(`تلفن `),d(`span`,{class:`admin-form__required`},`*`)],-1),_(d(`input`,{id:`customer-phone`,"onUpdate:modelValue":a[4]||=e=>X.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[r,X.phone]])]),d(`div`,Ke,[a[23]||=d(`label`,{for:`customer-national-id`},[C(`شناسه ملی `),d(`span`,{class:`admin-form__required`},`*`)],-1),_(d(`input`,{id:`customer-national-id`,"onUpdate:modelValue":a[5]||=e=>X.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[r,X.nationalId]])])]),d(`div`,qe,[d(`div`,Je,[a[24]||=d(`label`,null,`نوع مشتری`,-1),T(j,{modelValue:X.customerType,"onUpdate:modelValue":a[6]||=e=>X.customerType=e,block:``,"aria-label":`نوع مشتری`,options:W},null,8,[`modelValue`])]),d(`div`,Ye,[a[25]||=d(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),_(d(`input`,{id:`customer-company`,"onUpdate:modelValue":a[7]||=e=>X.companyName=e,type:`text`,class:`admin-input`},null,512),[[r,X.companyName]])])]),d(`div`,Xe,[d(`div`,Ze,[a[26]||=d(`label`,null,`سطح`,-1),T(j,{modelValue:X.levelDefId,"onUpdate:modelValue":a[8]||=e=>X.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:J.value},null,8,[`modelValue`,`options`])]),d(`div`,Qe,[a[27]||=d(`label`,null,`واسطه`,-1),T(j,{modelValue:X.assignedAgentId,"onUpdate:modelValue":a[9]||=e=>X.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاص‌یافته`,options:ct.value},null,8,[`modelValue`,`options`])])]),d(`div`,$e,[d(`div`,et,[a[28]||=d(`label`,null,`نقش در اپ`,-1),T(j,{modelValue:X.appRole,"onUpdate:modelValue":a[10]||=e=>X.appRole=e,block:``,"aria-label":`نقش در اپ`,options:G},null,8,[`modelValue`])]),X.appRole===`agent`?(x(),h(`div`,tt,[a[29]||=d(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),_(d(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":a[11]||=e=>X.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[r,X.agentCode]])])):e(``,!0)]),S.value.length?(x(),h(`div`,nt,[a[30]||=d(`label`,null,`برندها`,-1),d(`div`,rt,[(x(!0),h(i,null,m(S.value,e=>(x(),h(`label`,{key:e.id,class:`customers-page__brand`},[d(`input`,{type:`checkbox`,checked:X.brandIds.includes(e.id),onChange:t=>ft(e.id,t.target.checked)},null,40,it),d(`span`,null,t(e.name),1)]))),128))])])):e(``,!0),d(`div`,at,[T(ie,{modelValue:X.isActive,"onUpdate:modelValue":a[12]||=e=>X.isActive=e,label:`وضعیت`},null,8,[`modelValue`])]),L.value===`edit`&&R.value&&X.appRole===`customer`?(x(),o(oe,{key:2,"customer-id":R.value},null,8,[`customer-id`])):e(``,!0)],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-db05c8d1`]]);export{J as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-D2DfLX0j.js b/dist/assets/CustomersView-D2DfLX0j.js new file mode 100644 index 0000000..18f3608 --- /dev/null +++ b/dist/assets/CustomersView-D2DfLX0j.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,R as r,T as i,Tt as a,V as o,Y as s,Z as c,at as l,c as u,d,g as f,h as p,j as m,l as h,m as g,r as _,s as v,t as y,u as b}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{D as x,K as S,N as C,P as w,R as T,S as E,W as D,a as O,g as k,i as ee,u as te,v as ne,z as re}from"./index-CXa4EMLW.js";import{t as ie}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as ae}from"./BaseSwitch-TV5Yvtf7.js";import{t as oe}from"./BaseEmptyState-BmO9aDcK.js";import{t as A}from"./AdminSelect-9UfEJQzN.js";import{r as j}from"./adminLabels-Cz9ccm1Z.js";import{t as M}from"./ActiveSwitchCell-DJZQHZ-8.js";var N={class:`suggestions-panel`},P={key:0,class:`suggestions-panel__loading`},F={class:`suggestions-panel__add`},I={class:`field`},L={key:0,class:`suggestions-panel__picked`},R=[`onClick`],z={class:`field`},B=[`disabled`],V={key:0,class:`suggestions-panel__list`},H={class:`muted`,dir:`ltr`},U={key:0,class:`note`},W={class:`suggestions-panel__actions`},G=[`onClick`],K={key:1,class:`suggestions-panel__empty`},se=y(f({__name:`CustomerSuggestionsPanel`,props:{customerId:{}},setup(e){let s=e,l=re(),f=c(!0),h=c(!1),y=c([]),S=c([]),w=c([]),T=c(``),O=v(()=>S.value.filter(e=>!y.value.some(t=>t.productId===e.id&&t.isActive)).map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function k(){if(s.customerId){f.value=!0;try{let[e,t]=await Promise.all([x.list(s.customerId),E.list()]);y.value=e,S.value=t}catch(e){l.error(e instanceof C?e.message:`بارگذاری پیشنهادها ناموفق بود`)}finally{f.value=!1}}}async function ee(){if(w.value.length){h.value=!0;try{for(let e of w.value)await x.create({customerId:s.customerId,productId:e,note:T.value.trim()||void 0});w.value=[],T.value=``,l.success(`پیشنهادها به صفحه خانه مشتری اضافه شد`),await k()}catch(e){l.error(e instanceof C?e.message:`ثبت پیشنهاد ناموفق بود`)}finally{h.value=!1}}}async function te(e){try{await x.setActive(e.id,!e.isActive),await k()}catch(e){l.error(e instanceof C?e.message:`به‌روزرسانی ناموفق بود`)}}function ne(e){e&&(w.value.includes(e)||(w.value=[...w.value,e]))}function ie(e){w.value=w.value.filter(t=>t!==e)}return r(()=>s.customerId,()=>{k()}),i(()=>{k()}),(e,r)=>(t(),d(`section`,N,[r[4]||=u(`header`,{class:`suggestions-panel__head`},[u(`div`,null,[u(`h3`,{class:`suggestions-panel__title`},`پیشنهاد اختصاصی در اپ`),u(`p`,{class:`suggestions-panel__hint`},` محصولات انتخاب‌شده در بخش «پیشنهاد اختصاصی ما برای شما» در صفحه خانه مشتری نمایش داده می‌شوند. `)])],-1),f.value?(t(),d(`div`,P,`در حال بارگذاری...`)):(t(),d(_,{key:1},[u(`div`,F,[u(`label`,I,[r[1]||=g(` افزودن محصول (کد کالیته) `,-1),p(A,{"model-value":``,options:[{value:``,label:`انتخاب محصول...`},...O.value],"onUpdate:modelValue":ne},null,8,[`options`])]),w.value.length?(t(),d(`div`,L,[(t(!0),d(_,null,m(w.value,e=>(t(),d(`span`,{key:e,class:`suggestions-panel__chip`},[g(n(S.value.find(t=>t.id===e)?.productCode||e)+` `,1),u(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>ie(e)},`×`,8,R)]))),128))])):b(``,!0),u(`label`,z,[r[2]||=g(` یادداشت (اختیاری) `,-1),o(u(`textarea`,{"onUpdate:modelValue":r[0]||=e=>T.value=e,class:`admin-input`,rows:`2`,placeholder:`دلیل پیشنهاد برای مشتری`},null,512),[[D,T.value]])]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!w.value.length||h.value,onClick:ee},` افزودن به صفحه خانه مشتری `,8,B)]),y.value.length?(t(),d(`div`,V,[r[3]||=u(`h4`,{class:`suggestions-panel__sub`},`پیشنهادهای ثبت‌شده`,-1),u(`ul`,null,[(t(!0),d(_,null,m(y.value,e=>(t(),d(`li`,{key:e.id,class:`suggestions-panel__row`},[u(`div`,null,[u(`strong`,null,n(e.productName),1),u(`span`,H,`(`+n(e.productCode)+`)`,1),e.note?(t(),d(`p`,U,n(e.note),1)):b(``,!0)]),u(`div`,W,[u(`span`,{class:a(e.isActive?`on`:`off`)},n(e.isActive?`فعال`:`غیرفعال`),3),u(`button`,{type:`button`,class:`link`,onClick:t=>te(e)},n(e.isActive?`حذف از خانه`:`فعال‌سازی`),9,G)])]))),128))])])):(t(),d(`p`,K,`هنوز پیشنهادی برای این مشتری ثبت نشده است.`))],64))]))}}),[[`__scopeId`,`data-v-4182e847`]]),ce={class:`customers-page`},le={class:`admin-page-header`},ue={class:`customers-page__tabs`,role:`tablist`,"aria-label":`نوع کاربر`},de=[`aria-selected`],fe=[`aria-selected`],pe={class:`customers-page__search admin-card`},me={key:2,class:`customers-page__table admin-card desktop-only`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:0},ve={key:1},ye={key:2},be={key:3},xe={key:4},Se={key:0},Ce={key:1},we={key:2},Te={key:3},Ee={key:4},De={class:`numeric`},Oe={class:`numeric`},ke={class:`status`},Ae={class:`actions`},je=[`onClick`],Me={key:3,class:`compact-only admin-card-list`},Ne={class:`admin-card-item__header`},Pe={class:`admin-card-item__title`},Fe={class:`admin-card-item__header-actions`},Ie=[`onClick`],Le={class:`admin-card-item__meta`},Re={key:0},ze={key:1},Be={key:2},Ve={key:3},He={key:4},Ue={key:0,class:`admin-form__error`,role:`alert`},We={class:`admin-form__field`},Ge={class:`admin-form__row`},Ke={class:`admin-form__field`},qe={class:`admin-form__field`},Je={class:`admin-form__row`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={class:`admin-form__row`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`admin-form__row`},tt={class:`admin-form__field`},nt={key:0,class:`admin-form__field`},rt={key:1,class:`admin-form__field`},it={class:`customers-page__brands`},at=[`checked`,`onChange`],ot={class:`admin-form__field`},st=[`disabled`],ct={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},q=y(f({__name:`CustomersView`,setup(r){let f=c([]),y=c([]),x=c([]),E=c([]),N=c(``),P=c(`customer`),F=c(!0),I=c(null),L=c(null),R=c(``),z=c(!1),B=re();function V(e){if(e==null)return`-`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`-`;let t=e.trim();return!t||t===`—`?`-`:t}function H(e){return e==null||!Number.isFinite(e)?`-`:O(e)}let U=[{value:`wholesale`,label:`عمده‌فروش`},{value:`retail`,label:`خرده‌فروش`}],W=[{value:`customer`,label:`مشتری`},{value:`agent`,label:`واسطه`}],G={customer:`مشتری`,agent:`واسطه`};function K(e){return G[e===`agent`?`agent`:`customer`]}let q=v(()=>[{value:``,label:`بدون سطح`},...y.value.map(e=>({value:e.id,label:e.label}))]),lt=v(()=>[{value:``,label:`بدون واسطه`},...x.value.filter(e=>e.id!==L.value).map(e=>({value:e.id,label:e.name+(e.agentCode?` (${e.agentCode})`:``)}))]),J=()=>({name:``,phone:``,nationalId:``,customerType:`wholesale`,companyName:``,isActive:!0,levelDefId:``,assignedAgentId:``,brandIds:[],appRole:`customer`,agentCode:``}),Y=s(J()),ut=v(()=>I.value!==null),dt=v(()=>I.value===`edit`?`ویرایش مشتری`:`افزودن مشتری`),ft=v(()=>Y.name.trim()&&Y.phone.trim()&&Y.nationalId.trim()),X=v(()=>{let e=N.value.trim();return e?f.value.filter(t=>t.name.includes(e)||t.phone.includes(e)||t.nationalId.includes(e)||t.companyName.includes(e)):f.value});function pt(e,t){t?Y.brandIds.includes(e)||Y.brandIds.push(e):Y.brandIds=Y.brandIds.filter(t=>t!==e)}async function mt(){F.value=!0;try{f.value=await k.list(void 0,P.value)}catch(e){B.error(e instanceof C?e.message:P.value===`agent`?`بارگذاری واسطه‌ها انجام نشد.`:`بارگذاری مشتریان انجام نشد.`)}finally{F.value=!1}}function Z(e){P.value!==e&&(P.value=e,N.value=``,mt())}async function ht(){try{let[e,t,n]=await Promise.all([ne.list(),k.list(void 0,`agent`),te.list()]);y.value=e,x.value=t,E.value=n}catch(e){B.error(e instanceof C?e.message:`بارگذاری اطلاعات کمکی انجام نشد.`)}}i(()=>{mt(),ht()});function gt(){I.value=`add`,L.value=null,Object.assign(Y,J()),Y.appRole=P.value,R.value=``}function _t(e){I.value=`edit`,L.value=e.id,Y.name=e.name,Y.phone=e.phone,Y.nationalId=e.nationalId,Y.customerType=e.customerType,Y.companyName=e.companyName,Y.isActive=e.isActive,Y.levelDefId=e.levelDefId??``,Y.assignedAgentId=e.assignedAgentId??``,Y.brandIds=[...e.brandIds??[]],Y.appRole=e.appRole===`agent`?`agent`:`customer`,Y.agentCode=e.agentCode??``,R.value=``}function Q(){I.value=null,L.value=null,R.value=``}async function vt(){if(!ft.value){R.value=`نام، تلفن و شناسه ملی الزامی هستند.`;return}z.value=!0;let e={name:Y.name.trim(),phone:Y.phone.trim(),nationalId:Y.nationalId.trim(),customerType:Y.customerType,isActive:Y.isActive,levelDefId:Y.levelDefId||null,assignedAgentId:Y.assignedAgentId||null,brandIds:[...Y.brandIds],appRole:Y.appRole,agentCode:Y.appRole===`agent`&&Y.agentCode.trim()||null};try{if(I.value===`edit`&&L.value){let t=await k.update(L.value,e),n=f.value.findIndex(e=>e.id===L.value);n!==-1&&(f.value[n]={...f.value[n],...t})}else{let t=await k.create(e);f.value.unshift(t)}B.success(I.value===`edit`?`اطلاعات مشتری به‌روزرسانی شد.`:`مشتری جدید ثبت شد.`),Q(),e.appRole===`agent`&&ht()}catch(e){B.error(e instanceof C?e.message:`ذخیره مشتری انجام نشد.`)}finally{z.value=!1}}async function $(e,t){await k.setActive(e,t)}function yt(){N.value=``}return(r,i)=>(t(),d(`div`,ce,[u(`div`,le,[i[13]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`مشتریان و واسطه‌ها`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:gt},n(P.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1)]),u(`div`,ue,[u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":P.value===`customer`}]),"aria-selected":P.value===`customer`,onClick:i[0]||=e=>Z(`customer`)},` مشتریان `,10,de),u(`button`,{type:`button`,role:`tab`,class:a([`customers-page__tab`,{"is-active":P.value===`agent`}]),"aria-selected":P.value===`agent`,onClick:i[1]||=e=>Z(`agent`)},` واسطه‌ها `,10,fe)]),u(`div`,pe,[p(w,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":i[2]||=e=>N.value=e,type:`search`,class:`customers-page__search-input`,placeholder:`جستجو در نام، تلفن، شناسه ملی...`},null,512),[[D,N.value]])]),F.value?(t(),h(ie,{key:0,variant:`table`})):X.value.length?(t(),d(`div`,me,[u(`div`,he,[u(`table`,ge,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(P.value===`agent`?`نام واسطه`:`نام مشتری`),1),i[14]||=u(`th`,null,`تلفن`,-1),i[15]||=u(`th`,null,`نقش`,-1),P.value===`agent`?(t(),d(`th`,_e,`کد واسطه`)):b(``,!0),P.value===`customer`?(t(),d(`th`,ve,`نوع`)):b(``,!0),P.value===`customer`?(t(),d(`th`,ye,`سطح`)):b(``,!0),P.value===`customer`?(t(),d(`th`,be,`واسطه`)):b(``,!0),P.value===`customer`?(t(),d(`th`,xe,`شرکت`)):b(``,!0),i[16]||=u(`th`,{class:`numeric`},`تعداد سفارش`,-1),i[17]||=u(`th`,{class:`numeric`},`مجموع متراژ`,-1),i[18]||=u(`th`,{class:`status`},`وضعیت`,-1),i[19]||=u(`th`,null,`تاریخ ثبت`,-1),i[20]||=u(`th`,{class:`actions`},`عملیات`,-1)])]),u(`tbody`,null,[(t(!0),d(_,null,m(X.value,e=>(t(),d(`tr`,{key:e.id},[u(`td`,null,n(V(e.name)),1),u(`td`,null,n(V(e.phone)),1),u(`td`,null,n(K(e.appRole)),1),P.value===`agent`?(t(),d(`td`,Se,n(V(e.agentCode)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Ce,n(V(l(j)[e.customerType])),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,we,n(V(e.levelLabel)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Te,n(V(e.assignedAgentName)),1)):b(``,!0),P.value===`customer`?(t(),d(`td`,Ee,n(V(e.companyName)),1)):b(``,!0),u(`td`,De,n(V(e.orderCount)),1),u(`td`,Oe,n(H(e.totalMeterage)),1),u(`td`,ke,[p(M,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),u(`td`,null,n(V(l(ee)(e.registeredAt))),1),u(`td`,Ae,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>_t(e)},` ویرایش `,8,je)])]))),128))])])])])):(t(),h(oe,{key:1,class:`admin-card`,icon:`customers`,title:N.value.trim()?`نتیجه‌ای یافت نشد`:P.value===`agent`?`واسطه‌ای ثبت نشده`:`مشتریان ثبت شده`,description:N.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:P.value===`agent`?`برای شروع، اولین واسطه را ثبت کنید.`:`برای شروع، اولین مشتری را ثبت کنید.`},{default:e(()=>[N.value.trim()?(t(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:yt},` پاک کردن جستجو `)):(t(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:gt},n(P.value===`agent`?`افزودن واسطه`:`افزودن مشتری`),1))]),_:1},8,[`title`,`description`])),!F.value&&X.value.length?(t(),d(`div`,Me,[(t(!0),d(_,null,m(X.value,e=>(t(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Ne,[u(`p`,Pe,n(V(e.name)),1),u(`div`,Fe,[p(M,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`مشتری`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>_t(e)},` ویرایش `,8,Ie)])]),u(`div`,Le,[u(`span`,null,n(V(e.phone)),1),P.value===`agent`?(t(),d(`span`,Re,`کد: `+n(V(e.agentCode)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,ze,n(V(l(j)[e.customerType])),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,Be,n(V(e.levelLabel)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,Ve,`واسطه: `+n(V(e.assignedAgentName)),1)):b(``,!0),P.value===`customer`?(t(),d(`span`,He,n(V(e.companyName)),1)):b(``,!0),u(`span`,null,n(V(e.orderCount))+` سفارش · `+n(H(e.totalMeterage)),1)])]))),128))])):b(``,!0),p(T,{open:ut.value,title:dt.value,size:`lg`,onClose:Q},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Q},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!ft.value||z.value,onClick:vt},[z.value?(t(),d(`span`,ct)):b(``,!0),g(` `+n(I.value===`edit`?`ذخیره تغییرات`:Y.appRole===`agent`?`ثبت واسطه`:`ثبت مشتری`),1)],8,st)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:S(vt,[`prevent`])},[R.value?(t(),d(`p`,Ue,n(R.value),1)):b(``,!0),u(`div`,We,[i[21]||=u(`label`,{for:`customer-name`},[g(`نام مشتری `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-name`,"onUpdate:modelValue":i[3]||=e=>Y.name=e,type:`text`,class:`admin-input`},null,512),[[D,Y.name]])]),u(`div`,Ge,[u(`div`,Ke,[i[22]||=u(`label`,{for:`customer-phone`},[g(`تلفن `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-phone`,"onUpdate:modelValue":i[4]||=e=>Y.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[D,Y.phone]])]),u(`div`,qe,[i[23]||=u(`label`,{for:`customer-national-id`},[g(`شناسه ملی `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`customer-national-id`,"onUpdate:modelValue":i[5]||=e=>Y.nationalId=e,type:`text`,class:`admin-input`,inputmode:`numeric`,dir:`ltr`},null,512),[[D,Y.nationalId]])])]),u(`div`,Je,[u(`div`,Ye,[i[24]||=u(`label`,null,`نوع مشتری`,-1),p(A,{modelValue:Y.customerType,"onUpdate:modelValue":i[6]||=e=>Y.customerType=e,block:``,"aria-label":`نوع مشتری`,options:U},null,8,[`modelValue`])]),u(`div`,Xe,[i[25]||=u(`label`,{for:`customer-company`},`شرکت مرتبط`,-1),o(u(`input`,{id:`customer-company`,"onUpdate:modelValue":i[7]||=e=>Y.companyName=e,type:`text`,class:`admin-input`},null,512),[[D,Y.companyName]])])]),u(`div`,Ze,[u(`div`,Qe,[i[26]||=u(`label`,null,`سطح`,-1),p(A,{modelValue:Y.levelDefId,"onUpdate:modelValue":i[8]||=e=>Y.levelDefId=e,block:``,"aria-label":`سطح مشتری`,options:q.value},null,8,[`modelValue`,`options`])]),u(`div`,$e,[i[27]||=u(`label`,null,`واسطه`,-1),p(A,{modelValue:Y.assignedAgentId,"onUpdate:modelValue":i[9]||=e=>Y.assignedAgentId=e,block:``,"aria-label":`واسطه اختصاص‌یافته`,options:lt.value},null,8,[`modelValue`,`options`])])]),u(`div`,et,[u(`div`,tt,[i[28]||=u(`label`,null,`نقش در اپ`,-1),p(A,{modelValue:Y.appRole,"onUpdate:modelValue":i[10]||=e=>Y.appRole=e,block:``,"aria-label":`نقش در اپ`,options:W},null,8,[`modelValue`])]),Y.appRole===`agent`?(t(),d(`div`,nt,[i[29]||=u(`label`,{for:`customer-agent-code`},`کد واسطه`,-1),o(u(`input`,{id:`customer-agent-code`,"onUpdate:modelValue":i[11]||=e=>Y.agentCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[D,Y.agentCode]])])):b(``,!0)]),E.value.length?(t(),d(`div`,rt,[i[30]||=u(`label`,null,`برندها`,-1),u(`div`,it,[(t(!0),d(_,null,m(E.value,e=>(t(),d(`label`,{key:e.id,class:`customers-page__brand`},[u(`input`,{type:`checkbox`,checked:Y.brandIds.includes(e.id),onChange:t=>pt(e.id,t.target.checked)},null,40,at),u(`span`,null,n(e.name),1)]))),128))])])):b(``,!0),u(`div`,ot,[p(ae,{modelValue:Y.isActive,"onUpdate:modelValue":i[12]||=e=>Y.isActive=e,label:`وضعیت`},null,8,[`modelValue`])]),I.value===`edit`&&L.value&&Y.appRole===`customer`?(t(),h(se,{key:2,"customer-id":L.value},null,8,[`customer-id`])):b(``,!0)],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-db05c8d1`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/DashboardView-BXkuwSW-.js b/dist/assets/DashboardView-BXkuwSW-.js deleted file mode 100644 index 6b26c83..0000000 --- a/dist/assets/DashboardView-BXkuwSW-.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,I as n,J as r,N as i,P as a,Q as o,St as s,V as c,X as l,Z as u,_ as d,bt as f,dt as p,et as m,ht as h,i as g,it as _,lt as v,n as y,nt as b,o as x,pt as S,rt as C,st as w,xt as T,y as E,yt as D,z as O}from"./index-B2VD3zy8.js";import{t as k}from"./StatusBadge-D3ThrLrU.js";var ee={class:`sales-chart`},te={key:0,class:`sales-chart__header`},A={key:0,class:`sales-chart__title`},j={key:1,class:`sales-chart__subtitle`},M=[`viewBox`,`aria-label`],N=[`x1`,`x2`,`y1`,`y2`],P=[`points`],F=[`points`],I=[`x1`,`x2`,`y1`,`y2`],L=[`cx`,`cy`],R={class:`sales-chart__tooltip-label`},z={key:1,class:`sales-chart__axis`},B=320,V=120,H=c(_({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(n){let i=n,a=D(null),o={top:12,right:8,bottom:8,left:8},c=l(()=>Math.max(...i.data,.001)),d=l(()=>{let e=B-o.left-o.right,t=V-o.top-o.bottom,n=e/Math.max(i.data.length-1,1);return i.data.map((e,r)=>({x:o.left+r*n,y:o.top+t-e/c.value*t,value:e,index:r}))}),h=l(()=>d.value.map(e=>`${e.x},${e.y}`).join(` `)),g=l(()=>{let e=V-o.bottom,t=d.value[0],n=d.value[d.value.length-1];return!t||!n?``:`${t.x},${e} ${h.value} ${n.x},${e}`}),_=l(()=>{let e=V-o.top-o.bottom;return[0,.5,1].map(t=>o.top+e*t)}),y=l(()=>a.value===null?null:d.value[a.value]??null);function b(e){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*B,r=0,i=1/0;d.value.forEach(e=>{let t=Math.abs(e.x-n);t(v(),m(`div`,ee,[n.title||n.subtitle?(v(),m(`div`,te,[u(`div`,null,[n.title?(v(),m(`h3`,A,t(n.title),1)):e(``,!0),n.subtitle?(v(),m(`p`,j,t(n.subtitle),1)):e(``,!0)])])):e(``,!0),u(`div`,{class:`sales-chart__body`,style:s({height:`${n.height}px`})},[(v(),m(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":n.title||`نمودار فروش`,onMousemove:b,onMouseleave:S},[(v(!0),m(r,null,p(_.value,(e,t)=>(v(),m(`line`,{key:t,x1:o.left,x2:B-o.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,N))),128)),g.value?(v(),m(`polygon`,{key:0,points:g.value,class:`sales-chart__area`,style:s({fill:`${n.color}22`})},null,12,P)):e(``,!0),u(`polyline`,{points:h.value,class:`sales-chart__line`,style:s({stroke:n.color})},null,12,F),y.value?(v(),m(r,{key:1},[u(`line`,{x1:y.value.x,x2:y.value.x,y1:o.top,y2:V-o.bottom,class:`sales-chart__cursor`},null,8,I),u(`circle`,{cx:y.value.x,cy:y.value.y,r:`4`,class:`sales-chart__dot`,style:s({fill:n.color})},null,12,L)],64)):e(``,!0)],40,M)),y.value?(v(),m(`div`,{key:0,class:`sales-chart__tooltip`,style:s({left:`${y.value.x/B*100}%`})},[u(`span`,R,t(n.labels?.[y.value.index]??`روز ${y.value.index+1}`),1),u(`strong`,null,t(f(x)(y.value.value))+` `+t(n.unit),1)],4)):e(``,!0)],4),n.labels?.length?(v(),m(`div`,z,[(v(!0),m(r,null,p(n.labels,(e,n)=>(v(),m(`span`,{key:n},t(e),1))),128))])):e(``,!0)]))}}),[[`__scopeId`,`data-v-85c70c78`]]),U={info:`var(--color-info-light)`,warning:`var(--color-warning-light)`,purple:`var(--color-purple-light)`,success:`var(--color-success-light)`},W={info:`var(--color-info)`,warning:`var(--color-warning-dark)`,purple:`var(--color-purple)`,success:`var(--color-success)`},G=()=>({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0});function K(){let e=n(),t=O(),r=D(G()),a=D([]),o=D(Array.from({length:28},()=>0)),s=D([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),c=D([]),u=D(!1),f=l(()=>[{label:`سفارش‌های جدید`,value:r.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:r.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:r.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:r.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),p=l(()=>{let e=o.value;if(!e.length)return``;let t=Math.max(...e,.001),n=e.length>1?280/(e.length-1):280;return e.map((e,r)=>`${r*n},${120-e/t*110-5}`).join(` `)});async function m(){u.value=!0;try{let e=await d.get();r.value=e.stats,a.value=(e.recentOrders??[]).map(e=>E(e)),o.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),s.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],c.value=e.checkDeadlines??[]}catch(e){t.error(e instanceof i?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{u.value=!1}}w(()=>{m()});function h(){e.push(`/orders`)}return{checkDeadlines:c,dashboardStats:r,recentOrders:a,chartPoints:p,salesChartData:o,chartAxisLabels:s,statCards:f,loading:u,goOrders:h,loadDashboard:m}}var q={class:`dashboard`},J={class:`dashboard__toolbar`},Y={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},X={class:`dashboard__stats`},Z={class:`admin-stat-card__label`},Q={class:`admin-stat-card__value`},ne={class:`dashboard__sales-card admin-stat-card`},re={class:`dashboard__sales-header`},ie={class:`admin-stat-card__value dashboard__sales-value`},$={class:`dashboard__sales-growth`},ae={class:`dashboard__grid`},oe={class:`dashboard__chart-card admin-card`},se={class:`dashboard__orders-card admin-card`},ce={class:`admin-table-wrap`},le={class:`admin-table admin-table--compact`},ue={class:`dashboard__card-footer`},de={class:`dashboard__checks-card admin-card`},fe={class:`dashboard__deadline-list`},pe={class:`dashboard__deadline-count`},me={class:`dashboard__deadline-amount`},he={class:`dashboard__card-footer`},ge=c(_({__name:`DesktopDashboard`,setup(e){let{checkDeadlines:n,dashboardStats:i,recentOrders:o,salesChartData:c,chartAxisLabels:l,goOrders:d,statCards:_}=K();return(e,x)=>{let w=S(`RouterLink`);return v(),m(`div`,q,[u(`div`,J,[u(`button`,Y,[C(a,{name:`calendar`,size:16}),x[1]||=b(` امروز `,-1)])]),u(`div`,X,[(v(!0),m(r,null,p(f(_),e=>(v(),m(`div`,{key:e.label,class:`admin-stat-card`},[u(`div`,{class:`admin-stat-card__icon`,style:s({background:f(U)[e.tone],color:f(W)[e.tone]})},[C(a,{name:e.icon,size:20},null,8,[`name`])],4),u(`p`,Z,t(e.label),1),u(`p`,Q,t(e.value),1),C(w,{to:e.link,class:`admin-stat-card__link`},{default:h(()=>[...x[2]||=[b(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),u(`div`,ne,[u(`div`,re,[u(`div`,null,[x[3]||=u(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),u(`p`,ie,t(f(y)(f(i).todaySales)),1),u(`span`,$,` +`+t(f(i).todaySalesGrowth)+`% نسبت به دیروز `,1)]),C(a,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),x[4]||=u(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[u(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),u(`div`,ae,[u(`div`,oe,[C(H,{title:`فروش ماه جاری`,subtitle:f(y)(f(i).monthSales),data:f(c),labels:f(l),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),u(`div`,se,[x[7]||=u(`div`,{class:`dashboard__card-header`},[u(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),u(`div`,ce,[u(`table`,le,[x[5]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`شماره سفارش`),u(`th`,null,`مشتری`),u(`th`,null,`شرکت`),u(`th`,null,`وضعیت`),u(`th`,null,`تاریخ ثبت`)])],-1),u(`tbody`,null,[(v(!0),m(r,null,p(f(o),e=>(v(),m(`tr`,{key:e.id},[u(`td`,null,t(e.orderNumber),1),u(`td`,null,t(e.customerName),1),u(`td`,null,t(e.companyName),1),u(`td`,null,[C(k,{status:e.status},null,8,[`status`])]),u(`td`,null,t(f(g)(e.createdAt)),1)]))),128))])])]),u(`div`,ue,[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:x[0]||=(...e)=>f(d)&&f(d)(...e)},[x[6]||=b(` مشاهده همه سفارش‌ها `,-1),C(a,{name:`chevron-left`,size:16})])])]),u(`div`,de,[x[9]||=u(`div`,{class:`dashboard__card-header`},[u(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),u(`ul`,fe,[(v(!0),m(r,null,p(f(n),e=>(v(),m(`li`,{key:e.id,class:`dashboard__deadline-item`},[u(`span`,{class:T([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},t(e.label),3),u(`span`,pe,t(e.count)+` فقره`,1),u(`span`,me,t(f(y)(e.amount)),1)]))),128))]),u(`div`,he,[C(w,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:h(()=>[x[8]||=b(` مشاهده همه `,-1),C(a,{name:`chevron-left`,size:16})]),_:1})])])])])}}}),[[`__scopeId`,`data-v-bf2ebdae`]]),_e={class:`compact-dashboard page-shell`},ve={class:`flex justify-end mb-3`},ye={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},be={class:`compact-stats-grid`},xe={class:`admin-stat-card__label`},Se={class:`admin-stat-card__value`},Ce={class:`admin-stat-card col-span-full`},we={class:`admin-stat-card__value`},Te={class:`text-xs font-semibold text-success`},Ee={class:`compact-section-grid`},De={class:`compact-section-card admin-panel`},Oe={class:`compact-section-card admin-panel`},ke={class:`admin-card-list`},Ae={class:`admin-card-item__header`},je={class:`admin-card-item__title`},Me={class:`admin-card-item__meta`},Ne={class:`compact-section-card admin-panel`},Pe={class:`m-0 p-0 list-none flex flex-col gap-2.5`},Fe={class:`mr-auto text-xs`},Ie=_({__name:`CompactDashboard`,setup(e){let{checkDeadlines:n,dashboardStats:i,recentOrders:c,salesChartData:l,chartAxisLabels:d,goOrders:_,statCards:x}=K();return(e,w)=>{let E=S(`RouterLink`);return v(),m(`div`,_e,[u(`div`,ve,[u(`button`,ye,[C(a,{name:`calendar`,size:16}),w[1]||=b(` امروز `,-1)])]),u(`div`,be,[(v(!0),m(r,null,p(f(x),e=>(v(),m(`div`,{key:e.label,class:`admin-stat-card`},[u(`div`,{class:`admin-stat-card__icon`,style:s({background:f(U)[e.tone],color:f(W)[e.tone]})},[C(a,{name:e.icon,size:20},null,8,[`name`])],4),u(`p`,xe,t(e.label),1),u(`p`,Se,t(e.value),1),C(E,{to:e.link,class:`admin-stat-card__link`},{default:h(()=>[...w[2]||=[b(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),u(`div`,Ce,[w[3]||=u(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),u(`p`,we,t(f(y)(f(i).todaySales)),1),u(`span`,Te,` +`+t(f(i).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),u(`div`,Ee,[u(`section`,De,[C(H,{title:`فروش ماه جاری`,subtitle:f(y)(f(i).monthSales),data:f(l),labels:f(d),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),u(`section`,Oe,[w[5]||=u(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),u(`div`,ke,[(v(!0),m(r,null,p(f(c),e=>(v(),o(E,{key:e.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:h(()=>[u(`div`,Ae,[u(`p`,je,t(e.orderNumber),1),C(k,{status:e.status},null,8,[`status`])]),u(`div`,Me,[u(`span`,null,t(e.customerName),1),u(`span`,null,t(f(g)(e.createdAt)),1)])]),_:2},1024))),128))]),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:w[0]||=(...e)=>f(_)&&f(_)(...e)},[w[4]||=b(` مشاهده همه سفارش‌ها `,-1),C(a,{name:`chevron-left`,size:16})])]),u(`section`,Ne,[w[7]||=u(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),u(`ul`,Pe,[(v(!0),m(r,null,p(f(n),e=>(v(),m(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[u(`span`,{class:T([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},t(e.label),3),u(`span`,null,t(e.count)+` فقره`,1),u(`strong`,Fe,t(f(y)(e.amount)),1)]))),128))]),C(E,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:h(()=>[w[6]||=b(` مشاهده همه `,-1),C(a,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=_({__name:`DashboardView`,setup(e){return(e,t)=>(v(),m(r,null,[C(ge,{class:`desktop-only`}),C(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file diff --git a/dist/assets/DashboardView-cyaZFrOQ.js b/dist/assets/DashboardView-cyaZFrOQ.js new file mode 100644 index 0000000..44fc2ee --- /dev/null +++ b/dist/assets/DashboardView-cyaZFrOQ.js @@ -0,0 +1 @@ +import{B as e,Dt as t,N as n,O as r,Ot as i,T as a,Tt as o,Z as s,at as c,c as l,d as u,g as d,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{I as b,N as x,P as S,_ as C,i as w,n as T,o as E,y as D,z as O}from"./index-CXa4EMLW.js";import{t as k}from"./StatusBadge-Cg2zTE2k.js";var ee={class:`sales-chart`},A={key:0,class:`sales-chart__header`},j={key:0,class:`sales-chart__title`},M={key:1,class:`sales-chart__subtitle`},N=[`viewBox`,`aria-label`],te=[`x1`,`x2`,`y1`,`y2`],P=[`points`],F=[`points`],I=[`x1`,`x2`,`y1`,`y2`],L=[`cx`,`cy`],R={class:`sales-chart__tooltip-label`},z={key:1,class:`sales-chart__axis`},B=320,V=120,H=v(d({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(e){let n=e,a=s(null),o={top:12,right:8,bottom:8,left:8},d=_(()=>Math.max(...n.data,.001)),f=_(()=>{let e=B-o.left-o.right,t=V-o.top-o.bottom,r=e/Math.max(n.data.length-1,1);return n.data.map((e,n)=>({x:o.left+n*r,y:o.top+t-e/d.value*t,value:e,index:n}))}),m=_(()=>f.value.map(e=>`${e.x},${e.y}`).join(` `)),h=_(()=>{let e=V-o.bottom,t=f.value[0],n=f.value[f.value.length-1];return!t||!n?``:`${t.x},${e} ${m.value} ${n.x},${e}`}),v=_(()=>{let e=V-o.top-o.bottom;return[0,.5,1].map(t=>o.top+e*t)}),b=_(()=>a.value===null?null:f.value[a.value]??null);function x(e){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*B,r=0,i=1/0;f.value.forEach(e=>{let t=Math.abs(e.x-n);t(r(),u(`div`,ee,[e.title||e.subtitle?(r(),u(`div`,A,[l(`div`,null,[e.title?(r(),u(`h3`,j,i(e.title),1)):y(``,!0),e.subtitle?(r(),u(`p`,M,i(e.subtitle),1)):y(``,!0)])])):y(``,!0),l(`div`,{class:`sales-chart__body`,style:t({height:`${e.height}px`})},[(r(),u(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":e.title||`نمودار فروش`,onMousemove:x,onMouseleave:S},[(r(!0),u(g,null,p(v.value,(e,t)=>(r(),u(`line`,{key:t,x1:o.left,x2:B-o.right,y1:e,y2:e,class:`sales-chart__grid`},null,8,te))),128)),h.value?(r(),u(`polygon`,{key:0,points:h.value,class:`sales-chart__area`,style:t({fill:`${e.color}22`})},null,12,P)):y(``,!0),l(`polyline`,{points:m.value,class:`sales-chart__line`,style:t({stroke:e.color})},null,12,F),b.value?(r(),u(g,{key:1},[l(`line`,{x1:b.value.x,x2:b.value.x,y1:o.top,y2:V-o.bottom,class:`sales-chart__cursor`},null,8,I),l(`circle`,{cx:b.value.x,cy:b.value.y,r:`4`,class:`sales-chart__dot`,style:t({fill:e.color})},null,12,L)],64)):y(``,!0)],40,N)),b.value?(r(),u(`div`,{key:0,class:`sales-chart__tooltip`,style:t({left:`${b.value.x/B*100}%`})},[l(`span`,R,i(e.labels?.[b.value.index]??`روز ${b.value.index+1}`),1),l(`strong`,null,i(c(E)(b.value.value))+` `+i(e.unit),1)],4)):y(``,!0)],4),e.labels?.length?(r(),u(`div`,z,[(r(!0),u(g,null,p(e.labels,(e,t)=>(r(),u(`span`,{key:t},i(e),1))),128))])):y(``,!0)]))}}),[[`__scopeId`,`data-v-85c70c78`]]),U={info:`var(--color-info-light)`,warning:`var(--color-warning-light)`,purple:`var(--color-purple-light)`,success:`var(--color-success-light)`},W={info:`var(--color-info)`,warning:`var(--color-warning-dark)`,purple:`var(--color-purple)`,success:`var(--color-success)`},G=()=>({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0});function K(){let e=b(),t=O(),n=s(G()),r=s([]),i=s(Array.from({length:28},()=>0)),o=s([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),c=s([]),l=s(!1),u=_(()=>[{label:`سفارش‌های جدید`,value:n.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:n.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:n.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:n.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),d=_(()=>{let e=i.value;if(!e.length)return``;let t=Math.max(...e,.001),n=e.length>1?280/(e.length-1):280;return e.map((e,r)=>`${r*n},${120-e/t*110-5}`).join(` `)});async function f(){l.value=!0;try{let e=await C.get();n.value=e.stats,r.value=(e.recentOrders??[]).map(e=>D(e)),i.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),o.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],c.value=e.checkDeadlines??[]}catch(e){t.error(e instanceof x?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{l.value=!1}}a(()=>{f()});function p(){e.push(`/orders`)}return{checkDeadlines:c,dashboardStats:n,recentOrders:r,chartPoints:d,salesChartData:i,chartAxisLabels:o,statCards:u,loading:l,goOrders:p,loadDashboard:f}}var q={class:`dashboard`},J={class:`dashboard__toolbar`},Y={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},X={class:`dashboard__stats`},Z={class:`admin-stat-card__label`},Q={class:`admin-stat-card__value`},ne={class:`dashboard__sales-card admin-stat-card`},re={class:`dashboard__sales-header`},ie={class:`admin-stat-card__value dashboard__sales-value`},ae={class:`dashboard__sales-growth`},oe={class:`dashboard__grid`},se={class:`dashboard__chart-card admin-card`},ce={class:`dashboard__orders-card admin-card`},le={class:`admin-table-wrap`},ue={class:`admin-table admin-table--compact`},de={class:`dashboard__card-footer`},fe={class:`dashboard__checks-card admin-card`},pe={class:`dashboard__deadline-list`},me={class:`dashboard__deadline-count`},he={class:`dashboard__deadline-amount`},ge={class:`dashboard__card-footer`},_e=v(d({__name:`DesktopDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:m,salesChartData:_,chartAxisLabels:v,goOrders:y,statCards:b}=K();return(a,x)=>{let C=n(`RouterLink`);return r(),u(`div`,q,[l(`div`,J,[l(`button`,Y,[f(S,{name:`calendar`,size:16}),x[1]||=h(` امروز `,-1)])]),l(`div`,X,[(r(!0),u(g,null,p(c(b),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Z,i(n.label),1),l(`p`,Q,i(n.value),1),f(C,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...x[2]||=[h(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,ne,[l(`div`,re,[l(`div`,null,[x[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,ie,i(c(T)(c(d).todaySales)),1),l(`span`,ae,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)]),f(S,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),x[4]||=l(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[l(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),l(`div`,oe,[l(`div`,se,[f(H,{title:`فروش ماه جاری`,subtitle:c(T)(c(d).monthSales),data:c(_),labels:c(v),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),l(`div`,ce,[x[7]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),l(`div`,le,[l(`table`,ue,[x[5]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`شماره سفارش`),l(`th`,null,`مشتری`),l(`th`,null,`شرکت`),l(`th`,null,`وضعیت`),l(`th`,null,`تاریخ ثبت`)])],-1),l(`tbody`,null,[(r(!0),u(g,null,p(c(m),e=>(r(),u(`tr`,{key:e.id},[l(`td`,null,i(e.orderNumber),1),l(`td`,null,i(e.customerName),1),l(`td`,null,i(e.companyName),1),l(`td`,null,[f(k,{status:e.status},null,8,[`status`])]),l(`td`,null,i(c(w)(e.createdAt)),1)]))),128))])])]),l(`div`,de,[l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:x[0]||=(...e)=>c(y)&&c(y)(...e)},[x[6]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])])]),l(`div`,fe,[x[9]||=l(`div`,{class:`dashboard__card-header`},[l(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),l(`ul`,pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`dashboard__deadline-item`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,me,i(e.count)+` فقره`,1),l(`span`,he,i(c(T)(e.amount)),1)]))),128))]),l(`div`,ge,[f(C,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:e(()=>[x[8]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])])}}}),[[`__scopeId`,`data-v-bf2ebdae`]]),ve={class:`compact-dashboard page-shell`},ye={class:`flex justify-end mb-3`},be={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},xe={class:`compact-stats-grid`},Se={class:`admin-stat-card__label`},Ce={class:`admin-stat-card__value`},we={class:`admin-stat-card col-span-full`},$={class:`admin-stat-card__value`},Te={class:`text-xs font-semibold text-success`},Ee={class:`compact-section-grid`},De={class:`compact-section-card admin-panel`},Oe={class:`compact-section-card admin-panel`},ke={class:`admin-card-list`},Ae={class:`admin-card-item__header`},je={class:`admin-card-item__title`},Me={class:`admin-card-item__meta`},Ne={class:`compact-section-card admin-panel`},Pe={class:`m-0 p-0 list-none flex flex-col gap-2.5`},Fe={class:`mr-auto text-xs`},Ie=d({__name:`CompactDashboard`,setup(a){let{checkDeadlines:s,dashboardStats:d,recentOrders:_,salesChartData:v,chartAxisLabels:y,goOrders:b,statCards:x}=K();return(a,C)=>{let E=n(`RouterLink`);return r(),u(`div`,ve,[l(`div`,ye,[l(`button`,be,[f(S,{name:`calendar`,size:16}),C[1]||=h(` امروز `,-1)])]),l(`div`,xe,[(r(!0),u(g,null,p(c(x),n=>(r(),u(`div`,{key:n.label,class:`admin-stat-card`},[l(`div`,{class:`admin-stat-card__icon`,style:t({background:c(U)[n.tone],color:c(W)[n.tone]})},[f(S,{name:n.icon,size:20},null,8,[`name`])],4),l(`p`,Se,i(n.label),1),l(`p`,Ce,i(n.value),1),f(E,{to:n.link,class:`admin-stat-card__link`},{default:e(()=>[...C[2]||=[h(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),l(`div`,we,[C[3]||=l(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),l(`p`,$,i(c(T)(c(d).todaySales)),1),l(`span`,Te,` +`+i(c(d).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),l(`div`,Ee,[l(`section`,De,[f(H,{title:`فروش ماه جاری`,subtitle:c(T)(c(d).monthSales),data:c(v),labels:c(y),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),l(`section`,Oe,[C[5]||=l(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),l(`div`,ke,[(r(!0),u(g,null,p(c(_),t=>(r(),m(E,{key:t.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:e(()=>[l(`div`,Ae,[l(`p`,je,i(t.orderNumber),1),f(k,{status:t.status},null,8,[`status`])]),l(`div`,Me,[l(`span`,null,i(t.customerName),1),l(`span`,null,i(c(w)(t.createdAt)),1)])]),_:2},1024))),128))]),l(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:C[0]||=(...e)=>c(b)&&c(b)(...e)},[C[4]||=h(` مشاهده همه سفارش‌ها `,-1),f(S,{name:`chevron-left`,size:16})])]),l(`section`,Ne,[C[7]||=l(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),l(`ul`,Pe,[(r(!0),u(g,null,p(c(s),e=>(r(),u(`li`,{key:e.id,class:`flex flex-wrap items-center gap-2 text-sm`},[l(`span`,{class:o([`admin-badge`,{"admin-badge--danger":e.tone===`danger`,"admin-badge--warning":e.tone===`warning`,"admin-badge--neutral":e.tone===`neutral`}])},i(e.label),3),l(`span`,null,i(e.count)+` فقره`,1),l(`strong`,Fe,i(c(T)(e.amount)),1)]))),128))]),f(E,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:e(()=>[C[6]||=h(` مشاهده همه `,-1),f(S,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=d({__name:`DashboardView`,setup(e){return(e,t)=>(r(),u(g,null,[f(_e,{class:`desktop-only`}),f(Ie,{class:`compact-only`})],64))}});export{Le as default}; \ No newline at end of file diff --git a/dist/assets/LevelsView-Cos5Q_ra.js b/dist/assets/LevelsView-Cos5Q_ra.js new file mode 100644 index 0000000..66fa97e --- /dev/null +++ b/dist/assets/LevelsView-Cos5Q_ra.js @@ -0,0 +1,3 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as _,R as v,W as y,v as b,z as x}from"./index-CXa4EMLW.js";import{t as S}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as C}from"./BaseEmptyState-BmO9aDcK.js";var w={class:`admin-page`},T={key:2,class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={class:`field`},k={class:`field`},A={class:`field`},j={class:`field`},M=[`disabled`],N=g(l({__name:`LevelsView`,setup(l){let g=o([]),N=o(!0),P=o(!1),F=o(null),I=x(),L=a({code:``,label:``,sortOrder:0,benefitsText:``}),R=h(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(` +`).map(e=>e.trim()).filter(Boolean).map(e=>({title:e}))}async function B(){N.value=!0;try{g.value=await b.list()}catch(e){I.error(e instanceof _?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:g.value.length+1,benefitsText:``}),P.value=!0}function H(e){F.value=e.id,Object.assign(L,{code:e.code,label:e.label,sortOrder:e.sortOrder,benefitsText:e.benefits.map(e=>e.title).join(` +`)}),P.value=!0}async function U(){try{let e={code:L.code.trim(),label:L.label.trim(),sortOrder:L.sortOrder,benefits:z(L.benefitsText)};F.value?await b.update(F.value,e):await b.create(e),P.value=!1,I.success(`ذخیره شد`),await B()}catch(e){I.error(e instanceof _?e.message:`ذخیره ناموفق بود`)}}return r(()=>{B()}),(r,a)=>(t(),c(`div`,w,[s(`header`,{class:`admin-page__head`},[a[5]||=s(`div`,null,[s(`h1`,null,`سطوح و مزایای مشتری`),s(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(t(),f(S,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,T,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`کد`),s(`th`,null,`عنوان`),s(`th`,null,`مزایا`),s(`th`,null,`مشتریان`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,E,n(e.code),1),s(`td`,null,n(e.label),1),s(`td`,null,n(e.benefits.map(e=>e.title).join(`، `)||`—`),1),s(`td`,null,n(e.customersCount),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>H(e)},`ویرایش`,8,D)])]))),128))])])):(t(),f(C,{key:1,title:`سطحی تعریف نشده`})),u(v,{open:P.value,title:R.value,onClose:a[4]||=e=>P.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:e(()=>[s(`label`,O,[a[7]||=p(`کد`,-1),i(s(`input`,{"onUpdate:modelValue":a[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[y,L.code]])]),s(`label`,k,[a[8]||=p(`عنوان`,-1),i(s(`input`,{"onUpdate:modelValue":a[1]||=e=>L.label=e,class:`admin-input`},null,512),[[y,L.label]])]),s(`label`,A,[a[9]||=p(`ترتیب`,-1),i(s(`input`,{"onUpdate:modelValue":a[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[y,L.sortOrder,void 0,{number:!0}]])]),s(`label`,j,[a[10]||=p(` مزایا (هر خط یک مورد) `,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[y,L.benefitsText]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-44c7f808`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/LevelsView-rP_u9G1_.js b/dist/assets/LevelsView-rP_u9G1_.js deleted file mode 100644 index 128962b..0000000 --- a/dist/assets/LevelsView-rP_u9G1_.js +++ /dev/null @@ -1,3 +0,0 @@ -import{Ct as e,G as t,J as n,N as r,Q as i,R as a,V as o,X as s,Z as c,dt as l,et as u,gt as d,ht as f,it as p,lt as m,nt as h,rt as g,st as _,v,vt as y,yt as b,z as x}from"./index-B2VD3zy8.js";import{t as S}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as C}from"./BaseEmptyState-DGu6Pfui.js";var w={class:`admin-page`},T={key:2,class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={class:`field`},k={class:`field`},A={class:`field`},j={class:`field`},M=[`disabled`],N=o(p({__name:`LevelsView`,setup(o){let p=b([]),N=b(!0),P=b(!1),F=b(null),I=x(),L=y({code:``,label:``,sortOrder:0,benefitsText:``}),R=s(()=>F.value?`ویرایش سطح`:`سطح جدید`);function z(e){return e.split(` -`).map(e=>e.trim()).filter(Boolean).map(e=>({title:e}))}async function B(){N.value=!0;try{p.value=await v.list()}catch(e){I.error(e instanceof r?e.message:`بارگذاری سطوح ناموفق بود`)}finally{N.value=!1}}function V(){F.value=null,Object.assign(L,{code:``,label:``,sortOrder:p.value.length+1,benefitsText:``}),P.value=!0}function H(e){F.value=e.id,Object.assign(L,{code:e.code,label:e.label,sortOrder:e.sortOrder,benefitsText:e.benefits.map(e=>e.title).join(` -`)}),P.value=!0}async function U(){try{let e={code:L.code.trim(),label:L.label.trim(),sortOrder:L.sortOrder,benefits:z(L.benefitsText)};F.value?await v.update(F.value,e):await v.create(e),P.value=!1,I.success(`ذخیره شد`),await B()}catch(e){I.error(e instanceof r?e.message:`ذخیره ناموفق بود`)}}return _(()=>{B()}),(r,o)=>(m(),u(`div`,w,[c(`header`,{class:`admin-page__head`},[o[5]||=c(`div`,null,[c(`h1`,null,`سطوح و مزایای مشتری`),c(`p`,null,`تعریف Level داخلی CRM و مزایای هر سطح (نمایش فقط در ادمین)`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:V},`سطح جدید`)]),N.value?(m(),i(S,{key:0,variant:`table`})):p.value.length?(m(),u(`table`,T,[o[6]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`کد`),c(`th`,null,`عنوان`),c(`th`,null,`مزایا`),c(`th`,null,`مشتریان`),c(`th`)])],-1),c(`tbody`,null,[(m(!0),u(n,null,l(p.value,t=>(m(),u(`tr`,{key:t.id},[c(`td`,E,e(t.code),1),c(`td`,null,e(t.label),1),c(`td`,null,e(t.benefits.map(e=>e.title).join(`، `)||`—`),1),c(`td`,null,e(t.customersCount),1),c(`td`,null,[c(`button`,{type:`button`,class:`link`,onClick:e=>H(t)},`ویرایش`,8,D)])]))),128))])])):(m(),i(C,{key:1,title:`سطحی تعریف نشده`})),g(a,{open:P.value,title:R.value,onClose:o[4]||=e=>P.value=!1},{footer:f(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!L.code.trim()||!L.label.trim(),onClick:U},` ذخیره `,8,M)]),default:f(()=>[c(`label`,O,[o[7]||=h(`کد`,-1),d(c(`input`,{"onUpdate:modelValue":o[0]||=e=>L.code=e,class:`admin-input`,dir:`ltr`},null,512),[[t,L.code]])]),c(`label`,k,[o[8]||=h(`عنوان`,-1),d(c(`input`,{"onUpdate:modelValue":o[1]||=e=>L.label=e,class:`admin-input`},null,512),[[t,L.label]])]),c(`label`,A,[o[9]||=h(`ترتیب`,-1),d(c(`input`,{"onUpdate:modelValue":o[2]||=e=>L.sortOrder=e,type:`number`,class:`admin-input`},null,512),[[t,L.sortOrder,void 0,{number:!0}]])]),c(`label`,j,[o[10]||=h(` مزایا (هر خط یک مورد) `,-1),d(c(`textarea`,{"onUpdate:modelValue":o[3]||=e=>L.benefitsText=e,class:`admin-input`,rows:`4`},null,512),[[t,L.benefitsText]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-44c7f808`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/LoginView-BIWJ8gRk.css b/dist/assets/LoginView-BIWJ8gRk.css deleted file mode 100644 index 418c5a8..0000000 --- a/dist/assets/LoginView-BIWJ8gRk.css +++ /dev/null @@ -1 +0,0 @@ -.login-page[data-v-3c4fbd85]{background:var(--color-bg);grid-template-columns:1.05fr 1fr;min-height:100dvh;display:grid}.login-page__brand[data-v-3c4fbd85]{color:#fff;background:linear-gradient(160deg,#062428 0%,#0a353c 55%,#0e454e 100%);justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-page__brand-inner[data-v-3c4fbd85]{max-width:420px}.login-page__brand-badge[data-v-3c4fbd85]{background:#ffffff1f;border-radius:999px;margin:0 0 16px;padding:6px 12px;font-size:.8125rem;font-weight:700;display:inline-flex}.login-page__brand-title[data-v-3c4fbd85]{margin:0 0 12px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35}.login-page__brand-text[data-v-3c4fbd85]{color:#ffffffc7;margin:0;font-size:.9375rem;line-height:1.8}.login-page__form-wrap[data-v-3c4fbd85]{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login-page__card[data-v-3c4fbd85]{width:min(100%,420px);padding:28px 24px}.login-page__header[data-v-3c4fbd85]{margin-bottom:20px}.login-page__title[data-v-3c4fbd85]{margin:0 0 6px;font-size:1.25rem;font-weight:700}.login-page__subtitle[data-v-3c4fbd85]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.login-page__mock-hint[data-v-3c4fbd85]{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.8125rem;line-height:1.5}.login-page__input-wrap[data-v-3c4fbd85]{color:var(--color-text-muted);position:relative}.login-page__field-icon[data-v-3c4fbd85]{pointer-events:none;z-index:1;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-page__input[data-v-3c4fbd85]{padding-right:42px}.login-page__input--with-toggle[data-v-3c4fbd85]{padding-left:44px}.login-page__toggle-password[data-v-3c4fbd85]{z-index:1;width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.login-page__toggle-password[data-v-3c4fbd85]:hover{color:var(--color-primary);background:var(--color-bg-muted,#0000000a)}.login-page__remember[data-v-3c4fbd85]{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.login-page__remember input[data-v-3c4fbd85]{width:16px;height:16px;accent-color:var(--color-primary)}.login-page__submit[data-v-3c4fbd85]{width:100%;margin-top:4px}@media (width<=900px){.login-page[data-v-3c4fbd85]{grid-template-columns:1fr}.login-page__form-wrap[data-v-3c4fbd85]{order:2}.login-page__brand[data-v-3c4fbd85]{order:1;min-height:auto;padding:28px 20px}.login-page__brand-text[data-v-3c4fbd85]{font-size:.875rem}} diff --git a/dist/assets/LoginView-D1CCMfxr.js b/dist/assets/LoginView-D1CCMfxr.js deleted file mode 100644 index d959b0e..0000000 --- a/dist/assets/LoginView-D1CCMfxr.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,Ct as n,F as r,G as i,H as a,I as o,M as s,P as c,U as l,V as u,X as d,Z as f,bt as p,et as m,gt as h,it as g,j as _,lt as v,nt as y,q as b,rt as x,tt as S,yt as C,z as w}from"./index-B2VD3zy8.js";var T={class:`login-page`},E={class:`login-page__form-wrap`},D={class:`login-page__card admin-card`},O={class:`login-page__header`},k={key:0,class:`login-page__mock-hint`},A={dir:`ltr`},j={dir:`ltr`},M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`login-page__input-wrap`},F={class:`login-page__field-icon`,"aria-hidden":`true`},I={class:`admin-form__field`},L={class:`login-page__input-wrap login-page__input-wrap--password`},R={class:`login-page__field-icon`,"aria-hidden":`true`},z=[`type`],B=[`aria-label`],V={class:`login-page__remember`},H=[`disabled`],U={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},W=u(g({__name:`LoginView`,setup(u){let g=o(),W=r(),G=t(),K=w(),q=C(s()?_.phone:``),J=C(s()?_.password:``),Y=C(!0),X=C(!1),Z=s(),Q=d(()=>q.value.trim().length>0&&J.value.length>0);function $(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function ee(){if(!Q.value){G.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await G.login($(q.value.trim()),J.value,Y.value))return;K.success(`خوش آمدید، ${G.fullName}`);let e=typeof W.query.redirect==`string`?W.query.redirect:`/`;g.replace(e)}return(t,r)=>(v(),m(`div`,T,[f(`div`,E,[f(`div`,D,[f(`div`,O,[r[8]||=f(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),r[9]||=f(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),p(Z)?(v(),m(`p`,k,[r[6]||=y(` حالت موک فعال است — `,-1),f(`span`,A,n(p(_).phone),1),r[7]||=y(` / `,-1),f(`span`,j,n(p(_).password),1)])):e(``,!0)]),f(`form`,{class:`admin-form login-page__form`,onSubmit:b(ee,[`prevent`])},[p(G).error?(v(),m(`p`,M,n(p(G).error),1)):e(``,!0),f(`div`,N,[r[10]||=f(`label`,{for:`login-phone`},`شماره موبایل`,-1),f(`div`,P,[f(`span`,F,[x(c,{name:`phone`,size:18})]),h(f(`input`,{id:`login-phone`,"onUpdate:modelValue":r[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:r[1]||=e=>p(G).clearError()},null,544),[[i,q.value]])])]),f(`div`,I,[r[11]||=f(`label`,{for:`login-password`},`رمز عبور`,-1),f(`div`,L,[f(`span`,R,[x(c,{name:`lock`,size:18})]),h(f(`input`,{id:`login-password`,"onUpdate:modelValue":r[2]||=e=>J.value=e,type:X.value?`text`:`password`,class:`admin-input login-page__input login-page__input--with-toggle`,placeholder:`رمز عبور`,autocomplete:`current-password`,onInput:r[3]||=e=>p(G).clearError()},null,40,z),[[l,J.value]]),f(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:r[4]||=e=>X.value=!X.value},[x(c,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),f(`label`,V,[h(f(`input`,{"onUpdate:modelValue":r[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[a,Y.value]]),r[12]||=f(`span`,null,`مرا به خاطر بسپار`,-1)]),f(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||p(G).loading},[p(G).loading?(v(),m(`span`,U)):e(``,!0),r[13]||=y(` ورود به پنل `,-1)],8,H)],32)])]),r[14]||=S(``,1)]))}}),[[`__scopeId`,`data-v-3c4fbd85`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/LoginView-IFH_z0sG.css b/dist/assets/LoginView-IFH_z0sG.css new file mode 100644 index 0000000..7291e07 --- /dev/null +++ b/dist/assets/LoginView-IFH_z0sG.css @@ -0,0 +1 @@ +.login-page[data-v-9aef901d]{background:var(--color-bg);grid-template-columns:1.05fr 1fr;min-height:100dvh;display:grid}.login-page__brand[data-v-9aef901d]{color:#fff;background:linear-gradient(160deg,#062428 0%,#0a353c 55%,#0e454e 100%);justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-page__brand-inner[data-v-9aef901d]{max-width:420px}.login-page__brand-badge[data-v-9aef901d]{background:#ffffff1f;border-radius:999px;margin:0 0 16px;padding:6px 12px;font-size:.8125rem;font-weight:700;display:inline-flex}.login-page__brand-title[data-v-9aef901d]{margin:0 0 12px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35}.login-page__brand-text[data-v-9aef901d]{color:#ffffffc7;margin:0;font-size:.9375rem;line-height:1.8}.login-page__form-wrap[data-v-9aef901d]{justify-content:center;align-items:center;padding:32px 24px;display:flex}.login-page__card[data-v-9aef901d]{width:min(100%,420px);padding:28px 24px}.login-page__header[data-v-9aef901d]{margin-bottom:20px}.login-page__title[data-v-9aef901d]{margin:0 0 6px;font-size:1.25rem;font-weight:700}.login-page__subtitle[data-v-9aef901d]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.login-page__mock-hint[data-v-9aef901d]{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.8125rem;line-height:1.5}.login-page__input-wrap[data-v-9aef901d]{color:var(--color-text-muted);position:relative}.login-page__field-icon[data-v-9aef901d]{pointer-events:none;z-index:1;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-page__input[data-v-9aef901d]{padding-right:42px}.login-page__input--with-toggle[data-v-9aef901d]{padding-left:44px}.login-page__toggle-password[data-v-9aef901d]{z-index:1;width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.login-page__toggle-password[data-v-9aef901d]:hover{color:var(--color-primary);background:var(--color-bg-muted,#0000000a)}.login-page__remember[data-v-9aef901d]{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.login-page__remember input[data-v-9aef901d]{width:16px;height:16px;accent-color:var(--color-primary)}.login-page__submit[data-v-9aef901d]{width:100%;margin-top:4px}@media (width<=900px){.login-page[data-v-9aef901d]{grid-template-columns:1fr}.login-page__form-wrap[data-v-9aef901d]{order:2}.login-page__brand[data-v-9aef901d]{order:1;min-height:auto;padding:28px 20px}.login-page__brand-text[data-v-9aef901d]{font-size:.875rem}} diff --git a/dist/assets/LoginView-w-SE2utd.js b/dist/assets/LoginView-w-SE2utd.js new file mode 100644 index 0000000..dd262cc --- /dev/null +++ b/dist/assets/LoginView-w-SE2utd.js @@ -0,0 +1 @@ +import{O as e,Ot as t,V as n,Z as r,at as i,c as a,d as o,g as s,h as c,m as l,p as u,s as d,t as f,u as p}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{A as m,F as h,H as g,I as _,K as v,M as y,P as b,V as x,W as S,j as C,z as w}from"./index-CXa4EMLW.js";var T={class:`login-page`},E={class:`login-page__form-wrap`},D={class:`login-page__card admin-card`},O={class:`login-page__header`},k={key:0,class:`login-page__mock-hint`},A={dir:`ltr`},j={dir:`ltr`},M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`login-page__input-wrap`},F={class:`login-page__field-icon`,"aria-hidden":`true`},I={class:`admin-form__field`},L={class:`login-page__input-wrap login-page__input-wrap--password`},R={class:`login-page__field-icon`,"aria-hidden":`true`},z=[`type`],B=[`aria-label`],V={class:`login-page__remember`},H=[`disabled`],U={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},W=f(s({__name:`LoginView`,setup(s){let f=_(),W=h(),G=m(),K=w(),q=r(y()?C.phone:``),J=r(y()?C.password:``),Y=r(!0),X=r(!1),Z=y(),Q=d(()=>q.value.trim().length>0&&J.value.length>0);function $(e){return e.replace(/[۰-۹]/g,e=>String(`۰۱۲۳۴۵۶۷۸۹`.indexOf(e))).replace(/[٠-٩]/g,e=>String(`٠١٢٣٤٥٦٧٨٩`.indexOf(e)))}async function ee(){if(!Q.value){G.error=`لطفاً شماره موبایل و رمز عبور را وارد کنید.`;return}if(!await G.login($(q.value.trim()),J.value,Y.value))return;K.success(`خوش آمدید، ${G.fullName}`);let e=typeof W.query.redirect==`string`?W.query.redirect:`/`,t=`/admin/`.replace(/\/$/,``),n=e.startsWith(t)?e.slice(t.length)||`/`:e;await f.replace(n)}return(r,s)=>(e(),o(`div`,T,[a(`div`,E,[a(`div`,D,[a(`div`,O,[s[8]||=a(`h2`,{class:`login-page__title`},`ورود به پنل مدیریت`,-1),s[9]||=a(`p`,{class:`login-page__subtitle`},`برای ادامه، اطلاعات حساب کاربری خود را وارد کنید.`,-1),i(Z)?(e(),o(`p`,k,[s[6]||=l(` حالت موک فعال است — `,-1),a(`span`,A,t(i(C).phone),1),s[7]||=l(` / `,-1),a(`span`,j,t(i(C).password),1)])):p(``,!0)]),a(`form`,{class:`admin-form login-page__form`,onSubmit:v(ee,[`prevent`])},[i(G).error?(e(),o(`p`,M,t(i(G).error),1)):p(``,!0),a(`div`,N,[s[10]||=a(`label`,{for:`login-phone`},`شماره موبایل`,-1),a(`div`,P,[a(`span`,F,[c(b,{name:`phone`,size:18})]),n(a(`input`,{id:`login-phone`,"onUpdate:modelValue":s[0]||=e=>q.value=e,type:`tel`,class:`admin-input login-page__input`,placeholder:`۰۹۱۲۱۱۱۱۲۲۲۲`,autocomplete:`username`,inputmode:`tel`,dir:`ltr`,onInput:s[1]||=e=>i(G).clearError()},null,544),[[S,q.value]])])]),a(`div`,I,[s[11]||=a(`label`,{for:`login-password`},`رمز عبور`,-1),a(`div`,L,[a(`span`,R,[c(b,{name:`lock`,size:18})]),n(a(`input`,{id:`login-password`,"onUpdate:modelValue":s[2]||=e=>J.value=e,type:X.value?`text`:`password`,class:`admin-input login-page__input login-page__input--with-toggle`,placeholder:`رمز عبور`,autocomplete:`current-password`,onInput:s[3]||=e=>i(G).clearError()},null,40,z),[[g,J.value]]),a(`button`,{type:`button`,class:`login-page__toggle-password`,"aria-label":X.value?`پنهان کردن رمز`:`نمایش رمز`,onClick:s[4]||=e=>X.value=!X.value},[c(b,{name:X.value?`eye-off`:`eye`,size:18},null,8,[`name`])],8,B)])]),a(`label`,V,[n(a(`input`,{"onUpdate:modelValue":s[5]||=e=>Y.value=e,type:`checkbox`},null,512),[[x,Y.value]]),s[12]||=a(`span`,null,`مرا به خاطر بسپار`,-1)]),a(`button`,{type:`submit`,class:`admin-btn admin-btn--primary login-page__submit`,disabled:!Q.value||i(G).loading},[i(G).loading?(e(),o(`span`,U)):p(``,!0),s[13]||=l(` ورود به پنل `,-1)],8,H)],32)])]),s[14]||=u(``,1)]))}}),[[`__scopeId`,`data-v-9aef901d`]]);export{W as default}; \ No newline at end of file diff --git a/dist/assets/NotFoundView-BAomeX7E.js b/dist/assets/NotFoundView-BAomeX7E.js new file mode 100644 index 0000000..b124f13 --- /dev/null +++ b/dist/assets/NotFoundView-BAomeX7E.js @@ -0,0 +1 @@ +import{B as e,N as t,O as n,c as r,d as i,h as a,m as o,t as s}from"./_plugin-vue_export-helper-OaxA6A2f.js";var c={},l={class:`not-found`};function u(s,c){let u=t(`RouterLink`);return n(),i(`main`,l,[c[1]||=r(`p`,{class:`not-found__code`},`404`,-1),c[2]||=r(`h1`,null,`صفحه پیدا نشد`,-1),c[3]||=r(`p`,null,`آدرسی که وارد کرده‌اید وجود ندارد.`,-1),a(u,{to:`/`},{default:e(()=>[...c[0]||=[o(`بازگشت به داشبورد`,-1)]]),_:1})])}var d=s(c,[[`render`,u],[`__scopeId`,`data-v-1c91077f`]]);export{d as default}; \ No newline at end of file diff --git a/dist/assets/NotFoundView-CY2m4474.css b/dist/assets/NotFoundView-CY2m4474.css new file mode 100644 index 0000000..5cea43c --- /dev/null +++ b/dist/assets/NotFoundView-CY2m4474.css @@ -0,0 +1 @@ +.not-found[data-v-1c91077f]{text-align:center;place-content:center;gap:12px;min-height:60vh;display:grid}.not-found__code[data-v-1c91077f]{color:var(--color-primary,#c89b3c);margin:0;font-size:72px;font-weight:800}h1[data-v-1c91077f],p[data-v-1c91077f]{margin:0}a[data-v-1c91077f]{color:var(--color-primary,#c89b3c);font-weight:700} diff --git a/dist/assets/OrderPricingView-CvBkBKTY.js b/dist/assets/OrderPricingView-CvBkBKTY.js deleted file mode 100644 index 3723b23..0000000 --- a/dist/assets/OrderPricingView-CvBkBKTY.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,G as r,I as i,J as a,L as o,N as s,P as c,Q as ee,R as te,S as ne,V as re,X as l,Z as u,bt as d,dt as f,et as p,gt as m,ht as h,it as g,lt as _,mt as ie,n as v,nt as y,o as b,q as ae,rt as x,st as oe,vt as se,x as S,y as ce,yt as C,z as le}from"./index-B2VD3zy8.js";import{t as ue}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as de}from"./AdminSelect-BeLNl2Qz.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-D3ThrLrU.js";import{t as w}from"./AdminCurrencyInput-DxQX_Gwe.js";var me={class:`pricing-page`},he={class:`admin-page-header`},ge={class:`admin-action-group`},_e=[`disabled`],ve=[`disabled`],ye={class:`pricing-page__summary admin-card`},be={class:`pricing-page__order-meta`},xe={class:`pricing-page__order-id`},Se={class:`pricing-page__customer`},Ce={class:`admin-summary-grid`},we={class:`admin-summary-item`},Te={class:`admin-summary-item__value`},Ee={class:`admin-summary-item`},De={class:`admin-summary-item__value`},T={class:`admin-summary-item`},E={class:`admin-summary-item__value`},Oe={class:`pricing-page__table admin-card desktop-only`},ke={class:`admin-table-wrap`},Ae={class:`admin-table`},je=[`onUpdate:modelValue`],Me=[`onClick`],Ne={class:`compact-only admin-card-list pricing-page__compact-items`},Pe={class:`admin-card-item__header`},Fe={class:`admin-card-item__title`},Ie={class:`pricing-page__item-index`},Le={class:`admin-card-item__meta`},Re={key:0},ze={class:`pricing-page__compact-fields`},Be=[`onUpdate:modelValue`],Ve={key:0,class:`pricing-page__line-total`},He={class:`admin-card-item__actions`},Ue=[`onClick`],We={class:`admin-form-grid`},Ge={class:`admin-form-field`},Ke={class:`admin-form-field`},qe={class:`admin-footer-actions`},Je=[`disabled`],D=[`disabled`],Ye={class:`pricing-page__invoice-hint`},Xe={key:0,class:`admin-form__error`,role:`alert`},Ze={class:`admin-form__field`},Qe={class:`admin-form__row`},$e={class:`admin-form__field`},et={class:`admin-form__field`},tt=[`disabled`],O=re(g({__name:`OrderPricingView`,setup(re){let g=n(),O=i(),k=le(),A=C(null),j=C([]),M=C(0),N=C(``),P=C(!1),F=C(``),I=C(!1),L=C(!1),R=C(!0),z=C([]),B=C([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=se(V()),nt=l(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=l(()=>H.productId.length>0&&H.requestedMeterage>0),W=l(()=>A.value?ce(A.value):null),G=l(()=>A.value?!fe.includes(A.value.status):!1),K=l(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await S.get(String(g.params.id));A.value=e,j.value=(e.items??[]).map(q),M.value=e.shippingCost??0,B.value=[],z.value=await ne.list({activeOnly:!0})}catch(e){k.error(e instanceof s?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}oe(()=>{rt()});function q(e){return{id:e.id,productId:e.productId,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName}}function it(){O.push(`/orders`)}async function J(e){let t=j.value.find(t=>t.id===e);await o({title:`حذف محصول`,message:t?`آیا از حذف «${t.productName}» از سفارش مطمئن هستید؟`:`آیا از حذف این محصول از سفارش مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&(e.startsWith(`new-`)||B.value.push(e),j.value=j.value.filter(t=>t.id!==e))}ie(()=>H.productId,e=>{let t=z.value.find(t=>t.id===e);if(!t)return;let n=t.rollMeters||t.minMeterage||t.orderStep||50;H.requestedMeterage=n,H.confirmedMeterage=n});function Y(){Object.assign(H,V()),F.value=``,P.value=!0}function X(){P.value=!1,F.value=``}function Z(){if(!U.value){F.value=`محصول و متراژ الزامی هستند.`;return}let e=z.value.find(e=>e.id===H.productId);if(!e){F.value=`محصول انتخاب‌شده یافت نشد.`;return}if(j.value.some(t=>t.productId===e.id||t.catalogCode===e.catalogCode&&t.productName===e.name)){F.value=`این محصول در سفارش هست.`;return}j.value.push({id:`new-${crypto.randomUUID().slice(0,8)}`,productId:e.id,catalogCode:e.catalogCode,productName:e.name,color:e.color||`—`,requestedMeterage:H.requestedMeterage,confirmedMeterage:H.confirmedMeterage||H.requestedMeterage,supplyPrice:e.price,totalAmount:null,companyId:A.value?.companyId,companyName:e.companyName||A.value?.companyName}),X()}async function Q(){if(A.value){if(!j.value.length){k.error(`سفارش باید حداقل یک قلم داشته باشد.`);return}I.value=!0;try{let e=await S.updatePricing(A.value.id,{items:j.value.map(e=>e.id.startsWith(`new-`)?{productId:e.productId,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}:{id:e.id,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}),deletedItemIds:B.value,shippingCost:M.value,note:N.value.trim()||void 0});A.value=e,j.value=(e.items??[]).map(q),B.value=[],k.success(`قیمت‌گذاری ذخیره شد.`)}catch(e){k.error(e instanceof s?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await o({title:`ارسال فاکتور برای مشتری`,message:`فاکتور ${v(A.value.finalAmount)} برای مشتری ارسال می‌شود و او روش تسویه را انتخاب می‌کند. ادامه می‌دهید؟`,confirmLabel:`ارسال فاکتور`,cancelLabel:`انصراف`})){L.value=!0;try{let e=await S.updateStatus(A.value.id,{status:`awaiting_settlement`,note:N.value.trim()||void 0});A.value=e,k.success(`فاکتور برای مشتری ارسال شد.`)}catch(e){k.error(e instanceof s?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(n,i)=>(_(),p(`div`,me,[u(`div`,he,[i[5]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),u(`div`,ge,[u(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},t(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},t(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(_(),ee(ue,{key:0,variant:`detail`})):W.value?(_(),p(a,{key:1},[u(`div`,ye,[u(`div`,be,[u(`div`,null,[u(`strong`,xe,t(W.value.orderNumber),1),u(`p`,Se,t(W.value.customerName),1),x(pe,{status:W.value.status},null,8,[`status`])])]),u(`div`,Ce,[u(`div`,we,[i[6]||=u(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),u(`p`,Te,t(W.value.totalAmount?d(v)(W.value.totalAmount):`—`),1)]),u(`div`,Ee,[i[7]||=u(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),u(`p`,De,t(d(v)(M.value)),1)]),u(`div`,T,[i[8]||=u(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),u(`p`,E,t(A.value?.finalAmount?d(v)(A.value.finalAmount):`—`),1)])])]),u(`div`,Oe,[u(`div`,ke,[u(`table`,Ae,[i[9]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`ردیف`),u(`th`,null,`شرکت`),u(`th`,null,`کالیته`),u(`th`,null,`محصول`),u(`th`,null,`رنگ / نوع`),u(`th`,null,`متراژ درخواستی`),u(`th`,null,`متراژ تأیید شده`),u(`th`,null,`قیمت تأمینی (واحد)`),u(`th`,null,`مبلغ کل (تومان)`),u(`th`,null,`عملیات`)])],-1),u(`tbody`,null,[(_(!0),p(a,null,f(j.value,(e,n)=>(_(),p(`tr`,{key:e.id},[u(`td`,null,t(n+1),1),u(`td`,null,t(e.companyName||A.value?.companyName||`—`),1),u(`td`,null,t(e.catalogCode),1),u(`td`,null,t(e.productName),1),u(`td`,null,t(e.color),1),u(`td`,null,t(d(b)(e.requestedMeterage)),1),u(`td`,null,[m(u(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input admin-input--sm`},null,8,je),[[r,e.confirmedMeterage,void 0,{number:!0}]])]),u(`td`,null,[x(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),u(`td`,null,t(e.totalAmount?d(v)(e.totalAmount):`—`),1),u(`td`,null,[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[x(c,{name:`products`,size:16}),i[10]||=y(` افزودن محصول `,-1)])]),u(`div`,Ne,[(_(!0),p(a,null,f(j.value,(n,a)=>(_(),p(`article`,{key:n.id,class:`admin-card-item`},[u(`div`,Pe,[u(`p`,Fe,t(n.productName),1),u(`span`,Ie,`#`+t(a+1),1)]),u(`div`,Le,[n.companyName||A.value?.companyName?(_(),p(`span`,Re,t(n.companyName||A.value?.companyName),1)):e(``,!0),u(`span`,null,`کالیته `+t(n.catalogCode),1),u(`span`,null,t(n.color),1),u(`span`,null,`درخواست: `+t(d(b)(n.requestedMeterage))+` متر`,1)]),u(`div`,ze,[u(`label`,null,[i[11]||=y(` متراژ تأیید شده `,-1),m(u(`input`,{"onUpdate:modelValue":e=>n.confirmedMeterage=e,type:`number`,class:`admin-input`},null,8,Be),[[r,n.confirmedMeterage,void 0,{number:!0}]])]),u(`label`,null,[i[12]||=y(` قیمت تأمینی `,-1),x(w,{modelValue:n.supplyPrice,"onUpdate:modelValue":e=>n.supplyPrice=e,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),n.totalAmount?(_(),p(`p`,Ve,` مبلغ کل: `+t(d(v)(n.totalAmount)),1)):e(``,!0)]),u(`div`,He,[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:e=>J(n.id)},` حذف `,8,Ue)])]))),128)),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[x(c,{name:`products`,size:16}),i[13]||=y(` افزودن محصول `,-1)])]),u(`div`,We,[u(`div`,Ge,[i[14]||=u(`label`,null,`هزینه حمل (تومان)`,-1),x(w,{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),u(`div`,Ke,[i[15]||=u(`label`,null,`توضیحات برای مشتری`,-1),m(u(`textarea`,{"onUpdate:modelValue":i[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[r,N.value]])])]),u(`div`,qe,[u(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},t(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},t(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,D)]),u(`p`,Ye,[G.value?(_(),p(a,{key:0},[y(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(_(),p(a,{key:1},[y(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(_(),p(a,{key:2},[y(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):e(``,!0),x(te,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:h(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:h(()=>[u(`form`,{class:`admin-form`,onSubmit:ae(Z,[`prevent`])},[F.value?(_(),p(`p`,Xe,t(F.value),1)):e(``,!0),u(`div`,Ze,[i[16]||=u(`label`,null,[y(`محصول `),u(`span`,{class:`admin-form__required`},`*`)],-1),x(de,{modelValue:H.productId,"onUpdate:modelValue":i[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),u(`div`,Qe,[u(`div`,$e,[i[17]||=u(`label`,{for:`requested-meterage`},[y(` متراژ درخواستی `),u(`span`,{class:`admin-form__required`},`*`)],-1),m(u(`input`,{id:`requested-meterage`,"onUpdate:modelValue":i[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,H.requestedMeterage,void 0,{number:!0}]])]),u(`div`,et,[i[18]||=u(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),m(u(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":i[4]||=e=>H.confirmedMeterage=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[r,H.confirmedMeterage,void 0,{number:!0}]])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ba142b4c`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/OrderPricingView-vS7IKrtc.js b/dist/assets/OrderPricingView-vS7IKrtc.js new file mode 100644 index 0000000..a63bf4c --- /dev/null +++ b/dist/assets/OrderPricingView-vS7IKrtc.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,R as r,T as i,V as a,Y as ee,Z as o,at as s,c,d as l,g as te,h as u,j as d,l as ne,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as re,I as ie,K as ae,L as _,N as v,P as y,R as oe,S as se,W as b,n as x,o as S,x as C,y as ce,z as le}from"./index-CXa4EMLW.js";import{t as ue}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as de}from"./AdminSelect-9UfEJQzN.js";import{r as fe}from"./orderStatus-CYVblRJB.js";import{t as pe}from"./StatusBadge-Cg2zTE2k.js";import{t as w}from"./AdminCurrencyInput-D6MsBhvR.js";var me={class:`pricing-page`},he={class:`admin-page-header`},ge={class:`admin-action-group`},_e=[`disabled`],ve=[`disabled`],ye={class:`pricing-page__summary admin-card`},be={class:`pricing-page__order-meta`},xe={class:`pricing-page__order-id`},Se={class:`pricing-page__customer`},Ce={class:`admin-summary-grid`},we={class:`admin-summary-item`},Te={class:`admin-summary-item__value`},Ee={class:`admin-summary-item`},De={class:`admin-summary-item__value`},T={class:`admin-summary-item`},E={class:`admin-summary-item__value`},Oe={class:`pricing-page__table admin-card desktop-only`},ke={class:`admin-table-wrap`},Ae={class:`admin-table`},je=[`onUpdate:modelValue`],Me=[`onClick`],Ne={class:`compact-only admin-card-list pricing-page__compact-items`},Pe={class:`admin-card-item__header`},Fe={class:`admin-card-item__title`},Ie={class:`pricing-page__item-index`},Le={class:`admin-card-item__meta`},Re={key:0},ze={class:`pricing-page__compact-fields`},Be=[`onUpdate:modelValue`],Ve={key:0,class:`pricing-page__line-total`},He={class:`admin-card-item__actions`},Ue=[`onClick`],We={class:`admin-form-grid`},Ge={class:`admin-form-field`},Ke={class:`admin-form-field`},qe={class:`admin-footer-actions`},Je=[`disabled`],Ye=[`disabled`],D={class:`pricing-page__invoice-hint`},Xe={key:0,class:`admin-form__error`,role:`alert`},Ze={class:`admin-form__field`},Qe={class:`admin-form__row`},$e={class:`admin-form__field`},et={class:`admin-form__field`},tt=[`disabled`],O=h(te({__name:`OrderPricingView`,setup(te){let h=re(),O=ie(),k=le(),A=o(null),j=o([]),M=o(0),N=o(``),P=o(!1),F=o(``),I=o(!1),L=o(!1),R=o(!0),z=o([]),B=o([]),V=()=>({productId:``,requestedMeterage:50,confirmedMeterage:50}),H=ee(V()),nt=m(()=>z.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),U=m(()=>H.productId.length>0&&H.requestedMeterage>0),W=m(()=>A.value?ce(A.value):null),G=m(()=>A.value?!fe.includes(A.value.status):!1),K=m(()=>!!A.value?.finalAmount&&!G.value);async function rt(){R.value=!0;try{let e=await C.get(String(h.params.id));A.value=e,j.value=(e.items??[]).map(q),M.value=e.shippingCost??0,B.value=[],z.value=await se.list({activeOnly:!0})}catch(e){k.error(e instanceof v?e.message:`بارگذاری سفارش انجام نشد.`)}finally{R.value=!1}}i(()=>{rt()});function q(e){return{id:e.id,productId:e.productId,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName}}function it(){O.push(`/orders`)}async function J(e){let t=j.value.find(t=>t.id===e);await _({title:`حذف محصول`,message:t?`آیا از حذف «${t.productName}» از سفارش مطمئن هستید؟`:`آیا از حذف این محصول از سفارش مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&(e.startsWith(`new-`)||B.value.push(e),j.value=j.value.filter(t=>t.id!==e))}r(()=>H.productId,e=>{let t=z.value.find(t=>t.id===e);if(!t)return;let n=t.rollMeters||t.minMeterage||t.orderStep||50;H.requestedMeterage=n,H.confirmedMeterage=n});function Y(){Object.assign(H,V()),F.value=``,P.value=!0}function X(){P.value=!1,F.value=``}function Z(){if(!U.value){F.value=`محصول و متراژ الزامی هستند.`;return}let e=z.value.find(e=>e.id===H.productId);if(!e){F.value=`محصول انتخاب‌شده یافت نشد.`;return}if(j.value.some(t=>t.productId===e.id||t.catalogCode===e.catalogCode&&t.productName===e.name)){F.value=`این محصول در سفارش هست.`;return}j.value.push({id:`new-${crypto.randomUUID().slice(0,8)}`,productId:e.id,catalogCode:e.catalogCode,productName:e.name,color:e.color||`—`,requestedMeterage:H.requestedMeterage,confirmedMeterage:H.confirmedMeterage||H.requestedMeterage,supplyPrice:e.price,totalAmount:null,companyId:A.value?.companyId,companyName:e.companyName||A.value?.companyName}),X()}async function Q(){if(A.value){if(!j.value.length){k.error(`سفارش باید حداقل یک قلم داشته باشد.`);return}I.value=!0;try{let e=await C.updatePricing(A.value.id,{items:j.value.map(e=>e.id.startsWith(`new-`)?{productId:e.productId,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}:{id:e.id,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0}),deletedItemIds:B.value,shippingCost:M.value,note:N.value.trim()||void 0});A.value=e,j.value=(e.items??[]).map(q),B.value=[],k.success(`قیمت‌گذاری ذخیره شد.`)}catch(e){k.error(e instanceof v?e.message:`ذخیره قیمت‌گذاری انجام نشد.`)}finally{I.value=!1}}}async function $(){if(A.value){if(!A.value.finalAmount){k.error(`ابتدا قیمت‌گذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await _({title:`ارسال فاکتور برای مشتری`,message:`فاکتور ${x(A.value.finalAmount)} برای مشتری ارسال می‌شود و او روش تسویه را انتخاب می‌کند. ادامه می‌دهید؟`,confirmLabel:`ارسال فاکتور`,cancelLabel:`انصراف`})){L.value=!0;try{let e=await C.updateStatus(A.value.id,{status:`awaiting_settlement`,note:N.value.trim()||void 0});A.value=e,k.success(`فاکتور برای مشتری ارسال شد.`)}catch(e){k.error(e instanceof v?e.message:`ارسال فاکتور انجام نشد.`)}finally{L.value=!1}}}}return(r,i)=>(t(),l(`div`,me,[c(`div`,he,[i[5]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`قیمت‌گذاری سفارش`)],-1),c(`div`,ge,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:I.value||R.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,_e),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,ve),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:it},` بازگشت `)])]),R.value?(t(),ne(ue,{key:0,variant:`detail`})):W.value?(t(),l(p,{key:1},[c(`div`,ye,[c(`div`,be,[c(`div`,null,[c(`strong`,xe,n(W.value.orderNumber),1),c(`p`,Se,n(W.value.customerName),1),u(pe,{status:W.value.status},null,8,[`status`])])]),c(`div`,Ce,[c(`div`,we,[i[6]||=c(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),c(`p`,Te,n(W.value.totalAmount?s(x)(W.value.totalAmount):`—`),1)]),c(`div`,Ee,[i[7]||=c(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),c(`p`,De,n(s(x)(M.value)),1)]),c(`div`,T,[i[8]||=c(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),c(`p`,E,n(A.value?.finalAmount?s(x)(A.value.finalAmount):`—`),1)])])]),c(`div`,Oe,[c(`div`,ke,[c(`table`,Ae,[i[9]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`ردیف`),c(`th`,null,`شرکت`),c(`th`,null,`کالیته`),c(`th`,null,`محصول`),c(`th`,null,`رنگ / نوع`),c(`th`,null,`متراژ درخواستی`),c(`th`,null,`متراژ تأیید شده`),c(`th`,null,`قیمت تأمینی (واحد)`),c(`th`,null,`مبلغ کل (تومان)`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(r+1),1),c(`td`,null,n(e.companyName||A.value?.companyName||`—`),1),c(`td`,null,n(e.catalogCode),1),c(`td`,null,n(e.productName),1),c(`td`,null,n(e.color),1),c(`td`,null,n(s(S)(e.requestedMeterage)),1),c(`td`,null,[a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input admin-input--sm`},null,8,je),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),c(`td`,null,[u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),c(`td`,null,n(e.totalAmount?s(x)(e.totalAmount):`—`),1),c(`td`,null,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Me)])]))),128))])])]),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[u(y,{name:`products`,size:16}),i[10]||=f(` افزودن محصول `,-1)])]),c(`div`,Ne,[(t(!0),l(p,null,d(j.value,(e,r)=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,Pe,[c(`p`,Fe,n(e.productName),1),c(`span`,Ie,`#`+n(r+1),1)]),c(`div`,Le,[e.companyName||A.value?.companyName?(t(),l(`span`,Re,n(e.companyName||A.value?.companyName),1)):g(``,!0),c(`span`,null,`کالیته `+n(e.catalogCode),1),c(`span`,null,n(e.color),1),c(`span`,null,`درخواست: `+n(s(S)(e.requestedMeterage))+` متر`,1)]),c(`div`,ze,[c(`label`,null,[i[11]||=f(` متراژ تأیید شده `,-1),a(c(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Be),[[b,e.confirmedMeterage,void 0,{number:!0}]])]),c(`label`,null,[i[12]||=f(` قیمت تأمینی `,-1),u(w,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(t(),l(`p`,Ve,` مبلغ کل: `+n(s(x)(e.totalAmount)),1)):g(``,!0)]),c(`div`,He,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Ue)])]))),128)),c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[u(y,{name:`products`,size:16}),i[13]||=f(` افزودن محصول `,-1)])]),c(`div`,We,[c(`div`,Ge,[i[14]||=c(`label`,null,`هزینه حمل (تومان)`,-1),u(w,{modelValue:M.value,"onUpdate:modelValue":i[0]||=e=>M.value=e,"allow-empty":!1},null,8,[`modelValue`])]),c(`div`,Ke,[i[15]||=c(`label`,null,`توضیحات برای مشتری`,-1),a(c(`textarea`,{"onUpdate:modelValue":i[1]||=e=>N.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[b,N.value]])])]),c(`div`,qe,[c(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:I.value,onClick:Q},n(I.value?`در حال ذخیره…`:`ذخیره قیمت‌گذاری`),9,Je),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!K.value||L.value||I.value,onClick:$},n(L.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,Ye)]),c(`p`,D,[G.value?(t(),l(p,{key:0},[f(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):K.value?(t(),l(p,{key:1},[f(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع می‌شود. `)],64)):(t(),l(p,{key:2},[f(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):g(``,!0),u(oe,{open:P.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!U.value,onClick:Z},` افزودن به سفارش `,8,tt)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ae(Z,[`prevent`])},[F.value?(t(),l(`p`,Xe,n(F.value),1)):g(``,!0),c(`div`,Ze,[i[16]||=c(`label`,null,[f(`محصول `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(de,{modelValue:H.productId,"onUpdate:modelValue":i[2]||=e=>H.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:nt.value},null,8,[`modelValue`,`options`])]),c(`div`,Qe,[c(`div`,$e,[i[17]||=c(`label`,{for:`requested-meterage`},[f(` متراژ درخواستی `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`requested-meterage`,"onUpdate:modelValue":i[3]||=e=>H.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[b,H.requestedMeterage,void 0,{number:!0}]])]),c(`div`,et,[i[18]||=c(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),a(c(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":i[4]||=e=>H.confirmedMeterage=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[b,H.confirmedMeterage,void 0,{number:!0}]])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ba142b4c`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/OrdersView-D-3A1wX9.js b/dist/assets/OrdersView-D-3A1wX9.js deleted file mode 100644 index c4a6024..0000000 --- a/dist/assets/OrdersView-D-3A1wX9.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,G as r,H as i,I as a,J as o,N as s,P as c,Q as l,R as u,S as d,St as f,V as p,X as m,Y as h,Z as g,_t as _,a as v,at as y,bt as b,ct as x,dt as S,et as C,g as w,gt as T,h as E,ht as D,i as O,it as k,k as A,lt as j,mt as M,n as N,nt as P,o as F,ot as I,q as L,rt as R,st as z,tt as B,ut as V,vt as H,x as U,xt as W,y as G,yt as K,z as q}from"./index-B2VD3zy8.js";import{t as J}from"./AdminSelect-BeLNl2Qz.js";import{r as Y}from"./adminLabels-Cz9ccm1Z.js";import{c as X,i as Z,n as Q,o as ee,s as te,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-D3ThrLrU.js";function ie(){let e=n(),t=a(),r=q(),i=K([]),o=K([]),c=new Set(Q.map(e=>e.key));function l(){let t=typeof e.query.tab==`string`?e.query.tab:``;return c.has(t)?t:`all`}let u=K([]),d=K(l()),f=K(``),p=K(``),h=K(!1),g=K(!1),_=K(!1),v=K(``),y=K(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),x=H(b()),S=m(()=>x.customerId.length>0&&x.items.length>0),C=m(()=>{let e=[...o.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function T(e){let t=o.value.find(t=>t.id===e);x.customerId=e,x.customerName=t?.name??``,x.customerPhone=t?.phone??``}async function D(){try{o.value=await w.list()}catch(e){r.error(e instanceof s?e.message:`بارگذاری مشتریان انجام نشد.`)}}let O=m(()=>{let e=u.value;if(d.value!==`all`&&(e=e.filter(e=>e.status===d.value)),p.value.trim()){let t=p.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),k=m(()=>u.value.find(e=>e.id===f.value)??null);function A(e){let t=e.trim();if(t)return u.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function j(){let n=typeof e.query.order==`string`?e.query.order:``;if(!n||!u.value.length)return;let r=A(n);if(!r){p.value=n;return}let i=typeof e.query.focus==`string`?e.query.focus:``;if(i===`pricing`){await t.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await t.replace(`/orders/${r.id}/checks`);return}F(r),p.value=r.orderNumber}async function N(){try{let[e,t,n]=await Promise.all([U.list(),E.list(),w.list()]);u.value=e.map(e=>G(e)),i.value=t,o.value=n,await j()}catch(e){r.error(e instanceof s?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}z(()=>{N()}),M(()=>[e.query.order,e.query.focus],()=>{j()}),M(()=>e.query.tab,()=>{let e=l();d.value!==e&&(d.value=e)}),M(d,n=>{let r=typeof e.query.tab==`string`?e.query.tab:`all`,i=n===`all`?void 0:n;(r===`all`?void 0:r)!==i&&t.replace({query:{...e.query,tab:i}})});function P(e,t=!1){f.value=e.id,t&&(g.value=!0)}function F(e){f.value=e.id,_.value=!0}function I(){g.value=!1}function L(){_.value=!1}function R(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let B=K(!1);async function V(e){if(B.value)return null;B.value=!0;try{let t=await U.updateStatus(e.orderId,{status:e.status,note:e.note,reason:e.reason,force:e.force}),n=G(t),i=u.value.findIndex(t=>t.id===e.orderId);return i>=0&&(u.value[i]={...u.value[i],...n}),r.success(`وضعیت سفارش به «${X(e.status)}» تغییر کرد.`),n}catch(e){return r.error(e instanceof s?e.message:`تغییر وضعیت انجام نشد.`),null}finally{B.value=!1}}function W(e){t.push(`/orders/${e.id}/pricing`)}function J(e){t.push(`/orders/${e.id}/checks`)}function Y(e){t.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function Z(){Object.assign(x,b()),v.value=``,h.value=!0,D()}function ee(){h.value=!1,v.value=``}function te(e){return x.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(x.items.push(e),v.value=``,!0)}function ne(e){x.items=x.items.filter(t=>t.productId!==e)}async function re(){if(!S.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await U.create({customerId:x.customerId||void 0,userId:x.customerId||void 0,customerName:x.customerName.trim(),customerPhone:x.customerPhone.trim()||void 0,items:x.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=G(e);u.value.unshift(t),f.value=t.id,r.success(`سفارش جدید ثبت شد.`),ee()}catch(e){r.error(e instanceof s?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:i,customers:o,activeCustomers:C,applyCustomer:T,loadCustomers:D,orderList:u,activeTab:d,selectedOrderId:f,searchQuery:p,showAddModal:h,showDetailPanel:g,showDetailModal:_,formError:v,form:x,addFormItem:te,removeFormItem:ne,isFormValid:S,filteredOrders:O,selectedOrder:k,selectOrder:P,openOrderDetail:F,closeDetailPanel:I,closeDetailModal:L,settlementLabel:R,changeStatus:V,statusSaving:B,goPricing:W,goChecks:J,goCashReceipt:Y,openAddModal:Z,closeAddModal:ee,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return V(ae,e),e}function se(){let e=y(ae);if(!e)throw Error(`Orders page context is missing`);return e}var ce={class:`order-detail__hero`},$={class:`order-detail__hero-text`},le={class:`order-detail__id`},ue={key:0,class:`order-detail__raw-status`},de={class:`order-detail__actions no-print`},fe=[`disabled`],pe={class:`order-detail__panels`},me={class:`order-detail__section`},he={class:`order-detail__info`},ge={class:`order-detail__info-row`},_e={class:`order-detail__info-value`},ve={class:`order-detail__info-row`},ye={class:`order-detail__info-value order-detail__info-value--phone`,dir:`ltr`},be={class:`order-detail__info-row`},xe={class:`order-detail__info-value`},Se={class:`order-detail__info-row`},Ce={class:`order-detail__info-value`},we={class:`order-detail__section`},Te={class:`order-detail__info`},Ee={class:`order-detail__info-row`},De={class:`order-detail__info-value`},Oe={class:`order-detail__info-row`},ke={class:`order-detail__info-value`},Ae={class:`order-detail__info-row`},je={class:`order-detail__info-value`},Me={class:`order-detail__info-row`},Ne={class:`order-detail__info-value`},Pe={key:0,class:`order-detail__section`},Fe={key:0,class:`admin-table-wrap order-detail__table`},Ie={class:`admin-table admin-table--compact`},Le={key:1,class:`order-detail__items`},Re={class:`order-detail__item-head`},ze={class:`order-detail__item-meta`},Be={key:0},Ve={key:1},He={key:2,class:`order-detail__item-total`},Ue={class:`order-detail__section order-detail__status no-print`},We={class:`order-detail__status-head`},Ge={class:`order-detail__manual`},Ke={key:0,class:`order-detail__status-hint`},qe={key:1,class:`order-detail__status-hint`},Je={key:2,class:`order-detail__status-form`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={for:`status-note`},Qe=[`disabled`],$e=p(k({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(n,{emit:a}){let s=n,l=a,u=K(!1),d=K(``),f=K(``),p=Object.keys(Z),h=m(()=>s.order.allowedTransitions??[]),_=m(()=>u.value?p.filter(e=>e!==s.order.rawStatus):[...h.value]),y=m(()=>[{value:``,label:`انتخاب کنید…`},..._.value.map(e=>({value:e,label:X(e)}))]),x=m(()=>u.value),w=m(()=>!!d.value&&(!x.value||f.value.trim().length>0)),E=m(()=>s.layout===`desktop`),D=m(()=>ne[s.order.status]?.label??s.order.status),O=m(()=>{let e=X(s.order.rawStatus);return!e||e===D.value?``:e}),k=m(()=>{let e=s.order.customerType;return e?Y[e]??s.order.customerType??`—`:`—`}),A=m(()=>te(s.order)),P=m(()=>ee(s.order)),I=m(()=>s.order.settlementMethod===`check`&&!A.value),L=m(()=>s.order.settlementMethod===`cash`&&!A.value&&s.order.rawStatus!==`cash_confirmed`),z=m(()=>A.value?`pricing`:P.value?`final`:I.value?`checks`:L.value?`cash`:null);M([()=>s.order.id,u],()=>{d.value=``,f.value=``});function B(){if(!d.value||!w.value)return;let e=f.value.trim()||void 0;l(`status`,{orderId:s.order.id,status:d.value,note:e,reason:u.value?e:void 0,force:u.value||void 0}),d.value=``,f.value=``}return(a,s)=>(j(),C(`div`,{class:W([`order-detail`,`order-detail--${n.layout}`])},[g(`header`,ce,[g(`div`,$,[g(`div`,le,[g(`strong`,null,t(n.order.orderNumber),1),R(re,{status:n.order.status},null,8,[`status`])]),O.value?(j(),C(`p`,ue,t(O.value),1)):e(``,!0)]),g(`div`,de,[A.value?(j(),C(`button`,{key:0,type:`button`,class:W([`admin-btn admin-btn--sm`,z.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:s[0]||=e=>l(`pricing`)},` قیمت‌گذاری سفارش `,2)):e(``,!0),I.value?(j(),C(`button`,{key:1,type:`button`,class:W([`admin-btn admin-btn--sm`,z.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:s[1]||=e=>l(`checks`)},` مدیریت چک‌ها `,2)):e(``,!0),L.value?(j(),C(`button`,{key:2,type:`button`,class:W([`admin-btn admin-btn--sm`,z.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:s[2]||=e=>l(`cashReceipt`)},` رسید پرداخت `,2)):e(``,!0),P.value?(j(),C(`button`,{key:3,type:`button`,class:W([`admin-btn admin-btn--sm`,z.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:n.statusSaving,onClick:s[3]||=e=>l(`finalApprove`)},` تأیید نهایی `,10,fe)):e(``,!0)])]),g(`div`,pe,[g(`section`,me,[s[11]||=g(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),g(`div`,he,[g(`div`,ge,[R(c,{name:`building`,size:16}),s[7]||=g(`span`,{class:`order-detail__info-label`},`مشتری`,-1),g(`span`,_e,t(n.order.customerName),1)]),g(`div`,ve,[R(c,{name:`phone`,size:16}),s[8]||=g(`span`,{class:`order-detail__info-label`},`تلفن`,-1),g(`span`,ye,t(n.order.customerPhone??`—`),1)]),g(`div`,be,[R(c,{name:`id-card`,size:16}),s[9]||=g(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),g(`span`,xe,t(n.order.customerNationalId??`—`),1)]),g(`div`,Se,[R(c,{name:`user`,size:16}),s[10]||=g(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),g(`span`,Ce,t(k.value),1)])])]),g(`section`,we,[s[16]||=g(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),g(`div`,Te,[g(`div`,Ee,[s[12]||=g(`span`,{class:`order-detail__info-label`},`شرکت`,-1),g(`span`,De,t(n.order.companyName),1)]),g(`div`,Oe,[s[13]||=g(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),g(`span`,ke,t(n.settlementLabel(n.order.settlementMethod)),1)]),g(`div`,Ae,[s[14]||=g(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),g(`span`,je,t(b(v)(n.order.meterage)),1)]),g(`div`,Me,[s[15]||=g(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),g(`span`,Ne,t(n.order.totalAmount==null?`پس از قیمت‌گذاری`:b(N)(n.order.totalAmount)),1)])])])]),n.order.items?.length?(j(),C(`section`,Pe,[s[18]||=g(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),E.value?(j(),C(`div`,Fe,[g(`table`,Ie,[s[17]||=g(`thead`,null,[g(`tr`,null,[g(`th`,null,`شرکت`),g(`th`,null,`کالیته`),g(`th`,null,`محصول`),g(`th`,null,`رنگ`),g(`th`,null,`متراژ`),g(`th`,null,`قیمت`),g(`th`,null,`مبلغ`)])],-1),g(`tbody`,null,[(j(!0),C(o,null,S(n.order.items,e=>(j(),C(`tr`,{key:e.id},[g(`td`,null,t(e.companyName||n.order.companyName),1),g(`td`,null,t(e.catalogCode),1),g(`td`,null,t(e.productName),1),g(`td`,null,t(e.color),1),g(`td`,null,t(b(F)(e.confirmedMeterage??e.requestedMeterage)),1),g(`td`,null,t(e.supplyPrice==null?`—`:b(N)(e.supplyPrice)),1),g(`td`,null,t(e.totalAmount==null?`—`:b(N)(e.totalAmount)),1)]))),128))])])])):(j(),C(`ul`,Le,[(j(!0),C(o,null,S(n.order.items,n=>(j(),C(`li`,{key:n.id,class:`order-detail__item`},[g(`div`,Re,[g(`strong`,null,t(n.productName),1),g(`span`,null,t(n.catalogCode),1)]),g(`div`,ze,[n.companyName?(j(),C(`span`,Be,t(n.companyName),1)):e(``,!0),g(`span`,null,t(n.color),1),g(`span`,null,t(b(v)(n.confirmedMeterage??n.requestedMeterage)),1),n.supplyPrice==null?e(``,!0):(j(),C(`span`,Ve,t(b(N)(n.supplyPrice)),1)),n.totalAmount==null?e(``,!0):(j(),C(`span`,He,t(b(N)(n.totalAmount)),1))])]))),128))]))])):e(``,!0),g(`section`,Ue,[g(`div`,We,[s[20]||=g(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),g(`label`,Ge,[T(g(`input`,{"onUpdate:modelValue":s[4]||=e=>u.value=e,type:`checkbox`},null,512),[[i,u.value]]),s[19]||=g(`span`,null,`تغییر دستی`,-1)])]),u.value?(j(),C(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):_.value.length?e(``,!0):(j(),C(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),_.value.length?(j(),C(`div`,Je,[g(`div`,Ye,[s[21]||=g(`label`,null,`وضعیت بعدی`,-1),R(J,{modelValue:d.value,"onUpdate:modelValue":s[5]||=e=>d.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:y.value},null,8,[`modelValue`,`options`])]),g(`div`,Xe,[g(`label`,Ze,` یادداشت`+t(x.value?` (اجباری)`:` (اختیاری)`),1),T(g(`input`,{id:`status-note`,"onUpdate:modelValue":s[6]||=e=>f.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[r,f.value]])]),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!w.value||n.statusSaving,onClick:B},t(n.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):e(``,!0)])],2))}}),[[`__scopeId`,`data-v-bfe77a62`]]),et={class:`orders-page`},tt={class:`orders-page__list-panel admin-card`},nt={class:`orders-page__list-header`},rt={class:`orders-page__list-actions`},it={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},at={class:`orders-page__search`},ot={class:`admin-tabs`},st=[`onClick`],ct={class:`admin-table-wrap`},lt={class:`admin-table admin-table--compact`},ut=[`onClick`],dt={class:`orders-page__actions-cell`},ft=[`aria-expanded`,`onClick`],pt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},mt=p(k({__name:`DesktopOrdersPage`,setup(n){let i=A(`(min-width: 1280px)`),{activeTab:a,selectedOrderId:s,searchQuery:d,filteredOrders:p,selectedOrder:m,showDetailModal:y,openOrderDetail:w,closeDetailModal:E,settlementLabel:k,goPricing:M,goChecks:F,goCashReceipt:V,changeStatus:H,statusSaving:U,openAddModal:G}=se(),q=K(null),J=K({});function Y(){q.value=null}async function X(e,t){if(t.stopPropagation(),q.value?.id===e.id){Y();return}let n=t.currentTarget.getBoundingClientRect();q.value=e,await I();let r=Math.min(Math.max(8,n.right-168),window.innerWidth-168-8);J.value={position:`fixed`,top:`${n.bottom+4}px`,left:`${r}px`,width:`168px`}}function Z(){Y()}z(()=>{document.addEventListener(`click`,Z),window.addEventListener(`scroll`,Y,!0),window.addEventListener(`resize`,Y)}),x(()=>{document.removeEventListener(`click`,Z),window.removeEventListener(`scroll`,Y,!0),window.removeEventListener(`resize`,Y)});function ne(){m.value&&(E(),M(m.value))}function ie(){m.value&&(E(),F(m.value))}function ae(){m.value&&(E(),V(m.value))}function oe(){m.value&&H({orderId:m.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!m.value)return;document.documentElement.classList.add(`printing-order-detail`);let e=()=>{document.documentElement.classList.remove(`printing-order-detail`),window.removeEventListener(`afterprint`,e)};window.addEventListener(`afterprint`,e),window.setTimeout(e,6e4),window.print()}function $(e){let t=q.value;if(t){if(Y(),e===`detail`){w(t);return}if(e===`pricing`){M(t);return}if(e===`checks`){F(t);return}if(e===`final`){H({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}V(t)}}return(n,x)=>(j(),C(`div`,et,[g(`div`,tt,[g(`div`,nt,[x[9]||=g(`div`,null,[g(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),g(`div`,rt,[g(`button`,it,[R(c,{name:`filter`,size:16}),x[8]||=P(` فیلتر `,-1)]),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:x[0]||=(...e)=>b(G)&&b(G)(...e)},` سفارش جدید `)])]),g(`div`,at,[R(c,{name:`search`,size:18}),T(g(`input`,{"onUpdate:modelValue":x[1]||=e=>_(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[r,b(d)]])]),g(`div`,ot,[(j(!0),C(o,null,S(b(Q),n=>(j(),C(`button`,{key:n.key,type:`button`,class:W([`admin-tab`,{active:b(a)===n.key}]),onClick:e=>a.value=n.key},[P(t(n.label)+` `,1),`count`in n&&n.count?(j(),C(o,{key:0},[P(` (`+t(n.count)+`)`,1)],64)):e(``,!0)],10,st))),128))]),g(`div`,ct,[g(`table`,lt,[x[10]||=g(`thead`,null,[g(`tr`,null,[g(`th`,null,`شماره سفارش`),g(`th`,null,`مشتری`),g(`th`,null,`روش تسویه`),g(`th`,null,`مبلغ کل`),g(`th`,null,`متراژ`),g(`th`,null,`وضعیت`),g(`th`,null,`تاریخ ثبت`),g(`th`,null,`عملیات`)])],-1),g(`tbody`,null,[(j(!0),C(o,null,S(b(p),e=>(j(),C(`tr`,{key:e.id,class:W({"is-selected":b(s)===e.id}),onClick:t=>b(w)(e)},[g(`td`,null,t(e.orderNumber),1),g(`td`,null,t(e.customerName),1),g(`td`,null,t(b(k)(e.settlementMethod)),1),g(`td`,null,t(e.totalAmount?b(N)(e.totalAmount):`—`),1),g(`td`,null,t(b(v)(e.meterage)),1),g(`td`,null,[R(re,{status:e.status},null,8,[`status`])]),g(`td`,null,t(b(O)(e.createdAt)),1),g(`td`,dt,[g(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":q.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>X(e,t)},[R(c,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),x[11]||=B(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(j(),l(h,{to:`body`},[q.value?(j(),C(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:f(J.value),onClick:x[7]||=L(()=>{},[`stop`])},[g(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:x[2]||=e=>$(`detail`)},` جزئیات سفارش `),q.value&&b(te)(q.value)?(j(),C(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:x[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):e(``,!0),q.value.settlementMethod===`check`?(j(),C(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:x[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):e(``,!0),q.value.settlementMethod===`cash`&&q.value.rawStatus!==`cash_confirmed`?(j(),C(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:x[5]||=e=>$(`cash`)},` رسید پرداخت `)):e(``,!0),b(ee)(q.value)?(j(),C(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:x[6]||=e=>$(`final`)},` تأیید نهایی `)):e(``,!0)],4)):e(``,!0)])),R(u,{open:b(i)&&b(y)&&!!b(m),title:`جزئیات سفارش`,size:`xl`,onClose:b(E)},{footer:D(()=>[g(`button`,pt,[R(c,{name:`sms`,size:16}),x[12]||=P(` ارسال پیامک `,-1)]),g(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[R(c,{name:`print`,size:16}),x[13]||=P(` چاپ `,-1)])]),default:D(()=>[b(m)?(j(),l($e,{key:0,order:b(m),layout:`desktop`,"settlement-label":b(k),"status-saving":b(U),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:b(H)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):e(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-cfed03e1`]]),ht={class:`compact-orders`},gt={class:`compact-page-header`},_t={class:`compact-page-header__row`},vt={class:`compact-page-header__actions`},yt={key:0,class:`compact-orders__filter-dot`,"aria-hidden":`true`},bt={class:`orders-page__search admin-card`},xt={key:0,class:`compact-orders__filter-chip admin-card`},St={key:1,class:`admin-tabs compact-orders__tabs`},Ct=[`onClick`],wt={class:`compact-orders__filter-form`,role:`listbox`,"aria-label":`وضعیت سفارش`},Tt=[`aria-selected`,`onClick`],Et={key:0,class:`compact-orders__filter-check`,"aria-hidden":`true`},Dt={class:`admin-card-list`},Ot=[`onClick`],kt={class:`admin-card-item__header`},At={class:`admin-card-item__title`},jt={class:`admin-card-item__meta`},Mt={key:0,class:`admin-detail-panel__inner`},Nt={class:`admin-detail-panel__header`},Pt={class:`admin-detail-panel__body`},Ft=p(k({__name:`CompactOrdersPage`,setup(n){let i=A(`(max-width: 767px)`),a=A(`(max-width: 1279px)`),{activeTab:s,selectedOrderId:d,searchQuery:f,filteredOrders:p,selectedOrder:h,showDetailPanel:y,showDetailModal:x,selectOrder:w,openOrderDetail:E,closeDetailPanel:k,closeDetailModal:M,settlementLabel:F,goPricing:I,goChecks:L,goCashReceipt:z,changeStatus:B,statusSaving:V,openAddModal:H}=se(),U=K(!1),G=m(()=>s.value!==`all`),q=m(()=>Q.find(e=>e.key===s.value)?.label??`همه`);function J(){U.value=!0}function Y(){U.value=!1}function X(){s.value=`all`,U.value=!1}function Z(e){s.value=e,U.value=!1}function ee(e){if(i.value){w(e,!0);return}E(e)}function te(){h.value&&(M(),k(),I(h.value))}function ne(){h.value&&(M(),k(),L(h.value))}function ie(){h.value&&(M(),k(),z(h.value))}function ae(){h.value&&B({orderId:h.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(n,m)=>(j(),C(`div`,ht,[g(`div`,gt,[g(`div`,_t,[m[4]||=g(`div`,null,[g(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),g(`div`,vt,[g(`button`,{type:`button`,class:W([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":G.value}]),onClick:J},[R(c,{name:`filter`,size:16}),m[3]||=P(` فیلتر `,-1),G.value?(j(),C(`span`,yt)):e(``,!0)],2),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:m[0]||=(...e)=>b(H)&&b(H)(...e)},` سفارش جدید `)])])]),g(`div`,bt,[R(c,{name:`search`,size:18}),T(g(`input`,{"onUpdate:modelValue":m[1]||=e=>_(f)?f.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[r,b(f)]])]),b(i)&&G.value?(j(),C(`div`,xt,[g(`span`,null,`وضعیت: `+t(q.value),1),g(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:X},`پاک کردن`)])):e(``,!0),b(i)?e(``,!0):(j(),C(`div`,St,[(j(!0),C(o,null,S(b(Q),n=>(j(),C(`button`,{key:n.key,type:`button`,class:W([`admin-tab`,{active:b(s)===n.key}]),onClick:e=>s.value=n.key},[P(t(n.label)+` `,1),`count`in n&&n.count?(j(),C(o,{key:0},[P(` (`+t(n.count)+`)`,1)],64)):e(``,!0)],10,Ct))),128))])),R(u,{open:U.value,title:`فیلتر سفارش‌ها`,onClose:Y},{footer:D(()=>[g(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` پاک کردن `),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` بستن `)]),default:D(()=>[g(`div`,wt,[(j(!0),C(o,null,S(b(Q),n=>(j(),C(`button`,{key:n.key,type:`button`,class:W([`compact-orders__filter-option`,{"is-active":b(s)===n.key}]),role:`option`,"aria-selected":b(s)===n.key,onClick:e=>Z(n.key)},[g(`span`,null,t(n.label),1),b(s)===n.key?(j(),C(`span`,Et,`✓`)):e(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),g(`div`,Dt,[(j(!0),C(o,null,S(b(p),e=>(j(),C(`button`,{key:e.id,type:`button`,class:W([`admin-card-item`,{selected:b(d)===e.id}]),onClick:t=>ee(e)},[g(`div`,kt,[g(`p`,At,t(e.orderNumber),1),R(re,{status:e.status},null,8,[`status`])]),g(`div`,jt,[g(`span`,null,[m[5]||=g(`strong`,null,`مشتری:`,-1),P(` `+t(e.customerName),1)]),g(`span`,null,[m[6]||=g(`strong`,null,`متراژ:`,-1),P(` `+t(b(v)(e.meterage)),1)]),g(`span`,null,[m[7]||=g(`strong`,null,`مبلغ:`,-1),P(` `+t(e.totalAmount?b(N)(e.totalAmount):`—`),1)]),g(`span`,null,t(b(O)(e.createdAt)),1)])],10,Ot))),128))]),g(`div`,{class:W([`admin-detail-panel compact-orders__mobile-panel`,{open:b(i)&&b(y)&&b(h)}])},[b(h)?(j(),C(`div`,Mt,[g(`div`,Nt,[g(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:m[2]||=(...e)=>b(k)&&b(k)(...e)},[R(c,{name:`chevron-back`,size:20})]),m[8]||=g(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),g(`div`,Pt,[R($e,{order:b(h),"settlement-label":b(F),"status-saving":b(V),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:b(B)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):e(``,!0)],2),R(u,{open:b(a)&&!b(i)&&b(x)&&!!b(h),title:`جزئیات سفارش`,size:`xl`,onClose:b(M)},{default:D(()=>[b(h)?(j(),l($e,{key:0,order:b(h),"settlement-label":b(F),"status-saving":b(V),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:b(B)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):e(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-fe86c1c8`]]),It={key:0,class:`admin-form__error`,role:`alert`},Lt={class:`admin-form__field`},Rt={key:0,class:`admin-form__hint`},zt={class:`admin-form__row`},Bt={class:`admin-form__field`},Vt={class:`admin-form__field`},Ht={key:1,class:`order-add__items`},Ut=[`onClick`],Wt={key:2,class:`admin-form__hint`},Gt=[`disabled`],Kt=p(k({__name:`OrderAddModal`,setup(n){let{showAddModal:i,formError:a,form:c,isFormValid:f,activeCustomers:p,applyCustomer:h,addFormItem:_,removeFormItem:v,closeAddModal:y,submitAddOrder:x}=se(),w=q(),E=K([]),O=H({productId:``,meterage:0}),k=m(()=>p.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),A=m(()=>E.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),N=m(()=>E.value.find(e=>e.id===O.productId)??null);M(()=>c.customerId,e=>{if(!e){c.customerName=``,c.customerPhone=``;return}h(e)}),M(i,async e=>{if(e){O.productId=``,O.meterage=0;try{E.value=await d.list({activeOnly:!0})}catch(e){w.error(e instanceof s?e.message:`بارگذاری محصولات انجام نشد.`)}}}),M(()=>O.productId,e=>{let t=E.value.find(t=>t.id===e);t&&(O.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function I(){let e=N.value;if(!e){a.value=`محصول را انتخاب کنید.`;return}if(!O.meterage||O.meterage<=0){a.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}_({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:O.meterage}),O.productId=``,O.meterage=0}return(n,s)=>(j(),l(u,{open:b(i),title:`پیش‌سفارش جدید`,size:`lg`,onClose:b(y)},{footer:D(()=>[g(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[4]||=(...e)=>b(y)&&b(y)(...e)},` انصراف `),g(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!b(f),onClick:s[5]||=(...e)=>b(x)&&b(x)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:D(()=>[g(`form`,{class:`admin-form`,onSubmit:s[3]||=L((...e)=>b(x)&&b(x)(...e),[`prevent`])},[b(a)?(j(),C(`p`,It,t(b(a)),1)):e(``,!0),s[9]||=g(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),g(`div`,Lt,[s[6]||=g(`label`,{id:`order-customer-label`},[P(` مشتری `),g(`span`,{class:`admin-form__required`},`*`)],-1),R(J,{id:`order-customer`,modelValue:b(c).customerId,"onUpdate:modelValue":s[0]||=e=>b(c).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:k.value},null,8,[`modelValue`,`options`]),k.value.length?e(``,!0):(j(),C(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),g(`div`,zt,[g(`div`,Bt,[s[7]||=g(`label`,null,`محصول`,-1),R(J,{modelValue:O.productId,"onUpdate:modelValue":s[1]||=e=>O.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:A.value},null,8,[`modelValue`,`options`])]),g(`div`,Vt,[s[8]||=g(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),T(g(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":s[2]||=e=>O.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,O.meterage,void 0,{number:!0}]])])]),g(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:I},` افزودن به اقلام `),b(c).items.length?(j(),C(`div`,Ht,[(j(!0),C(o,null,S(b(c).items,e=>(j(),C(`div`,{key:e.productId,class:`order-add__item`},[g(`div`,null,[g(`strong`,null,t(e.productName),1),g(`span`,null,`کالیته `+t(e.catalogCode)+` — `+t(b(F)(e.meterage))+` متر`,1)]),g(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>b(v)(e.productId)},` حذف `,8,Ut)]))),128))])):(j(),C(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=k({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(j(),C(o,null,[R(mt,{class:`desktop-only`}),R(Ft,{class:`compact-only`}),R(Kt)],64))}});export{qt as default}; \ No newline at end of file diff --git a/dist/assets/OrdersView-DGNYhZg3.js b/dist/assets/OrdersView-DGNYhZg3.js new file mode 100644 index 0000000..253d74f --- /dev/null +++ b/dist/assets/OrdersView-DGNYhZg3.js @@ -0,0 +1 @@ +import{B as e,C as t,Dt as n,E as r,K as i,O as a,Ot as o,R as s,T as c,Tt as l,V as u,Y as d,Z as f,a as p,at as m,c as h,d as g,g as _,h as v,j as y,k as b,l as x,m as S,p as C,r as w,s as T,t as E,u as D,x as O}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as k,I as A,K as j,N as M,P as N,R as P,S as F,V as I,W as L,a as R,g as z,h as B,i as ee,k as V,n as H,o as U,x as W,y as G,z as K}from"./index-CXa4EMLW.js";import{t as q}from"./AdminSelect-9UfEJQzN.js";import{r as J}from"./adminLabels-Cz9ccm1Z.js";import{c as Y,i as X,n as Z,o as Q,s as te,t as ne}from"./orderStatus-CYVblRJB.js";import{t as re}from"./StatusBadge-Cg2zTE2k.js";function ie(){let e=k(),t=A(),n=K(),r=f([]),i=f([]),a=new Set(Z.map(e=>e.key));function o(){let t=typeof e.query.tab==`string`?e.query.tab:``;return a.has(t)?t:`all`}let l=f([]),u=f(o()),p=f(``),m=f(``),h=f(!1),g=f(!1),_=f(!1),v=f(``),y=f(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),x=d(b()),S=T(()=>x.customerId.length>0&&x.items.length>0),C=T(()=>{let e=[...i.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function w(e){let t=i.value.find(t=>t.id===e);x.customerId=e,x.customerName=t?.name??``,x.customerPhone=t?.phone??``}async function E(){try{i.value=await z.list()}catch(e){n.error(e instanceof M?e.message:`بارگذاری مشتریان انجام نشد.`)}}let D=T(()=>{let e=l.value;if(u.value!==`all`&&(e=e.filter(e=>e.status===u.value)),m.value.trim()){let t=m.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),O=T(()=>l.value.find(e=>e.id===p.value)??null);function j(e){let t=e.trim();if(t)return l.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function N(){let n=typeof e.query.order==`string`?e.query.order:``;if(!n||!l.value.length)return;let r=j(n);if(!r){m.value=n;return}let i=typeof e.query.focus==`string`?e.query.focus:``;if(i===`pricing`){await t.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await t.replace(`/orders/${r.id}/checks`);return}I(r),m.value=r.orderNumber}async function P(){try{let[e,t,n]=await Promise.all([W.list(),B.list(),z.list()]);l.value=e.map(e=>G(e)),r.value=t,i.value=n,await N()}catch(e){n.error(e instanceof M?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}c(()=>{P()}),s(()=>[e.query.order,e.query.focus],()=>{N()}),s(()=>e.query.tab,()=>{let e=o();u.value!==e&&(u.value=e)}),s(u,n=>{let r=typeof e.query.tab==`string`?e.query.tab:`all`,i=n===`all`?void 0:n;(r===`all`?void 0:r)!==i&&t.replace({query:{...e.query,tab:i}})});function F(e,t=!1){p.value=e.id,t&&(g.value=!0)}function I(e){p.value=e.id,_.value=!0}function L(){g.value=!1}function R(){_.value=!1}function ee(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=f(!1);async function H(e){if(V.value)return null;V.value=!0;try{let t=await W.updateStatus(e.orderId,{status:e.status,note:e.note,reason:e.reason,force:e.force}),r=G(t),i=l.value.findIndex(t=>t.id===e.orderId);return i>=0&&(l.value[i]={...l.value[i],...r}),n.success(`وضعیت سفارش به «${Y(e.status)}» تغییر کرد.`),r}catch(e){return n.error(e instanceof M?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function U(e){t.push(`/orders/${e.id}/pricing`)}function q(e){t.push(`/orders/${e.id}/checks`)}function J(e){t.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function X(){Object.assign(x,b()),v.value=``,h.value=!0,E()}function Q(){h.value=!1,v.value=``}function te(e){return x.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(x.items.push(e),v.value=``,!0)}function ne(e){x.items=x.items.filter(t=>t.productId!==e)}async function re(){if(!S.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await W.create({customerId:x.customerId||void 0,userId:x.customerId||void 0,customerName:x.customerName.trim(),customerPhone:x.customerPhone.trim()||void 0,items:x.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=G(e);l.value.unshift(t),p.value=t.id,n.success(`سفارش جدید ثبت شد.`),Q()}catch(e){n.error(e instanceof M?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:r,customers:i,activeCustomers:C,applyCustomer:w,loadCustomers:E,orderList:l,activeTab:u,selectedOrderId:p,searchQuery:m,showAddModal:h,showDetailPanel:g,showDetailModal:_,formError:v,form:x,addFormItem:te,removeFormItem:ne,isFormValid:S,filteredOrders:D,selectedOrder:O,selectOrder:F,openOrderDetail:I,closeDetailPanel:L,closeDetailModal:R,settlementLabel:ee,changeStatus:H,statusSaving:V,goPricing:U,goChecks:q,goCashReceipt:J,openAddModal:X,closeAddModal:Q,submitAddOrder:re,saving:y}}var ae=Symbol(`orders-page`);function oe(){let e=ie();return b(ae,e),e}function se(){let e=O(ae);if(!e)throw Error(`Orders page context is missing`);return e}var ce={class:`order-detail__hero`},$={class:`order-detail__hero-text`},le={class:`order-detail__id`},ue={key:0,class:`order-detail__raw-status`},de={class:`order-detail__actions no-print`},fe=[`disabled`],pe={class:`order-detail__panels`},me={class:`order-detail__section`},he={class:`order-detail__info`},ge={class:`order-detail__info-row`},_e={class:`order-detail__info-value`},ve={class:`order-detail__info-row`},ye={class:`order-detail__info-value order-detail__info-value--phone`,dir:`ltr`},be={class:`order-detail__info-row`},xe={class:`order-detail__info-value`},Se={class:`order-detail__info-row`},Ce={class:`order-detail__info-value`},we={class:`order-detail__section`},Te={class:`order-detail__info`},Ee={class:`order-detail__info-row`},De={class:`order-detail__info-value`},Oe={class:`order-detail__info-row`},ke={class:`order-detail__info-value`},Ae={class:`order-detail__info-row`},je={class:`order-detail__info-value`},Me={class:`order-detail__info-row`},Ne={class:`order-detail__info-value`},Pe={key:0,class:`order-detail__section`},Fe={key:0,class:`admin-table-wrap order-detail__table`},Ie={class:`admin-table admin-table--compact`},Le={key:1,class:`order-detail__items`},Re={class:`order-detail__item-head`},ze={class:`order-detail__item-meta`},Be={key:0},Ve={key:1},He={key:2,class:`order-detail__item-total`},Ue={class:`order-detail__section order-detail__status no-print`},We={class:`order-detail__status-head`},Ge={class:`order-detail__manual`},Ke={key:0,class:`order-detail__status-hint`},qe={key:1,class:`order-detail__status-hint`},Je={key:2,class:`order-detail__status-form`},Ye={class:`admin-form__field`},Xe={class:`admin-form__field`},Ze={for:`status-note`},Qe=[`disabled`],$e=E(_({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(e,{emit:t}){let n=e,r=t,i=f(!1),c=f(``),d=f(``),p=Object.keys(X),_=T(()=>n.order.allowedTransitions??[]),b=T(()=>i.value?p.filter(e=>e!==n.order.rawStatus):[..._.value]),x=T(()=>[{value:``,label:`انتخاب کنید…`},...b.value.map(e=>({value:e,label:Y(e)}))]),S=T(()=>i.value),C=T(()=>!!c.value&&(!S.value||d.value.trim().length>0)),E=T(()=>n.layout===`desktop`),O=T(()=>ne[n.order.status]?.label??n.order.status),k=T(()=>{let e=Y(n.order.rawStatus);return!e||e===O.value?``:e}),A=T(()=>{let e=n.order.customerType;return e?J[e]??n.order.customerType??`—`:`—`}),j=T(()=>te(n.order)),M=T(()=>Q(n.order)),P=T(()=>n.order.settlementMethod===`check`&&!j.value),F=T(()=>n.order.settlementMethod===`cash`&&!j.value&&n.order.rawStatus!==`cash_confirmed`),z=T(()=>j.value?`pricing`:M.value?`final`:P.value?`checks`:F.value?`cash`:null);s([()=>n.order.id,i],()=>{c.value=``,d.value=``});function B(){if(!c.value||!C.value)return;let e=d.value.trim()||void 0;r(`status`,{orderId:n.order.id,status:c.value,note:e,reason:i.value?e:void 0,force:i.value||void 0}),c.value=``,d.value=``}return(t,n)=>(a(),g(`div`,{class:l([`order-detail`,`order-detail--${e.layout}`])},[h(`header`,ce,[h(`div`,$,[h(`div`,le,[h(`strong`,null,o(e.order.orderNumber),1),v(re,{status:e.order.status},null,8,[`status`])]),k.value?(a(),g(`p`,ue,o(k.value),1)):D(``,!0)]),h(`div`,de,[j.value?(a(),g(`button`,{key:0,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[0]||=e=>r(`pricing`)},` قیمت‌گذاری سفارش `,2)):D(``,!0),P.value?(a(),g(`button`,{key:1,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[1]||=e=>r(`checks`)},` مدیریت چک‌ها `,2)):D(``,!0),F.value?(a(),g(`button`,{key:2,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:n[2]||=e=>r(`cashReceipt`)},` رسید پرداخت `,2)):D(``,!0),M.value?(a(),g(`button`,{key:3,type:`button`,class:l([`admin-btn admin-btn--sm`,z.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:e.statusSaving,onClick:n[3]||=e=>r(`finalApprove`)},` تأیید نهایی `,10,fe)):D(``,!0)])]),h(`div`,pe,[h(`section`,me,[n[11]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),h(`div`,he,[h(`div`,ge,[v(N,{name:`building`,size:16}),n[7]||=h(`span`,{class:`order-detail__info-label`},`مشتری`,-1),h(`span`,_e,o(e.order.customerName),1)]),h(`div`,ve,[v(N,{name:`phone`,size:16}),n[8]||=h(`span`,{class:`order-detail__info-label`},`تلفن`,-1),h(`span`,ye,o(e.order.customerPhone??`—`),1)]),h(`div`,be,[v(N,{name:`id-card`,size:16}),n[9]||=h(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),h(`span`,xe,o(e.order.customerNationalId??`—`),1)]),h(`div`,Se,[v(N,{name:`user`,size:16}),n[10]||=h(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),h(`span`,Ce,o(A.value),1)])])]),h(`section`,we,[n[16]||=h(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),h(`div`,Te,[h(`div`,Ee,[n[12]||=h(`span`,{class:`order-detail__info-label`},`شرکت`,-1),h(`span`,De,o(e.order.companyName),1)]),h(`div`,Oe,[n[13]||=h(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),h(`span`,ke,o(e.settlementLabel(e.order.settlementMethod)),1)]),h(`div`,Ae,[n[14]||=h(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),h(`span`,je,o(m(R)(e.order.meterage)),1)]),h(`div`,Me,[n[15]||=h(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),h(`span`,Ne,o(e.order.totalAmount==null?`پس از قیمت‌گذاری`:m(H)(e.order.totalAmount)),1)])])])]),e.order.items?.length?(a(),g(`section`,Pe,[n[18]||=h(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),E.value?(a(),g(`div`,Fe,[h(`table`,Ie,[n[17]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شرکت`),h(`th`,null,`کالیته`),h(`th`,null,`محصول`),h(`th`,null,`رنگ`),h(`th`,null,`متراژ`),h(`th`,null,`قیمت`),h(`th`,null,`مبلغ`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(e.order.items,t=>(a(),g(`tr`,{key:t.id},[h(`td`,null,o(t.companyName||e.order.companyName),1),h(`td`,null,o(t.catalogCode),1),h(`td`,null,o(t.productName),1),h(`td`,null,o(t.color),1),h(`td`,null,o(m(U)(t.confirmedMeterage??t.requestedMeterage)),1),h(`td`,null,o(t.supplyPrice==null?`—`:m(H)(t.supplyPrice)),1),h(`td`,null,o(t.totalAmount==null?`—`:m(H)(t.totalAmount)),1)]))),128))])])])):(a(),g(`ul`,Le,[(a(!0),g(w,null,y(e.order.items,e=>(a(),g(`li`,{key:e.id,class:`order-detail__item`},[h(`div`,Re,[h(`strong`,null,o(e.productName),1),h(`span`,null,o(e.catalogCode),1)]),h(`div`,ze,[e.companyName?(a(),g(`span`,Be,o(e.companyName),1)):D(``,!0),h(`span`,null,o(e.color),1),h(`span`,null,o(m(R)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?D(``,!0):(a(),g(`span`,Ve,o(m(H)(e.supplyPrice)),1)),e.totalAmount==null?D(``,!0):(a(),g(`span`,He,o(m(H)(e.totalAmount)),1))])]))),128))]))])):D(``,!0),h(`section`,Ue,[h(`div`,We,[n[20]||=h(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),h(`label`,Ge,[u(h(`input`,{"onUpdate:modelValue":n[4]||=e=>i.value=e,type:`checkbox`},null,512),[[I,i.value]]),n[19]||=h(`span`,null,`تغییر دستی`,-1)])]),i.value?(a(),g(`p`,Ke,` این گذر خارج از روال استاندارد است؛ ثبت یادداشت اجباری است. `)):b.value.length?D(``,!0):(a(),g(`p`,qe,` در این وضعیت گذر خودکاری وجود ندارد. برای تغییر، حالت دستی را فعال کنید. `)),b.value.length?(a(),g(`div`,Je,[h(`div`,Ye,[n[21]||=h(`label`,null,`وضعیت بعدی`,-1),v(q,{modelValue:c.value,"onUpdate:modelValue":n[5]||=e=>c.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:x.value},null,8,[`modelValue`,`options`])]),h(`div`,Xe,[h(`label`,Ze,` یادداشت`+o(S.value?` (اجباری)`:` (اختیاری)`),1),u(h(`input`,{id:`status-note`,"onUpdate:modelValue":n[6]||=e=>d.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[L,d.value]])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!C.value||e.statusSaving,onClick:B},o(e.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,Qe)])):D(``,!0)])],2))}}),[[`__scopeId`,`data-v-bfe77a62`]]),et={class:`orders-page`},tt={class:`orders-page__list-panel admin-card`},nt={class:`orders-page__list-header`},rt={class:`orders-page__list-actions`},it={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},at={class:`orders-page__search`},ot={class:`admin-tabs`},st=[`onClick`],ct={class:`admin-table-wrap`},lt={class:`admin-table admin-table--compact`},ut=[`onClick`],dt={class:`orders-page__actions-cell`},ft=[`aria-expanded`,`onClick`],pt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},mt=E(_({__name:`DesktopOrdersPage`,setup(s){let d=V(`(min-width: 1280px)`),{activeTab:_,selectedOrderId:b,searchQuery:T,filteredOrders:E,selectedOrder:O,showDetailModal:k,openOrderDetail:A,closeDetailModal:M,settlementLabel:F,goPricing:I,goChecks:z,goCashReceipt:B,changeStatus:U,statusSaving:W,openAddModal:G}=se(),K=f(null),q=f({});function J(){K.value=null}async function Y(e,n){if(n.stopPropagation(),K.value?.id===e.id){J();return}let r=n.currentTarget.getBoundingClientRect();K.value=e,await t();let i=Math.min(Math.max(8,r.right-168),window.innerWidth-168-8);q.value={position:`fixed`,top:`${r.bottom+4}px`,left:`${i}px`,width:`168px`}}function X(){J()}c(()=>{document.addEventListener(`click`,X),window.addEventListener(`scroll`,J,!0),window.addEventListener(`resize`,J)}),r(()=>{document.removeEventListener(`click`,X),window.removeEventListener(`scroll`,J,!0),window.removeEventListener(`resize`,J)});function ne(){O.value&&(M(),I(O.value))}function ie(){O.value&&(M(),z(O.value))}function ae(){O.value&&(M(),B(O.value))}function oe(){O.value&&U({orderId:O.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function ce(){if(!O.value)return;document.documentElement.classList.add(`printing-order-detail`);let e=()=>{document.documentElement.classList.remove(`printing-order-detail`),window.removeEventListener(`afterprint`,e)};window.addEventListener(`afterprint`,e),window.setTimeout(e,6e4),window.print()}function $(e){let t=K.value;if(t){if(J(),e===`detail`){A(t);return}if(e===`pricing`){I(t);return}if(e===`checks`){z(t);return}if(e===`final`){U({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}B(t)}}return(t,r)=>(a(),g(`div`,et,[h(`div`,tt,[h(`div`,nt,[r[9]||=h(`div`,null,[h(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),h(`div`,rt,[h(`button`,it,[v(N,{name:`filter`,size:16}),r[8]||=S(` فیلتر `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:r[0]||=(...e)=>m(G)&&m(G)(...e)},` سفارش جدید `)])]),h(`div`,at,[v(N,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":r[1]||=e=>i(T)?T.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,m(T)]])]),h(`div`,ot,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(_)===e.key}]),onClick:t=>_.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,st))),128))]),h(`div`,ct,[h(`table`,lt,[r[10]||=h(`thead`,null,[h(`tr`,null,[h(`th`,null,`شماره سفارش`),h(`th`,null,`مشتری`),h(`th`,null,`روش تسویه`),h(`th`,null,`مبلغ کل`),h(`th`,null,`متراژ`),h(`th`,null,`وضعیت`),h(`th`,null,`تاریخ ثبت`),h(`th`,null,`عملیات`)])],-1),h(`tbody`,null,[(a(!0),g(w,null,y(m(E),e=>(a(),g(`tr`,{key:e.id,class:l({"is-selected":m(b)===e.id}),onClick:t=>m(A)(e)},[h(`td`,null,o(e.orderNumber),1),h(`td`,null,o(e.customerName),1),h(`td`,null,o(m(F)(e.settlementMethod)),1),h(`td`,null,o(e.totalAmount?m(H)(e.totalAmount):`—`),1),h(`td`,null,o(m(R)(e.meterage)),1),h(`td`,null,[v(re,{status:e.status},null,8,[`status`])]),h(`td`,null,o(m(ee)(e.createdAt)),1),h(`td`,dt,[h(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":K.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>Y(e,t)},[v(N,{name:`more`,size:18})],8,ft)])],10,ut))),128))])])]),r[11]||=C(`
نمایش ۱ تا ۷ از ۱۰۳ سفارش
...
`,1)]),(a(),x(p,{to:`body`},[K.value?(a(),g(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:n(q.value),onClick:r[7]||=j(()=>{},[`stop`])},[h(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[2]||=e=>$(`detail`)},` جزئیات سفارش `),K.value&&m(te)(K.value)?(a(),g(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):D(``,!0),K.value.settlementMethod===`check`?(a(),g(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):D(``,!0),K.value.settlementMethod===`cash`&&K.value.rawStatus!==`cash_confirmed`?(a(),g(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[5]||=e=>$(`cash`)},` رسید پرداخت `)):D(``,!0),m(Q)(K.value)?(a(),g(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:r[6]||=e=>$(`final`)},` تأیید نهایی `)):D(``,!0)],4)):D(``,!0)])),v(P,{open:m(d)&&m(k)&&!!m(O),title:`جزئیات سفارش`,size:`xl`,onClose:m(M)},{footer:e(()=>[h(`button`,pt,[v(N,{name:`sms`,size:16}),r[12]||=S(` ارسال پیامک `,-1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:ce},[v(N,{name:`print`,size:16}),r[13]||=S(` چاپ `,-1)])]),default:e(()=>[m(O)?(a(),x($e,{key:0,order:m(O),layout:`desktop`,"settlement-label":m(F),"status-saving":m(W),onPricing:ne,onChecks:ie,onCashReceipt:ae,onFinalApprove:oe,onStatus:m(U)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-cfed03e1`]]),ht={class:`compact-orders`},gt={class:`compact-page-header`},_t={class:`compact-page-header__row`},vt={class:`compact-page-header__actions`},yt={key:0,class:`compact-orders__filter-dot`,"aria-hidden":`true`},bt={class:`orders-page__search admin-card`},xt={key:0,class:`compact-orders__filter-chip admin-card`},St={key:1,class:`admin-tabs compact-orders__tabs`},Ct=[`onClick`],wt={class:`compact-orders__filter-form`,role:`listbox`,"aria-label":`وضعیت سفارش`},Tt=[`aria-selected`,`onClick`],Et={key:0,class:`compact-orders__filter-check`,"aria-hidden":`true`},Dt={class:`admin-card-list`},Ot=[`onClick`],kt={class:`admin-card-item__header`},At={class:`admin-card-item__title`},jt={class:`admin-card-item__meta`},Mt={key:0,class:`admin-detail-panel__inner`},Nt={class:`admin-detail-panel__header`},Pt={class:`admin-detail-panel__body`},Ft=E(_({__name:`CompactOrdersPage`,setup(t){let n=V(`(max-width: 767px)`),r=V(`(max-width: 1279px)`),{activeTab:s,selectedOrderId:c,searchQuery:d,filteredOrders:p,selectedOrder:_,showDetailPanel:b,showDetailModal:C,selectOrder:E,openOrderDetail:O,closeDetailPanel:k,closeDetailModal:A,settlementLabel:j,goPricing:M,goChecks:F,goCashReceipt:I,changeStatus:z,statusSaving:B,openAddModal:U}=se(),W=f(!1),G=T(()=>s.value!==`all`),K=T(()=>Z.find(e=>e.key===s.value)?.label??`همه`);function q(){W.value=!0}function J(){W.value=!1}function Y(){s.value=`all`,W.value=!1}function X(e){s.value=e,W.value=!1}function Q(e){if(n.value){E(e,!0);return}O(e)}function te(){_.value&&(A(),k(),M(_.value))}function ne(){_.value&&(A(),k(),F(_.value))}function ie(){_.value&&(A(),k(),I(_.value))}function ae(){_.value&&z({orderId:_.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(t,f)=>(a(),g(`div`,ht,[h(`div`,gt,[h(`div`,_t,[f[4]||=h(`div`,null,[h(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),h(`div`,vt,[h(`button`,{type:`button`,class:l([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":G.value}]),onClick:q},[v(N,{name:`filter`,size:16}),f[3]||=S(` فیلتر `,-1),G.value?(a(),g(`span`,yt)):D(``,!0)],2),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:f[0]||=(...e)=>m(U)&&m(U)(...e)},` سفارش جدید `)])])]),h(`div`,bt,[v(N,{name:`search`,size:18}),u(h(`input`,{"onUpdate:modelValue":f[1]||=e=>i(d)?d.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[L,m(d)]])]),m(n)&&G.value?(a(),g(`div`,xt,[h(`span`,null,`وضعیت: `+o(K.value),1),h(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:Y},`پاک کردن`)])):D(``,!0),m(n)?D(``,!0):(a(),g(`div`,St,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`admin-tab`,{active:m(s)===e.key}]),onClick:t=>s.value=e.key},[S(o(e.label)+` `,1),`count`in e&&e.count?(a(),g(w,{key:0},[S(` (`+o(e.count)+`)`,1)],64)):D(``,!0)],10,Ct))),128))])),v(P,{open:W.value,title:`فیلتر سفارش‌ها`,onClose:J},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` پاک کردن `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` بستن `)]),default:e(()=>[h(`div`,wt,[(a(!0),g(w,null,y(m(Z),e=>(a(),g(`button`,{key:e.key,type:`button`,class:l([`compact-orders__filter-option`,{"is-active":m(s)===e.key}]),role:`option`,"aria-selected":m(s)===e.key,onClick:t=>X(e.key)},[h(`span`,null,o(e.label),1),m(s)===e.key?(a(),g(`span`,Et,`✓`)):D(``,!0)],10,Tt))),128))])]),_:1},8,[`open`]),h(`div`,Dt,[(a(!0),g(w,null,y(m(p),e=>(a(),g(`button`,{key:e.id,type:`button`,class:l([`admin-card-item`,{selected:m(c)===e.id}]),onClick:t=>Q(e)},[h(`div`,kt,[h(`p`,At,o(e.orderNumber),1),v(re,{status:e.status},null,8,[`status`])]),h(`div`,jt,[h(`span`,null,[f[5]||=h(`strong`,null,`مشتری:`,-1),S(` `+o(e.customerName),1)]),h(`span`,null,[f[6]||=h(`strong`,null,`متراژ:`,-1),S(` `+o(m(R)(e.meterage)),1)]),h(`span`,null,[f[7]||=h(`strong`,null,`مبلغ:`,-1),S(` `+o(e.totalAmount?m(H)(e.totalAmount):`—`),1)]),h(`span`,null,o(m(ee)(e.createdAt)),1)])],10,Ot))),128))]),h(`div`,{class:l([`admin-detail-panel compact-orders__mobile-panel`,{open:m(n)&&m(b)&&m(_)}])},[m(_)?(a(),g(`div`,Mt,[h(`div`,Nt,[h(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:f[2]||=(...e)=>m(k)&&m(k)(...e)},[v(N,{name:`chevron-back`,size:20})]),f[8]||=h(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),h(`div`,Pt,[v($e,{order:m(_),"settlement-label":m(j),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(z)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):D(``,!0)],2),v(P,{open:m(r)&&!m(n)&&m(C)&&!!m(_),title:`جزئیات سفارش`,size:`xl`,onClose:m(A)},{default:e(()=>[m(_)?(a(),x($e,{key:0,order:m(_),"settlement-label":m(j),"status-saving":m(B),onPricing:te,onChecks:ne,onCashReceipt:ie,onFinalApprove:ae,onStatus:m(z)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):D(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-fe86c1c8`]]),It={key:0,class:`admin-form__error`,role:`alert`},Lt={class:`admin-form__field`},Rt={key:0,class:`admin-form__hint`},zt={class:`admin-form__row`},Bt={class:`admin-form__field`},Vt={class:`admin-form__field`},Ht={key:1,class:`order-add__items`},Ut=[`onClick`],Wt={key:2,class:`admin-form__hint`},Gt=[`disabled`],Kt=E(_({__name:`OrderAddModal`,setup(t){let{showAddModal:n,formError:r,form:i,isFormValid:c,activeCustomers:l,applyCustomer:p,addFormItem:_,removeFormItem:b,closeAddModal:C,submitAddOrder:E}=se(),O=K(),k=f([]),A=d({productId:``,meterage:0}),N=T(()=>l.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),I=T(()=>k.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),R=T(()=>k.value.find(e=>e.id===A.productId)??null);s(()=>i.customerId,e=>{if(!e){i.customerName=``,i.customerPhone=``;return}p(e)}),s(n,async e=>{if(e){A.productId=``,A.meterage=0;try{k.value=await F.list({activeOnly:!0})}catch(e){O.error(e instanceof M?e.message:`بارگذاری محصولات انجام نشد.`)}}}),s(()=>A.productId,e=>{let t=k.value.find(t=>t.id===e);t&&(A.meterage=t.rollMeters||t.minMeterage||t.orderStep||50)});function z(){let e=R.value;if(!e){r.value=`محصول را انتخاب کنید.`;return}if(!A.meterage||A.meterage<=0){r.value=`متراژ باید بزرگ‌تر از صفر باشد.`;return}_({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:A.meterage}),A.productId=``,A.meterage=0}return(t,s)=>(a(),x(P,{open:m(n),title:`پیش‌سفارش جدید`,size:`lg`,onClose:m(C)},{footer:e(()=>[h(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:s[4]||=(...e)=>m(C)&&m(C)(...e)},` انصراف `),h(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!m(c),onClick:s[5]||=(...e)=>m(E)&&m(E)(...e)},` ثبت پیش‌سفارش `,8,Gt)]),default:e(()=>[h(`form`,{class:`admin-form`,onSubmit:s[3]||=j((...e)=>m(E)&&m(E)(...e),[`prevent`])},[m(r)?(a(),g(`p`,It,o(m(r)),1)):D(``,!0),s[9]||=h(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),h(`div`,Lt,[s[6]||=h(`label`,{id:`order-customer-label`},[S(` مشتری `),h(`span`,{class:`admin-form__required`},`*`)],-1),v(q,{id:`order-customer`,modelValue:m(i).customerId,"onUpdate:modelValue":s[0]||=e=>m(i).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:N.value},null,8,[`modelValue`,`options`]),N.value.length?D(``,!0):(a(),g(`p`,Rt,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),h(`div`,zt,[h(`div`,Bt,[s[7]||=h(`label`,null,`محصول`,-1),v(q,{modelValue:A.productId,"onUpdate:modelValue":s[1]||=e=>A.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:I.value},null,8,[`modelValue`,`options`])]),h(`div`,Vt,[s[8]||=h(`label`,{for:`order-item-meterage`},`متراژ (متر)`,-1),u(h(`input`,{id:`order-item-meterage`,"onUpdate:modelValue":s[2]||=e=>A.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[L,A.meterage,void 0,{number:!0}]])])]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:z},` افزودن به اقلام `),m(i).items.length?(a(),g(`div`,Ht,[(a(!0),g(w,null,y(m(i).items,e=>(a(),g(`div`,{key:e.productId,class:`order-add__item`},[h(`div`,null,[h(`strong`,null,o(e.productName),1),h(`span`,null,`کالیته `+o(e.catalogCode)+` — `+o(m(U)(e.meterage))+` متر`,1)]),h(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>m(b)(e.productId)},` حذف `,8,Ut)]))),128))])):(a(),g(`p`,Wt,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-291a46f0`]]),qt=_({__name:`OrdersView`,setup(e){return oe(),(e,t)=>(a(),g(w,null,[v(mt,{class:`desktop-only`}),v(Ft,{class:`compact-only`}),v(Kt)],64))}});export{qt as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-NLVncfjZ.js b/dist/assets/ProductsView-NLVncfjZ.js new file mode 100644 index 0000000..eb879fa --- /dev/null +++ b/dist/assets/ProductsView-NLVncfjZ.js @@ -0,0 +1 @@ +import{B as e,Dt as t,O as n,Ot as r,T as i,Tt as a,V as o,Y as s,Z as c,at as l,c as u,d,g as ee,h as f,j as p,l as m,m as h,r as g,s as _,t as v,u as y}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{C as te,K as ne,N as b,P as re,R as ie,S as x,U as S,W as C,n as w,o as T,p as ae,z as oe}from"./index-CXa4EMLW.js";import{t as se}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as E}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-BmO9aDcK.js";import{n as le,r as D,t as ue}from"./AdminImagePicker-C4toq7MG.js";import{t as O}from"./AdminSelect-9UfEJQzN.js";import{t as k}from"./ActiveSwitchCell-DJZQHZ-8.js";import{t as de}from"./AdminCurrencyInput-D6MsBhvR.js";var fe={class:`products-page`},pe={class:`products-page__filters admin-card`},me={class:`products-page__search`},he={key:2,class:`products-page__table admin-card desktop-only`},ge={class:`admin-table-wrap`},_e={class:`admin-table`},ve={class:`numeric`},ye={class:`numeric`},be={class:`numeric`},xe={class:`numeric`},Se={class:`status`},Ce={class:`actions`},A=[`onClick`],we={key:3,class:`compact-only admin-card-list`},Te={class:`admin-card-item__header`},Ee={class:`admin-card-item__title`},De={class:`admin-card-item__header-actions`},Oe=[`onClick`],ke={class:`admin-card-item__meta`},Ae={key:0,class:`admin-form__error`,role:`alert`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={class:`admin-form__field`},Fe={class:`admin-form__field`},Ie={class:`admin-form__row`},Le={class:`admin-form__field`},Re={class:`admin-form__field`},ze={class:`admin-form__row`},Be={class:`admin-form__field`},Ve={class:`admin-form__field`},He={class:`admin-form__row`},Ue={class:`admin-form__field`},We=[`value`],Ge={class:`admin-form__field`},Ke=[`value`],qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`color-variants`},tt={class:`color-variant__fields`},nt=[`onUpdate:modelValue`,`placeholder`],rt=[`onClick`],it={class:`admin-form__field`},at={class:`product-images`},ot=[`onClick`],st={class:`product-images__add`},ct=[`disabled`],lt={class:`admin-form__field`},ut={class:`admin-form__field`},dt=[`disabled`],j=v(ee({__name:`ProductsView`,setup(ee){let v=c([]),j=c([]),M=c([{value:`trousers`,label:`شلوار`},{value:`suit`,label:`کت‌وشلوار`},{value:`shirt`,label:`پیراهن`},{value:`other`,label:`سایر`}]),N=c([{value:`summer`,label:`تابستان`},{value:`winter`,label:`زمستان`},{value:`all_season`,label:`چهارفصل`}]),P=c(``),F=c(`all`),I=c(!0),L=c(null),R=c(null),z=c(``),B=c(!1),V=oe(),ft=_(()=>[{value:`all`,label:`همه کالیته‌ها`},...j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),pt=_(()=>j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:j.value[0]?.id??``,name:``,color:``,productCode:``,minMeterage:100,orderStep:50,price:null,internalStock:0,isActive:!0,usageCategory:`other`,season:`all_season`,composition:``,weaveType:``,subtitle:``,rollMeters:50,isNew:!1,colorRows:[{name:``,imageUrl:``}],extraImageUrls:[]}),U=s(H()),mt=_(()=>L.value!==null),ht=_(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),W=_(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),G=_(()=>P.value.trim().length>0||F.value!==`all`),K=_(()=>{let e=v.value;F.value!==`all`&&(e=e.filter(e=>e.catalogId===F.value));let t=P.value.trim();return t&&(e=e.filter(e=>e.name.includes(t)||e.color.includes(t)||e.productCode.includes(t)||e.catalogCode.includes(t))),e});async function gt(){I.value=!0;try{let[e,t,n]=await Promise.all([x.list(),ae.list(),te.get().catch(()=>null)]);v.value=e,j.value=t,n?.categoryDefsJson?.usage?.length&&(M.value=[...n.categoryDefsJson.usage.map(e=>({value:e.id,label:e.title})),{value:`other`,label:`سایر`}]),n?.categoryDefsJson?.seasons?.length&&(N.value=n.categoryDefsJson.seasons.map(e=>({value:e.id,label:e.title})))}catch(e){V.error(e instanceof b?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}i(()=>{gt()});function _t(e){return j.value.find(t=>t.id===e)}function q(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function J(e){L.value=`edit`,R.value=e.id,U.catalogId=e.catalogId,U.name=e.name,U.color=e.color,U.productCode=e.productCode,U.minMeterage=e.minMeterage,U.orderStep=e.orderStep,U.price=e.price,U.internalStock=e.internalStock,U.isActive=e.isActive,U.usageCategory=e.usageCategory??`other`,U.season=e.season??`all_season`,U.composition=e.composition??``,U.weaveType=e.weaveType??``,U.subtitle=e.subtitle??``,U.rollMeters=e.rollMeters??50,U.isNew=e.isNew??!1;let t=e.colors??[],n=e.colorImages??[],r=[...e.imageUrls??[]];if(t.length){U.colorRows=t.map((e,t)=>({name:e,imageUrl:n[t]||r[t]||``}));let e=new Set(U.colorRows.map(e=>e.imageUrl).filter(Boolean));U.extraImageUrls=r.filter(t=>!e.has(t))}else U.colorRows=[{name:e.color||``,imageUrl:r[0]||``}],U.extraImageUrls=r.slice(1);z.value=``}function vt(){U.colorRows.push({name:``,imageUrl:``})}function yt(e){if(U.colorRows.length<=1){U.colorRows[0]={name:``,imageUrl:``};return}U.colorRows.splice(e,1)}let Y=c(!1);async function bt(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){Y.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>le(e)));U.extraImageUrls=[...U.extraImageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{Y.value=!1}}}function xt(e){U.extraImageUrls.splice(e,1)}function X(){let e=[],t=[],n=new Set,r=e=>{let r=e?.trim();!r||n.has(r)||(n.add(r),t.push(r))};return U.colorRows.forEach((t,n)=>{let i=t.imageUrl.trim()||void 0,a=t.name.trim()||(n===0?U.color.trim():``)||(i?`رنگ ${n+1}`:``);!a&&!i||(a&&e.push({name:a,imageUrl:i}),r(i))}),U.extraImageUrls.forEach(e=>r(e)),{colorEntries:e,imageUrls:t}}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!W.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=_t(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let{colorEntries:t,imageUrls:n}=X(),r={usageCategory:U.usageCategory,season:U.season,composition:U.composition.trim()||null,weaveType:U.weaveType.trim()||null,subtitle:U.subtitle.trim()||null,rollMeters:U.rollMeters,isNew:U.isNew,colorsJson:t,imageUrlsJson:n},i=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await x.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r}),n=v.value.findIndex(e=>e.id===R.value);n!==-1&&(v.value[n]={...v.value[n],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let n=await x.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r});v.value.push(n),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){e instanceof b&&e.status===0&&(z.value=e.message),V.error(e instanceof b?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await x.setActive(e,t)}function St(){P.value=``,F.value=`all`}return(i,s)=>(n(),d(`div`,fe,[u(`div`,{class:`admin-page-header`},[s[18]||=u(`div`,null,[u(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن محصول `)]),u(`div`,pe,[u(`div`,me,[f(re,{name:`search`,size:18}),o(u(`input`,{"onUpdate:modelValue":s[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[C,P.value]])]),f(O,{modelValue:F.value,"onUpdate:modelValue":s[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:ft.value},null,8,[`modelValue`,`options`])]),I.value?(n(),m(se,{key:0,variant:`table`})):K.value.length?(n(),d(`div`,he,[u(`div`,ge,[u(`table`,_e,[s[19]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`تصویر`),u(`th`,null,`کد محصول`),u(`th`,null,`نام`),u(`th`,null,`رنگ`),u(`th`,null,`کالیته`),u(`th`,null,`شرکت`),u(`th`,{class:`numeric`},`حداقل متراژ`),u(`th`,{class:`numeric`},`ضریب`),u(`th`,{class:`numeric`},`قیمت`),u(`th`,{class:`numeric`},`موجودی`),u(`th`,{class:`status`},`وضعیت`),u(`th`,{class:`actions`},`عملیات`)])],-1),u(`tbody`,null,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`tr`,{key:e.id},[u(`td`,null,[u(`span`,{class:a([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:t(e.imageUrls?.[0]?{backgroundImage:l(D)(e.imageUrls[0])}:void 0)},null,6)]),u(`td`,null,r(e.productCode),1),u(`td`,null,r(e.name),1),u(`td`,null,r(e.color),1),u(`td`,null,r(e.catalogCode),1),u(`td`,null,r(e.companyName),1),u(`td`,ve,r(l(T)(e.minMeterage))+` متر`,1),u(`td`,ye,r(l(T)(e.orderStep)),1),u(`td`,be,r(e.price?l(w)(e.price):`—`),1),u(`td`,xe,r(l(T)(e.internalStock))+` متر`,1),u(`td`,Se,[f(k,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`محصول`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),u(`td`,Ce,[u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A)])]))),128))])])])])):(n(),m(ce,{key:1,class:`admin-card`,icon:`products`,title:G.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:G.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:e(()=>[G.value?(n(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:St},` پاک کردن فیلترها `)):(n(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&K.value.length?(n(),d(`div`,we,[(n(!0),d(g,null,p(K.value,e=>(n(),d(`article`,{key:e.id,class:`admin-card-item`},[u(`div`,Te,[u(`p`,Ee,r(e.name),1),u(`div`,De,[f(k,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`محصول`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,Oe)])]),u(`div`,ke,[u(`span`,null,r(e.productCode),1),u(`span`,null,r(e.color),1),u(`span`,null,`کالیته `+r(e.catalogCode),1),u(`span`,null,r(e.price?l(w)(e.price):`بدون قیمت`),1)])]))),128))])):y(``,!0),f(ie,{open:mt.value,title:ht.value,size:`lg`,onClose:Z},{footer:e(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!W.value||B.value,onClick:Q},r(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,dt)]),default:e(()=>[u(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[z.value?(n(),d(`p`,Ae,r(z.value),1)):y(``,!0),u(`div`,je,[s[20]||=u(`label`,null,[h(`کالیته `),u(`span`,{class:`admin-form__required`},`*`)],-1),f(O,{modelValue:U.catalogId,"onUpdate:modelValue":s[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:pt.value},null,8,[`modelValue`,`options`])]),u(`div`,Me,[u(`div`,Ne,[s[21]||=u(`label`,{for:`product-name`},[h(`نام محصول `),u(`span`,{class:`admin-form__required`},`*`)],-1),o(u(`input`,{id:`product-name`,"onUpdate:modelValue":s[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[C,U.name]])]),u(`div`,Pe,[s[22]||=u(`label`,{for:`product-color`},`رنگ / نوع`,-1),o(u(`input`,{id:`product-color`,"onUpdate:modelValue":s[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[C,U.color]])])]),u(`div`,Fe,[s[23]||=u(`label`,{for:`product-code`},`کد محصول`,-1),o(u(`input`,{id:`product-code`,"onUpdate:modelValue":s[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[C,U.productCode]])]),u(`div`,Ie,[u(`div`,Le,[s[24]||=u(`label`,{for:`product-min`},`حداقل متراژ`,-1),o(u(`input`,{id:`product-min`,"onUpdate:modelValue":s[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.minMeterage,void 0,{number:!0}]])]),u(`div`,Re,[s[25]||=u(`label`,{for:`product-step`},`ضریب سفارش`,-1),o(u(`input`,{id:`product-step`,"onUpdate:modelValue":s[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.orderStep,void 0,{number:!0}]])])]),u(`div`,ze,[u(`div`,Be,[s[26]||=u(`label`,{for:`product-price`},`قیمت (تومان)`,-1),f(de,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":s[8]||=e=>U.price=e},null,8,[`modelValue`])]),u(`div`,Ve,[s[27]||=u(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),o(u(`input`,{id:`product-stock`,"onUpdate:modelValue":s[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[C,U.internalStock,void 0,{number:!0}]])])]),u(`div`,He,[u(`div`,Ue,[s[28]||=u(`label`,{for:`product-usage`},`کاربرد`,-1),o(u(`select`,{id:`product-usage`,"onUpdate:modelValue":s[10]||=e=>U.usageCategory=e,class:`admin-input`},[(n(!0),d(g,null,p(M.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,We))),128))],512),[[S,U.usageCategory]])]),u(`div`,Ge,[s[29]||=u(`label`,{for:`product-season`},`فصل`,-1),o(u(`select`,{id:`product-season`,"onUpdate:modelValue":s[11]||=e=>U.season=e,class:`admin-input`},[(n(!0),d(g,null,p(N.value,e=>(n(),d(`option`,{key:e.value,value:e.value},r(e.label),9,Ke))),128))],512),[[S,U.season]])])]),u(`div`,qe,[u(`div`,Je,[s[30]||=u(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),o(u(`input`,{id:`product-composition`,"onUpdate:modelValue":s[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[C,U.composition]])]),u(`div`,Ye,[s[31]||=u(`label`,{for:`product-weave`},`نوع بافت`,-1),o(u(`input`,{id:`product-weave`,"onUpdate:modelValue":s[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[C,U.weaveType]])])]),u(`div`,Xe,[u(`div`,Ze,[s[32]||=u(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),o(u(`input`,{id:`product-subtitle`,"onUpdate:modelValue":s[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[C,U.subtitle]])]),u(`div`,Qe,[s[33]||=u(`label`,{for:`product-roll`},`متراژ طاقه`,-1),o(u(`input`,{id:`product-roll`,"onUpdate:modelValue":s[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[C,U.rollMeters,void 0,{number:!0}]])])]),u(`div`,$e,[s[34]||=u(`label`,null,`رنگ‌ها و تصویر هر رنگ`,-1),s[35]||=u(`p`,{class:`color-variants__hint`},` برای هر رنگ نام و عکس بگذارید. اگر فقط عکس دارید، نام رنگ اصلی (بالا) یا «رنگ ۱» استفاده می‌شود. تصویر با زدن «ذخیره تغییرات» روی سرور ثبت می‌شود. `,-1),u(`div`,et,[(n(!0),d(g,null,p(U.colorRows,(e,t)=>(n(),d(`div`,{key:t,class:`color-variant`},[f(ue,{"model-value":e.imageUrl||null,"onUpdate:modelValue":t=>e.imageUrl=t??``},null,8,[`model-value`,`onUpdate:modelValue`]),u(`div`,tt,[o(u(`input`,{"onUpdate:modelValue":t=>e.name=t,type:`text`,class:`admin-input`,placeholder:`نام رنگ ${t+1}`},null,8,nt),[[C,e.name]]),u(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>yt(t)},` حذف این رنگ `,8,rt)])]))),128)),u(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:vt},` + افزودن رنگ `)])]),u(`div`,it,[s[36]||=u(`label`,null,`تصاویر عمومی محصول (اختیاری)`,-1),s[37]||=u(`p`,{class:`color-variants__hint`},`پس از انتخاب فایل، حتماً دکمه ذخیره را بزنید.`,-1),u(`div`,at,[(n(!0),d(g,null,p(U.extraImageUrls,(e,r)=>(n(),d(`div`,{key:`${r}-${e.slice(0,24)}`,class:`product-images__item`},[u(`span`,{class:`product-images__thumb`,style:t({backgroundImage:l(D)(e)})},null,4),u(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>xt(r)},` حذف `,8,ot)]))),128)),u(`label`,st,[u(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:Y.value,onChange:bt},null,40,ct),h(` `+r(Y.value?`...`:`+ افزودن تصویر`),1)])])]),u(`div`,lt,[f(E,{modelValue:U.isNew,"onUpdate:modelValue":s[16]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),u(`div`,ut,[f(E,{modelValue:U.isActive,"onUpdate:modelValue":s[17]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-761ea8ca`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-V-E7JmoO.js b/dist/assets/ProductsView-V-E7JmoO.js deleted file mode 100644 index 8cc5500..0000000 --- a/dist/assets/ProductsView-V-E7JmoO.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,C as t,Ct as n,G as r,J as i,N as a,P as ee,Q as o,R as te,S as s,St as c,V as ne,W as l,X as u,Z as d,bt as f,dt as p,et as m,gt as h,ht as g,it as _,lt as v,n as y,nt as b,o as x,p as re,q as ie,rt as S,st as ae,vt as oe,xt as se,yt as C,z as ce}from"./index-B2VD3zy8.js";import{t as le}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as w}from"./BaseSwitch-dp2xMemS.js";import{t as ue}from"./BaseEmptyState-DGu6Pfui.js";import{n as de,r as T,t as fe}from"./AdminImagePicker-C0OGC-bB.js";import{t as E}from"./AdminSelect-BeLNl2Qz.js";import{t as D}from"./ActiveSwitchCell-DIzTn08M.js";import{t as pe}from"./AdminCurrencyInput-DxQX_Gwe.js";var me={class:`products-page`},he={class:`products-page__filters admin-card`},ge={class:`products-page__search`},_e={key:2,class:`products-page__table admin-card desktop-only`},ve={class:`admin-table-wrap`},ye={class:`admin-table`},be={class:`numeric`},xe={class:`numeric`},Se={class:`numeric`},Ce={class:`numeric`},O={class:`status`},k={class:`actions`},A=[`onClick`],we={key:3,class:`compact-only admin-card-list`},Te={class:`admin-card-item__header`},Ee={class:`admin-card-item__title`},De={class:`admin-card-item__header-actions`},Oe=[`onClick`],ke={class:`admin-card-item__meta`},Ae={key:0,class:`admin-form__error`,role:`alert`},je={class:`admin-form__field`},Me={class:`admin-form__row`},Ne={class:`admin-form__field`},Pe={class:`admin-form__field`},Fe={class:`admin-form__field`},Ie={class:`admin-form__row`},Le={class:`admin-form__field`},Re={class:`admin-form__field`},ze={class:`admin-form__row`},Be={class:`admin-form__field`},Ve={class:`admin-form__field`},He={class:`admin-form__row`},Ue={class:`admin-form__field`},We=[`value`],Ge={class:`admin-form__field`},Ke=[`value`],qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe={class:`admin-form__row`},Ze={class:`admin-form__field`},Qe={class:`admin-form__field`},$e={class:`admin-form__field`},et={class:`color-variants`},tt={class:`color-variant__fields`},nt=[`onUpdate:modelValue`,`placeholder`],rt=[`onClick`],it={class:`admin-form__field`},at={class:`product-images`},ot=[`onClick`],st={class:`product-images__add`},ct=[`disabled`],lt={class:`admin-form__field`},ut={class:`admin-form__field`},dt=[`disabled`],j=ne(_({__name:`ProductsView`,setup(ne){let _=C([]),j=C([]),M=C([{value:`trousers`,label:`شلوار`},{value:`suit`,label:`کت‌وشلوار`},{value:`shirt`,label:`پیراهن`},{value:`other`,label:`سایر`}]),N=C([{value:`summer`,label:`تابستان`},{value:`winter`,label:`زمستان`},{value:`all_season`,label:`چهارفصل`}]),P=C(``),F=C(`all`),I=C(!0),L=C(null),R=C(null),z=C(``),B=C(!1),V=ce(),ft=u(()=>[{value:`all`,label:`همه کالیته‌ها`},...j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name}`}))]),pt=u(()=>j.value.map(e=>({value:e.id,label:`${e.code} — ${e.name} (${e.companyName})`}))),H=()=>({catalogId:j.value[0]?.id??``,name:``,color:``,productCode:``,minMeterage:100,orderStep:50,price:null,internalStock:0,isActive:!0,usageCategory:`other`,season:`all_season`,composition:``,weaveType:``,subtitle:``,rollMeters:50,isNew:!1,colorRows:[{name:``,imageUrl:``}],extraImageUrls:[]}),U=oe(H()),mt=u(()=>L.value!==null),ht=u(()=>L.value===`edit`?`ویرایش محصول`:`افزودن محصول`),W=u(()=>U.name.trim()&&U.catalogId&&U.minMeterage>0),G=u(()=>P.value.trim().length>0||F.value!==`all`),K=u(()=>{let e=_.value;F.value!==`all`&&(e=e.filter(e=>e.catalogId===F.value));let t=P.value.trim();return t&&(e=e.filter(e=>e.name.includes(t)||e.color.includes(t)||e.productCode.includes(t)||e.catalogCode.includes(t))),e});async function gt(){I.value=!0;try{let[e,n,r]=await Promise.all([s.list(),re.list(),t.get().catch(()=>null)]);_.value=e,j.value=n,r?.categoryDefsJson?.usage?.length&&(M.value=[...r.categoryDefsJson.usage.map(e=>({value:e.id,label:e.title})),{value:`other`,label:`سایر`}]),r?.categoryDefsJson?.seasons?.length&&(N.value=r.categoryDefsJson.seasons.map(e=>({value:e.id,label:e.title})))}catch(e){V.error(e instanceof a?e.message:`بارگذاری محصولات انجام نشد.`)}finally{I.value=!1}}ae(()=>{gt()});function _t(e){return j.value.find(t=>t.id===e)}function q(){L.value=`add`,R.value=null,Object.assign(U,H()),z.value=``}function J(e){L.value=`edit`,R.value=e.id,U.catalogId=e.catalogId,U.name=e.name,U.color=e.color,U.productCode=e.productCode,U.minMeterage=e.minMeterage,U.orderStep=e.orderStep,U.price=e.price,U.internalStock=e.internalStock,U.isActive=e.isActive,U.usageCategory=e.usageCategory??`other`,U.season=e.season??`all_season`,U.composition=e.composition??``,U.weaveType=e.weaveType??``,U.subtitle=e.subtitle??``,U.rollMeters=e.rollMeters??50,U.isNew=e.isNew??!1;let t=e.colors??[],n=e.colorImages??[],r=[...e.imageUrls??[]];if(t.length){U.colorRows=t.map((e,t)=>({name:e,imageUrl:n[t]||r[t]||``}));let e=new Set(U.colorRows.map(e=>e.imageUrl).filter(Boolean));U.extraImageUrls=r.filter(t=>!e.has(t))}else U.colorRows=[{name:e.color||``,imageUrl:r[0]||``}],U.extraImageUrls=r.slice(1);z.value=``}function vt(){U.colorRows.push({name:``,imageUrl:``})}function yt(e){if(U.colorRows.length<=1){U.colorRows[0]={name:``,imageUrl:``};return}U.colorRows.splice(e,1)}let Y=C(!1);async function bt(e){let t=e.target,n=[...t.files??[]];if(t.value=``,n.length){Y.value=!0,z.value=``;try{let e=await Promise.all(n.map(e=>de(e)));U.extraImageUrls=[...U.extraImageUrls,...e]}catch(e){z.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`}finally{Y.value=!1}}}function xt(e){U.extraImageUrls.splice(e,1)}function X(){let e=[],t=[],n=new Set,r=e=>{let r=e?.trim();!r||n.has(r)||(n.add(r),t.push(r))};return U.colorRows.forEach((t,n)=>{let i=t.imageUrl.trim()||void 0,a=t.name.trim()||(n===0?U.color.trim():``)||(i?`رنگ ${n+1}`:``);!a&&!i||(a&&e.push({name:a,imageUrl:i}),r(i))}),U.extraImageUrls.forEach(e=>r(e)),{colorEntries:e,imageUrls:t}}function Z(){L.value=null,R.value=null,z.value=``}async function Q(){if(!W.value){z.value=`نام محصول، کالیته و حداقل متراژ الزامی هستند.`;return}let e=_t(U.catalogId);if(!e){z.value=`کالیته معتبر انتخاب کنید.`;return}let{colorEntries:t,imageUrls:n}=X(),r={usageCategory:U.usageCategory,season:U.season,composition:U.composition.trim()||null,weaveType:U.weaveType.trim()||null,subtitle:U.subtitle.trim()||null,rollMeters:U.rollMeters,isNew:U.isNew,colorsJson:t,imageUrlsJson:n},i=U.productCode.trim()||`${e.code}-NEW`;B.value=!0;try{if(L.value===`edit`&&R.value){let e=await s.update(R.value,{catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r}),n=_.value.findIndex(e=>e.id===R.value);n!==-1&&(_.value[n]={..._.value[n],...e}),V.success(`اطلاعات محصول به‌روزرسانی شد.`)}else{let n=await s.create({companyId:e.companyId,catalogId:U.catalogId,name:U.name.trim(),color:U.color.trim()||t[0]?.name||`—`,code:i,productCode:i,minMeterage:U.minMeterage,orderStep:U.orderStep,price:U.price,internalStock:U.internalStock,isActive:U.isActive,...r});_.value.push(n),V.success(`محصول جدید ثبت شد.`)}Z()}catch(e){e instanceof a&&e.status===0&&(z.value=e.message),V.error(e instanceof a?e.message:`ذخیره محصول انجام نشد.`)}finally{B.value=!1}}async function $(e,t){await s.setActive(e,t)}function St(){P.value=``,F.value=`all`}return(t,a)=>(v(),m(`div`,me,[d(`div`,{class:`admin-page-header`},[a[18]||=d(`div`,null,[d(`h1`,{class:`admin-page-header__title`},`محصولات`)],-1),d(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:q},` افزودن محصول `)]),d(`div`,he,[d(`div`,ge,[S(ee,{name:`search`,size:18}),h(d(`input`,{"onUpdate:modelValue":a[0]||=e=>P.value=e,type:`search`,class:`products-page__search-input`,placeholder:`جستجو در نام، رنگ، کد...`},null,512),[[r,P.value]])]),S(E,{modelValue:F.value,"onUpdate:modelValue":a[1]||=e=>F.value=e,class:`products-page__catalog-filter`,"aria-label":`فیلتر کالیته`,options:ft.value},null,8,[`modelValue`,`options`])]),I.value?(v(),o(le,{key:0,variant:`table`})):K.value.length?(v(),m(`div`,_e,[d(`div`,ve,[d(`table`,ye,[a[19]||=d(`thead`,null,[d(`tr`,null,[d(`th`,null,`تصویر`),d(`th`,null,`کد محصول`),d(`th`,null,`نام`),d(`th`,null,`رنگ`),d(`th`,null,`کالیته`),d(`th`,null,`شرکت`),d(`th`,{class:`numeric`},`حداقل متراژ`),d(`th`,{class:`numeric`},`ضریب`),d(`th`,{class:`numeric`},`قیمت`),d(`th`,{class:`numeric`},`موجودی`),d(`th`,{class:`status`},`وضعیت`),d(`th`,{class:`actions`},`عملیات`)])],-1),d(`tbody`,null,[(v(!0),m(i,null,p(K.value,e=>(v(),m(`tr`,{key:e.id},[d(`td`,null,[d(`span`,{class:se([`product-thumb`,{"product-thumb--empty":!e.imageUrls?.[0]}]),style:c(e.imageUrls?.[0]?{backgroundImage:f(T)(e.imageUrls[0])}:void 0)},null,6)]),d(`td`,null,n(e.productCode),1),d(`td`,null,n(e.name),1),d(`td`,null,n(e.color),1),d(`td`,null,n(e.catalogCode),1),d(`td`,null,n(e.companyName),1),d(`td`,be,n(f(x)(e.minMeterage))+` متر`,1),d(`td`,xe,n(f(x)(e.orderStep)),1),d(`td`,Se,n(e.price?f(y)(e.price):`—`),1),d(`td`,Ce,n(f(x)(e.internalStock))+` متر`,1),d(`td`,O,[S(D,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`محصول`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),d(`td`,k,[d(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,A)])]))),128))])])])])):(v(),o(ue,{key:1,class:`admin-card`,icon:`products`,title:G.value?`نتیجه‌ای یافت نشد`:`محصولی ثبت نشده`,description:G.value?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین محصول را ثبت کنید.`},{default:g(()=>[G.value?(v(),m(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:St},` پاک کردن فیلترها `)):(v(),m(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:q},` افزودن محصول `))]),_:1},8,[`title`,`description`])),!I.value&&K.value.length?(v(),m(`div`,we,[(v(!0),m(i,null,p(K.value,e=>(v(),m(`article`,{key:e.id,class:`admin-card-item`},[d(`div`,Te,[d(`p`,Ee,n(e.name),1),d(`div`,De,[S(D,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.name,"entity-type":`محصول`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`]),d(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>J(e)},` ویرایش `,8,Oe)])]),d(`div`,ke,[d(`span`,null,n(e.productCode),1),d(`span`,null,n(e.color),1),d(`span`,null,`کالیته `+n(e.catalogCode),1),d(`span`,null,n(e.price?f(y)(e.price):`بدون قیمت`),1)])]))),128))])):e(``,!0),S(te,{open:mt.value,title:ht.value,size:`lg`,onClose:Z},{footer:g(()=>[d(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),d(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!W.value||B.value,onClick:Q},n(L.value===`edit`?`ذخیره تغییرات`:`ثبت محصول`),9,dt)]),default:g(()=>[d(`form`,{class:`admin-form`,onSubmit:ie(Q,[`prevent`])},[z.value?(v(),m(`p`,Ae,n(z.value),1)):e(``,!0),d(`div`,je,[a[20]||=d(`label`,null,[b(`کالیته `),d(`span`,{class:`admin-form__required`},`*`)],-1),S(E,{modelValue:U.catalogId,"onUpdate:modelValue":a[2]||=e=>U.catalogId=e,block:``,"aria-label":`انتخاب کالیته`,placeholder:`انتخاب کالیته`,options:pt.value},null,8,[`modelValue`,`options`])]),d(`div`,Me,[d(`div`,Ne,[a[21]||=d(`label`,{for:`product-name`},[b(`نام محصول `),d(`span`,{class:`admin-form__required`},`*`)],-1),h(d(`input`,{id:`product-name`,"onUpdate:modelValue":a[3]||=e=>U.name=e,type:`text`,class:`admin-input`},null,512),[[r,U.name]])]),d(`div`,Pe,[a[22]||=d(`label`,{for:`product-color`},`رنگ / نوع`,-1),h(d(`input`,{id:`product-color`,"onUpdate:modelValue":a[4]||=e=>U.color=e,type:`text`,class:`admin-input`},null,512),[[r,U.color]])])]),d(`div`,Fe,[a[23]||=d(`label`,{for:`product-code`},`کد محصول`,-1),h(d(`input`,{id:`product-code`,"onUpdate:modelValue":a[5]||=e=>U.productCode=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[r,U.productCode]])]),d(`div`,Ie,[d(`div`,Le,[a[24]||=d(`label`,{for:`product-min`},`حداقل متراژ`,-1),h(d(`input`,{id:`product-min`,"onUpdate:modelValue":a[6]||=e=>U.minMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,U.minMeterage,void 0,{number:!0}]])]),d(`div`,Re,[a[25]||=d(`label`,{for:`product-step`},`ضریب سفارش`,-1),h(d(`input`,{id:`product-step`,"onUpdate:modelValue":a[7]||=e=>U.orderStep=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,U.orderStep,void 0,{number:!0}]])])]),d(`div`,ze,[d(`div`,Be,[a[26]||=d(`label`,{for:`product-price`},`قیمت (تومان)`,-1),S(pe,{id:`product-price`,modelValue:U.price,"onUpdate:modelValue":a[8]||=e=>U.price=e},null,8,[`modelValue`])]),d(`div`,Ve,[a[27]||=d(`label`,{for:`product-stock`},`موجودی داخلی (متر)`,-1),h(d(`input`,{id:`product-stock`,"onUpdate:modelValue":a[9]||=e=>U.internalStock=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[r,U.internalStock,void 0,{number:!0}]])])]),d(`div`,He,[d(`div`,Ue,[a[28]||=d(`label`,{for:`product-usage`},`کاربرد`,-1),h(d(`select`,{id:`product-usage`,"onUpdate:modelValue":a[10]||=e=>U.usageCategory=e,class:`admin-input`},[(v(!0),m(i,null,p(M.value,e=>(v(),m(`option`,{key:e.value,value:e.value},n(e.label),9,We))),128))],512),[[l,U.usageCategory]])]),d(`div`,Ge,[a[29]||=d(`label`,{for:`product-season`},`فصل`,-1),h(d(`select`,{id:`product-season`,"onUpdate:modelValue":a[11]||=e=>U.season=e,class:`admin-input`},[(v(!0),m(i,null,p(N.value,e=>(v(),m(`option`,{key:e.value,value:e.value},n(e.label),9,Ke))),128))],512),[[l,U.season]])])]),d(`div`,qe,[d(`div`,Je,[a[30]||=d(`label`,{for:`product-composition`},`جنس / ترکیب`,-1),h(d(`input`,{id:`product-composition`,"onUpdate:modelValue":a[12]||=e=>U.composition=e,type:`text`,class:`admin-input`},null,512),[[r,U.composition]])]),d(`div`,Ye,[a[31]||=d(`label`,{for:`product-weave`},`نوع بافت`,-1),h(d(`input`,{id:`product-weave`,"onUpdate:modelValue":a[13]||=e=>U.weaveType=e,type:`text`,class:`admin-input`},null,512),[[r,U.weaveType]])])]),d(`div`,Xe,[d(`div`,Ze,[a[32]||=d(`label`,{for:`product-subtitle`},`زیرعنوان`,-1),h(d(`input`,{id:`product-subtitle`,"onUpdate:modelValue":a[14]||=e=>U.subtitle=e,type:`text`,class:`admin-input`},null,512),[[r,U.subtitle]])]),d(`div`,Qe,[a[33]||=d(`label`,{for:`product-roll`},`متراژ طاقه`,-1),h(d(`input`,{id:`product-roll`,"onUpdate:modelValue":a[15]||=e=>U.rollMeters=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,U.rollMeters,void 0,{number:!0}]])])]),d(`div`,$e,[a[34]||=d(`label`,null,`رنگ‌ها و تصویر هر رنگ`,-1),a[35]||=d(`p`,{class:`color-variants__hint`},` برای هر رنگ نام و عکس بگذارید. اگر فقط عکس دارید، نام رنگ اصلی (بالا) یا «رنگ ۱» استفاده می‌شود. تصویر با زدن «ذخیره تغییرات» روی سرور ثبت می‌شود. `,-1),d(`div`,et,[(v(!0),m(i,null,p(U.colorRows,(e,t)=>(v(),m(`div`,{key:t,class:`color-variant`},[S(fe,{"model-value":e.imageUrl||null,"onUpdate:modelValue":t=>e.imageUrl=t??``},null,8,[`model-value`,`onUpdate:modelValue`]),d(`div`,tt,[h(d(`input`,{"onUpdate:modelValue":t=>e.name=t,type:`text`,class:`admin-input`,placeholder:`نام رنگ ${t+1}`},null,8,nt),[[r,e.name]]),d(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>yt(t)},` حذف این رنگ `,8,rt)])]))),128)),d(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:vt},` + افزودن رنگ `)])]),d(`div`,it,[a[36]||=d(`label`,null,`تصاویر عمومی محصول (اختیاری)`,-1),a[37]||=d(`p`,{class:`color-variants__hint`},`پس از انتخاب فایل، حتماً دکمه ذخیره را بزنید.`,-1),d(`div`,at,[(v(!0),m(i,null,p(U.extraImageUrls,(e,t)=>(v(),m(`div`,{key:`${t}-${e.slice(0,24)}`,class:`product-images__item`},[d(`span`,{class:`product-images__thumb`,style:c({backgroundImage:f(T)(e)})},null,4),d(`button`,{type:`button`,class:`product-images__remove`,onClick:e=>xt(t)},` حذف `,8,ot)]))),128)),d(`label`,st,[d(`input`,{type:`file`,accept:`image/*`,multiple:``,hidden:``,disabled:Y.value,onChange:bt},null,40,ct),b(` `+n(Y.value?`...`:`+ افزودن تصویر`),1)])])]),d(`div`,lt,[S(w,{modelValue:U.isNew,"onUpdate:modelValue":a[16]||=e=>U.isNew=e,label:`محصول جدید`},null,8,[`modelValue`])]),d(`div`,ut,[S(w,{modelValue:U.isActive,"onUpdate:modelValue":a[17]||=e=>U.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-761ea8ca`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/ReportsView-Caau4ET1.js b/dist/assets/ReportsView-Caau4ET1.js deleted file mode 100644 index e917994..0000000 --- a/dist/assets/ReportsView-Caau4ET1.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,J as n,N as ee,P as te,Q as ne,V as r,Z as i,_ as a,a as o,bt as s,dt as c,et as l,it as u,lt as d,n as f,nt as re,o as p,rt as ie,st as m,yt as h,z as ae}from"./index-B2VD3zy8.js";import{t as oe}from"./AdminPageSkeleton-BJpm6oxf.js";var se={class:`reports-page`},g={class:`admin-page-header`},_={class:`reports-page__stats`},v={class:`admin-stat-card admin-card`},y={class:`admin-stat-card__value`},b={class:`reports-page__growth`},x={class:`admin-stat-card admin-card`},S={class:`admin-stat-card__value`},C={class:`admin-stat-card admin-card`},w={class:`admin-stat-card__value`},T={class:`admin-stat-card admin-card`},E={class:`admin-stat-card__value`},D={key:0,class:`reports-page__stats`},O={class:`admin-stat-card admin-card`},k={class:`admin-stat-card__value`},A={class:`admin-stat-card admin-card`},j={class:`admin-stat-card__value`},M={class:`admin-stat-card admin-card`},N={class:`admin-stat-card__value`},P={class:`admin-stat-card admin-card`},F={class:`admin-stat-card__value`},I={class:`admin-stat-card admin-card`},L={class:`admin-stat-card__value`},R={class:`admin-stat-card admin-card`},z={class:`admin-stat-card__value`},B={class:`reports-page__grid`},V={class:`admin-card reports-page__section`},H={class:`admin-table-wrap desktop-only`},U={class:`admin-table`},ce={class:`compact-only admin-card-list`},W={class:`admin-card-item__title`},G={class:`admin-card-item__meta`},le={class:`admin-card reports-page__section`},ue={class:`admin-table-wrap desktop-only`},de={class:`admin-table`},fe={class:`compact-only reports-page__status-list`},pe={key:1,class:`reports-page__grid reports-page__grid--full`},me={class:`admin-card reports-page__section`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:2,class:`reports-page__grid`},ve={key:0,class:`admin-card reports-page__section`},ye={class:`admin-table-wrap`},be={class:`admin-table`},xe={dir:`ltr`},Se={key:1,class:`admin-card reports-page__section`},Ce={class:`admin-table-wrap`},we={class:`admin-table`},K=r(u({__name:`ReportsView`,setup(r){let u=ae(),K=h(!0),q=h({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=h([]),Y=h([]),X=h([]),Z=h([]),Q=h([]),$=h(null);m(async()=>{K.value=!0;try{let[e,t]=await Promise.all([a.get(),a.reports()]);q.value=e.stats,J.value=t.reportSalesByCompany,Y.value=t.reportOrdersByStatus,X.value=t.reportSalesByMonth??[],Z.value=t.reportSalesByProduct??[],Q.value=t.reportSalesByCustomer??[],$.value=t.reportCustomers??null}catch(e){u.error(e instanceof ee?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(ee,r)=>(d(),l(`div`,se,[i(`div`,g,[r[1]||=i(`div`,null,[i(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),i(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[ie(te,{name:`print`,size:16}),r[0]||=re(` چاپ گزارش `,-1)])]),K.value?(d(),ne(oe,{key:0,variant:`table`})):(d(),l(n,{key:1},[i(`div`,_,[i(`div`,v,[r[2]||=i(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),i(`p`,y,t(s(f)(q.value.todaySales)),1),i(`span`,b,`+`+t(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),i(`div`,x,[r[3]||=i(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),i(`p`,S,t(s(f)(q.value.monthSales)),1)]),i(`div`,C,[r[4]||=i(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),i(`p`,w,t(s(p)(q.value.newOrders)),1)]),i(`div`,T,[r[5]||=i(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),i(`p`,E,t(s(p)(q.value.pendingReview)),1)])]),$.value?(d(),l(`div`,D,[i(`div`,O,[r[6]||=i(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),i(`p`,k,t(s(p)($.value.active)),1)]),i(`div`,A,[r[7]||=i(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),i(`p`,j,t(s(p)($.value.inactive)),1)]),i(`div`,M,[r[8]||=i(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),i(`p`,N,t(s(p)($.value.newLast30Days)),1)]),i(`div`,P,[r[9]||=i(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),i(`p`,F,t(s(p)($.value.noPurchase)),1)]),i(`div`,I,[r[10]||=i(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),i(`p`,L,t(s(p)($.value.noPurchase90Days)),1)]),i(`div`,R,[r[11]||=i(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),i(`p`,z,t(s(p)($.value.withAgent)),1)])])):e(``,!0),i(`div`,B,[i(`section`,V,[r[13]||=i(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),i(`div`,H,[i(`table`,U,[r[12]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`شرکت`),i(`th`,null,`تعداد سفارش`),i(`th`,null,`مجموع متراژ`),i(`th`,null,`مجموع مبلغ`)])],-1),i(`tbody`,null,[(d(!0),l(n,null,c(J.value,e=>(d(),l(`tr`,{key:e.companyName},[i(`td`,null,t(e.companyName),1),i(`td`,null,t(s(p)(e.orderCount)),1),i(`td`,null,t(s(o)(e.meterage)),1),i(`td`,null,t(s(f)(e.totalAmount)),1)]))),128))])])]),i(`div`,ce,[(d(!0),l(n,null,c(J.value,e=>(d(),l(`article`,{key:e.companyName,class:`admin-card-item`},[i(`p`,W,t(e.companyName),1),i(`div`,G,[i(`span`,null,t(e.orderCount)+` سفارش`,1),i(`span`,null,t(s(o)(e.meterage)),1),i(`span`,null,t(s(f)(e.totalAmount)),1)])]))),128))])]),i(`section`,le,[r[15]||=i(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),i(`div`,ue,[i(`table`,de,[r[14]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`وضعیت`),i(`th`,null,`تعداد`)])],-1),i(`tbody`,null,[(d(!0),l(n,null,c(Y.value,e=>(d(),l(`tr`,{key:e.status},[i(`td`,null,t(e.status),1),i(`td`,null,t(s(p)(e.count)),1)]))),128))])])]),i(`ul`,fe,[(d(!0),l(n,null,c(Y.value,e=>(d(),l(`li`,{key:e.status},[i(`span`,null,t(e.status),1),i(`strong`,null,t(s(p)(e.count)),1)]))),128))])])]),X.value.length?(d(),l(`div`,pe,[i(`section`,me,[r[17]||=i(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),i(`div`,he,[i(`table`,ge,[r[16]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`ماه`),i(`th`,null,`تعداد سفارش`),i(`th`,null,`مجموع متراژ`),i(`th`,null,`مجموع مبلغ`)])],-1),i(`tbody`,null,[(d(!0),l(n,null,c(X.value,e=>(d(),l(`tr`,{key:e.month},[i(`td`,null,t(e.month),1),i(`td`,null,t(s(p)(e.orderCount)),1),i(`td`,null,t(s(o)(e.meterage)),1),i(`td`,null,t(s(f)(e.totalAmount)),1)]))),128))])])])])])):e(``,!0),Z.value.length||Q.value.length?(d(),l(`div`,_e,[Z.value.length?(d(),l(`section`,ve,[r[19]||=i(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),i(`div`,ye,[i(`table`,be,[r[18]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`محصول`),i(`th`,null,`کد`),i(`th`,null,`تعداد سفارش`),i(`th`,null,`متراژ`),i(`th`,null,`مبلغ`)])],-1),i(`tbody`,null,[(d(!0),l(n,null,c(Z.value,e=>(d(),l(`tr`,{key:e.productId},[i(`td`,null,t(e.productName),1),i(`td`,xe,t(e.productCode),1),i(`td`,null,t(s(p)(e.orderCount)),1),i(`td`,null,t(s(o)(e.meterage)),1),i(`td`,null,t(s(f)(e.totalAmount)),1)]))),128))])])])])):e(``,!0),Q.value.length?(d(),l(`section`,Se,[r[21]||=i(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),i(`div`,Ce,[i(`table`,we,[r[20]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`مشتری`),i(`th`,null,`تعداد سفارش`),i(`th`,null,`متراژ`),i(`th`,null,`مبلغ`)])],-1),i(`tbody`,null,[(d(!0),l(n,null,c(Q.value,e=>(d(),l(`tr`,{key:e.customerName},[i(`td`,null,t(e.customerName),1),i(`td`,null,t(s(p)(e.orderCount)),1),i(`td`,null,t(s(o)(e.meterage)),1),i(`td`,null,t(s(f)(e.totalAmount)),1)]))),128))])])])])):e(``,!0)])):e(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/ReportsView-uTGceQoW.js b/dist/assets/ReportsView-uTGceQoW.js new file mode 100644 index 0000000..6bd4c56 --- /dev/null +++ b/dist/assets/ReportsView-uTGceQoW.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,at as i,c as a,d as o,g as ee,h as s,j as c,l as te,m as l,r as u,t as d,u as f}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{N as ne,P as re,_ as p,a as m,n as h,o as g,z as ie}from"./index-CXa4EMLW.js";import{t as ae}from"./AdminPageSkeleton-CTgUqaAu.js";var oe={class:`reports-page`},se={class:`admin-page-header`},_={class:`reports-page__stats`},v={class:`admin-stat-card admin-card`},y={class:`admin-stat-card__value`},b={class:`reports-page__growth`},x={class:`admin-stat-card admin-card`},S={class:`admin-stat-card__value`},C={class:`admin-stat-card admin-card`},w={class:`admin-stat-card__value`},T={class:`admin-stat-card admin-card`},E={class:`admin-stat-card__value`},D={key:0,class:`reports-page__stats`},O={class:`admin-stat-card admin-card`},k={class:`admin-stat-card__value`},A={class:`admin-stat-card admin-card`},j={class:`admin-stat-card__value`},M={class:`admin-stat-card admin-card`},N={class:`admin-stat-card__value`},P={class:`admin-stat-card admin-card`},F={class:`admin-stat-card__value`},I={class:`admin-stat-card admin-card`},L={class:`admin-stat-card__value`},R={class:`admin-stat-card admin-card`},z={class:`admin-stat-card__value`},B={class:`reports-page__grid`},V={class:`admin-card reports-page__section`},H={class:`admin-table-wrap desktop-only`},U={class:`admin-table`},ce={class:`compact-only admin-card-list`},W={class:`admin-card-item__title`},G={class:`admin-card-item__meta`},le={class:`admin-card reports-page__section`},ue={class:`admin-table-wrap desktop-only`},de={class:`admin-table`},fe={class:`compact-only reports-page__status-list`},pe={key:1,class:`reports-page__grid reports-page__grid--full`},me={class:`admin-card reports-page__section`},he={class:`admin-table-wrap`},ge={class:`admin-table`},_e={key:2,class:`reports-page__grid`},ve={key:0,class:`admin-card reports-page__section`},ye={class:`admin-table-wrap`},be={class:`admin-table`},xe={dir:`ltr`},Se={key:1,class:`admin-card reports-page__section`},Ce={class:`admin-table-wrap`},we={class:`admin-table`},K=d(ee({__name:`ReportsView`,setup(ee){let d=ie(),K=r(!0),q=r({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0}),J=r([]),Y=r([]),X=r([]),Z=r([]),Q=r([]),$=r(null);n(async()=>{K.value=!0;try{let[e,t]=await Promise.all([p.get(),p.reports()]);q.value=e.stats,J.value=t.reportSalesByCompany,Y.value=t.reportOrdersByStatus,X.value=t.reportSalesByMonth??[],Z.value=t.reportSalesByProduct??[],Q.value=t.reportSalesByCustomer??[],$.value=t.reportCustomers??null}catch(e){d.error(e instanceof ne?e.message:`بارگذاری گزارش‌ها انجام نشد.`)}finally{K.value=!1}});function Te(){window.print()}return(n,r)=>(e(),o(`div`,oe,[a(`div`,se,[r[1]||=a(`div`,null,[a(`h1`,{class:`admin-page-header__title`},`گزارش‌ها`)],-1),a(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Te},[s(re,{name:`print`,size:16}),r[0]||=l(` چاپ گزارش `,-1)])]),K.value?(e(),te(ae,{key:0,variant:`table`})):(e(),o(u,{key:1},[a(`div`,_,[a(`div`,v,[r[2]||=a(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),a(`p`,y,t(i(h)(q.value.todaySales)),1),a(`span`,b,`+`+t(q.value.todaySalesGrowth)+`% نسبت به دیروز`,1)]),a(`div`,x,[r[3]||=a(`p`,{class:`admin-stat-card__label`},`فروش ماه جاری`,-1),a(`p`,S,t(i(h)(q.value.monthSales)),1)]),a(`div`,C,[r[4]||=a(`p`,{class:`admin-stat-card__label`},`سفارش‌های جدید`,-1),a(`p`,w,t(i(g)(q.value.newOrders)),1)]),a(`div`,T,[r[5]||=a(`p`,{class:`admin-stat-card__label`},`در انتظار بررسی`,-1),a(`p`,E,t(i(g)(q.value.pendingReview)),1)])]),$.value?(e(),o(`div`,D,[a(`div`,O,[r[6]||=a(`p`,{class:`admin-stat-card__label`},`مشتریان فعال`,-1),a(`p`,k,t(i(g)($.value.active)),1)]),a(`div`,A,[r[7]||=a(`p`,{class:`admin-stat-card__label`},`غیرفعال`,-1),a(`p`,j,t(i(g)($.value.inactive)),1)]),a(`div`,M,[r[8]||=a(`p`,{class:`admin-stat-card__label`},`جدید ۳۰ روز`,-1),a(`p`,N,t(i(g)($.value.newLast30Days)),1)]),a(`div`,P,[r[9]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید`,-1),a(`p`,F,t(i(g)($.value.noPurchase)),1)]),a(`div`,I,[r[10]||=a(`p`,{class:`admin-stat-card__label`},`بدون خرید ۹۰ روز`,-1),a(`p`,L,t(i(g)($.value.noPurchase90Days)),1)]),a(`div`,R,[r[11]||=a(`p`,{class:`admin-stat-card__label`},`دارای واسطه`,-1),a(`p`,z,t(i(g)($.value.withAgent)),1)])])):f(``,!0),a(`div`,B,[a(`section`,V,[r[13]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک شرکت`,-1),a(`div`,H,[a(`table`,U,[r[12]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`شرکت`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(J.value,n=>(e(),o(`tr`,{key:n.companyName},[a(`td`,null,t(n.companyName),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])]),a(`div`,ce,[(e(!0),o(u,null,c(J.value,n=>(e(),o(`article`,{key:n.companyName,class:`admin-card-item`},[a(`p`,W,t(n.companyName),1),a(`div`,G,[a(`span`,null,t(n.orderCount)+` سفارش`,1),a(`span`,null,t(i(m)(n.meterage)),1),a(`span`,null,t(i(h)(n.totalAmount)),1)])]))),128))])]),a(`section`,le,[r[15]||=a(`h2`,{class:`reports-page__section-title`},`سفارش‌ها به تفکیک وضعیت`,-1),a(`div`,ue,[a(`table`,de,[r[14]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`وضعیت`),a(`th`,null,`تعداد`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Y.value,n=>(e(),o(`tr`,{key:n.status},[a(`td`,null,t(n.status),1),a(`td`,null,t(i(g)(n.count)),1)]))),128))])])]),a(`ul`,fe,[(e(!0),o(u,null,c(Y.value,n=>(e(),o(`li`,{key:n.status},[a(`span`,null,t(n.status),1),a(`strong`,null,t(i(g)(n.count)),1)]))),128))])])]),X.value.length?(e(),o(`div`,pe,[a(`section`,me,[r[17]||=a(`h2`,{class:`reports-page__section-title`},`فروش ماهانه`,-1),a(`div`,he,[a(`table`,ge,[r[16]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`ماه`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`مجموع متراژ`),a(`th`,null,`مجموع مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(X.value,n=>(e(),o(`tr`,{key:n.month},[a(`td`,null,t(n.month),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])])):f(``,!0),Z.value.length||Q.value.length?(e(),o(`div`,_e,[Z.value.length?(e(),o(`section`,ve,[r[19]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک محصول`,-1),a(`div`,ye,[a(`table`,be,[r[18]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`محصول`),a(`th`,null,`کد`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Z.value,n=>(e(),o(`tr`,{key:n.productId},[a(`td`,null,t(n.productName),1),a(`td`,xe,t(n.productCode),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0),Q.value.length?(e(),o(`section`,Se,[r[21]||=a(`h2`,{class:`reports-page__section-title`},`فروش به تفکیک مشتری`,-1),a(`div`,Ce,[a(`table`,we,[r[20]||=a(`thead`,null,[a(`tr`,null,[a(`th`,null,`مشتری`),a(`th`,null,`تعداد سفارش`),a(`th`,null,`متراژ`),a(`th`,null,`مبلغ`)])],-1),a(`tbody`,null,[(e(!0),o(u,null,c(Q.value,n=>(e(),o(`tr`,{key:n.customerName},[a(`td`,null,t(n.customerName),1),a(`td`,null,t(i(g)(n.orderCount)),1),a(`td`,null,t(i(m)(n.meterage)),1),a(`td`,null,t(i(h)(n.totalAmount)),1)]))),128))])])])])):f(``,!0)])):f(``,!0)],64))]))}}),[[`__scopeId`,`data-v-6618f331`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-BSpASBj1.js b/dist/assets/SettingsView-BSpASBj1.js new file mode 100644 index 0000000..d23f8e3 --- /dev/null +++ b/dist/assets/SettingsView-BSpASBj1.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,V as r,Y as i,Z as a,c as o,d as s,g as c,j as l,l as ee,m as u,r as te,s as ne,t as d,u as re}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{C as f,V as p,W as m,b as ie,g as ae,z as oe}from"./index-CXa4EMLW.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";var g={class:`settings-page`},_={class:`admin-page-header`},v=[`disabled`],y={key:1,class:`settings-page__grid`},b={class:`admin-card settings-page__section`},x={class:`admin-form__field`},S={class:`admin-form__field`},C={class:`admin-form__field`},w={class:`settings-page__check`},T={class:`settings-page__check`},E={class:`admin-form__field`},D=[`disabled`],O={class:`settings-page__checks`},k={class:`settings-page__check`},A={class:`settings-page__check`},j={class:`admin-card settings-page__section`},M={class:`settings-page__checks`},N={class:`settings-page__check`},se={class:`settings-page__check`},P={class:`settings-page__check`},F={class:`settings-page__check`},I={class:`settings-page__check`},L={class:`admin-card settings-page__section`},R={class:`admin-form__field`},z={class:`admin-form__field`},B={class:`admin-card settings-page__section`},V={class:`admin-form__field`},H={class:`admin-form__field`},U={key:0,class:`admin-form__field`},W={class:`settings-page__customers`},G=[`checked`,`onChange`],K={class:`settings-page__phone`,dir:`ltr`},ce=[`disabled`],q=d(c({__name:`SettingsView`,setup(c){let d=oe(),q=i({maxMeteragePerInvoice:5e3,cashInvoiceValidityHours:8,smsOrderRegistered:!0,smsPricingReady:!0,smsPaymentReminder:!0,smsCheckReview:!0,smsShippingUpdate:!0,defaultSettlementCheck:!0,defaultSettlementCash:!0,minOrderRollsPerProduct:1,showCatalogPublicPrice:!1,allowAgentPricing:!1,agentMinUnitPrice:null,supportPhone:``,supportEmail:``}),J=i({title:``,body:``}),Y=a(!1),X=a([]),Z=a([]),Q=a(!0),$=a(!1),le=ne(()=>Y.value?`در حال ارسال…`:Z.value.length?`ارسال به ${Z.value.length} مشتری انتخاب‌شده`:`ارسال به همه مشتریان فعال`);function ue(e,t){t?Z.value.includes(e)||Z.value.push(e):Z.value=Z.value.filter(t=>t!==e)}n(async()=>{Q.value=!0;try{let[e,t]=await Promise.all([f.get(),ae.list()]);Object.assign(q,{maxMeteragePerInvoice:e.maxMeteragePerInvoice,cashInvoiceValidityHours:e.cashInvoiceValidityHours,smsOrderRegistered:e.smsOrderRegistered,smsPricingReady:e.smsPricingReady,smsPaymentReminder:e.smsPaymentReminder,smsCheckReview:e.smsCheckReview,smsShippingUpdate:e.smsShippingUpdate,defaultSettlementCheck:e.defaultSettlementCheck,defaultSettlementCash:e.defaultSettlementCash,minOrderRollsPerProduct:e.minOrderRollsPerProduct??1,showCatalogPublicPrice:e.showCatalogPublicPrice??!1,allowAgentPricing:e.allowAgentPricing??!1,agentMinUnitPrice:e.agentMinUnitPrice??null,supportPhone:e.supportPhone??``,supportEmail:e.supportEmail??``}),X.value=t}catch(e){d.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{Q.value=!1}});async function de(){if(!$.value){$.value=!0;try{await f.update({...q}),d.success(`تنظیمات با موفقیت ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره تنظیمات ناموفق بود.`)}finally{$.value=!1}}}async function fe(){if(!(!J.title.trim()||!J.body.trim()||Y.value)){Y.value=!0;try{let e={title:J.title.trim(),body:J.body.trim()};Z.value.length&&(e.customerIds=[...Z.value]);let t=await ie.broadcast(e);d.success(`اعلان برای ${t.sent} مشتری ارسال شد.`),J.title=``,J.body=``,Z.value=[]}catch(e){d.error(e instanceof Error?e.message:`ارسال اعلان ناموفق بود.`)}finally{Y.value=!1}}}return(n,i)=>(e(),s(`div`,g,[o(`div`,_,[i[17]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},t($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(e(),ee(h,{key:0,variant:`form`,rows:8})):(e(),s(`div`,y,[o(`section`,b,[i[26]||=o(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),o(`div`,x,[i[18]||=o(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),r(o(`input`,{id:`max-meterage`,"onUpdate:modelValue":i[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[m,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),o(`div`,S,[i[19]||=o(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),r(o(`input`,{id:`validity-hours`,"onUpdate:modelValue":i[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[m,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),o(`div`,C,[i[20]||=o(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),r(o(`input`,{id:`min-rolls`,"onUpdate:modelValue":i[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[m,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),o(`label`,w,[r(o(`input`,{"onUpdate:modelValue":i[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[p,q.showCatalogPublicPrice]]),i[21]||=u(` نمایش قیمت عمومی در کاتالوگ `,-1)]),o(`label`,T,[r(o(`input`,{"onUpdate:modelValue":i[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[p,q.allowAgentPricing]]),i[22]||=u(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),o(`div`,E,[i[23]||=o(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),r(o(`input`,{id:`agent-min-price`,"onUpdate:modelValue":i[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[m,q.agentMinUnitPrice,void 0,{number:!0}]])]),o(`div`,O,[o(`label`,k,[r(o(`input`,{"onUpdate:modelValue":i[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCheck]]),i[24]||=o(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),o(`label`,A,[r(o(`input`,{"onUpdate:modelValue":i[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[p,q.defaultSettlementCash]]),i[25]||=o(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),o(`section`,j,[i[32]||=o(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),o(`div`,M,[o(`label`,N,[r(o(`input`,{"onUpdate:modelValue":i[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[p,q.smsOrderRegistered]]),i[27]||=o(`span`,null,`پیامک ثبت سفارش`,-1)]),o(`label`,se,[r(o(`input`,{"onUpdate:modelValue":i[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[p,q.smsPricingReady]]),i[28]||=o(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),o(`label`,P,[r(o(`input`,{"onUpdate:modelValue":i[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[p,q.smsPaymentReminder]]),i[29]||=o(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),o(`label`,F,[r(o(`input`,{"onUpdate:modelValue":i[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[p,q.smsCheckReview]]),i[30]||=o(`span`,null,`اعلان بررسی چک`,-1)]),o(`label`,I,[r(o(`input`,{"onUpdate:modelValue":i[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[p,q.smsShippingUpdate]]),i[31]||=o(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),o(`section`,L,[i[36]||=o(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),o(`div`,R,[i[33]||=o(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),r(o(`input`,{id:`support-phone`,"onUpdate:modelValue":i[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[m,q.supportPhone]]),i[34]||=o(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده می‌شود. `,-1)]),o(`div`,z,[i[35]||=o(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),r(o(`input`,{id:`support-email`,"onUpdate:modelValue":i[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[m,q.supportEmail]])])]),o(`section`,B,[i[40]||=o(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),o(`div`,V,[i[37]||=o(`label`,{for:`broadcast-title`},`عنوان`,-1),r(o(`input`,{id:`broadcast-title`,"onUpdate:modelValue":i[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[m,J.title]])]),o(`div`,H,[i[38]||=o(`label`,{for:`broadcast-body`},`متن`,-1),r(o(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":i[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[m,J.body]])]),X.value.length?(e(),s(`div`,U,[i[39]||=o(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),o(`div`,W,[(e(!0),s(te,null,l(X.value,n=>(e(),s(`label`,{key:n.id,class:`settings-page__check`},[o(`input`,{type:`checkbox`,checked:Z.value.includes(n.id),onChange:e=>ue(n.id,e.target.checked)},null,40,G),o(`span`,null,[u(t(n.name)+` `,1),o(`span`,K,t(n.phone),1)])]))),128))])])):re(``,!0),o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},t(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-85da5885`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/SettingsView-DUUxvo0M.js b/dist/assets/SettingsView-DUUxvo0M.js deleted file mode 100644 index 1d4f872..0000000 --- a/dist/assets/SettingsView-DUUxvo0M.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,C as t,Ct as n,G as r,H as i,J as a,Q as ee,V as o,X as s,Z as c,b as te,dt as ne,et as l,g as re,gt as u,it as d,lt as f,nt as p,st as ie,vt as m,yt as h,z as ae}from"./index-B2VD3zy8.js";import{t as oe}from"./AdminPageSkeleton-BJpm6oxf.js";var g={class:`settings-page`},_={class:`admin-page-header`},v=[`disabled`],y={key:1,class:`settings-page__grid`},b={class:`admin-card settings-page__section`},x={class:`admin-form__field`},S={class:`admin-form__field`},C={class:`admin-form__field`},w={class:`settings-page__check`},T={class:`settings-page__check`},E={class:`admin-form__field`},D=[`disabled`],O={class:`settings-page__checks`},k={class:`settings-page__check`},A={class:`settings-page__check`},j={class:`admin-card settings-page__section`},M={class:`settings-page__checks`},N={class:`settings-page__check`},P={class:`settings-page__check`},se={class:`settings-page__check`},F={class:`settings-page__check`},I={class:`settings-page__check`},L={class:`admin-card settings-page__section`},R={class:`admin-form__field`},z={class:`admin-form__field`},B={class:`admin-card settings-page__section`},V={class:`admin-form__field`},H={class:`admin-form__field`},U={key:0,class:`admin-form__field`},W={class:`settings-page__customers`},G=[`checked`,`onChange`],K={class:`settings-page__phone`,dir:`ltr`},ce=[`disabled`],q=o(d({__name:`SettingsView`,setup(o){let d=ae(),q=m({maxMeteragePerInvoice:5e3,cashInvoiceValidityHours:8,smsOrderRegistered:!0,smsPricingReady:!0,smsPaymentReminder:!0,smsCheckReview:!0,smsShippingUpdate:!0,defaultSettlementCheck:!0,defaultSettlementCash:!0,minOrderRollsPerProduct:1,showCatalogPublicPrice:!1,allowAgentPricing:!1,agentMinUnitPrice:null,supportPhone:``,supportEmail:``}),J=m({title:``,body:``}),Y=h(!1),X=h([]),Z=h([]),Q=h(!0),$=h(!1),le=s(()=>Y.value?`در حال ارسال…`:Z.value.length?`ارسال به ${Z.value.length} مشتری انتخاب‌شده`:`ارسال به همه مشتریان فعال`);function ue(e,t){t?Z.value.includes(e)||Z.value.push(e):Z.value=Z.value.filter(t=>t!==e)}ie(async()=>{Q.value=!0;try{let[e,n]=await Promise.all([t.get(),re.list()]);Object.assign(q,{maxMeteragePerInvoice:e.maxMeteragePerInvoice,cashInvoiceValidityHours:e.cashInvoiceValidityHours,smsOrderRegistered:e.smsOrderRegistered,smsPricingReady:e.smsPricingReady,smsPaymentReminder:e.smsPaymentReminder,smsCheckReview:e.smsCheckReview,smsShippingUpdate:e.smsShippingUpdate,defaultSettlementCheck:e.defaultSettlementCheck,defaultSettlementCash:e.defaultSettlementCash,minOrderRollsPerProduct:e.minOrderRollsPerProduct??1,showCatalogPublicPrice:e.showCatalogPublicPrice??!1,allowAgentPricing:e.allowAgentPricing??!1,agentMinUnitPrice:e.agentMinUnitPrice??null,supportPhone:e.supportPhone??``,supportEmail:e.supportEmail??``}),X.value=n}catch(e){d.error(e instanceof Error?e.message:`دریافت تنظیمات ناموفق بود.`)}finally{Q.value=!1}});async function de(){if(!$.value){$.value=!0;try{await t.update({...q}),d.success(`تنظیمات با موفقیت ذخیره شد.`)}catch(e){d.error(e instanceof Error?e.message:`ذخیره تنظیمات ناموفق بود.`)}finally{$.value=!1}}}async function fe(){if(!(!J.title.trim()||!J.body.trim()||Y.value)){Y.value=!0;try{let e={title:J.title.trim(),body:J.body.trim()};Z.value.length&&(e.customerIds=[...Z.value]);let t=await te.broadcast(e);d.success(`اعلان برای ${t.sent} مشتری ارسال شد.`),J.title=``,J.body=``,Z.value=[]}catch(e){d.error(e instanceof Error?e.message:`ارسال اعلان ناموفق بود.`)}finally{Y.value=!1}}}return(t,o)=>(f(),l(`div`,g,[c(`div`,_,[o[17]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`تنظیمات`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:Q.value||$.value,onClick:de},n($.value?`در حال ذخیره…`:`ذخیره تنظیمات`),9,v)]),Q.value?(f(),ee(oe,{key:0,variant:`form`,rows:8})):(f(),l(`div`,y,[c(`section`,b,[o[26]||=c(`h2`,{class:`settings-page__title`},`تنظیمات عمومی سفارش`,-1),c(`div`,x,[o[18]||=c(`label`,{for:`max-meterage`},`حداکثر متراژ هر فاکتور (متر)`,-1),u(c(`input`,{id:`max-meterage`,"onUpdate:modelValue":o[0]||=e=>q.maxMeteragePerInvoice=e,type:`number`,min:`1000`,class:`admin-input`},null,512),[[r,q.maxMeteragePerInvoice,void 0,{number:!0}]])]),c(`div`,S,[o[19]||=c(`label`,{for:`validity-hours`},`اعتبار فاکتور نقدی (ساعت)`,-1),u(c(`input`,{id:`validity-hours`,"onUpdate:modelValue":o[1]||=e=>q.cashInvoiceValidityHours=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,q.cashInvoiceValidityHours,void 0,{number:!0}]])]),c(`div`,C,[o[20]||=c(`label`,{for:`min-rolls`},`حداقل طاقه از هر محصول`,-1),u(c(`input`,{id:`min-rolls`,"onUpdate:modelValue":o[2]||=e=>q.minOrderRollsPerProduct=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,q.minOrderRollsPerProduct,void 0,{number:!0}]])]),c(`label`,w,[u(c(`input`,{"onUpdate:modelValue":o[3]||=e=>q.showCatalogPublicPrice=e,type:`checkbox`},null,512),[[i,q.showCatalogPublicPrice]]),o[21]||=p(` نمایش قیمت عمومی در کاتالوگ `,-1)]),c(`label`,T,[u(c(`input`,{"onUpdate:modelValue":o[4]||=e=>q.allowAgentPricing=e,type:`checkbox`},null,512),[[i,q.allowAgentPricing]]),o[22]||=p(` اجازه قیمت‌گذاری توسط واسطه `,-1)]),c(`div`,E,[o[23]||=c(`label`,{for:`agent-min-price`},`حداقل قیمت واحد واسطه (تومان)`,-1),u(c(`input`,{id:`agent-min-price`,"onUpdate:modelValue":o[5]||=e=>q.agentMinUnitPrice=e,type:`number`,min:`0`,class:`admin-input`,disabled:!q.allowAgentPricing},null,8,D),[[r,q.agentMinUnitPrice,void 0,{number:!0}]])]),c(`div`,O,[c(`label`,k,[u(c(`input`,{"onUpdate:modelValue":o[6]||=e=>q.defaultSettlementCheck=e,type:`checkbox`},null,512),[[i,q.defaultSettlementCheck]]),o[24]||=c(`span`,null,`فعال‌سازی تسویه چکی`,-1)]),c(`label`,A,[u(c(`input`,{"onUpdate:modelValue":o[7]||=e=>q.defaultSettlementCash=e,type:`checkbox`},null,512),[[i,q.defaultSettlementCash]]),o[25]||=c(`span`,null,`فعال‌سازی تسویه نقدی`,-1)])])]),c(`section`,j,[o[32]||=c(`h2`,{class:`settings-page__title`},`پیامک و اعلان`,-1),c(`div`,M,[c(`label`,N,[u(c(`input`,{"onUpdate:modelValue":o[8]||=e=>q.smsOrderRegistered=e,type:`checkbox`},null,512),[[i,q.smsOrderRegistered]]),o[27]||=c(`span`,null,`پیامک ثبت سفارش`,-1)]),c(`label`,P,[u(c(`input`,{"onUpdate:modelValue":o[9]||=e=>q.smsPricingReady=e,type:`checkbox`},null,512),[[i,q.smsPricingReady]]),o[28]||=c(`span`,null,`پیامک صدور فاکتور و آماده‌بودن قیمت`,-1)]),c(`label`,se,[u(c(`input`,{"onUpdate:modelValue":o[10]||=e=>q.smsPaymentReminder=e,type:`checkbox`},null,512),[[i,q.smsPaymentReminder]]),o[29]||=c(`span`,null,`یادآوری پایان اعتبار فاکتور`,-1)]),c(`label`,F,[u(c(`input`,{"onUpdate:modelValue":o[11]||=e=>q.smsCheckReview=e,type:`checkbox`},null,512),[[i,q.smsCheckReview]]),o[30]||=c(`span`,null,`اعلان بررسی چک`,-1)]),c(`label`,I,[u(c(`input`,{"onUpdate:modelValue":o[12]||=e=>q.smsShippingUpdate=e,type:`checkbox`},null,512),[[i,q.smsShippingUpdate]]),o[31]||=c(`span`,null,`اعلان وضعیت ارسال`,-1)])])]),c(`section`,L,[o[36]||=c(`h2`,{class:`settings-page__title`},`اطلاعات تماس پشتیبانی`,-1),c(`div`,R,[o[33]||=c(`label`,{for:`support-phone`},`تلفن پشتیبانی`,-1),u(c(`input`,{id:`support-phone`,"onUpdate:modelValue":o[13]||=e=>q.supportPhone=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[r,q.supportPhone]]),o[34]||=c(`p`,{class:`settings-page__hint`},` این شماره در صفحه ورود اپ و بخش پشتیبانی سایدبار دسکتاپ نمایش داده می‌شود. `,-1)]),c(`div`,z,[o[35]||=c(`label`,{for:`support-email`},`ایمیل پشتیبانی`,-1),u(c(`input`,{id:`support-email`,"onUpdate:modelValue":o[14]||=e=>q.supportEmail=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[r,q.supportEmail]])])]),c(`section`,B,[o[40]||=c(`h2`,{class:`settings-page__title`},`اعلان هدفمند`,-1),c(`div`,V,[o[37]||=c(`label`,{for:`broadcast-title`},`عنوان`,-1),u(c(`input`,{id:`broadcast-title`,"onUpdate:modelValue":o[15]||=e=>J.title=e,type:`text`,class:`admin-input`},null,512),[[r,J.title]])]),c(`div`,H,[o[38]||=c(`label`,{for:`broadcast-body`},`متن`,-1),u(c(`textarea`,{id:`broadcast-body`,"onUpdate:modelValue":o[16]||=e=>J.body=e,class:`admin-input`,rows:`4`},null,512),[[r,J.body]])]),X.value.length?(f(),l(`div`,U,[o[39]||=c(`label`,null,`گیرندگان (بدون انتخاب = همه)`,-1),c(`div`,W,[(f(!0),l(a,null,ne(X.value,e=>(f(),l(`label`,{key:e.id,class:`settings-page__check`},[c(`input`,{type:`checkbox`,checked:Z.value.includes(e.id),onChange:t=>ue(e.id,t.target.checked)},null,40,G),c(`span`,null,[p(n(e.name)+` `,1),c(`span`,K,n(e.phone),1)])]))),128))])])):e(``,!0),c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:Y.value||!J.title.trim()||!J.body.trim(),onClick:fe},n(le.value),9,ce)])]))]))}}),[[`__scopeId`,`data-v-85da5885`]]);export{q as default}; \ No newline at end of file diff --git a/dist/assets/ShippingView-Ck9kASgn.js b/dist/assets/ShippingView-Ck9kASgn.js new file mode 100644 index 0000000..46aa316 --- /dev/null +++ b/dist/assets/ShippingView-Ck9kASgn.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,R as ee,T as r,Tt as i,V as a,Y as te,Z as o,at as s,c,d as l,g as ne,h as u,j as d,l as re,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{F as ie,K as ae,N as _,P as oe,R as se,W as v,a as y,i as b,w as x,x as ce,y as le,z as ue}from"./index-CXa4EMLW.js";import{t as de}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as S}from"./AdminSelect-9UfEJQzN.js";import{a as C,i as w}from"./adminLabels-Cz9ccm1Z.js";import{a as fe}from"./orderStatus-CYVblRJB.js";var pe={class:`shipping-page`},me={class:`shipping-page__filters admin-card`},he={class:`shipping-page__search`},ge={class:`shipping-page__table admin-card desktop-only`},_e={class:`admin-table-wrap`},T={class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={key:1},k={class:`compact-only admin-card-list`},A={class:`admin-card-item__header`},j={class:`admin-card-item__title`},M={class:`admin-card-item__meta`},N={dir:`ltr`},P={key:0,class:`admin-card-item__actions`},F=[`onClick`],I={key:0,class:`admin-form__error`,role:`alert`},ve={class:`admin-form__field`},ye={class:`admin-form__row`},L={class:`admin-form__field`},be={class:`admin-form__field`},xe={class:`admin-form__row`},Se={class:`admin-form__field`},Ce={class:`admin-form__field`},we=[`disabled`],R=h(ne({__name:`ShippingView`,setup(ne){let h=ie(),R=o([]),z=o([]),B=o(typeof h.query.order==`string`?h.query.order:``),V=o(`all`),H=o(!0),U=o(!1),W=o(``),G=o(!1),K=ue(),Te=[{value:`all`,label:`همه وضعیت‌ها`},{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],Ee=[{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],q=()=>({orderId:``,carrier:``,trackingNumber:``,meterage:1e3,status:`preparing`}),J=te(q()),Y=m(()=>{let e=R.value;V.value!==`all`&&(e=e.filter(e=>e.status===V.value));let t=B.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingNumber.includes(t)||e.carrier.includes(t))),e}),X=m(()=>J.orderId.trim()&&J.carrier.trim()),De=m(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&fe(t))}),Oe=m(()=>De.value.map(e=>({value:e.id,label:`${e.orderNumber} — ${e.customerName}`})));async function ke(){H.value=!0;try{let[e,t]=await Promise.all([x.list(),ce.list()]);R.value=e,z.value=t.map(e=>le(e))}catch(e){K.error(e instanceof _?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{H.value=!1}}r(()=>{ke()}),ee(()=>h.query.order,e=>{typeof e==`string`&&e.trim()&&(B.value=e.trim())});function Ae(){let e=z.value.find(e=>e.id===J.orderId);e&&(J.meterage=e.meterage)}function je(){Object.assign(J,q()),W.value=``,U.value=!0}function Z(){U.value=!1,W.value=``}async function Q(){if(!X.value){W.value=`سفارش و باربری الزامی هستند.`;return}G.value=!0;try{let e=await x.create({orderId:J.orderId,carrier:J.carrier.trim(),trackingNumber:J.trackingNumber.trim()||void 0,meterage:J.meterage,status:J.status});R.value.unshift(e),K.success(`بارنامه ثبت شد.`),Z()}catch(e){K.error(e instanceof _?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await x.advanceStatus(e.id),n=R.value.findIndex(t=>t.id===e.id);n!==-1&&(R.value[n]=t),K.success(`وضعیت ارسال به‌روزرسانی شد.`)}catch(e){K.error(e instanceof _?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(ee,r)=>(t(),l(`div`,pe,[c(`div`,{class:`admin-page-header`},[r[7]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),c(`div`,me,[c(`div`,he,[u(oe,{name:`search`,size:18}),a(c(`input`,{"onUpdate:modelValue":r[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[v,B.value]])]),u(S,{modelValue:V.value,"onUpdate:modelValue":r[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(t(),re(de,{key:0,variant:`table`})):(t(),l(p,{key:1},[c(`div`,ge,[c(`div`,_e,[c(`table`,T,[r[8]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`شماره سفارش`),c(`th`,null,`مشتری`),c(`th`,null,`باربری`),c(`th`,null,`شماره بارنامه`),c(`th`,null,`متراژ`),c(`th`,null,`وضعیت`),c(`th`,null,`تاریخ ارسال`),c(`th`,null,`تاریخ تحویل`),c(`th`,null,`عملیات`)])],-1),c(`tbody`,null,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`tr`,{key:e.id},[c(`td`,null,n(e.orderNumber),1),c(`td`,null,n(e.customerName),1),c(`td`,null,n(e.carrier),1),c(`td`,E,n(e.trackingNumber),1),c(`td`,null,n(s(y)(e.meterage)),1),c(`td`,null,[c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`td`,null,n(e.shippedAt?s(b)(e.shippedAt):`—`),1),c(`td`,null,n(e.deliveredAt?s(b)(e.deliveredAt):`—`),1),c(`td`,null,[e.status===`delivered`?(t(),l(`span`,O,`—`)):(t(),l(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),c(`div`,k,[(t(!0),l(p,null,d(Y.value,e=>(t(),l(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,A,[c(`p`,j,n(e.orderNumber),1),c(`span`,{class:i([`admin-badge`,s(w)[e.status]])},n(s(C)[e.status]),3)]),c(`div`,M,[c(`span`,null,n(e.customerName),1),c(`span`,null,n(e.carrier),1),c(`span`,null,n(s(y)(e.meterage)),1),c(`span`,N,n(e.trackingNumber),1)]),e.status===`delivered`?g(``,!0):(t(),l(`div`,P,[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),u(se,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:e(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:e(()=>[c(`form`,{class:`admin-form`,onSubmit:ae(Q,[`prevent`])},[W.value?(t(),l(`p`,I,n(W.value),1)):g(``,!0),c(`div`,ve,[r[9]||=c(`label`,{id:`ship-order-label`},[f(`سفارش `),c(`span`,{class:`admin-form__required`},`*`)],-1),u(S,{modelValue:J.orderId,"onUpdate:modelValue":[r[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),c(`div`,ye,[c(`div`,L,[r[10]||=c(`label`,{for:`ship-carrier`},[f(`باربری `),c(`span`,{class:`admin-form__required`},`*`)],-1),a(c(`input`,{id:`ship-carrier`,"onUpdate:modelValue":r[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[v,J.carrier]])]),c(`div`,be,[r[11]||=c(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),a(c(`input`,{id:`ship-tracking`,"onUpdate:modelValue":r[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[v,J.trackingNumber]])])]),c(`div`,xe,[c(`div`,Se,[r[12]||=c(`label`,{for:`ship-meterage`},`متراژ`,-1),a(c(`input`,{id:`ship-meterage`,"onUpdate:modelValue":r[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[v,J.meterage,void 0,{number:!0}]])]),c(`div`,Ce,[r[13]||=c(`label`,{id:`ship-status-label`},`وضعیت`,-1),u(S,{modelValue:J.status,"onUpdate:modelValue":r[6]||=e=>J.status=e,block:``,"aria-label":`وضعیت ارسال`,options:Ee},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ded219cd`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/ShippingView-XJtm6EAp.js b/dist/assets/ShippingView-XJtm6EAp.js deleted file mode 100644 index a62d303..0000000 --- a/dist/assets/ShippingView-XJtm6EAp.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,F as n,G as r,J as i,N as a,P as ee,Q as te,R as ne,V as re,X as o,Z as s,a as c,bt as l,dt as u,et as d,gt as f,ht as p,i as m,it as h,lt as g,mt as ie,nt as _,q as ae,rt as v,st as oe,vt as se,w as y,x as ce,xt as b,y as le,yt as x,z as ue}from"./index-B2VD3zy8.js";import{t as de}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as S}from"./AdminSelect-BeLNl2Qz.js";import{a as C,i as w}from"./adminLabels-Cz9ccm1Z.js";import{a as fe}from"./orderStatus-CYVblRJB.js";var pe={class:`shipping-page`},me={class:`shipping-page__filters admin-card`},he={class:`shipping-page__search`},ge={class:`shipping-page__table admin-card desktop-only`},_e={class:`admin-table-wrap`},T={class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={key:1},k={class:`compact-only admin-card-list`},A={class:`admin-card-item__header`},j={class:`admin-card-item__title`},M={class:`admin-card-item__meta`},N={dir:`ltr`},P={key:0,class:`admin-card-item__actions`},F=[`onClick`],I={key:0,class:`admin-form__error`,role:`alert`},ve={class:`admin-form__field`},ye={class:`admin-form__row`},be={class:`admin-form__field`},xe={class:`admin-form__field`},Se={class:`admin-form__row`},Ce={class:`admin-form__field`},we={class:`admin-form__field`},Te=[`disabled`],L=re(h({__name:`ShippingView`,setup(re){let h=n(),L=x([]),R=x([]),z=x(typeof h.query.order==`string`?h.query.order:``),B=x(`all`),V=x(!0),H=x(!1),U=x(``),W=x(!1),G=ue(),Ee=[{value:`all`,label:`همه وضعیت‌ها`},{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],De=[{value:`preparing`,label:`در حال آماده‌سازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],K=()=>({orderId:``,carrier:``,trackingNumber:``,meterage:1e3,status:`preparing`}),q=se(K()),J=o(()=>{let e=L.value;B.value!==`all`&&(e=e.filter(e=>e.status===B.value));let t=z.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingNumber.includes(t)||e.carrier.includes(t))),e}),Y=o(()=>q.orderId.trim()&&q.carrier.trim()),X=o(()=>{let e=new Set(L.value.map(e=>e.orderId));return R.value.filter(t=>!e.has(t.id)&&fe(t))}),Oe=o(()=>X.value.map(e=>({value:e.id,label:`${e.orderNumber} — ${e.customerName}`})));async function ke(){V.value=!0;try{let[e,t]=await Promise.all([y.list(),ce.list()]);L.value=e,R.value=t.map(e=>le(e))}catch(e){G.error(e instanceof a?e.message:`بارگذاری ارسال‌ها انجام نشد.`)}finally{V.value=!1}}oe(()=>{ke()}),ie(()=>h.query.order,e=>{typeof e==`string`&&e.trim()&&(z.value=e.trim())});function Ae(){let e=R.value.find(e=>e.id===q.orderId);e&&(q.meterage=e.meterage)}function je(){Object.assign(q,K()),U.value=``,H.value=!0}function Z(){H.value=!1,U.value=``}async function Q(){if(!Y.value){U.value=`سفارش و باربری الزامی هستند.`;return}W.value=!0;try{let e=await y.create({orderId:q.orderId,carrier:q.carrier.trim(),trackingNumber:q.trackingNumber.trim()||void 0,meterage:q.meterage,status:q.status});L.value.unshift(e),G.success(`بارنامه ثبت شد.`),Z()}catch(e){G.error(e instanceof a?e.message:`ثبت بارنامه انجام نشد.`)}finally{W.value=!1}}async function $(e){try{let t=await y.advanceStatus(e.id),n=L.value.findIndex(t=>t.id===e.id);n!==-1&&(L.value[n]=t),G.success(`وضعیت ارسال به‌روزرسانی شد.`)}catch(e){G.error(e instanceof a?e.message:`به‌روزرسانی وضعیت انجام نشد.`)}}return(n,a)=>(g(),d(`div`,pe,[s(`div`,{class:`admin-page-header`},[a[7]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),s(`div`,me,[s(`div`,he,[v(ee,{name:`search`,size:18}),f(s(`input`,{"onUpdate:modelValue":a[0]||=e=>z.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[r,z.value]])]),v(S,{modelValue:B.value,"onUpdate:modelValue":a[1]||=e=>B.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Ee},null,8,[`modelValue`])]),V.value?(g(),te(de,{key:0,variant:`table`})):(g(),d(i,{key:1},[s(`div`,ge,[s(`div`,_e,[s(`table`,T,[a[8]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`شماره سفارش`),s(`th`,null,`مشتری`),s(`th`,null,`باربری`),s(`th`,null,`شماره بارنامه`),s(`th`,null,`متراژ`),s(`th`,null,`وضعیت`),s(`th`,null,`تاریخ ارسال`),s(`th`,null,`تاریخ تحویل`),s(`th`,null,`عملیات`)])],-1),s(`tbody`,null,[(g(!0),d(i,null,u(J.value,e=>(g(),d(`tr`,{key:e.id},[s(`td`,null,t(e.orderNumber),1),s(`td`,null,t(e.customerName),1),s(`td`,null,t(e.carrier),1),s(`td`,E,t(e.trackingNumber),1),s(`td`,null,t(l(c)(e.meterage)),1),s(`td`,null,[s(`span`,{class:b([`admin-badge`,l(w)[e.status]])},t(l(C)[e.status]),3)]),s(`td`,null,t(e.shippedAt?l(m)(e.shippedAt):`—`),1),s(`td`,null,t(e.deliveredAt?l(m)(e.deliveredAt):`—`),1),s(`td`,null,[e.status===`delivered`?(g(),d(`span`,O,`—`)):(g(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),s(`div`,k,[(g(!0),d(i,null,u(J.value,n=>(g(),d(`article`,{key:n.id,class:`admin-card-item`},[s(`div`,A,[s(`p`,j,t(n.orderNumber),1),s(`span`,{class:b([`admin-badge`,l(w)[n.status]])},t(l(C)[n.status]),3)]),s(`div`,M,[s(`span`,null,t(n.customerName),1),s(`span`,null,t(n.carrier),1),s(`span`,null,t(l(c)(n.meterage)),1),s(`span`,N,t(n.trackingNumber),1)]),n.status===`delivered`?e(``,!0):(g(),d(`div`,P,[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:e=>$(n)},` مرحله بعد `,8,F)]))]))),128))])],64)),v(ne,{open:H.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:p(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!Y.value||W.value,onClick:Q},` ثبت بارنامه `,8,Te)]),default:p(()=>[s(`form`,{class:`admin-form`,onSubmit:ae(Q,[`prevent`])},[U.value?(g(),d(`p`,I,t(U.value),1)):e(``,!0),s(`div`,ve,[a[9]||=s(`label`,{id:`ship-order-label`},[_(`سفارش `),s(`span`,{class:`admin-form__required`},`*`)],-1),v(S,{modelValue:q.orderId,"onUpdate:modelValue":[a[2]||=e=>q.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),s(`div`,ye,[s(`div`,be,[a[10]||=s(`label`,{for:`ship-carrier`},[_(`باربری `),s(`span`,{class:`admin-form__required`},`*`)],-1),f(s(`input`,{id:`ship-carrier`,"onUpdate:modelValue":a[3]||=e=>q.carrier=e,type:`text`,class:`admin-input`},null,512),[[r,q.carrier]])]),s(`div`,xe,[a[11]||=s(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),f(s(`input`,{id:`ship-tracking`,"onUpdate:modelValue":a[4]||=e=>q.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[r,q.trackingNumber]])])]),s(`div`,Se,[s(`div`,Ce,[a[12]||=s(`label`,{for:`ship-meterage`},`متراژ`,-1),f(s(`input`,{id:`ship-meterage`,"onUpdate:modelValue":a[5]||=e=>q.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[r,q.meterage,void 0,{number:!0}]])]),s(`div`,we,[a[13]||=s(`label`,{id:`ship-status-label`},`وضعیت`,-1),v(S,{modelValue:q.status,"onUpdate:modelValue":a[6]||=e=>q.status=e,block:``,"aria-label":`وضعیت ارسال`,options:De},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ded219cd`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/StatusBadge-Cg2zTE2k.js b/dist/assets/StatusBadge-Cg2zTE2k.js new file mode 100644 index 0000000..8bd708d --- /dev/null +++ b/dist/assets/StatusBadge-Cg2zTE2k.js @@ -0,0 +1 @@ +import{O as e,Ot as t,Tt as n,at as r,d as i,g as a,t as o}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{t as s}from"./orderStatus-CYVblRJB.js";var c=o(a({__name:`StatusBadge`,props:{status:{}},setup(a){let o={active:{label:`فعال`,tone:`success`},inactive:{label:`غیرفعال`,tone:`neutral`},pending_check_review:{label:`در انتظار بررسی`,tone:`warning`},check_approved:{label:`تأیید شده`,tone:`success`},check_rejected:{label:`رد شده`,tone:`danger`}};return(c,l)=>(e(),i(`span`,{class:n([`admin-badge status-badge`,`admin-badge--${(r(s)[a.status]??o[a.status])?.tone??`neutral`}`])},t((r(s)[a.status]??o[a.status])?.label??a.status),3))}}),[[`__scopeId`,`data-v-23aa055a`]]);export{c as t}; \ No newline at end of file diff --git a/dist/assets/StatusBadge-D3ThrLrU.js b/dist/assets/StatusBadge-D3ThrLrU.js deleted file mode 100644 index 087327c..0000000 --- a/dist/assets/StatusBadge-D3ThrLrU.js +++ /dev/null @@ -1 +0,0 @@ -import{Ct as e,V as t,bt as n,et as r,it as i,lt as a,xt as o}from"./index-B2VD3zy8.js";import{t as s}from"./orderStatus-CYVblRJB.js";var c=t(i({__name:`StatusBadge`,props:{status:{}},setup(t){let i={active:{label:`فعال`,tone:`success`},inactive:{label:`غیرفعال`,tone:`neutral`},pending_check_review:{label:`در انتظار بررسی`,tone:`warning`},check_approved:{label:`تأیید شده`,tone:`success`},check_rejected:{label:`رد شده`,tone:`danger`}};return(c,l)=>(a(),r(`span`,{class:o([`admin-badge status-badge`,`admin-badge--${(n(s)[t.status]??i[t.status])?.tone??`neutral`}`])},e((n(s)[t.status]??i[t.status])?.label??t.status),3))}}),[[`__scopeId`,`data-v-23aa055a`]]);export{c as t}; \ No newline at end of file diff --git a/dist/assets/StockAlertsView-B7WDBhjL.js b/dist/assets/StockAlertsView-B7WDBhjL.js new file mode 100644 index 0000000..39a8d6c --- /dev/null +++ b/dist/assets/StockAlertsView-B7WDBhjL.js @@ -0,0 +1 @@ +import{O as e,Ot as t,T as n,Z as r,c as i,d as a,g as o,j as s,l as c,m as l,r as u,t as d}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{E as f,N as p,z as m}from"./index-CXa4EMLW.js";import{t as h}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as g}from"./BaseEmptyState-BmO9aDcK.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=d(o({__name:`StockAlertsView`,setup(o){let d=r([]),S=r(!0),C=m();async function w(){S.value=!0;try{d.value=await f.list()}catch(e){C.error(e instanceof p?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await f.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof p?e.message:`ارسال ناموفق بود`)}}return n(()=>{w()}),(n,r)=>(e(),a(`div`,_,[r[1]||=i(`header`,{class:`admin-page__head`},[i(`div`,null,[i(`h1`,null,`درخواست خبر موجودی`),i(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(e(),c(h,{key:0,variant:`table`})):d.value.length?(e(),a(`table`,v,[r[0]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`مشتری`),i(`th`,null,`محصول`),i(`th`,null,`موجودی فعلی`),i(`th`)])],-1),i(`tbody`,null,[(e(!0),a(u,null,s(d.value,n=>(e(),a(`tr`,{key:n.id},[i(`td`,null,[l(t(n.customerName)+` `,1),i(`span`,y,t(n.customerPhone),1)]),i(`td`,null,[l(t(n.productName)+` `,1),i(`span`,b,`(`+t(n.productCode)+`)`,1)]),i(`td`,null,t(n.stock??`—`),1),i(`td`,null,[i(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(n.id)},`ارسال اعلان`,8,x)])]))),128))])])):(e(),c(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/StockAlertsView-by4e-dTJ.js b/dist/assets/StockAlertsView-by4e-dTJ.js deleted file mode 100644 index 03b8991..0000000 --- a/dist/assets/StockAlertsView-by4e-dTJ.js +++ /dev/null @@ -1 +0,0 @@ -import{Ct as e,E as t,J as n,N as r,Q as i,V as a,Z as o,dt as s,et as c,it as l,lt as u,nt as d,st as f,yt as p,z as m}from"./index-B2VD3zy8.js";import{t as h}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as g}from"./BaseEmptyState-DGu6Pfui.js";var _={class:`admin-page`},v={key:2,class:`admin-table`},y={class:`muted`,dir:`ltr`},b={class:`muted`,dir:`ltr`},x=[`onClick`],S=a(l({__name:`StockAlertsView`,setup(a){let l=p([]),S=p(!0),C=m();async function w(){S.value=!0;try{l.value=await t.list()}catch(e){C.error(e instanceof r?e.message:`بارگذاری ناموفق بود`)}finally{S.value=!1}}async function T(e){try{await t.notify(e),C.success(`اعلان موجودی ارسال شد`),await w()}catch(e){C.error(e instanceof r?e.message:`ارسال ناموفق بود`)}}return f(()=>{w()}),(t,r)=>(u(),c(`div`,_,[r[1]||=o(`header`,{class:`admin-page__head`},[o(`div`,null,[o(`h1`,null,`درخواست خبر موجودی`),o(`p`,null,`مشتریانی که برای محصول ناموجود درخواست اطلاع داده‌اند`)])],-1),S.value?(u(),i(h,{key:0,variant:`table`})):l.value.length?(u(),c(`table`,v,[r[0]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`مشتری`),o(`th`,null,`محصول`),o(`th`,null,`موجودی فعلی`),o(`th`)])],-1),o(`tbody`,null,[(u(!0),c(n,null,s(l.value,t=>(u(),c(`tr`,{key:t.id},[o(`td`,null,[d(e(t.customerName)+` `,1),o(`span`,y,e(t.customerPhone),1)]),o(`td`,null,[d(e(t.productName)+` `,1),o(`span`,b,`(`+e(t.productCode)+`)`,1)]),o(`td`,null,e(t.stock??`—`),1),o(`td`,null,[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:e=>T(t.id)},`ارسال اعلان`,8,x)])]))),128))])])):(u(),i(g,{key:1,title:`درخواستی فعال نیست`}))]))}}),[[`__scopeId`,`data-v-61131544`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/SuggestionsView-DKPC0xly.js b/dist/assets/SuggestionsView-DKPC0xly.js deleted file mode 100644 index 365fb95..0000000 --- a/dist/assets/SuggestionsView-DKPC0xly.js +++ /dev/null @@ -1 +0,0 @@ -import{Ct as e,D as t,G as n,J as r,N as i,Q as a,R as o,S as s,V as c,X as l,Z as u,dt as d,et as f,g as p,gt as m,ht as h,it as g,lt as _,nt as v,rt as y,st as b,vt as x,yt as S,z as C}from"./index-B2VD3zy8.js";import{t as w}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as T}from"./BaseEmptyState-DGu6Pfui.js";import{t as E}from"./AdminSelect-BeLNl2Qz.js";var D={class:`admin-page`},O={class:`admin-page__head`},k={key:2,class:`admin-table`},A={class:`muted`,dir:`ltr`},j=[`onClick`],M={class:`field`},N={class:`field`},P={class:`field`},F=[`disabled`],I=c(g({__name:`SuggestionsView`,setup(c){let g=S([]),I=S(!0),L=S([]),R=S([]),z=S(!1),B=C(),V=x({customerId:``,productId:``,note:``}),H=l(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=l(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,n,r]=await Promise.all([t.list(),p.list(),s.list()]);g.value=e,L.value=n,R.value=r}catch(e){B.error(e instanceof i?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await t.create({customerId:V.customerId,productId:V.productId,note:V.note.trim()||void 0}),z.value=!1,V.note=``,B.success(`پیشنهاد ثبت شد`),await W()}catch(e){B.error(e instanceof i?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await t.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof i?e.message:`به‌روزرسانی ناموفق بود`)}}return b(()=>{W()}),(t,i)=>(_(),f(`div`,D,[u(`header`,O,[i[5]||=u(`div`,null,[u(`h1`,null,`پیشنهاد محصول`),u(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:i[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(_(),a(w,{key:0,variant:`table`})):g.value.length?(_(),f(`table`,k,[i[6]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`مشتری`),u(`th`,null,`محصول`),u(`th`,null,`یادداشت`),u(`th`,null,`وضعیت`),u(`th`)])],-1),u(`tbody`,null,[(_(!0),f(r,null,d(g.value,t=>(_(),f(`tr`,{key:t.id},[u(`td`,null,e(t.customerName),1),u(`td`,null,[v(e(t.productName)+` `,1),u(`span`,A,`(`+e(t.productCode)+`)`,1)]),u(`td`,null,e(t.note||`—`),1),u(`td`,null,e(t.isActive?`فعال`:`غیرفعال`),1),u(`td`,null,[u(`button`,{type:`button`,class:`link`,onClick:e=>K(t)},e(t.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(_(),a(T,{key:1,title:`پیشنهادی ثبت نشده`})),y(o,{open:z.value,title:`پیشنهاد محصول`,onClose:i[4]||=e=>z.value=!1},{footer:h(()=>[u(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:h(()=>[u(`label`,M,[i[7]||=v(`مشتری `,-1),y(E,{modelValue:V.customerId,"onUpdate:modelValue":i[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),u(`label`,N,[i[8]||=v(`محصول `,-1),y(E,{modelValue:V.productId,"onUpdate:modelValue":i[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),u(`label`,P,[i[9]||=v(`یادداشت`,-1),m(u(`textarea`,{"onUpdate:modelValue":i[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[n,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/SuggestionsView-SvmEopB3.js b/dist/assets/SuggestionsView-SvmEopB3.js new file mode 100644 index 0000000..8b44b7a --- /dev/null +++ b/dist/assets/SuggestionsView-SvmEopB3.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as r,V as i,Y as a,Z as o,c as s,d as c,g as l,h as u,j as d,l as f,m as p,r as m,s as h,t as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{D as _,N as v,R as y,S as b,W as x,g as S,z as C}from"./index-CXa4EMLW.js";import{t as w}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as T}from"./BaseEmptyState-BmO9aDcK.js";import{t as E}from"./AdminSelect-9UfEJQzN.js";var D={class:`admin-page`},O={class:`admin-page__head`},k={key:2,class:`admin-table`},A={class:`muted`,dir:`ltr`},j=[`onClick`],M={class:`field`},N={class:`field`},P={class:`field`},F=[`disabled`],I=g(l({__name:`SuggestionsView`,setup(l){let g=o([]),I=o(!0),L=o([]),R=o([]),z=o(!1),B=C(),V=a({customerId:``,productId:``,note:``}),H=h(()=>L.value.map(e=>({value:e.id,label:e.name?.trim()||e.phone}))),U=h(()=>R.value.map(e=>({value:e.id,label:`${e.name} (${e.productCode})`})));async function W(){I.value=!0;try{let[e,t,n]=await Promise.all([_.list(),S.list(),b.list()]);g.value=e,L.value=t,R.value=n}catch(e){B.error(e instanceof v?e.message:`بارگذاری ناموفق بود`)}finally{I.value=!1}}async function G(){try{await _.create({customerId:V.customerId,productId:V.productId,note:V.note.trim()||void 0}),z.value=!1,V.note=``,B.success(`پیشنهاد ثبت شد`),await W()}catch(e){B.error(e instanceof v?e.message:`ثبت ناموفق بود`)}}async function K(e){try{await _.setActive(e.id,!e.isActive),await W()}catch(e){B.error(e instanceof v?e.message:`به‌روزرسانی ناموفق بود`)}}return r(()=>{W()}),(r,a)=>(t(),c(`div`,D,[s(`header`,O,[a[5]||=s(`div`,null,[s(`h1`,null,`پیشنهاد محصول`),s(`p`,null,`پیشنهاد دستی محصول به مشتری`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:a[0]||=e=>z.value=!0},`پیشنهاد جدید`)]),I.value?(t(),f(w,{key:0,variant:`table`})):g.value.length?(t(),c(`table`,k,[a[6]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`مشتری`),s(`th`,null,`محصول`),s(`th`,null,`یادداشت`),s(`th`,null,`وضعیت`),s(`th`)])],-1),s(`tbody`,null,[(t(!0),c(m,null,d(g.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.customerName),1),s(`td`,null,[p(n(e.productName)+` `,1),s(`span`,A,`(`+n(e.productCode)+`)`,1)]),s(`td`,null,n(e.note||`—`),1),s(`td`,null,n(e.isActive?`فعال`:`غیرفعال`),1),s(`td`,null,[s(`button`,{type:`button`,class:`link`,onClick:t=>K(e)},n(e.isActive?`غیرفعال`:`فعال`),9,j)])]))),128))])])):(t(),f(T,{key:1,title:`پیشنهادی ثبت نشده`})),u(y,{open:z.value,title:`پیشنهاد محصول`,onClose:a[4]||=e=>z.value=!1},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!V.customerId||!V.productId,onClick:G},` ثبت `,8,F)]),default:e(()=>[s(`label`,M,[a[7]||=p(`مشتری `,-1),u(E,{modelValue:V.customerId,"onUpdate:modelValue":a[1]||=e=>V.customerId=e,options:H.value},null,8,[`modelValue`,`options`])]),s(`label`,N,[a[8]||=p(`محصول `,-1),u(E,{modelValue:V.productId,"onUpdate:modelValue":a[2]||=e=>V.productId=e,options:U.value},null,8,[`modelValue`,`options`])]),s(`label`,P,[a[9]||=p(`یادداشت`,-1),i(s(`textarea`,{"onUpdate:modelValue":a[3]||=e=>V.note=e,class:`admin-input`,rows:`3`},null,512),[[x,V.note]])])]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-56e3e728`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/UsersView-DIwx8h0p.js b/dist/assets/UsersView-DIwx8h0p.js deleted file mode 100644 index 040f69f..0000000 --- a/dist/assets/UsersView-DIwx8h0p.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,G as n,J as r,N as i,P as ee,Q as a,R as te,V as o,X as s,Z as c,bt as l,dt as u,et as d,gt as f,ht as p,i as ne,it as m,lt as h,nt as g,q as re,rt as _,s as v,st as ie,vt as ae,yt as y,z as oe}from"./index-B2VD3zy8.js";import{t as se}from"./AdminPageSkeleton-BJpm6oxf.js";import{t as b}from"./BaseSwitch-dp2xMemS.js";import{t as ce}from"./BaseEmptyState-DGu6Pfui.js";import{t as le}from"./AdminSelect-BeLNl2Qz.js";import{o as x}from"./adminLabels-Cz9ccm1Z.js";import{t as S}from"./ActiveSwitchCell-DIzTn08M.js";var ue={class:`users-page`},de={class:`users-page__search admin-card`},fe={key:2,class:`users-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={dir:`ltr`},ge={class:`status`},C={class:`actions`},w=[`onClick`],T={key:3,class:`compact-only admin-card-list`},E={class:`admin-card-item__header`},D={class:`admin-card-item__title`},O={class:`admin-card-item__meta`},k={dir:`ltr`},A={class:`admin-card-item__actions`},j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},_e={class:`admin-form__field`},ve=[`disabled`],ye={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},R=o(m({__name:`UsersView`,setup(o){let m=y([]),R=y(``),z=y(!0),B=y(null),V=y(null),H=y(``),U=y(!1),W=oe(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=ae(G()),xe=s(()=>B.value!==null),Se=s(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=s(()=>K.fullName.trim()&&K.phone.trim()),J=s(()=>{let e=R.value.trim();return e?m.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||x[t.role].includes(e)):m.value});async function Ce(){z.value=!0;try{m.value=await v.list()}catch(e){W.error(e instanceof i?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}ie(()=>{Ce()});function Y(){B.value=`add`,V.value=null,Object.assign(K,G()),H.value=``}function X(e){B.value=`edit`,V.value=e.id,K.fullName=e.fullName,K.phone=e.phone,K.email=e.email,K.role=e.role,K.isActive=e.isActive,H.value=``}function Z(){B.value=null,V.value=null,H.value=``}async function Q(){if(!q.value){H.value=`نام و تلفن الزامی هستند.`;return}U.value=!0;let e={fullName:K.fullName.trim(),phone:K.phone.trim(),email:K.email.trim()||void 0,role:K.role,isActive:K.isActive};try{if(B.value===`edit`&&V.value){let t=await v.update(V.value,e),n=m.value.findIndex(e=>e.id===V.value);n!==-1&&(m.value[n]={...m.value[n],...t})}else{let t=await v.create(e);m.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof i?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await v.setActive(e,t)}function we(){R.value=``}return(i,o)=>(h(),d(`div`,ue,[c(`div`,{class:`admin-page-header`},[o[6]||=c(`div`,null,[c(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),c(`div`,de,[_(ee,{name:`search`,size:18}),f(c(`input`,{"onUpdate:modelValue":o[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[n,R.value]])]),z.value?(h(),a(se,{key:0,variant:`table`})):J.value.length?(h(),d(`div`,fe,[c(`div`,pe,[c(`table`,me,[o[7]||=c(`thead`,null,[c(`tr`,null,[c(`th`,null,`نام`),c(`th`,null,`تلفن`),c(`th`,null,`ایمیل`),c(`th`,null,`نقش`),c(`th`,{class:`status`},`وضعیت`),c(`th`,null,`آخرین ورود`),c(`th`,{class:`actions`},`عملیات`)])],-1),c(`tbody`,null,[(h(!0),d(r,null,u(J.value,e=>(h(),d(`tr`,{key:e.id},[c(`td`,null,t(e.fullName),1),c(`td`,null,t(e.phone),1),c(`td`,he,t(e.email),1),c(`td`,null,t(l(x)[e.role]),1),c(`td`,ge,[_(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`td`,null,t(e.lastLoginAt?l(ne)(e.lastLoginAt):`—`),1),c(`td`,C,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(h(),a(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:p(()=>[R.value.trim()?(h(),d(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(h(),d(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کاربر `))]),_:1},8,[`title`,`description`])),!z.value&&J.value.length?(h(),d(`div`,T,[(h(!0),d(r,null,u(J.value,e=>(h(),d(`article`,{key:e.id,class:`admin-card-item`},[c(`div`,E,[c(`p`,D,t(e.fullName),1),_(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),c(`div`,O,[c(`span`,null,t(l(x)[e.role]),1),c(`span`,null,t(e.phone),1),c(`span`,k,t(e.email),1)]),c(`div`,A,[c(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):e(``,!0),_(te,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:p(()=>[c(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),c(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(h(),d(`span`,ye)):e(``,!0),g(` `+t(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:p(()=>[c(`form`,{class:`admin-form`,onSubmit:re(Q,[`prevent`])},[H.value?(h(),d(`p`,M,t(H.value),1)):e(``,!0),c(`div`,N,[o[8]||=c(`label`,{for:`user-name`},[g(`نام کامل `),c(`span`,{class:`admin-form__required`},`*`)],-1),f(c(`input`,{id:`user-name`,"onUpdate:modelValue":o[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[n,K.fullName]])]),c(`div`,P,[c(`div`,F,[o[9]||=c(`label`,{for:`user-phone`},[g(`تلفن `),c(`span`,{class:`admin-form__required`},`*`)],-1),f(c(`input`,{id:`user-phone`,"onUpdate:modelValue":o[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[n,K.phone]])]),c(`div`,I,[o[10]||=c(`label`,{for:`user-email`},`ایمیل`,-1),f(c(`input`,{id:`user-email`,"onUpdate:modelValue":o[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[n,K.email]])])]),c(`div`,L,[o[11]||=c(`label`,null,`نقش`,-1),_(le,{modelValue:K.role,"onUpdate:modelValue":o[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),c(`div`,_e,[_(b,{modelValue:K.isActive,"onUpdate:modelValue":o[5]||=e=>K.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-345a9659`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/UsersView-OSVbK-od.js b/dist/assets/UsersView-OSVbK-od.js new file mode 100644 index 0000000..6e7376d --- /dev/null +++ b/dist/assets/UsersView-OSVbK-od.js @@ -0,0 +1 @@ +import{B as e,O as t,Ot as n,T as ee,V as r,Y as i,Z as a,at as o,c as s,d as c,g as te,h as l,j as u,l as d,m as f,r as p,s as m,t as h,u as g}from"./_plugin-vue_export-helper-OaxA6A2f.js";import{K as ne,N as _,P as re,R as ie,W as v,i as y,s as b,z as ae}from"./index-CXa4EMLW.js";import{t as oe}from"./AdminPageSkeleton-CTgUqaAu.js";import{t as se}from"./BaseSwitch-TV5Yvtf7.js";import{t as ce}from"./BaseEmptyState-BmO9aDcK.js";import{t as le}from"./AdminSelect-9UfEJQzN.js";import{o as x}from"./adminLabels-Cz9ccm1Z.js";import{t as S}from"./ActiveSwitchCell-DJZQHZ-8.js";var ue={class:`users-page`},de={class:`users-page__search admin-card`},fe={key:2,class:`users-page__table admin-card desktop-only`},pe={class:`admin-table-wrap`},me={class:`admin-table`},he={dir:`ltr`},ge={class:`status`},C={class:`actions`},w=[`onClick`],T={key:3,class:`compact-only admin-card-list`},E={class:`admin-card-item__header`},D={class:`admin-card-item__title`},O={class:`admin-card-item__meta`},k={dir:`ltr`},A={class:`admin-card-item__actions`},j=[`onClick`],M={key:0,class:`admin-form__error`,role:`alert`},N={class:`admin-form__field`},P={class:`admin-form__row`},F={class:`admin-form__field`},I={class:`admin-form__field`},L={class:`admin-form__field`},_e={class:`admin-form__field`},ve=[`disabled`],ye={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},R=h(te({__name:`UsersView`,setup(te){let h=a([]),R=a(``),z=a(!0),B=a(null),V=a(null),H=a(``),U=a(!1),W=ae(),be=[{value:`admin`,label:`مدیر سیستم`},{value:`sales`,label:`واحد فروش`},{value:`finance`,label:`واحد مالی`},{value:`warehouse`,label:`انبار`}],G=()=>({fullName:``,phone:``,email:``,role:`sales`,isActive:!0}),K=i(G()),xe=m(()=>B.value!==null),Se=m(()=>B.value===`edit`?`ویرایش کاربر`:`افزودن کاربر`),q=m(()=>K.fullName.trim()&&K.phone.trim()),J=m(()=>{let e=R.value.trim();return e?h.value.filter(t=>t.fullName.includes(e)||t.phone.includes(e)||t.email.includes(e)||x[t.role].includes(e)):h.value});async function Ce(){z.value=!0;try{h.value=await b.list()}catch(e){W.error(e instanceof _?e.message:`بارگذاری کاربران انجام نشد.`)}finally{z.value=!1}}ee(()=>{Ce()});function Y(){B.value=`add`,V.value=null,Object.assign(K,G()),H.value=``}function X(e){B.value=`edit`,V.value=e.id,K.fullName=e.fullName,K.phone=e.phone,K.email=e.email,K.role=e.role,K.isActive=e.isActive,H.value=``}function Z(){B.value=null,V.value=null,H.value=``}async function Q(){if(!q.value){H.value=`نام و تلفن الزامی هستند.`;return}U.value=!0;let e={fullName:K.fullName.trim(),phone:K.phone.trim(),email:K.email.trim()||void 0,role:K.role,isActive:K.isActive};try{if(B.value===`edit`&&V.value){let t=await b.update(V.value,e),n=h.value.findIndex(e=>e.id===V.value);n!==-1&&(h.value[n]={...h.value[n],...t})}else{let t=await b.create(e);h.value.push(t)}W.success(B.value===`edit`?`اطلاعات کاربر به‌روزرسانی شد.`:`کاربر جدید ثبت شد.`),Z()}catch(e){W.error(e instanceof _?e.message:`ذخیره کاربر انجام نشد.`)}finally{U.value=!1}}async function $(e,t){await b.setActive(e,t)}function we(){R.value=``}return(ee,i)=>(t(),c(`div`,ue,[s(`div`,{class:`admin-page-header`},[i[6]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`کاربران و دسترسی‌ها`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},` افزودن کاربر `)]),s(`div`,de,[l(re,{name:`search`,size:18}),r(s(`input`,{"onUpdate:modelValue":i[0]||=e=>R.value=e,type:`search`,class:`users-page__search-input`,placeholder:`جستجو در نام، تلفن، ایمیل...`},null,512),[[v,R.value]])]),z.value?(t(),d(oe,{key:0,variant:`table`})):J.value.length?(t(),c(`div`,fe,[s(`div`,pe,[s(`table`,me,[i[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`نام`),s(`th`,null,`تلفن`),s(`th`,null,`ایمیل`),s(`th`,null,`نقش`),s(`th`,{class:`status`},`وضعیت`),s(`th`,null,`آخرین ورود`),s(`th`,{class:`actions`},`عملیات`)])],-1),s(`tbody`,null,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`tr`,{key:e.id},[s(`td`,null,n(e.fullName),1),s(`td`,null,n(e.phone),1),s(`td`,he,n(e.email),1),s(`td`,null,n(o(x)[e.role]),1),s(`td`,ge,[l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`td`,null,n(e.lastLoginAt?o(y)(e.lastLoginAt):`—`),1),s(`td`,C,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,w)])]))),128))])])])])):(t(),d(ce,{key:1,class:`admin-card`,icon:`users`,title:R.value.trim()?`نتیجه‌ای یافت نشد`:`کاربری ثبت نشده`,description:R.value.trim()?`عبارت جستجو را تغییر دهید یا فیلترها را پاک کنید.`:`برای شروع، اولین کاربر را ثبت کنید.`},{default:e(()=>[R.value.trim()?(t(),c(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:we},` پاک کردن جستجو `)):(t(),c(`button`,{key:1,type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` افزودن کاربر `))]),_:1},8,[`title`,`description`])),!z.value&&J.value.length?(t(),c(`div`,T,[(t(!0),c(p,null,u(J.value,e=>(t(),c(`article`,{key:e.id,class:`admin-card-item`},[s(`div`,E,[s(`p`,D,n(e.fullName),1),l(S,{id:e.id,modelValue:e.isActive,"onUpdate:modelValue":t=>e.isActive=t,"entity-name":e.fullName,"entity-type":`کاربر`,persist:$},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`entity-name`])]),s(`div`,O,[s(`span`,null,n(o(x)[e.role]),1),s(`span`,null,n(e.phone),1),s(`span`,k,n(e.email),1)]),s(`div`,A,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,j)])]))),128))])):g(``,!0),l(ie,{open:xe.value,title:Se.value,size:`lg`,onClose:Z},{footer:e(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||U.value,onClick:Q},[U.value?(t(),c(`span`,ye)):g(``,!0),f(` `+n(B.value===`edit`?`ذخیره تغییرات`:`ثبت کاربر`),1)],8,ve)]),default:e(()=>[s(`form`,{class:`admin-form`,onSubmit:ne(Q,[`prevent`])},[H.value?(t(),c(`p`,M,n(H.value),1)):g(``,!0),s(`div`,N,[i[8]||=s(`label`,{for:`user-name`},[f(`نام کامل `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-name`,"onUpdate:modelValue":i[1]||=e=>K.fullName=e,type:`text`,class:`admin-input`},null,512),[[v,K.fullName]])]),s(`div`,P,[s(`div`,F,[i[9]||=s(`label`,{for:`user-phone`},[f(`تلفن `),s(`span`,{class:`admin-form__required`},`*`)],-1),r(s(`input`,{id:`user-phone`,"onUpdate:modelValue":i[2]||=e=>K.phone=e,type:`tel`,class:`admin-input`,inputmode:`tel`,dir:`ltr`},null,512),[[v,K.phone]])]),s(`div`,I,[i[10]||=s(`label`,{for:`user-email`},`ایمیل`,-1),r(s(`input`,{id:`user-email`,"onUpdate:modelValue":i[3]||=e=>K.email=e,type:`email`,class:`admin-input`,dir:`ltr`},null,512),[[v,K.email]])])]),s(`div`,L,[i[11]||=s(`label`,null,`نقش`,-1),l(le,{modelValue:K.role,"onUpdate:modelValue":i[4]||=e=>K.role=e,block:``,"aria-label":`نقش کاربر`,options:be},null,8,[`modelValue`])]),s(`div`,_e,[l(se,{modelValue:K.isActive,"onUpdate:modelValue":i[5]||=e=>K.isActive=e,label:`وضعیت`},null,8,[`modelValue`])])],32)]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-345a9659`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/_plugin-vue_export-helper-OaxA6A2f.js b/dist/assets/_plugin-vue_export-helper-OaxA6A2f.js new file mode 100644 index 0000000..d3b8267 --- /dev/null +++ b/dist/assets/_plugin-vue_export-helper-OaxA6A2f.js @@ -0,0 +1 @@ +function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,T=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ee=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},te=/-\w/g,E=ee(e=>e.replace(te,e=>e.slice(1).toUpperCase())),ne=/\B([A-Z])/g,D=ee(e=>e.replace(ne,`-$1`).toLowerCase()),re=ee(e=>e.charAt(0).toUpperCase()+e.slice(1)),ie=ee(e=>e?`on${re(e)}`:``),O=(e,t)=>!Object.is(e,t),ae=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},oe=e=>{let t=parseFloat(e);return isNaN(t)?e:t},se=e=>{let t=g(e)?Number(e):NaN;return isNaN(t)?e:t},ce,le=()=>ce||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ue(e){if(d(e)){let t={};for(let n=0;n{if(e){let n=e.split(fe);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function he(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;nbe(e,t))}var Se=e=>!!(e&&e.__v_isRef===!0),Ce=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?Se(e)?Ce(e.value):JSON.stringify(e,we,2):String(e),we=(e,t)=>Se(t)?we(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Te(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Te(e))}:_(t)?Te(t):v(t)&&!d(t)&&!C(t)?String(t):t,Te=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e;function Ee(e){return e==null?`initial`:typeof e==`string`?e===``?` `:e:String(e)}var A,De=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&A&&(A.active?(this.parent=A,this.index=(A.scopes||(A.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(A===this)A=this.prevScope;else{let e=A;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Fe){let e=Fe;for(Fe=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Pe;){let t=Pe;for(Pe=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function ze(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Be(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ue(r),We(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Ve(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(He(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function He(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ye)||(e.globalVersion=Ye,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ve(e))))return;e.flags|=2;let t=e.dep,n=j,r=M;j=e,M=!0;try{ze(e);let n=e.fn(e._value);(t.version===0||O(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{j=n,M=r,Be(e),e.flags&=-3}}function Ue(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Ue(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function We(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var M=!0,Ge=[];function Ke(){Ge.push(M),M=!1}function qe(){let e=Ge.pop();M=e===void 0||e}function Je(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=j;j=void 0;try{t()}finally{j=e}}}var Ye=0,Xe=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ze=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!j||!M||j===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==j)t=this.activeLink=new Xe(j,this),j.deps?(t.prevDep=j.depsTail,j.depsTail.nextDep=t,j.depsTail=t):j.deps=j.depsTail=t,Qe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=j.depsTail,t.nextDep=void 0,j.depsTail.nextDep=t,j.depsTail=t,j.deps===t&&(j.deps=e)}return t}trigger(e){this.version++,Ye++,this.notify(e)}notify(e){Le();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Re()}}};function Qe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Qe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var $e=new WeakMap,et=Symbol(``),tt=Symbol(``),nt=Symbol(``);function N(e,t,n){if(M&&j){let t=$e.get(e);t||$e.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ze),r.map=t,r.key=n),r.track()}}function rt(e,t,n,r,i,a){let o=$e.get(e);if(!o){Ye++;return}let s=e=>{e&&e.trigger()};if(Le(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===nt||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(nt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(et)),f(e)&&s(o.get(tt)));break;case`delete`:i||(s(o.get(et)),f(e)&&s(o.get(tt)));break;case`set`:f(e)&&s(o.get(et))}}Re()}function it(e,t){let n=$e.get(e);return n&&n.get(t)}function at(e){let t=I(e);return t===e?t:(N(t,`iterate`,nt),F(e)?t:t.map(L))}function ot(e){return N(e=I(e),`iterate`,nt),e}function P(e,t){return Gt(e)?Jt(Wt(e)?L(t):t):L(t)}var st={__proto__:null,[Symbol.iterator](){return ct(this,Symbol.iterator,e=>P(this,e))},concat(...e){return at(this).concat(...e.map(e=>d(e)?at(e):e))},entries(){return ct(this,`entries`,e=>(e[1]=P(this,e[1]),e))},every(e,t){return ut(this,`every`,e,t,void 0,arguments)},filter(e,t){return ut(this,`filter`,e,t,e=>e.map(e=>P(this,e)),arguments)},find(e,t){return ut(this,`find`,e,t,e=>P(this,e),arguments)},findIndex(e,t){return ut(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ut(this,`findLast`,e,t,e=>P(this,e),arguments)},findLastIndex(e,t){return ut(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ut(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ft(this,`includes`,e)},indexOf(...e){return ft(this,`indexOf`,e)},join(e){return at(this).join(e)},lastIndexOf(...e){return ft(this,`lastIndexOf`,e)},map(e,t){return ut(this,`map`,e,t,void 0,arguments)},pop(){return pt(this,`pop`)},push(...e){return pt(this,`push`,e)},reduce(e,...t){return dt(this,`reduce`,e,t)},reduceRight(e,...t){return dt(this,`reduceRight`,e,t)},shift(){return pt(this,`shift`)},some(e,t){return ut(this,`some`,e,t,void 0,arguments)},splice(...e){return pt(this,`splice`,e)},toReversed(){return at(this).toReversed()},toSorted(e){return at(this).toSorted(e)},toSpliced(...e){return at(this).toSpliced(...e)},unshift(...e){return pt(this,`unshift`,e)},values(){return ct(this,`values`,e=>P(this,e))}};function ct(e,t,n){let r=ot(e),i=r[t]();return r!==e&&!F(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var lt=Array.prototype;function ut(e,t,n,r,i,a){let o=ot(e),s=o!==e&&!F(e),c=o[t];if(c!==lt[t]){let t=c.apply(e,a);return s?L(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,P(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function dt(e,t,n,r){let i=ot(e),a=i!==e&&!F(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=P(e,t)),n.call(this,t,P(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?P(e,c):c}function ft(e,t,n){let r=I(e);N(r,`iterate`,nt);let i=r[t](...n);return(i===-1||i===!1)&&Kt(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function pt(e,t,n=[]){Ke(),Le();let r=I(e)[t].apply(e,n);return Re(),qe(),r}var mt=e(`__proto__,__v_isRef,__isVue`),ht=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function gt(e){_(e)||(e=String(e));let t=I(this);return N(t,`has`,e),t.hasOwnProperty(e)}var _t=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Lt:It:i?Ft:Pt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=st[t]))return e;if(t===`hasOwnProperty`)return gt}let o=Reflect.get(e,t,R(e)?e:n);if((_(t)?ht.has(t):mt(t))||(r||N(e,`get`,t),i))return o;if(R(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Vt(e):e}return v(o)?r?Vt(o):zt(o):o}},vt=class extends _t{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=Gt(i);if(!F(n)&&!Gt(n)&&(i=I(i),n=I(n)),!a&&R(i)&&!R(n))return e||(i.value=n),!0}let o=a?Number(t)e,Tt=e=>Reflect.getPrototypeOf(e);function Et(e,t,n){return function(...r){let i=this.__v_raw,a=I(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?wt:t?Jt:L;return!t&&N(a,`iterate`,l?tt:et),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Dt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Ot(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(O(n,a)&&N(i,`get`,n),N(i,`get`,a));let{has:o}=Tt(i),s=t?wt:e?Jt:L;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&N(I(t),`iterate`,et),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(O(t,i)&&N(r,`has`,t),N(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=I(a),s=t?wt:e?Jt:L;return!e&&N(o,`iterate`,et),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:Dt(`add`),set:Dt(`set`),delete:Dt(`delete`),clear:Dt(`clear`)}:{add(e){let n=I(this),r=Tt(n),i=I(e),a=!t&&!F(e)&&!Gt(e)?i:e;return r.has.call(n,a)||O(e,a)&&r.has.call(n,e)||O(i,a)&&r.has.call(n,i)||(n.add(a),rt(n,`add`,a,a)),this},set(e,n){!t&&!F(n)&&!Gt(n)&&(n=I(n));let r=I(this),{has:i,get:a}=Tt(r),o=i.call(r,e);o||=(e=I(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?O(n,s)&&rt(r,`set`,e,n,s):rt(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=Tt(t),i=n.call(t,e);i||=(e=I(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&rt(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&rt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Et(r,e,t)}),n}function kt(e,t){let n=Ot(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(u(n,r)&&r in t?n:t,r,i)}var At={get:kt(!1,!1)},jt={get:kt(!1,!0)},Mt={get:kt(!0,!1)},Nt={get:kt(!0,!0)},Pt=new WeakMap,Ft=new WeakMap,It=new WeakMap,Lt=new WeakMap;function Rt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function zt(e){return Gt(e)?e:Ut(e,!1,bt,At,Pt)}function Bt(e){return Ut(e,!1,St,jt,Ft)}function Vt(e){return Ut(e,!0,xt,Mt,It)}function Ht(e){return Ut(e,!0,Ct,Nt,Lt)}function Ut(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Rt(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Wt(e){return Gt(e)?Wt(e.__v_raw):!!(e&&e.__v_isReactive)}function Gt(e){return!!(e&&e.__v_isReadonly)}function F(e){return!!(e&&e.__v_isShallow)}function Kt(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function qt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&k(e,`__v_skip`,!0),e}var L=e=>v(e)?zt(e):e,Jt=e=>v(e)?Vt(e):e;function R(e){return e?e.__v_isRef===!0:!1}function Yt(e){return Zt(e,!1)}function Xt(e){return Zt(e,!0)}function Zt(e,t){return R(e)?e:new Qt(e,t)}var Qt=class{constructor(e,t){this.dep=new Ze,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:L(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||F(e)||Gt(e);e=n?e:I(e),O(e,t)&&(this._rawValue=e,this._value=n?e:L(e),this.dep.trigger())}};function $t(e){return R(e)?e.value:e}function en(e){return h(e)?e():$t(e)}var tn={get:(e,t,n)=>t===`__v_raw`?e:$t(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return R(i)&&!R(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function nn(e){return Wt(e)?e:new Proxy(e,tn)}var rn=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new Ze,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}};function an(e){return new rn(e)}function on(e){let t=d(e)?Array(e.length):{};for(let n in e)t[n]=un(e,n);return t}var sn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=_(t)?t:String(t),this._raw=I(e);let r=!0,i=e;if(!d(e)||_(this._key)||!w(this._key))do r=!Kt(i)||F(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=$t(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&R(this._raw[this._key])){let t=this._object[this._key];if(R(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return it(this._raw,this._key)}},cn=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function ln(e,t,n){return R(e)?e:h(e)?new cn(e):v(e)&&arguments.length>1?un(e,t,n):Yt(e)}function un(e,t,n){return new sn(e,t,n)}var dn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ze(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ye-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&j!==this)return Ie(this,!0),!0}get value(){let e=this.dep.track();return He(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function fn(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new dn(r,i,n)}var pn={},mn=new WeakMap,hn=void 0;function gn(e,t=!1,n=hn){if(n){let t=mn.get(n);t||mn.set(n,t=[]),t.push(e)}}function _n(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:F(e)||o===!1||o===0?vn(e,1):vn(e),m,g,_,v,y=!1,b=!1;if(R(e)?(g=()=>e.value,y=F(e)):Wt(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Wt(e)||F(e)),g=()=>e.map(e=>{if(R(e))return e.value;if(Wt(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){Ke();try{_()}finally{qe()}}let t=hn;hn=m;try{return f?f(e,3,[v]):e(v)}finally{hn=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>vn(e(),t)}let x=ke(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(pn):pn,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let t=m.run();if(e||o||y||(b?t.some((e,t)=>O(e,C[t])):O(t,C))){_&&_();let e=hn;hn=m;try{let e=[t,C===pn?void 0:b&&C[0]===pn?[]:C,v];C=t,f?f(n,3,e):n(...e)}finally{hn=e}}}else m.run()};return u&&u(w),m=new Me(g),m.scheduler=l?()=>l(w,!1):w,v=e=>gn(e,!1,m),_=m.onStop=()=>{let e=mn.get(m);if(e){if(f)f(e,4);else for(let t of e)t();mn.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function vn(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,R(e))vn(e.value,t,n);else if(d(e))for(let r=0;r{vn(e,t,n)});else if(C(e)){for(let r in e)vn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&vn(e[r],t,n)}return e}function yn(e,t,n,r){try{return r?e(...r):e()}catch(e){bn(e,t,n)}}function z(e,t,n,r){if(h(e)){let i=yn(e,t,n,r);return i&&y(i)&&i.catch(e=>{bn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a>>1,i=B[r],a=Pn(i);a=Pn(n)?B.push(e):B.splice(On(t),0,e),e.flags|=1,An()}}function An(){En||=Tn.then(Fn)}function jn(e){d(e)?Sn.push(...e):Cn&&e.id===-1?Cn.splice(wn+1,0,e):e.flags&1||(Sn.push(e),e.flags|=1),An()}function Mn(e,t,n=V+1){for(;nPn(e)-Pn(t));if(Sn.length=0,Cn){Cn.push(...e);return}for(Cn=e,wn=0;wne.id==null?e.flags&2?-1:1/0:e.id;function Fn(e){try{for(V=0;V{r._d&&ha(-1);let i=Ln(t),a=da.length,o;try{o=e(...n)}finally{for(let e=da.length;e>a;e--)pa();Ln(i),r._d&&ha(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function zn(e,n){if(H===null)return e;let r=Za(H),i=e.dirs||=[];for(let e=0;e1)return n&&h(t)?t.call(r&&r.proxy):t}}function Un(){return!!(Ia()||bi)}var Wn=Symbol.for(`v-scx`),Gn=()=>Hn(Wn);function Kn(e,t){return Jn(e,null,t)}function qn(e,t,n){return Jn(e,t,n)}function Jn(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(Ha){if(c===`sync`){let e=Gn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=$;u.call=(e,t,n)=>z(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{K(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():kn(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=_n(e,n,u);return Ha&&(f?f.push(h):d&&h()),h}function Yn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?Xn(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=za(this),s=Jn(i,a.bind(r),n);return o(),s}function Xn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,er=e=>e&&(e.disabled||e.disabled===``),tr=e=>e&&(e.defer||e.defer===``),nr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,rr=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,ir=(e,t)=>{let n=e&&e.to;return g(n)?t?t(n):null:n},ar={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=er(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=er(e.props),r=e.target=ir(e.props,m),a=ur(r,e,h,p);r&&(o!==`svg`&&nr(r)?o=`svg`:o!==`mathml`&&rr(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),lr(e,!1)))},S=e=>{let t=()=>{if(Zn.get(e)===t){if(Zn.delete(e),er(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),lr(e,!0)}x(e)}};Zn.set(e,t),K(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),tr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),lr(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=Zn.get(e);if(u){u.flags|=8,Zn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=er(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||nr(p)?o=`svg`:(o===`mathml`||rr(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),na(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):or(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=ir(t.props,m);e&&(t.target=e,or(t,e,null,l,0))}else g&&or(t,p,h,l,1);lr(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=er(f),m=a||!p,h=Zn.get(e);if(h&&(h.flags|=8,Zn.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e{e.isMounted=!0}),Ir(()=>{e.isUnmounting=!0}),e}var W=[Function,Array],pr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:W,onEnter:W,onAfterEnter:W,onEnterCancelled:W,onBeforeLeave:W,onLeave:W,onAfterLeave:W,onLeaveCancelled:W,onBeforeAppear:W,onAppear:W,onAfterAppear:W,onAppearCancelled:W};function mr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=mr(n,e),C=(e,t)=>{e&&z(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),d(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[U]&&t[U](!0);let i=S[x];i&&ba(e,i)&&i.el[U]&&i.el[U](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=f;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||f;else return;let s=!1;t[dr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[dr]=void 0)};let c=t[dr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[dr]&&t[dr](!0),n.isUnmounting)return r();C(p,[t]);let a=!1;t[U]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[U]=void 0,S[i]===e&&delete S[i])};let o=t[U].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=hr(e,t,n,r,i);return i&&i(a),a}};return T}function gr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,gr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function _r(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eSr(e,n&&(d(n)?n[t]:n),r,a,o));return}if(wr(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Sr(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?Za(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=I(v),b=v===t?i:e=>!br(_,e)&&u(y,e),x=(e,t)=>!(t&&br(_,t));if(m!=null&&m!==p){if(Cr(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(R(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))yn(p,f,12,[l,_]);else{let t=g(p),n=R(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),xr.delete(e)};t.id=-1,xr.set(e,t),K(t,r)}else Cr(e),i()}}}function Cr(e){let t=xr.get(e);t&&(t.flags|=8,xr.delete(e))}le().requestIdleCallback,le().cancelIdleCallback;var wr=e=>!!e.type.__asyncLoader,Tr=e=>e.type.__isKeepAlive;function Er(e,t){Or(e,`a`,t)}function Dr(e,t){Or(e,`da`,t)}function Or(e,t,n=$){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Ar(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Tr(e.parent.vnode)&&kr(r,t,n,e),e=e.parent}}function kr(e,t,n,r){let i=Ar(t,e,r,!0);Lr(()=>{c(r[t],i)},n)}function Ar(e,t,n=$,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Ke();let i=za(n),a=z(t,n,e,r);return i(),qe(),a};return r?i.unshift(a):i.push(a),a}}var jr=e=>(t,n=$)=>{(!Ha||e===`sp`)&&Ar(e,(...e)=>t(...e),n)},Mr=jr(`bm`),Nr=jr(`m`),Pr=jr(`bu`),Fr=jr(`u`),Ir=jr(`bum`),Lr=jr(`um`),Rr=jr(`sp`),zr=jr(`rtg`),Br=jr(`rtc`);function Vr(e,t=$){Ar(`ec`,e,t)}var Hr=`components`;function Ur(e,t){return Gr(Hr,e,!0,t)||e}var Wr=Symbol.for(`v-ndc`);function Gr(e,t,n=!0,r=!1){let i=H||$;if(i){let n=i.type;if(e===Hr){let e=Qa(n,!1);if(e&&(e===t||e===E(t)||e===re(E(t))))return n}let a=Kr(i[e]||n[e],t)||Kr(i.appContext[e],t);return!a&&r?n:a}}function Kr(e,t){return e&&(e[t]||e[E(t)]||e[re(E(t))])}function qr(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Wt(e),r=!1,s=!1;n&&(r=!F(e),s=Gt(e),e=ot(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r0;return t!=="default"&&(e.name=t),fa(),va(q,null,[X(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let c=da.length;fa();let l;try{let i=o&&Yr(o(n)),s=n.key||a||i&&i.key;l=va(q,{key:(s&&!_(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=da.length;e>c;e--)pa();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&l.scopeId&&(l.slotScopeIds=[l.scopeId+`-s`]),l}function Yr(e){return e.some(e=>!ya(e)||!(e.type===J||e.type===q&&!Yr(e.children)))?e:null}var Xr=e=>e?Va(e)?Za(e):Xr(e.parent):null,Zr=s(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Xr(e.parent),$root:e=>Xr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ci(e),$forceUpdate:e=>e.f||=()=>{kn(e.update)},$nextTick:e=>e.n||=Dn.bind(e.proxy),$watch:e=>Yn.bind(e)}),Qr=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),$r={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(Qr(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else ri&&(s[n]=0)}let d=Zr[n],f,p;if(d)return n===`$attrs`&&N(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return Qr(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||Qr(n,c)||u(o,c)||u(i,c)||u(Zr,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function ei(){return ti(`useAttrs`).attrs}function ti(e){let t=Ia();return t.setupContext||=Xa(t)}function ni(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var ri=!0;function ii(e){let t=ci(e),n=e.proxy,i=e.ctx;ri=!1,t.beforeCreate&&oi(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:ee,renderTriggered:te,errorCaptured:E,serverPrefetch:ne,expose:D,inheritAttrs:re,components:ie,directives:O,filters:ae}=t;if(u&&ai(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=zt(t))}if(ri=!0,o)for(let e in o){let t=o[e],a=eo({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)si(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Vn(t,e[t])})}f&&oi(f,e,`c`);function k(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(k(Mr,p),k(Nr,m),k(Pr,g),k(Fr,_),k(Er,y),k(Dr,b),k(Vr,E),k(Br,ee),k(zr,te),k(Ir,S),k(Lr,w),k(Rr,ne),d(D))if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===r&&(e.render=T),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),O&&(e.directives=O),ne&&yr(e)}function ai(e,t,n=r){d(e)&&(e=pi(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?Hn(r.from||n,r.default,!0):Hn(r.from||n):Hn(r),R(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function oi(e,t,n){z(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function si(e,t,n,r){let i=r.includes(`.`)?Xn(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&qn(i,n)}else if(h(e))qn(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>si(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&qn(i,r,e)}}function ci(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>li(c,e,o,!0)),li(c,t,o)),v(t)&&a.set(t,c),c}function li(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&li(e,a,n,!0),i&&i.forEach(t=>li(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=ui[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var ui={data:di,props:hi,emits:hi,methods:mi,computed:mi,beforeCreate:G,created:G,beforeMount:G,mounted:G,beforeUpdate:G,updated:G,beforeDestroy:G,beforeUnmount:G,destroyed:G,unmounted:G,activated:G,deactivated:G,errorCaptured:G,serverPrefetch:G,components:mi,directives:mi,watch:gi,provide:di,inject:fi};function di(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function fi(e,t){return mi(pi(e),pi(t))}function pi(e){if(d(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${E(t)}Modifiers`]||e[`${D(t)}Modifiers`];function Si(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&xi(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(oe)));let c,l=i[c=ie(n)]||i[c=ie(E(n))];!l&&o&&(l=i[c=ie(D(n))]),l&&z(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,z(u,e,6,a)}}var Ci=new WeakMap;function wi(e,t,n=!1){let r=n?Ci:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=wi(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function Ti(e,t){return!e||!a(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,D(t))||u(e,t))}function Ei(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=Ln(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Z(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Z(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:Di(c)}}catch(t){da.length=0,bn(t,e,1),v=X(J)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Oi(y,a)),b=Ea(b,y,!1,!0))}return n.dirs&&(b=Ea(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&gr(b,n.transition),v=b,Ln(_),v}var Di=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Oi=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function ki(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ai(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(Ni),Fi=e=>Object.getPrototypeOf(e)===Ni;function Ii(e,t,n,r=!1){let i={},a=Pi();e.propsDefaults=Object.create(null),Ri(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Bt(i):e.type.props?i:a,e.attrs=a}function Li(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=I(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{p=!0;let[t,n]=Vi(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,Wi=e=>d(e)?e.map(Z):[Z(e)],Gi=(e,t,n)=>{if(t._n)return t;let r=Rn((...e)=>Wi(t(...e)),n);return r._c=!1,r},Ki=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Ui(n))continue;let i=e[n];if(h(i))t[n]=Gi(n,i,r);else if(i!=null){let e=Wi(i);t[n]=()=>e}}},qi=(e,t)=>{let n=Wi(t);e.slots.default=()=>n},Ji=(e,t,n)=>{for(let r in t)(n||!Ui(r))&&(e[r]=t[r])},Yi=(e,t,n)=>{let r=e.slots=Pi();if(e.vnode.shapeFlag&32){let e=t._;e?(Ji(r,t,n),n&&k(r,`_`,e,!0)):Ki(t,r)}else t&&qi(e,t)},Xi=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:Ji(a,n,r):(o=!n.$stable,Ki(n,a)),s=n}else n&&(qi(e,n),s={default:1});if(o)for(let e in a)!Ui(e)&&s[e]==null&&delete a[e]},K=ca;function Zi(e){return Qi(e)}function Qi(e,i){let a=le();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!ba(e,t)&&(r=ye(e),me(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case la:y(e,t,n,r);break;case J:b(e,t,n,r);break;case ua:e??x(t,n,r,o);break;case q:ie(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,Se)}u!=null&&i?Sr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Sr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ne(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&E(e.children,d,null,r,i,$i(e,a),s,u),_&&Bn(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!T(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Q(f,r,e)}_&&Bn(e,null,r,`beforeMount`);let v=ta(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&K(()=>{try{f&&Q(f,r,e),v&&g.enter(d),_&&Bn(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&ea(r,!1),(g=h.onVnodeBeforeUpdate)&&Q(g,r,n,e),f&&Bn(n,e,r,`beforeUpdate`),r&&ea(r,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?D(e.dynamicChildren,d,l,r,i,$i(n,a),o):s||ue(e,n,l,null,r,i,$i(n,a),o,!1),u>0){if(u&16)re(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t{g&&Q(g,r,n,e),f&&Bn(n,e,r,`updated`)},i)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(n!==r){if(n!==t)for(let t in n)!T(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(T(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},ie=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),E(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&na(e,t,!0)):ue(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):k(t,n,r,i,a,o,c):oe(e,t,c)},k=(e,t,n,r,i,a,o)=>{let s=e.component=Fa(e,r,i);if(Tr(e)&&(s.ctx.renderer=Se),Ua(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,se,o),!e.el){let r=s.subTree=X(J);b(null,r,t,n),e.placeholder=r.el}}else se(s,e,t,n,i,a,o)},oe=(e,t,n)=>{let r=t.component=e.component;if(ki(e,t,n))if(r.asyncDep&&!r.asyncResolved){ce(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},se=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=ia(e);if(n){t&&(t.el=c.el,ce(e,t,o)),n.asyncDep.then(()=>{K(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;ea(e,!1),t?(t.el=c.el,ce(e,t,o)):t=c,n&&ae(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Q(d,s,t,c),ea(e,!0);let f=Ei(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ye(p),e,i,a),t.el=f.el,u===null&&Mi(e,f.el),r&&K(r,i),(d=t.props&&t.props.onVnodeUpdated)&&K(()=>Q(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=wr(t);if(ea(e,!1),l&&ae(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Q(o,d,t),ea(e,!0),s&&we){let t=()=>{e.subTree=Ei(e),we(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Ei(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&K(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;K(()=>Q(o,d,e),i)}(t.shapeFlag&256||d&&wr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&K(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Me(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>kn(u),ea(e,!0),l()},ce=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Li(e,t.props,r,n),Xi(e,t.children,n),Ke(),Mn(e),qe()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){fe(l,d,n,r,i,a,o,s,c);return}if(f&256){de(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&ve(l,i,a),d!==l&&p(n,d)):u&16?m&16?fe(l,d,n,r,i,a,o,s,c):ve(l,i,a,!0):(u&8&&p(n,``),m&16&&E(d,n,r,i,a,o,s,c))},de=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?ve(e,a,o,!0,!1,f):E(t,r,i,a,o,s,c,l,f)},fe=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?Aa(t[u]):Z(t[u]);if(ba(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?Aa(t[p]):Z(t[p]);if(ba(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=ep)for(;u<=f;)me(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Aa(t[u]):Z(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){me(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&ba(n,t[_])){i=_;break}i===void 0?me(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?ra(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){pe(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,Se);return}if(c===q){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[U];a._isLeaving&&a[U](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},me=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(Ke(),Sr(s,null,n,e,!0),qe()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!wr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Q(_,t,e),u&6)_e(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Bn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==q||d>0&&d&64)?ve(l,t,n,!1,!0):(a===q&&d&384||!i&&u&16)&&ve(c,t,n),r&&he(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&K(()=>{_&&Q(_,t,e),h&&Bn(e,null,t,`unmounted`),v&&(e.el=null)},n)},he=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===q){ge(n,r);return}if(t===ua){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},ge=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},_e=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;aa(c),aa(l),r&&ae(r),i.stop(),a&&(a.flags|=8,me(o,e,t,n)),s&&K(s,t),K(()=>{e.isUnmounted=!0},t)},ve=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ye(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Qn];return n?h(n):t},be=!1,xe=(e,t,n)=>{let r;e==null?t._vnode&&(me(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,be||=(be=!0,Mn(r),Nn(),!1)},Se={p:v,um:me,m:pe,r:he,mt:k,mc:E,pc:ue,pbc:D,n:ye,o:e},Ce,we;return i&&([Ce,we]=i(Se)),{render:xe,hydrate:Ce,createApp:yi(xe,Ce)}}function $i({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function ea({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ta(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function na(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function ia(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ia(t)}function aa(e){if(e)for(let t=0;te.__isSuspense;function ca(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):jn(e)}var q=Symbol.for(`v-fgt`),la=Symbol.for(`v-txt`),J=Symbol.for(`v-cmt`),ua=Symbol.for(`v-stc`),da=[],Y=null;function fa(e=!1){da.push(Y=e?null:[])}function pa(){da.pop(),Y=da[da.length-1]||null}var ma=1;function ha(e,t=!1){ma+=e,e<0&&Y&&t&&(Y.hasOnce=!0)}function ga(e){return e.dynamicChildren=ma>0?Y||n:null,pa(),ma>0&&Y&&Y.push(e),e}function _a(e,t,n,r,i,a){return ga(Ca(e,t,n,r,i,a,!0))}function va(e,t,n,r,i){return ga(X(e,t,n,r,i,!0))}function ya(e){return e?e.__v_isVNode===!0:!1}function ba(e,t){return e.type===t.type&&e.key===t.key}var xa=({key:e})=>e??null,Sa=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||R(e)||h(e)?{i:H,r:e,k:t,f:!!n}:e);function Ca(e,t=null,n=null,r=0,i=null,a=e===q?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xa(t),ref:t&&Sa(t),scopeId:In,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:H};return s?(ja(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),ma>0&&!o&&Y&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Y.push(c),c}var X=wa;function wa(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Wr)&&(e=J),ya(e)){let r=Ea(e,t,!0);return n&&ja(r,n),ma>0&&!a&&Y&&(r.shapeFlag&6?Y[Y.indexOf(e)]=r:Y.push(r)),r.patchFlag=-2,r}if($a(e)&&(e=e.__vccOpts),t){t=Ta(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=he(e)),v(n)&&(Kt(n)&&!d(n)&&(n=s({},n)),t.style=ue(n))}let o=g(e)?1:sa(e)?128:$n(e)?64:v(e)?4:h(e)?2:0;return Ca(e,t,n,r,i,o,a,!0)}function Ta(e){return e?Kt(e)||Fi(e)?s({},e):e:null}function Ea(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Ma(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&xa(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Sa(t)):[a,Sa(t)]:Sa(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==q?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ea(e.ssContent),ssFallback:e.ssFallback&&Ea(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&gr(u,c.clone(u)),u}function Da(e=` `,t=0){return X(la,null,e,t)}function Oa(e,t){let n=X(ua,null,e);return n.staticCount=t,n}function ka(e=``,t=!1){return t?(fa(),va(J,null,e)):X(J,null,e)}function Z(e){return e==null||typeof e==`boolean`?X(J):d(e)?X(q,null,e.slice()):ya(e)?Aa(e):X(la,null,String(e))}function Aa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ea(e)}function ja(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ja(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Fi(t)?t._ctx=H:r===3&&H&&(H.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(h(t)){if(r&65){ja(e,{default:t});return}t={default:t,_ctx:H},n=32}else t=String(t),r&64?(n=16,t=[Da(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ma(...e){let t={};for(let n=0;n$||H,La,Ra;{let e=le(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};La=t(`__VUE_INSTANCE_SETTERS__`,e=>$=e),Ra=t(`__VUE_SSR_SETTERS__`,e=>Ha=e)}var za=e=>{let t=$;return La(e),e.scope.on(),()=>{e.scope.off(),La(t)}},Ba=()=>{$&&$.scope.off(),La(null)};function Va(e){return e.vnode.shapeFlag&4}var Ha=!1;function Ua(e,t=!1,n=!1){t&&Ra(t);let{props:r,children:i}=e.vnode,a=Va(e);Ii(e,r,a,t),Yi(e,i,n||t);let o=a?Wa(e,t):void 0;return t&&Ra(!1),o}function Wa(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,$r);let{setup:r}=n;if(r){Ke();let n=e.setupContext=r.length>1?Xa(e):null,i=za(e),a=yn(r,e,0,[e.props,n]),o=y(a);if(qe(),i(),(o||e.sp)&&!wr(e)&&yr(e),o){if(a.then(Ba,Ba),t)return a.then(n=>{Ga(e,n,t)}).catch(t=>{bn(t,e,0)});e.asyncDep=a}else Ga(e,a,t)}else Ja(e,t)}function Ga(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=nn(t)),Ja(e,n)}var Ka,qa;function Ja(e,t,n){let i=e.type;if(!e.render){if(!t&&Ka&&!i.render){let t=i.template||ci(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=Ka(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,qa&&qa(e)}{let t=za(e);Ke();try{ii(e)}finally{qe(),t()}}}var Ya={get(e,t){return N(e,`get`,``),e[t]}};function Xa(e){return{attrs:new Proxy(e.attrs,Ya),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Za(e){return e.exposed?e.exposeProxy||=new Proxy(nn(qt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Zr)return Zr[n](e)},has(e,t){return t in e||t in Zr}}):e.proxy}function Qa(e,t=!0){return h(e)?e.displayName||e.name:e.name||t&&e.__name}function $a(e){return h(e)&&`__vccOpts`in e}var eo=(e,t)=>fn(e,t,Ha);function to(e,t,n){try{ha(-1);let r=arguments.length;return r===2?v(t)&&!d(t)?ya(t)?X(e,null,[t]):X(e,t):X(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ya(n)&&(n=[n]),X(e,t,n))}finally{ha(1)}}var no=`3.5.40`,ro=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};export{Ht as $,jn as A,Rn as B,Dn as C,xe as Ct,Fr as D,ue as Dt,Lr as E,Ee as Et,gr as F,Wt as G,an as H,ei as I,Ae as J,R as K,fr as L,Jr as M,Ur as N,fa as O,Ce as Ot,hr as P,Bt as Q,qn as R,Ma as S,be as St,Nr as T,he as Tt,Oe as U,zn as V,ke as W,Vt as X,zt as Y,Yt as Z,Ia as _,a as _t,cr as a,$t as at,Un as b,g as bt,Ca as c,re as ct,_a as d,ve as dt,Xt as et,Zi as f,ae as ft,vr as g,v as gt,X as h,o as ht,ua as i,en as it,qr as j,Vn as k,se as kt,va as l,s as lt,Da as m,h as mt,pr as n,ln as nt,z as o,r as ot,Oa as p,d as pt,qt as q,q as r,on as rt,eo as s,E as st,ro as t,I as tt,ka as u,D as ut,_r as v,p as vt,Pr as w,oe as wt,Hn as x,_ as xt,to as y,_e as yt,Kn as z}; \ No newline at end of file diff --git a/dist/assets/index-B2VD3zy8.js b/dist/assets/index-B2VD3zy8.js deleted file mode 100644 index 52f45ce..0000000 --- a/dist/assets/index-B2VD3zy8.js +++ /dev/null @@ -1,382 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-D1CCMfxr.js","assets/LoginView-BIWJ8gRk.css","assets/DashboardView-BXkuwSW-.js","assets/StatusBadge-D3ThrLrU.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-Tmb__ujh.css","assets/OrdersView-D-3A1wX9.js","assets/AdminSelect-BeLNl2Qz.js","assets/AdminSelect-DRq_EKw9.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-CvBkBKTY.js","assets/AdminPageSkeleton-BJpm6oxf.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-DxQX_Gwe.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-BQ_mFtUm.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-DFrKKIXW.js","assets/CheckManagementView-C1ozixF5.css","assets/CompaniesView-CFgjGQke.js","assets/BaseSwitch-dp2xMemS.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-DGu6Pfui.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-DIzTn08M.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-33uUkn7P.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-2wzqQ3p0.js","assets/CustomersView-Bx7jWwze.css","assets/ProductsView-V-E7JmoO.js","assets/AdminImagePicker-C0OGC-bB.js","assets/AdminImagePicker-BeE_kWbB.css","assets/ProductsView-DdADDBgQ.css","assets/CategoriesView-jQSu6NG7.js","assets/CategoriesView-D7xsOZr4.css","assets/BannersView-CZaBcIQn.js","assets/BannersView-TRKkvRxh.css","assets/CatalogsView-BqUCTvB5.js","assets/CatalogsView-yskXIlwQ.css","assets/CatalogRequestsView-DSpZCB11.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-CPBAGKxa.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-DKPC0xly.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-by4e-dTJ.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-rP_u9G1_.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-C7RaPyP8.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-XJtm6EAp.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-Caau4ET1.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-DUUxvo0M.js","assets/SettingsView-CfZQdUlT.css","assets/UsersView-DIwx8h0p.js","assets/UsersView-DSH2HjHE.css"])))=>i.map(i=>d[i]); -(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,T=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ee=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},te=/-\w/g,E=ee(e=>e.replace(te,e=>e.slice(1).toUpperCase())),ne=/\B([A-Z])/g,D=ee(e=>e.replace(ne,`-$1`).toLowerCase()),re=ee(e=>e.charAt(0).toUpperCase()+e.slice(1)),ie=ee(e=>e?`on${re(e)}`:``),O=(e,t)=>!Object.is(e,t),ae=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},oe=e=>{let t=parseFloat(e);return isNaN(t)?e:t},se=e=>{let t=g(e)?Number(e):NaN;return isNaN(t)?e:t},ce,le=()=>ce||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ue(e){if(d(e)){let t={};for(let n=0;n{if(e){let n=e.split(fe);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function A(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;nye(e,t))}var xe=e=>!!(e&&e.__v_isRef===!0),j=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?xe(e)?j(e.value):JSON.stringify(e,Se,2):String(e),Se=(e,t)=>xe(t)?Se(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ce(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ce(e))}:_(t)?Ce(t):v(t)&&!d(t)&&!C(t)?String(t):t,Ce=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e;function we(e){return e==null?`initial`:typeof e==`string`?e===``?` `:e:String(e)}var M,Te=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&M&&(M.active?(this.parent=M,this.index=(M.scopes||(M.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(M===this)M=this.prevScope;else{let e=M;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Ne){let e=Ne;for(Ne=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Me;){let t=Me;for(Me=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Le(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Re(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ve(r),He(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ze(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Be(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Be(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Je)||(e.globalVersion=Je,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ze(e))))return;e.flags|=2;let t=e.dep,n=N,r=Ue;N=e,Ue=!0;try{Le(e);let n=e.fn(e._value);(t.version===0||O(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{N=n,Ue=r,Re(e),e.flags&=-3}}function Ve(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Ve(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function He(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var Ue=!0,We=[];function Ge(){We.push(Ue),Ue=!1}function Ke(){let e=We.pop();Ue=e===void 0||e}function qe(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=N;N=void 0;try{t()}finally{N=e}}}var Je=0,Ye=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Xe=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!N||!Ue||N===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==N)t=this.activeLink=new Ye(N,this),N.deps?(t.prevDep=N.depsTail,N.depsTail.nextDep=t,N.depsTail=t):N.deps=N.depsTail=t,Ze(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=N.depsTail,t.nextDep=void 0,N.depsTail.nextDep=t,N.depsTail=t,N.deps===t&&(N.deps=e)}return t}trigger(e){this.version++,Je++,this.notify(e)}notify(e){Fe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Ie()}}};function Ze(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Ze(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Qe=new WeakMap,$e=Symbol(``),et=Symbol(``),tt=Symbol(``);function P(e,t,n){if(Ue&&N){let t=Qe.get(e);t||Qe.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Xe),r.map=t,r.key=n),r.track()}}function nt(e,t,n,r,i,a){let o=Qe.get(e);if(!o){Je++;return}let s=e=>{e&&e.trigger()};if(Fe(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===tt||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(tt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get($e)),f(e)&&s(o.get(et)));break;case`delete`:i||(s(o.get($e)),f(e)&&s(o.get(et)));break;case`set`:f(e)&&s(o.get($e))}}Ie()}function rt(e,t){let n=Qe.get(e);return n&&n.get(t)}function it(e){let t=F(e);return t===e?t:(P(t,`iterate`,tt),Kt(e)?t:t.map(Yt))}function at(e){return P(e=F(e),`iterate`,tt),e}function ot(e,t){return Gt(e)?Xt(Wt(e)?Yt(t):t):Yt(t)}var st={__proto__:null,[Symbol.iterator](){return ct(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return it(this).concat(...e.map(e=>d(e)?it(e):e))},entries(){return ct(this,`entries`,e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ut(this,`every`,e,t,void 0,arguments)},filter(e,t){return ut(this,`filter`,e,t,e=>e.map(e=>ot(this,e)),arguments)},find(e,t){return ut(this,`find`,e,t,e=>ot(this,e),arguments)},findIndex(e,t){return ut(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ut(this,`findLast`,e,t,e=>ot(this,e),arguments)},findLastIndex(e,t){return ut(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ut(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ft(this,`includes`,e)},indexOf(...e){return ft(this,`indexOf`,e)},join(e){return it(this).join(e)},lastIndexOf(...e){return ft(this,`lastIndexOf`,e)},map(e,t){return ut(this,`map`,e,t,void 0,arguments)},pop(){return pt(this,`pop`)},push(...e){return pt(this,`push`,e)},reduce(e,...t){return dt(this,`reduce`,e,t)},reduceRight(e,...t){return dt(this,`reduceRight`,e,t)},shift(){return pt(this,`shift`)},some(e,t){return ut(this,`some`,e,t,void 0,arguments)},splice(...e){return pt(this,`splice`,e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return pt(this,`unshift`,e)},values(){return ct(this,`values`,e=>ot(this,e))}};function ct(e,t,n){let r=at(e),i=r[t]();return r!==e&&!Kt(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var lt=Array.prototype;function ut(e,t,n,r,i,a){let o=at(e),s=o!==e&&!Kt(e),c=o[t];if(c!==lt[t]){let t=c.apply(e,a);return s?Yt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,ot(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function dt(e,t,n,r){let i=at(e),a=i!==e&&!Kt(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=ot(e,t)),n.call(this,t,ot(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?ot(e,c):c}function ft(e,t,n){let r=F(e);P(r,`iterate`,tt);let i=r[t](...n);return(i===-1||i===!1)&&qt(n[0])?(n[0]=F(n[0]),r[t](...n)):i}function pt(e,t,n=[]){Ge(),Fe();let r=F(e)[t].apply(e,n);return Ie(),Ke(),r}var mt=e(`__proto__,__v_isRef,__isVue`),ht=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function gt(e){_(e)||(e=String(e));let t=F(this);return P(t,`has`,e),t.hasOwnProperty(e)}var _t=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Lt:It:i?Ft:Pt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=st[t]))return e;if(t===`hasOwnProperty`)return gt}let o=Reflect.get(e,t,I(e)?e:n);if((_(t)?ht.has(t):mt(t))||(r||P(e,`get`,t),i))return o;if(I(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Vt(e):e}return v(o)?r?Vt(o):zt(o):o}},vt=class extends _t{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=Gt(i);if(!Kt(n)&&!Gt(n)&&(i=F(i),n=F(n)),!a&&I(i)&&!I(n))return e||(i.value=n),!0}let o=a?Number(t)e,Tt=e=>Reflect.getPrototypeOf(e);function Et(e,t,n){return function(...r){let i=this.__v_raw,a=F(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?wt:t?Xt:Yt;return!t&&P(a,`iterate`,l?et:$e),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Dt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Ot(e,t){let n={get(n){let r=this.__v_raw,i=F(r),a=F(n);e||(O(n,a)&&P(i,`get`,n),P(i,`get`,a));let{has:o}=Tt(i),s=t?wt:e?Xt:Yt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&P(F(t),`iterate`,$e),t.size},has(t){let n=this.__v_raw,r=F(n),i=F(t);return e||(O(t,i)&&P(r,`has`,t),P(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=F(a),s=t?wt:e?Xt:Yt;return!e&&P(o,`iterate`,$e),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:Dt(`add`),set:Dt(`set`),delete:Dt(`delete`),clear:Dt(`clear`)}:{add(e){let n=F(this),r=Tt(n),i=F(e),a=!t&&!Kt(e)&&!Gt(e)?i:e;return r.has.call(n,a)||O(e,a)&&r.has.call(n,e)||O(i,a)&&r.has.call(n,i)||(n.add(a),nt(n,`add`,a,a)),this},set(e,n){!t&&!Kt(n)&&!Gt(n)&&(n=F(n));let r=F(this),{has:i,get:a}=Tt(r),o=i.call(r,e);o||=(e=F(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?O(n,s)&&nt(r,`set`,e,n,s):nt(r,`add`,e,n),this},delete(e){let t=F(this),{has:n,get:r}=Tt(t),i=n.call(t,e);i||=(e=F(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&nt(t,`delete`,e,void 0,a),o},clear(){let e=F(this),t=e.size!==0,n=e.clear();return t&&nt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Et(r,e,t)}),n}function kt(e,t){let n=Ot(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(u(n,r)&&r in t?n:t,r,i)}var At={get:kt(!1,!1)},jt={get:kt(!1,!0)},Mt={get:kt(!0,!1)},Nt={get:kt(!0,!0)},Pt=new WeakMap,Ft=new WeakMap,It=new WeakMap,Lt=new WeakMap;function Rt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function zt(e){return Gt(e)?e:Ut(e,!1,bt,At,Pt)}function Bt(e){return Ut(e,!1,St,jt,Ft)}function Vt(e){return Ut(e,!0,xt,Mt,It)}function Ht(e){return Ut(e,!0,Ct,Nt,Lt)}function Ut(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Rt(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Wt(e){return Gt(e)?Wt(e.__v_raw):!!(e&&e.__v_isReactive)}function Gt(e){return!!(e&&e.__v_isReadonly)}function Kt(e){return!!(e&&e.__v_isShallow)}function qt(e){return e?!!e.__v_raw:!1}function F(e){let t=e&&e.__v_raw;return t?F(t):e}function Jt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&k(e,`__v_skip`,!0),e}var Yt=e=>v(e)?zt(e):e,Xt=e=>v(e)?Vt(e):e;function I(e){return e?e.__v_isRef===!0:!1}function L(e){return Qt(e,!1)}function Zt(e){return Qt(e,!0)}function Qt(e,t){return I(e)?e:new $t(e,t)}var $t=class{constructor(e,t){this.dep=new Xe,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:F(e),this._value=t?e:Yt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Kt(e)||Gt(e);e=n?e:F(e),O(e,t)&&(this._rawValue=e,this._value=n?e:Yt(e),this.dep.trigger())}};function R(e){return I(e)?e.value:e}function en(e){return h(e)?e():R(e)}var tn={get:(e,t,n)=>t===`__v_raw`?e:R(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return I(i)&&!I(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function nn(e){return Wt(e)?e:new Proxy(e,tn)}var rn=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new Xe,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}};function an(e){return new rn(e)}function on(e){let t=d(e)?Array(e.length):{};for(let n in e)t[n]=un(e,n);return t}var sn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=_(t)?t:String(t),this._raw=F(e);let r=!0,i=e;if(!d(e)||_(this._key)||!w(this._key))do r=!qt(i)||Kt(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=R(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&I(this._raw[this._key])){let t=this._object[this._key];if(I(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return rt(this._raw,this._key)}},cn=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function ln(e,t,n){return I(e)?e:h(e)?new cn(e):v(e)&&arguments.length>1?un(e,t,n):L(e)}function un(e,t,n){return new sn(e,t,n)}var dn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Xe(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Je-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&N!==this)return Pe(this,!0),!0}get value(){let e=this.dep.track();return Be(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function fn(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new dn(r,i,n)}var pn={},mn=new WeakMap,hn=void 0;function gn(e,t=!1,n=hn){if(n){let t=mn.get(n);t||mn.set(n,t=[]),t.push(e)}}function _n(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:Kt(e)||o===!1||o===0?vn(e,1):vn(e),m,g,_,v,y=!1,b=!1;if(I(e)?(g=()=>e.value,y=Kt(e)):Wt(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Wt(e)||Kt(e)),g=()=>e.map(e=>{if(I(e))return e.value;if(Wt(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){Ge();try{_()}finally{Ke()}}let t=hn;hn=m;try{return f?f(e,3,[v]):e(v)}finally{hn=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>vn(e(),t)}let x=De(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(pn):pn,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let t=m.run();if(e||o||y||(b?t.some((e,t)=>O(e,C[t])):O(t,C))){_&&_();let e=hn;hn=m;try{let e=[t,C===pn?void 0:b&&C[0]===pn?[]:C,v];C=t,f?f(n,3,e):n(...e)}finally{hn=e}}}else m.run()};return u&&u(w),m=new Ae(g),m.scheduler=l?()=>l(w,!1):w,v=e=>gn(e,!1,m),_=m.onStop=()=>{let e=mn.get(m);if(e){if(f)f(e,4);else for(let t of e)t();mn.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function vn(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,I(e))vn(e.value,t,n);else if(d(e))for(let r=0;r{vn(e,t,n)});else if(C(e)){for(let r in e)vn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&vn(e[r],t,n)}return e}function yn(e,t,n,r){try{return r?e(...r):e()}catch(e){xn(e,t,n)}}function bn(e,t,n,r){if(h(e)){let i=yn(e,t,n,r);return i&&y(i)&&i.catch(e=>{xn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a>>1,i=z[r],a=In(i);a=In(n)?z.push(e):z.splice(An(t),0,e),e.flags|=1,Mn()}}function Mn(){On||=Dn.then(Ln)}function Nn(e){d(e)?wn.push(...e):Tn&&e.id===-1?Tn.splice(En+1,0,e):e.flags&1||(wn.push(e),e.flags|=1),Mn()}function Pn(e,t,n=Cn+1){for(;nIn(e)-In(t));if(wn.length=0,Tn){Tn.push(...e);return}for(Tn=e,En=0;Ene.id==null?e.flags&2?-1:1/0:e.id;function Ln(e){try{for(Cn=0;Cn{r._d&&ya(-1);let i=zn(t),a=ha.length,o;try{o=e(...n)}finally{for(let e=ha.length;e>a;e--)_a();zn(i),r._d&&ya(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Vn(e,n){if(B===null)return e;let r=to(B),i=e.dirs||=[];for(let e=0;e1)return n&&h(t)?t.call(r&&r.proxy):t}}function Wn(){return!!(Ba()||Ci)}var Gn=Symbol.for(`v-scx`),Kn=()=>V(Gn);function qn(e,t){return Yn(e,null,t)}function Jn(e,t,n){return Yn(e,t,n)}function Yn(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(Ka){if(c===`sync`){let e=Kn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=Y;u.call=(e,t,n)=>bn(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{U(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():jn(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=_n(e,n,u);return Ka&&(f?f.push(h):d&&h()),h}function Xn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?Zn(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=Ua(this),s=Yn(i,a.bind(r),n);return o(),s}function Zn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,tr=e=>e&&(e.disabled||e.disabled===``),nr=e=>e&&(e.defer||e.defer===``),rr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,ir=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,ar=(e,t)=>{let n=e&&e.to;return g(n)?t?t(n):null:n},or={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=tr(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=tr(e.props),r=e.target=ar(e.props,m),a=dr(r,e,h,p);r&&(o!==`svg`&&rr(r)?o=`svg`:o!==`mathml`&&ir(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),ur(e,!1)))},S=e=>{let t=()=>{if(Qn.get(e)===t){if(Qn.delete(e),tr(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),ur(e,!0)}x(e)}};Qn.set(e,t),U(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),nr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),ur(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=Qn.get(e);if(u){u.flags|=8,Qn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=tr(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||rr(p)?o=`svg`:(o===`mathml`||ir(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),aa(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):sr(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=ar(t.props,m);e&&(t.target=e,sr(t,e,null,l,0))}else g&&sr(t,p,h,l,1);ur(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=tr(f),m=a||!p,h=Qn.get(e);if(h&&(h.flags|=8,Qn.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e{e.isMounted=!0}),zr(()=>{e.isUnmounting=!0}),e}var hr=[Function,Array],gr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:hr,onEnter:hr,onAfterEnter:hr,onEnterCancelled:hr,onBeforeLeave:hr,onLeave:hr,onAfterLeave:hr,onLeaveCancelled:hr,onBeforeAppear:hr,onAppear:hr,onAfterAppear:hr,onAppearCancelled:hr};function _r(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function vr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=_r(n,e),C=(e,t)=>{e&&bn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),d(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[fr]&&t[fr](!0);let i=S[x];i&&Ca(e,i)&&i.el[fr]&&i.el[fr](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=f;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||f;else return;let s=!1;t[pr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[pr]=void 0)};let c=t[pr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[pr]&&t[pr](!0),n.isUnmounting)return r();C(p,[t]);let a=!1;t[fr]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[fr]=void 0,S[i]===e&&delete S[i])};let o=t[fr].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=vr(e,t,n,r,i);return i&&i(a),a}};return T}function yr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,yr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function br(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eTr(e,n&&(d(n)?n[t]:n),r,a,o));return}if(Dr(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Tr(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?to(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=F(v),b=v===t?i:e=>!Cr(_,e)&&u(y,e),x=(e,t)=>!(t&&Cr(_,t));if(m!=null&&m!==p){if(Er(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(I(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))yn(p,f,12,[l,_]);else{let t=g(p),n=I(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),wr.delete(e)};t.id=-1,wr.set(e,t),U(t,r)}else Er(e),i()}}}function Er(e){let t=wr.get(e);t&&(t.flags|=8,wr.delete(e))}le().requestIdleCallback,le().cancelIdleCallback;var Dr=e=>!!e.type.__asyncLoader,Or=e=>e.type.__isKeepAlive;function kr(e,t){jr(e,`a`,t)}function Ar(e,t){jr(e,`da`,t)}function jr(e,t,n=Y){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Nr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Or(e.parent.vnode)&&Mr(r,t,n,e),e=e.parent}}function Mr(e,t,n,r){let i=Nr(t,e,r,!0);Br(()=>{c(r[t],i)},n)}function Nr(e,t,n=Y,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Ge();let i=Ua(n),a=bn(t,n,e,r);return i(),Ke(),a};return r?i.unshift(a):i.push(a),a}}var Pr=e=>(t,n=Y)=>{(!Ka||e===`sp`)&&Nr(e,(...e)=>t(...e),n)},Fr=Pr(`bm`),Ir=Pr(`m`),Lr=Pr(`bu`),Rr=Pr(`u`),zr=Pr(`bum`),Br=Pr(`um`),Vr=Pr(`sp`),Hr=Pr(`rtg`),Ur=Pr(`rtc`);function Wr(e,t=Y){Nr(`ec`,e,t)}var Gr=`components`;function Kr(e,t){return Jr(Gr,e,!0,t)||e}var qr=Symbol.for(`v-ndc`);function Jr(e,t,n=!0,r=!1){let i=B||Y;if(i){let n=i.type;if(e===Gr){let e=no(n,!1);if(e&&(e===t||e===E(t)||e===re(E(t))))return n}let a=Yr(i[e]||n[e],t)||Yr(i.appContext[e],t);return!a&&r?n:a}}function Yr(e,t){return e&&(e[t]||e[E(t)]||e[re(E(t))])}function Xr(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Wt(e),r=!1,s=!1;n&&(r=!Kt(e),s=Gt(e),e=at(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r0;return t!=="default"&&(e.name=t),G(),xa(W,null,[J(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let c=ha.length;G();let l;try{let i=o&&Qr(o(n)),s=n.key||a||i&&i.key;l=xa(W,{key:(s&&!_(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=ha.length;e>c;e--)_a();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&l.scopeId&&(l.slotScopeIds=[l.scopeId+`-s`]),l}function Qr(e){return e.some(e=>!Sa(e)||!(e.type===pa||e.type===W&&!Qr(e.children)))?e:null}var $r=e=>e?Ga(e)?to(e):$r(e.parent):null,ei=s(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>$r(e.parent),$root:e=>$r(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>di(e),$forceUpdate:e=>e.f||=()=>{jn(e.update)},$nextTick:e=>e.n||=kn.bind(e.proxy),$watch:e=>Xn.bind(e)}),ti=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),ni={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(ti(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else oi&&(s[n]=0)}let d=ei[n],f,p;if(d)return n===`$attrs`&&P(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return ti(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||ti(n,c)||u(o,c)||u(i,c)||u(ei,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function ri(){return ii(`useAttrs`).attrs}function ii(e){let t=Ba();return t.setupContext||=eo(t)}function ai(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var oi=!0;function si(e){let t=di(e),n=e.proxy,i=e.ctx;oi=!1,t.beforeCreate&&li(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:ee,renderTriggered:te,errorCaptured:E,serverPrefetch:ne,expose:D,inheritAttrs:re,components:ie,directives:O,filters:ae}=t;if(u&&ci(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=zt(t))}if(oi=!0,o)for(let e in o){let t=o[e],a=X({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)ui(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Un(t,e[t])})}f&&li(f,e,`c`);function k(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(k(Fr,p),k(Ir,m),k(Lr,g),k(Rr,_),k(kr,y),k(Ar,b),k(Wr,E),k(Ur,ee),k(Hr,te),k(zr,S),k(Br,w),k(Vr,ne),d(D))if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===r&&(e.render=T),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),O&&(e.directives=O),ne&&Sr(e)}function ci(e,t,n=r){d(e)&&(e=gi(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?V(r.from||n,r.default,!0):V(r.from||n):V(r),I(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function li(e,t,n){bn(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ui(e,t,n,r){let i=r.includes(`.`)?Zn(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&Jn(i,n)}else if(h(e))Jn(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>ui(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&Jn(i,r,e)}}function di(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>fi(c,e,o,!0)),fi(c,t,o)),v(t)&&a.set(t,c),c}function fi(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&fi(e,a,n,!0),i&&i.forEach(t=>fi(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=pi[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var pi={data:mi,props:vi,emits:vi,methods:_i,computed:_i,beforeCreate:H,created:H,beforeMount:H,mounted:H,beforeUpdate:H,updated:H,beforeDestroy:H,beforeUnmount:H,destroyed:H,unmounted:H,activated:H,deactivated:H,errorCaptured:H,serverPrefetch:H,components:_i,directives:_i,watch:yi,provide:mi,inject:hi};function mi(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function hi(e,t){return _i(gi(e),gi(t))}function gi(e){if(d(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${E(t)}Modifiers`]||e[`${D(t)}Modifiers`];function Ti(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&wi(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(oe)));let c,l=i[c=ie(n)]||i[c=ie(E(n))];!l&&o&&(l=i[c=ie(D(n))]),l&&bn(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,bn(u,e,6,a)}}var Ei=new WeakMap;function Di(e,t,n=!1){let r=n?Ei:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=Di(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function Oi(e,t){return!e||!a(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,D(t))||u(e,t))}function ki(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=zn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Ma(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Ma(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:Ai(c)}}catch(t){ha.length=0,xn(t,e,1),v=J(pa)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=ji(y,a)),b=Oa(b,y,!1,!0))}return n.dirs&&(b=Oa(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&yr(b,n.transition),v=b,zn(_),v}var Ai=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},ji=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Mi(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ni(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(Ii),Ri=e=>Object.getPrototypeOf(e)===Ii;function zi(e,t,n,r=!1){let i={},a=Li();e.propsDefaults=Object.create(null),Vi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Bt(i):e.type.props?i:a,e.attrs=a}function Bi(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=F(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{p=!0;let[t,n]=Wi(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,qi=e=>d(e)?e.map(Ma):[Ma(e)],Ji=(e,t,n)=>{if(t._n)return t;let r=Bn((...e)=>qi(t(...e)),n);return r._c=!1,r},Yi=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Ki(n))continue;let i=e[n];if(h(i))t[n]=Ji(n,i,r);else if(i!=null){let e=qi(i);t[n]=()=>e}}},Xi=(e,t)=>{let n=qi(t);e.slots.default=()=>n},Zi=(e,t,n)=>{for(let r in t)(n||!Ki(r))&&(e[r]=t[r])},Qi=(e,t,n)=>{let r=e.slots=Li();if(e.vnode.shapeFlag&32){let e=t._;e?(Zi(r,t,n),n&&k(r,`_`,e,!0)):Yi(t,r)}else t&&Xi(e,t)},$i=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:Zi(a,n,r):(o=!n.$stable,Yi(n,a)),s=n}else n&&(Xi(e,n),s={default:1});if(o)for(let e in a)!Ki(e)&&s[e]==null&&delete a[e]},U=da;function ea(e){return ta(e)}function ta(e,i){let a=le();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Ca(e,t)&&(r=ve(e),me(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case fa:y(e,t,n,r);break;case pa:b(e,t,n,r);break;case ma:e??x(t,n,r,o);break;case W:ie(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,xe)}u!=null&&i?Tr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Tr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ne(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&E(e.children,d,null,r,i,na(e,a),s,u),_&&Hn(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!T(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Ia(f,r,e)}_&&Hn(e,null,r,`beforeMount`);let v=ia(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&U(()=>{try{f&&Ia(f,r,e),v&&g.enter(d),_&&Hn(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&ra(r,!1),(g=h.onVnodeBeforeUpdate)&&Ia(g,r,n,e),f&&Hn(n,e,r,`beforeUpdate`),r&&ra(r,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?D(e.dynamicChildren,d,l,r,i,na(n,a),o):s||ue(e,n,l,null,r,i,na(n,a),o,!1),u>0){if(u&16)re(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t{g&&Ia(g,r,n,e),f&&Hn(n,e,r,`updated`)},i)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(n!==r){if(n!==t)for(let t in n)!T(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(T(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},ie=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),E(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&aa(e,t,!0)):ue(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):k(t,n,r,i,a,o,c):oe(e,t,c)},k=(e,t,n,r,i,a,o)=>{let s=e.component=za(e,r,i);if(Or(e)&&(s.ctx.renderer=xe),qa(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,se,o),!e.el){let r=s.subTree=J(pa);b(null,r,t,n),e.placeholder=r.el}}else se(s,e,t,n,i,a,o)},oe=(e,t,n)=>{let r=t.component=e.component;if(Mi(e,t,n))if(r.asyncDep&&!r.asyncResolved){ce(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},se=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=sa(e);if(n){t&&(t.el=c.el,ce(e,t,o)),n.asyncDep.then(()=>{U(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;ra(e,!1),t?(t.el=c.el,ce(e,t,o)):t=c,n&&ae(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Ia(d,s,t,c),ra(e,!0);let f=ki(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ve(p),e,i,a),t.el=f.el,u===null&&Fi(e,f.el),r&&U(r,i),(d=t.props&&t.props.onVnodeUpdated)&&U(()=>Ia(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Dr(t);if(ra(e,!1),l&&ae(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Ia(o,d,t),ra(e,!0),s&&Se){let t=()=>{e.subTree=ki(e),Se(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=ki(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&U(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;U(()=>Ia(o,d,e),i)}(t.shapeFlag&256||d&&Dr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&U(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Ae(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>jn(u),ra(e,!0),l()},ce=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Bi(e,t.props,r,n),$i(e,t.children,n),Ge(),Pn(e),Ke()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){fe(l,d,n,r,i,a,o,s,c);return}if(f&256){de(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&_e(l,i,a),d!==l&&p(n,d)):u&16?m&16?fe(l,d,n,r,i,a,o,s,c):_e(l,i,a,!0):(u&8&&p(n,``),m&16&&E(d,n,r,i,a,o,s,c))},de=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?_e(e,a,o,!0,!1,f):E(t,r,i,a,o,s,c,l,f)},fe=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?Na(t[u]):Ma(t[u]);if(Ca(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?Na(t[p]):Ma(t[p]);if(Ca(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=ep)for(;u<=f;)me(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Na(t[u]):Ma(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){me(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Ca(n,t[_])){i=_;break}i===void 0?me(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?oa(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){pe(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,xe);return}if(c===W){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[fr];a._isLeaving&&a[fr](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},me=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(Ge(),Tr(s,null,n,e,!0),Ke()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Dr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Ia(_,t,e),u&6)ge(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Hn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,xe,r):l&&!l.hasOnce&&(a!==W||d>0&&d&64)?_e(l,t,n,!1,!0):(a===W&&d&384||!i&&u&16)&&_e(c,t,n),r&&A(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&U(()=>{_&&Ia(_,t,e),h&&Hn(e,null,t,`unmounted`),v&&(e.el=null)},n)},A=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===W){he(n,r);return}if(t===ma){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},he=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},ge=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;ca(c),ca(l),r&&ae(r),i.stop(),a&&(a.flags|=8,me(o,e,t,n)),s&&U(s,t),U(()=>{e.isUnmounted=!0},t)},_e=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ve(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[$n];return n?h(n):t},ye=!1,be=(e,t,n)=>{let r;e==null?t._vnode&&(me(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ye||=(ye=!0,Pn(r),Fn(),!1)},xe={p:v,um:me,m:pe,r:A,mt:k,mc:E,pc:ue,pbc:D,n:ve,o:e},j,Se;return i&&([j,Se]=i(xe)),{render:be,hydrate:j,createApp:Si(be,j)}}function na({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function ra({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ia(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function aa(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function sa(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:sa(t)}function ca(e){if(e)for(let t=0;te.__isSuspense;function da(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):Nn(e)}var W=Symbol.for(`v-fgt`),fa=Symbol.for(`v-txt`),pa=Symbol.for(`v-cmt`),ma=Symbol.for(`v-stc`),ha=[],ga=null;function G(e=!1){ha.push(ga=e?null:[])}function _a(){ha.pop(),ga=ha[ha.length-1]||null}var va=1;function ya(e,t=!1){va+=e,e<0&&ga&&t&&(ga.hasOnce=!0)}function ba(e){return e.dynamicChildren=va>0?ga||n:null,_a(),va>0&&ga&&ga.push(e),e}function K(e,t,n,r,i,a){return ba(q(e,t,n,r,i,a,!0))}function xa(e,t,n,r,i){return ba(J(e,t,n,r,i,!0))}function Sa(e){return e?e.__v_isVNode===!0:!1}function Ca(e,t){return e.type===t.type&&e.key===t.key}var wa=({key:e})=>e??null,Ta=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||I(e)||h(e)?{i:B,r:e,k:t,f:!!n}:e);function q(e,t=null,n=null,r=0,i=null,a=e===W?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&wa(t),ref:t&&Ta(t),scopeId:Rn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:B};return s?(Pa(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),va>0&&!o&&ga&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&ga.push(c),c}var J=Ea;function Ea(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===qr)&&(e=pa),Sa(e)){let r=Oa(e,t,!0);return n&&Pa(r,n),va>0&&!a&&ga&&(r.shapeFlag&6?ga[ga.indexOf(e)]=r:ga.push(r)),r.patchFlag=-2,r}if(ro(e)&&(e=e.__vccOpts),t){t=Da(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=A(e)),v(n)&&(qt(n)&&!d(n)&&(n=s({},n)),t.style=ue(n))}let o=g(e)?1:ua(e)?128:er(e)?64:v(e)?4:h(e)?2:0;return q(e,t,n,r,i,o,a,!0)}function Da(e){return e?qt(e)||Ri(e)?s({},e):e:null}function Oa(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Fa(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&wa(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Ta(t)):[a,Ta(t)]:Ta(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==W?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Oa(e.ssContent),ssFallback:e.ssFallback&&Oa(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&yr(u,c.clone(u)),u}function ka(e=` `,t=0){return J(fa,null,e,t)}function Aa(e,t){let n=J(ma,null,e);return n.staticCount=t,n}function ja(e=``,t=!1){return t?(G(),xa(pa,null,e)):J(pa,null,e)}function Ma(e){return e==null||typeof e==`boolean`?J(pa):d(e)?J(W,null,e.slice()):Sa(e)?Na(e):J(fa,null,String(e))}function Na(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Oa(e)}function Pa(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Pa(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Ri(t)?t._ctx=B:r===3&&B&&(B.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(h(t)){if(r&65){Pa(e,{default:t});return}t={default:t,_ctx:B},n=32}else t=String(t),r&64?(n=16,t=[ka(t)]):n=8;e.children=t,e.shapeFlag|=n}function Fa(...e){let t={};for(let n=0;nY||B,Va,Ha;{let e=le(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Va=t(`__VUE_INSTANCE_SETTERS__`,e=>Y=e),Ha=t(`__VUE_SSR_SETTERS__`,e=>Ka=e)}var Ua=e=>{let t=Y;return Va(e),e.scope.on(),()=>{e.scope.off(),Va(t)}},Wa=()=>{Y&&Y.scope.off(),Va(null)};function Ga(e){return e.vnode.shapeFlag&4}var Ka=!1;function qa(e,t=!1,n=!1){t&&Ha(t);let{props:r,children:i}=e.vnode,a=Ga(e);zi(e,r,a,t),Qi(e,i,n||t);let o=a?Ja(e,t):void 0;return t&&Ha(!1),o}function Ja(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ni);let{setup:r}=n;if(r){Ge();let n=e.setupContext=r.length>1?eo(e):null,i=Ua(e),a=yn(r,e,0,[e.props,n]),o=y(a);if(Ke(),i(),(o||e.sp)&&!Dr(e)&&Sr(e),o){if(a.then(Wa,Wa),t)return a.then(n=>{Ya(e,n,t)}).catch(t=>{xn(t,e,0)});e.asyncDep=a}else Ya(e,a,t)}else Qa(e,t)}function Ya(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=nn(t)),Qa(e,n)}var Xa,Za;function Qa(e,t,n){let i=e.type;if(!e.render){if(!t&&Xa&&!i.render){let t=i.template||di(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=Xa(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,Za&&Za(e)}{let t=Ua(e);Ge();try{si(e)}finally{Ke(),t()}}}var $a={get(e,t){return P(e,`get`,``),e[t]}};function eo(e){return{attrs:new Proxy(e.attrs,$a),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function to(e){return e.exposed?e.exposeProxy||=new Proxy(nn(Jt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ei)return ei[n](e)},has(e,t){return t in e||t in ei}}):e.proxy}function no(e,t=!0){return h(e)?e.displayName||e.name:e.name||t&&e.__name}function ro(e){return h(e)&&`__vccOpts`in e}var X=(e,t)=>fn(e,t,Ka);function io(e,t,n){try{ya(-1);let r=arguments.length;return r===2?v(t)&&!d(t)?Sa(t)?J(e,null,[t]):J(e,t):J(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Sa(n)&&(n=[n]),J(e,t,n))}finally{ya(1)}}var ao=`3.5.40`,oo=void 0,so=typeof window<`u`&&window.trustedTypes;if(so)try{oo=so.createPolicy(`vue`,{createHTML:e=>e})}catch{}var co=oo?e=>oo.createHTML(e):e=>e,lo=`http://www.w3.org/2000/svg`,uo=`http://www.w3.org/1998/Math/MathML`,fo=typeof document<`u`?document:null,po=fo&&fo.createElement(`template`),mo={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?fo.createElementNS(lo,e):t===`mathml`?fo.createElementNS(uo,e):n?fo.createElement(e,{is:n}):fo.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>fo.createTextNode(e),createComment:e=>fo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>fo.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{po.innerHTML=co(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=po.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ho=`transition`,go=`animation`,_o=Symbol(`_vtc`),vo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},yo=s({},gr,vo),bo=(e,t=[])=>{d(e)?e.forEach(e=>e(...t)):e&&e(...t)},xo=e=>e?d(e)?e.some(e=>e.length>1):e.length>1:!1;function So(e){let t={};for(let n in e)n in vo||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:d=c,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=Co(i),g=h&&h[0],_=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:w=y,onAppearCancelled:T=b}=t,ee=(e,t,n,r)=>{e._enterCancelled=r,Eo(e,t?d:c),Eo(e,t?u:o),n&&n()},te=(e,t)=>{e._isLeaving=!1,Eo(e,f),Eo(e,m),Eo(e,p),t&&t()},E=e=>(t,n)=>{let i=e?w:y,o=()=>ee(t,e,n);bo(i,[t,o]),Do(()=>{Eo(t,e?l:a),To(t,e?d:c),xo(i)||ko(t,r,g,o)})};return s(t,{onBeforeEnter(e){bo(v,[e]),To(e,a),To(e,o)},onBeforeAppear(e){bo(C,[e]),To(e,l),To(e,u)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>te(e,t);To(e,f),e._enterCancelled?(To(e,p),No(e)):(No(e),To(e,p)),Do(()=>{e._isLeaving&&(Eo(e,f),To(e,m),xo(x)||ko(e,r,_,n))}),bo(x,[e,n])},onEnterCancelled(e){ee(e,!1,void 0,!0),bo(b,[e])},onAppearCancelled(e){ee(e,!0,void 0,!0),bo(T,[e])},onLeaveCancelled(e){te(e),bo(S,[e])}})}function Co(e){if(e==null)return null;if(v(e))return[wo(e.enter),wo(e.leave)];{let t=wo(e);return[t,t]}}function wo(e){return se(e)}function To(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[_o]||(e[_o]=new Set)).add(t)}function Eo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[_o];n&&(n.delete(t),n.size||(e[_o]=void 0))}function Do(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Oo=0;function ko(e,t,n,r){let i=e._endId=++Oo,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Ao(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${ho}Delay`),a=r(`${ho}Duration`),o=jo(i,a),s=r(`${go}Delay`),c=r(`${go}Duration`),l=jo(s,c),u=null,d=0,f=0;t===ho?o>0&&(u=ho,d=o,f=a.length):t===go?l>0&&(u=go,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?ho:go:null,f=u?u===ho?a.length:c.length:0);let p=u===ho&&/\b(?:transform|all)(?:,|$)/.test(r(`${ho}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function jo(e,t){for(;e.lengthMo(t)+Mo(e[n])))}function Mo(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function No(e){return(e?e.ownerDocument:document).body.offsetHeight}function Po(e,t,n){let r=e[_o];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Fo=Symbol(`_vod`),Io=Symbol(`_vsh`),Lo=Symbol(``);function Ro(e){let t=Ba();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>Bo(e,n))},i=()=>{let r=e(t.proxy);t.ce?Bo(t.ce,r):zo(t.subTree,r),n(r)};Lr(()=>{Nn(i)}),Ir(()=>{Jn(i,r,{flush:`post`});let e=new MutationObserver(i);e.observe(t.subTree.el.parentNode,{childList:!0}),Br(()=>e.disconnect())})}function zo(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{zo(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Bo(e.el,t);else if(e.type===W)e.children.forEach(e=>zo(e,t));else if(e.type===ma){let{el:n,anchor:r}=e;for(;n&&(Bo(n,t),n!==r);)n=n.nextSibling}}function Bo(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=we(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[Lo]=r}}var Vo=/(?:^|;)\s*display\s*:/;function Ho(e,t,n){let r=e.style,i=g(n),a=!1;if(n&&!i){if(t)if(g(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Wo(r,t,``)}else for(let e in t)n[e]??Wo(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Wo(r,i,``):Jo(e,i,!g(t)&&t?t[i]:void 0,o)||Wo(r,i,o)}}else if(i){if(t!==n){let e=r[Lo];e&&(n+=`;`+e),r.cssText=n,a=Vo.test(n)}}else t&&e.removeAttribute(`style`);Fo in e&&(e[Fo]=a?r.display:``,e[Io]&&(r.display=`none`))}var Uo=/\s*!important$/;function Wo(e,t,n){if(d(n))n.forEach(n=>Wo(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=qo(e,t);Uo.test(n)?e.setProperty(D(r),n.replace(Uo,``),`important`):e[r]=n}}var Go=[`Webkit`,`Moz`,`ms`],Ko={};function qo(e,t){let n=Ko[t];if(n)return n;let r=E(t);if(r!==`filter`&&r in e)return Ko[t]=r;r=re(r);for(let n=0;nas||=(os.then(()=>as=0),Date.now());function cs(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(d(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,us=(e,t,n,r,i,s)=>{let c=i===`svg`;t===`class`?Po(e,r,c):t===`style`?Ho(e,n,r):a(t)?o(t)||ts(e,t,n,r,s):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):ds(e,t,r,c))?(Zo(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Xo(e,t,r,c,s,t!==`value`)):e._isVueCE&&(fs(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!g(r)))?Zo(e,E(t),r,s,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Xo(e,t,r,c))};function ds(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ls(t)&&h(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return ls(t)&&g(n)?!1:t in e}function fs(e,t){let n=e._def.props;if(!n)return!1;let r=E(t);return Array.isArray(n)?n.some(e=>E(e)===r):Object.keys(n).some(e=>E(e)===r)}var ps=new WeakMap,ms=new WeakMap,hs=Symbol(`_moveCb`),gs=Symbol(`_enterCb`),_s=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:s({},yo,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=Ba(),r=mr(),i,a;return Rr(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Ss(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(vs),i.forEach(ys);let r=i.filter(bs);No(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;To(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[hs]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[hs]=null,Eo(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=F(e),s=So(o),c=o.tag||W;if(i=[],a)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Ao(r);return a.removeChild(r),o}var Cs=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return d(t)?e=>ae(t,e):t};function ws(e){e.target.composing=!0}function Ts(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Es=Symbol(`_assign`);function Ds(e,t,n){return t&&(e=e.trim()),n&&(e=oe(e)),e}var Os={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Es]=Cs(i);let a=r||i.props&&i.props.type===`number`;Qo(e,t?`change`:`input`,t=>{t.target.composing||e[Es](Ds(e.value,n,a))}),(n||a)&&Qo(e,`change`,()=>{e.value=Ds(e.value,n,a)}),t||(Qo(e,`compositionstart`,ws),Qo(e,`compositionend`,Ts),Qo(e,`change`,Ts))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Es]=Cs(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?oe(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},ks={deep:!0,created(e,t,n){e[Es]=Cs(n),Qo(e,`change`,()=>{let t=e._modelValue,n=Ps(e),r=e.checked,i=e[Es];if(d(t)){let e=be(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(p(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Fs(e,r))})},mounted:As,beforeUpdate(e,t,n){e[Es]=Cs(n),As(e,t,n)}};function As(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(d(t))i=be(t,r.props.value)>-1;else if(p(t))i=t.has(r.props.value);else{if(t===n)return;i=ye(t,Fs(e,!0))}e.checked!==i&&(e.checked=i)}var js={created(e,{value:t},n){e.checked=ye(t,n.props.value),e[Es]=Cs(n),Qo(e,`change`,()=>{e[Es](Ps(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Es]=Cs(r),t!==n&&(e.checked=ye(t,r.props.value))}},Ms={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,Qo(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?oe(Ps(e)):Ps(e));e[Es](e.multiple?p(e._modelValue)?new Set(t):t:t[0]),e._assigning=!0,kn(()=>{e._assigning=!1})}),e[Es]=Cs(r)},mounted(e,{value:t}){Ns(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Es]=Cs(n)},updated(e,{value:t}){e._assigning||Ns(e,t)}};function Ns(e,t){let n=e.multiple,r=d(t);if(!(n&&!r&&!p(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):be(t,o)>-1}else a.selected=t.has(o);else if(ye(Ps(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ps(e){return`_value`in e?e._value:e.value}function Fs(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Is={created(e,t,n){Rs(e,t,n,null,`created`)},mounted(e,t,n){Rs(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Rs(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Rs(e,t,n,r,`updated`)}};function Ls(e,t){switch(e){case`SELECT`:return Ms;case`TEXTAREA`:return Os;default:switch(t){case`checkbox`:return ks;case`radio`:return js;default:return Os}}}function Rs(e,t,n,r,i){let a=Ls(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var zs=[`ctrl`,`shift`,`alt`,`meta`],Bs={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>zs.some(n=>e[`${n}Key`]&&!t.includes(n))},Vs=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=D(n.key);if(t.some(e=>e===r||Hs[e]===r))return e(n)}))},Ws=s({patchProp:us},mo),Gs;function Ks(){return Gs||=ea(Ws)}var qs=((...e)=>{let t=Ks().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Ys(e);if(!r)return;let i=t._component;!h(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Js(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Js(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Ys(e){return g(e)?document.querySelector(e):e}var Xs=typeof window<`u`,Zs,Qs=e=>Zs=e,$s=Symbol();function ec(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var tc=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function nc(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function rc(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){cc(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function ic(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function ac(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var oc=typeof navigator==`object`?navigator:{userAgent:``},sc=/Macintosh/.test(oc.userAgent)&&/AppleWebKit/.test(oc.userAgent)&&!/Safari/.test(oc.userAgent),cc=Xs?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!sc?lc:`msSaveOrOpenBlob`in oc?uc:dc:()=>{};function lc(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?ac(r):ic(r.href)?rc(e,t,n):(r.target=`_blank`,ac(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){ac(r)},0))}function uc(e,t=`download`,n){if(typeof e==`string`)if(ic(e))rc(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){ac(t)})}else navigator.msSaveOrOpenBlob(nc(e,n),t)}function dc(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return rc(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(tc.HTMLElement))||`safari`in tc,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||sc)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:fc}=Object;function pc(){let e=Ee(!0),t=e.run(()=>L({})),n=[],r=[],i=Jt({install(e){Qs(i),i._a=e,e.provide($s,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var mc=()=>{};function hc(e,t,n,r=mc){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&De()&&Oe(i),i}function gc(e,...t){e.forEach(e=>{e(...t)})}var _c=e=>e(),vc=Symbol(),yc=Symbol();function bc(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=ec(i)&&ec(r)&&Object.hasOwn(e,n)&&!I(r)&&!Wt(r)?bc(i,r):r}return e}var xc=Symbol();function Sc(e){return!e||typeof e!=`object`||!Object.hasOwn(e,xc)}var{assign:Cc}=Object;function wc(e){return!!(I(e)&&e.effect)}function Tc(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Cc(on(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Jt(X(()=>{Qs(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Ec(e,l,t,n,r,!0),c}function Ec(e,t,n={},r,i,a){let o,s=Cc({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(bc(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();kn().then(()=>{h===i&&(l=!0)}),u=!0,gc(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Cc(e,t)})}:mc;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(vc in t)return t[yc]=n,t;let i=function(){Qs(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}gc(f,{args:n,name:i[yc],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw gc(o,e),e}return l instanceof Promise?l.then(e=>(gc(a,e),e)).catch(e=>(gc(o,e),Promise.reject(e))):(gc(a,l),l)};return i[vc]=!0,i[yc]=n,i},b=zt({_p:r,$id:e,$onAction:hc.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return mc;let i=hc(d,t,n.detached,()=>a()),a=o.run(()=>Jn(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},Cc({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||_c)(()=>r._e.run(()=>(o=Ee()).run(()=>t({action:y}))));for(let t in x){let n=x[t];I(n)&&!wc(n)||Wt(n)?a||(m&&Sc(n)&&(I(n)?n.value=m[t]:bc(n,m[t])),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return Cc(b,x),Cc(F(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{Cc(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));Cc(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function Dc(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=Wn();return n||=o?V($s,null):null,n&&Qs(n),n=Zs,n._s.has(e)||(i?Ec(e,t,r,n):Tc(e,r,n)),n._s.get(e)}return a.$id=e,a}var Oc={"vuesax-linear:add":` - - - -`,"vuesax-linear:arrow-down":` - - -`,"vuesax-linear:arrow-left-1":` - - -`,"vuesax-linear:arrow-right-1":` - - -`,"vuesax-linear:bag-2":` - - - - - -`,"vuesax-linear:bag-cross":` - - - - - - - -`,"vuesax-linear:box-1":` - - - - -`,"vuesax-linear:box-remove":` - - - - - - - -`,"vuesax-linear:box-search":` - - - - - - -`,"vuesax-linear:building":` - - - - - - - -`,"vuesax-linear:buildings":` - - - - - - - - -`,"vuesax-linear:calendar":` - - - - - - - - - - - -`,"vuesax-linear:call":` - - -`,"vuesax-linear:card":` - - - - - -`,"vuesax-linear:card-receive":` - - - - - - - -`,"vuesax-linear:category":` - - - - - -`,"vuesax-linear:chart-2":` - - - - -`,"vuesax-linear:clipboard-close":` - - - - - -`,"vuesax-linear:clock":` - - - - - -`,"vuesax-linear:close-circle":` - - - - -`,"vuesax-linear:cpu":` - - - - - - - - - - - - - - - -`,"vuesax-linear:diamonds":` - - - -`,"vuesax-linear:document-text":` - - - - - -`,"vuesax-linear:edit-2":` - - - - -`,"vuesax-linear:element-3":` - - - - - -`,"vuesax-linear:eye":` - - - -`,"vuesax-linear:eye-slash":` - - - - - - - -`,"vuesax-linear:filter":` - - - -`,"vuesax-linear:flash":` - - - - - -`,"vuesax-linear:headphone":` - - -`,"vuesax-linear:home":` - - - -`,"vuesax-linear:info-circle":` - - - - -`,"vuesax-linear:lamp-on":` - - - -`,"vuesax-linear:location":` - - - -`,"vuesax-linear:lock":` - - - - - - -`,"vuesax-linear:logout":` - - - - -`,"vuesax-linear:menu":` - - - - -`,"vuesax-linear:message":` - - - - - -`,"vuesax-linear:mobile":` - - - - -`,"vuesax-linear:money-4":` - - - - - - - -`,"vuesax-linear:monitor":` - - - - - -`,"vuesax-linear:moon":` - - -`,"vuesax-linear:more":` - - - - -`,"vuesax-linear:note-remove":` - - - - - - - - -`,"vuesax-linear:notification":` - - - - -`,"vuesax-linear:pen-add":` - - - - - - - - -`,"vuesax-linear:people":` - - - - - - - -`,"vuesax-linear:personalcard":` - - - - - - - -`,"vuesax-linear:printer":` - - - - - - -`,"vuesax-linear:profile-2user":` - - - - - -`,"vuesax-linear:profile-circle":` - - - - -`,"vuesax-linear:receipt-search":` - - - - - - -`,"vuesax-linear:search-normal":` - - - -`,"vuesax-linear:search-status":` - - - - - -`,"vuesax-linear:setting-2":` - - - -`,"vuesax-linear:shopping-bag":` - - - - -`,"vuesax-linear:sms":` - - - -`,"vuesax-linear:sun-1":` - - - -`,"vuesax-linear:tick-circle":` - - - -`,"vuesax-linear:timer-1":` - - - - -`,"vuesax-linear:trash":` - - - - - - -`,"vuesax-linear:truck-time":` - - - - - - - - -`,"vuesax-linear:verify":` - - - -`,"vuesax-linear:wallet":` - - - - -`,"vuesax-linear:warning-2":` - - - - -`},kc=[`aria-hidden`,`innerHTML`],Ac=xr({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){Ro(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=ri(),r=X(()=>{let e=Oc[t.icon];if(!e)return``;let n=String(t.size);return e.replace(/\swidth="[^"]*"/,` width="${n}"`).replace(/\sheight="[^"]*"/,` height="${n}"`).replace(/stroke="#[^"]*"/g,`stroke="currentColor"`)}),i=X(()=>({color:t.color||void 0,width:`${t.size}px`,height:`${t.size}px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:0,flexShrink:0})),a=X(()=>n[`aria-hidden`]??!0);return(e,t)=>(G(),K(`span`,Fa({class:`basic-icon`},R(n),{style:i.value,"aria-hidden":a.value,innerHTML:r.value}),null,16,kc))}}),jc=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Mc=jc(Ac,[[`__scopeId`,`data-v-159253ae`]]),Nc=zt({items:[]});function Pc(e,t){let n=crypto.randomUUID();Nc.items.push({id:n,message:e,tone:t}),window.setTimeout(()=>Fc(n),3200)}function Fc(e){let t=Nc.items.findIndex(t=>t.id===e);t!==-1&&Nc.items.splice(t,1)}function Ic(){return{toasts:ln(Nc,`items`),dismiss:Fc,success:e=>Pc(e,`success`),error:e=>Pc(e,`error`),info:e=>Pc(e,`info`),warning:e=>Pc(e,`warning`)}}var Lc={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},Rc={class:`toast__icon`,"aria-hidden":`true`},zc={class:`toast__message`},Bc=[`onClick`],Vc=jc(xr({__name:`ToastContainer`,setup(e){let{toasts:t,dismiss:n}=Ic(),r={success:`vuesax-linear:tick-circle`,error:`vuesax-linear:close-circle`,warning:`vuesax-linear:warning-2`,info:`vuesax-linear:info-circle`};function i(e,t){t.preventDefault(),t.stopPropagation(),n(e)}return(e,n)=>(G(),K(`div`,Lc,[J(_s,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:Bn(()=>[(G(!0),K(W,null,Xr(R(t),e=>(G(),K(`div`,{key:e.id,class:A([`toast`,`toast--${e.tone}`]),role:`status`},[q(`span`,Rc,[J(Mc,{icon:r[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),q(`p`,zc,j(e.message),1),q(`button`,{type:`button`,class:`toast__close`,"aria-label":`بستن`,onClick:t=>i(e.id,t)},` × `,8,Bc)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-223aafac`]]),Hc=[`aria-label`],Uc={class:`admin-modal__header`},Wc={class:`admin-modal__title`},Gc={class:`admin-modal__body`},Kc={key:0,class:`admin-modal__footer`},qc=jc(xr({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let n=t;function r(e){e.target===e.currentTarget&&n(`close`)}return(t,i)=>(G(),xa(lr,{to:`body`},[e.open?(G(),K(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:r},[q(`div`,{class:A([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:i[1]||=Vs(()=>{},[`stop`])},[q(`header`,Uc,[q(`h2`,Wc,j(e.title),1),q(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:i[0]||=e=>n(`close`)},` × `)]),q(`div`,Gc,[Zr(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(G(),K(`footer`,Kc,[Zr(t.$slots,`footer`,{},void 0,!0)])):ja(``,!0)],10,Hc)])):ja(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),Jc=zt({open:!1,loading:!1,title:``,message:``,confirmLabel:`تأیید`,cancelLabel:`انصراف`,tone:`primary`,resolve:null});function Yc(){return Jc}function Xc(e){return new Promise(t=>{Object.assign(Jc,{open:!0,loading:!1,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`تأیید`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`primary`,resolve:t})})}function Zc(e){Jc.resolve?.(e),Jc.open=!1,Jc.loading=!1,Jc.resolve=null}function Qc(e){Jc.loading=e}var $c={class:`confirm-dialog__message`},el=[`disabled`],tl=[`disabled`],nl={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},rl=jc(xr({__name:`ConfirmDialog`,setup(e){let t=Yc();function n(){Zc(!1)}function r(){Qc(!0),Zc(!0)}return(e,i)=>(G(),xa(qc,{open:R(t).open,title:R(t).title,size:`md`,onClose:n},{footer:Bn(()=>[q(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:R(t).loading,onClick:n},j(R(t).cancelLabel),9,el),q(`button`,{type:`button`,class:A([`admin-btn`,R(t).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:R(t).loading,onClick:r},[R(t).loading?(G(),K(`span`,nl)):ja(``,!0),ka(` `+j(R(t).confirmLabel),1)],10,tl)]),default:Bn(()=>[q(`p`,$c,j(R(t).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),il=xr({__name:`App`,setup(e){return(e,t)=>{let n=Kr(`RouterView`);return G(),K(W,null,[J(n),J(Vc),J(rl)],64)}}});function al(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function ol(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&al(e.default)}var Z=Object.assign;function sl(e,t){let n={};for(let r in t){let i=t[r];n[r]=ll(i)?i.map(e):e(i)}return n}var cl=()=>{},ll=Array.isArray;function ul(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var dl=Symbol(``);function fl(e,t){return Z(Error(),{type:e,[dl]:!0},t)}function pl(e,t){return e instanceof Error&&dl in e&&(t==null||!!(e.type&t))}var ml=Symbol(``),hl=Symbol(``),gl=Symbol(``),_l=Symbol(``),vl=Symbol(``);function yl(){return V(gl)}function bl(e){return V(_l)}var xl=typeof document<`u`,Sl=/#/g,Cl=/&/g,wl=/\//g,Tl=/=/g,El=/\?/g,Dl=/\+/g,Ol=/%5B/g,kl=/%5D/g,Al=/%5E/g,jl=/%60/g,Ml=/%7B/g,Nl=/%7C/g,Pl=/%7D/g,Fl=/%20/g;function Il(e){return e==null?``:encodeURI(``+e).replace(Nl,`|`).replace(Ol,`[`).replace(kl,`]`)}function Ll(e){return Il(e).replace(Ml,`{`).replace(Pl,`}`).replace(Al,`^`)}function Rl(e){return Il(e).replace(Dl,`%2B`).replace(Fl,`+`).replace(Sl,`%23`).replace(Cl,`%26`).replace(jl,"`").replace(Ml,`{`).replace(Pl,`}`).replace(Al,`^`)}function zl(e){return Rl(e).replace(Tl,`%3D`)}function Bl(e){return Il(e).replace(Sl,`%23`).replace(El,`%3F`)}function Vl(e){return Bl(e).replace(wl,`%2F`)}function Hl(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Ul=/\/$/,Wl=e=>e.replace(Ul,``);function Gl(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=$l(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Hl(o)}}function Kl(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function ql(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Jl(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Yl(t.matched[r],n.matched[i])&&Xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yl(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Zl(e[n],t[n]))return!1;return!0}function Zl(e,t){return ll(e)?Ql(e,t):ll(t)?Ql(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Ql(e,t){return ll(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function $l(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var eu={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function tu(e){if(!e)if(xl){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Wl(e)}var nu=/^[^#]+#/;function ru(e,t){return e.replace(nu,`#`)+t}function iu(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var au=()=>({left:window.scrollX,top:window.scrollY});function ou(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=iu(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function su(e,t){return(history.state?history.state.position-t:-1)+e}var cu=new Map;function lu(e,t){cu.set(e,t)}function uu(e){let t=cu.get(e);return cu.delete(e),t}function du(e){return typeof e==`string`||e&&typeof e==`object`}function fu(e){return typeof e==`string`||typeof e==`symbol`}function pu(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Rl(e)):[r&&Rl(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function hu(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=ll(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function gu(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function _u(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(fl(4,{from:n,to:t})):e instanceof Error?c(e):du(e)?c(fl(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function vu(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(al(s)){let c=(s.__vccOpts||s)[t];c&&a.push(_u(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=ol(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&_u(c,n,r,o,e,i)()}))}}return a}function yu(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oYl(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Yl(e,s))||i.push(s))}return[n,r,i]}var bu=()=>location.protocol+`//`+location.host;function xu(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),ql(n,``)}return ql(n,e)+r+i}function Su(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=xu(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(Z({},e.state,{scroll:au()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Cu(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?au():null}}function wu(e){let{history:t,location:n}=window,r={value:xu(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:bu()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,Z({},t.state,Cu(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Z({},i.value,t.state,{forward:e,scroll:au()});a(o.current,o,!0),a(e,Z({},Cu(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Tu(e){e=tu(e);let t=wu(e),n=Su(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Z({location:``,base:e,go:r,createHref:ru.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Eu={type:0,value:``},Du=/[a-zA-Z0-9_]/;function Ou(e){if(!e)return[[]];if(e===`/`)return[[Eu]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function Pu(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Iu={strict:!1,end:!0,sensitive:!1};function Lu(e,t,n){let r=Z(Mu(Ou(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ru(e,t){let n=[],r=new Map;t=ul(Iu,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Bu(e);s.aliasOf=r&&r.record;let l=ul(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Bu(Z({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Lu(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Hu(d)&&o(e.name)),Ku(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:cl}function o(e){if(fu(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Wu(e,n);n.splice(t,0,e),e.record.name&&!Hu(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw fl(1,{location:e});s=i.record.name,a=Z(zu(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&zu(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw fl(1,{location:e,currentLocation:t});s=i.record.name,a=Z({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Uu(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function zu(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Bu(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Vu(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Vu(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Hu(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Uu(e){return e.reduce((e,t)=>Z(e,t.meta),{})}function Wu(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Pu(e,t[i])<0?r=i:n=i+1}let i=Gu(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Gu(e){let t=e;for(;t=t.parent;)if(Ku(t)&&Pu(e,t)===0)return t}function Ku({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qu(e){let t=V(gl),n=V(_l),r=X(()=>{let n=R(e.to);return t.resolve(n)}),i=X(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Yl.bind(null,i));if(o>-1)return o;let s=Qu(e[t-2]);return t>1&&Qu(i)===s&&a[a.length-1].path!==s?a.findIndex(Yl.bind(null,e[t-2])):o}),a=X(()=>i.value>-1&&Zu(n.params,r.value.params)),o=X(()=>i.value>-1&&i.value===n.matched.length-1&&Xl(n.params,r.value.params));function s(n={}){if(Xu(n)){let n=t[R(e.replace)?`replace`:`push`](R(e.to)).catch(cl);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:X(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Ju(e){return e.length===1?e[0]:e}var Yu=xr({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:qu,setup(e,{slots:t}){let n=zt(qu(e)),{options:r}=V(gl),i=X(()=>({[$u(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[$u(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ju(t.default(n));return e.custom?r:io(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Xu(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Zu(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!ll(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Qu(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var $u=(e,t,n)=>e??t??n,ed=xr({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=V(vl),i=X(()=>e.route||r.value),a=V(hl,0),o=X(()=>{let e=R(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=X(()=>i.value.matched[o.value]);Un(hl,X(()=>o.value+1)),Un(ml,s),Un(vl,i);let c=L();return Jn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Yl(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return td(n.default,{Component:l,route:r});let u=o.props[a],d=io(l,Z({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return td(n.default,{Component:d,route:r})||d}}});function td(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var nd=ed;function rd(e){let t=Ru(e.routes,e),n=e.parseQuery||pu,r=e.stringifyQuery||mu,i=e.history,a=gu(),o=gu(),s=gu(),c=Zt(eu),l=eu;xl&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=sl.bind(null,e=>``+e),d=sl.bind(null,Vl),f=sl.bind(null,Hl);function p(e,n){let r,i;return fu(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Z({},a||c.value),typeof e==`string`){let r=Gl(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Z(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Z({},e,{path:Gl(n,e.path,a.path).path});else{let t=Z({},e.params);for(let e in t)t[e]??delete t[e];o=Z({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=Kl(r,Z({},e,{hash:Ll(l),path:s.path})),m=i.createHref(p);return Z({fullPath:p,hash:l,query:r===mu?hu(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Gl(n,e,c.value.path):Z({},e)}function y(e,t){if(l!==e)return fl(8,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Z(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),Z({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Z(v(u),{state:typeof u==`object`?Z({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Jl(r,i,n)&&(f=fl(16,{to:d,from:i}),se(i,i,!0,!1)),(f?Promise.resolve(f):ee(d,i)).catch(e=>pl(e)?pl(e,2)?e:oe(e):ae(e,d,i)).then(e=>{if(e){if(pl(e,2))return C(Z({replace:s},v(e.to),{state:typeof e.to==`object`?Z({},a,e.to.state):a,force:o}),t||d)}else e=E(d,i,!0,s,a);return te(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=ue.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ee(e,t){let n,[r,i,s]=yu(e,t);n=vu(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(_u(r,e,t))});let c=w.bind(null,e,t);return n.push(c),fe(n).then(()=>{n=[];for(let r of a.list())n.push(_u(r,e,t));return n.push(c),fe(n)}).then(()=>{n=vu(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(_u(r,e,t))});return n.push(c),fe(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(ll(r.beforeEnter))for(let i of r.beforeEnter)n.push(_u(i,e,t));else n.push(_u(r.beforeEnter,e,t));return n.push(c),fe(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=vu(s,`beforeRouteEnter`,e,t,T),n.push(c),fe(n))).then(()=>{n=[];for(let r of o.list())n.push(_u(r,e,t));return n.push(c),fe(n)}).catch(e=>pl(e,8)?e:Promise.reject(e))}function te(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function E(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===eu,l=xl?history.state:{};n&&(r||s?i.replace(e.fullPath,Z({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,se(e,t,n,s),oe()}let ne;function D(){ne||=i.listen((e,t,n)=>{if(!de.listening)return;let r=_(e),a=S(r,de.currentRoute.value);if(a){C(Z(a,{replace:!0,force:!0}),r).catch(cl);return}l=r;let o=c.value;xl&&lu(su(o.fullPath,n.delta),au()),ee(r,o).catch(e=>pl(e,12)?e:pl(e,2)?(C(Z(v(e.to),{force:!0}),r).then(e=>{pl(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(cl),Promise.reject()):(n.delta&&i.go(-n.delta,!1),ae(e,r,o))).then(e=>{e||=E(r,o,!1),e&&(n.delta&&!pl(e,8)?i.go(-n.delta,!1):n.type===`pop`&&pl(e,20)&&i.go(-1,!1)),te(r,o,e)}).catch(cl)})}let re=gu(),ie=gu(),O;function ae(e,t,n){oe(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function k(){return O&&c.value!==eu?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function oe(e){return O||(O=!e,D(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function se(t,n,r,i){let{scrollBehavior:a}=e;if(!xl||!a)return Promise.resolve();let o=!r&&uu(su(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return kn().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&ou(e)).catch(e=>t===c.value&&ae(e,t,n))}let ce=e=>i.go(e),le,ue=new Set,de={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:ce,back:()=>ce(-1),forward:()=>ce(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:k,install(e){e.component(`RouterLink`,Yu),e.component(`RouterView`,nd),e.config.globalProperties.$router=de,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>R(c)}),xl&&!le&&c.value===eu&&(le=!0,b(i.location).catch(e=>{}));let t={};for(let e in eu)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(gl,de),e.provide(_l,Bt(t)),e.provide(vl,c);let n=e.unmount;ue.add(e),e.unmount=function(){ue.delete(e),ue.size<1&&(l=eu,ne&&ne(),ne=null,c.value=eu,le=!1,O=!1),n()}}};function fe(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return de}var id=[{name:`dashboard`,label:`داشبورد`,path:`/`,icon:`home`},{name:`orders`,label:`سفارش‌ها`,path:`/orders`,icon:`orders`},{name:`customers`,label:`مشتریان و واسطه‌ها`,path:`/customers`,icon:`customers`},{name:`products`,label:`محصولات`,path:`/products`,icon:`products`},{name:`categories`,label:`دسته‌بندی‌ها`,path:`/categories`,icon:`catalogs`},{name:`banners`,label:`بنرها`,path:`/banners`,icon:`image`},{name:`catalogs`,label:`کالیته‌ها`,path:`/catalogs`,icon:`catalogs`},{name:`catalog-requests`,label:`درخواست کالیته فیزیکی`,path:`/catalog-requests`,icon:`file`},{name:`brands`,label:`برندها`,path:`/brands`,icon:`building`},{name:`suggestions`,label:`پیشنهاد محصول`,path:`/suggestions`,icon:`cart`},{name:`stock-alerts`,label:`خبر موجودی`,path:`/stock-alerts`,icon:`bell`},{name:`levels`,label:`سطوح مشتری`,path:`/levels`,icon:`users`},{name:`companies`,label:`شرکت‌ها`,path:`/companies`,icon:`companies`},{name:`checks`,label:`چک‌ها`,path:`/checks`,icon:`checks`},{name:`cash-payments`,label:`پرداخت‌های نقدی`,path:`/cash-payments`,icon:`cash`},{name:`shipping`,label:`ارسال و باربری`,path:`/shipping`,icon:`shipping`},{name:`reports`,label:`گزارش‌ها`,path:`/reports`,icon:`reports`},{name:`settings`,label:`تنظیمات`,path:`/settings`,icon:`settings`},{name:`users`,label:`کاربران و دسترسی‌ها`,path:`/users`,icon:`users`}];function ad(e,t){if(e===`/`)return t===`/`;if(/^\/orders\/[^/]+\/checks/.test(t)){if(e===`/checks`)return!0;if(e===`/orders`)return!1}return t===e||t.startsWith(`${e}/`)}var od=xr({__name:`AdminIcon`,props:{name:{},size:{default:20},strokeWidth:{default:1.5},color:{default:null}},setup(e){let t=e,n={home:`vuesax-linear:home`,orders:`vuesax-linear:document-text`,customers:`vuesax-linear:profile-2user`,products:`vuesax-linear:box-1`,catalogs:`vuesax-linear:category`,image:`vuesax-linear:category`,companies:`vuesax-linear:buildings`,checks:`vuesax-linear:card-receive`,cash:`vuesax-linear:money-4`,shipping:`vuesax-linear:truck-time`,reports:`vuesax-linear:chart-2`,settings:`vuesax-linear:setting-2`,users:`vuesax-linear:people`,logout:`vuesax-linear:logout`,search:`vuesax-linear:search-normal`,bell:`vuesax-linear:notification`,message:`vuesax-linear:message`,calendar:`vuesax-linear:calendar`,menu:`vuesax-linear:menu`,filter:`vuesax-linear:filter`,more:`vuesax-linear:more`,"chevron-left":`vuesax-linear:arrow-left-1`,"chevron-right":`vuesax-linear:arrow-right-1`,"chevron-back":`vuesax-linear:arrow-right-1`,"chevron-down":`vuesax-linear:arrow-down`,print:`vuesax-linear:printer`,sms:`vuesax-linear:sms`,check:`vuesax-linear:tick-circle`,cart:`vuesax-linear:bag-2`,file:`vuesax-linear:document-text`,wallet:`vuesax-linear:wallet`,"check-circle":`vuesax-linear:tick-circle`,phone:`vuesax-linear:call`,"id-card":`vuesax-linear:personalcard`,lock:`vuesax-linear:lock`,eye:`vuesax-linear:eye`,"eye-off":`vuesax-linear:eye-slash`,user:`vuesax-linear:profile-circle`,building:`vuesax-linear:building`,trash:`vuesax-linear:trash`},r=X(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(G(),xa(Mc,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),sd=`fabric-admin-token`;function cd(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function ld(){return localStorage.getItem(sd)??sessionStorage.getItem(sd)}function ud(e,t=!0){localStorage.removeItem(sd),sessionStorage.removeItem(sd),e&&(t?localStorage.setItem(sd,e):sessionStorage.setItem(sd,e))}var dd=class extends Error{status;constructor(e,t){super(t),this.status=e}};function fd(e,t){let n=cd(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function pd(e,t){if(typeof e==`object`&&e&&`message`in e){let t=e.message;return Array.isArray(t)?t.join(`، `):String(t)}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return`خطای سرور (${t})`}async function Q(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=ld();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch(fd(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(t.timeoutMs??2e4)})}catch(e){throw new dd(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){ud(null),localStorage.removeItem(`fabric-admin-session`),sessionStorage.removeItem(`fabric-admin-session`);let e=`/admin/login`;if(typeof window<`u`&&window.location.pathname!==e){let t=encodeURIComponent(`${window.location.pathname}${window.location.search}`);window.location.assign(`${e}?redirect=${t}`)}}throw new dd(r.status,pd(a,r.status))}return a}var md=`fabric-admin-session`,hd=`fabric-admin-token`,gd=!1,_d={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function vd(){try{let e=localStorage.getItem(md)??sessionStorage.getItem(md);return e?JSON.parse(e):null}catch{return null}}function yd(e,t){let n=JSON.stringify(e);localStorage.removeItem(md),sessionStorage.removeItem(md),t?localStorage.setItem(md,n):sessionStorage.setItem(md,n)}function bd(){localStorage.removeItem(md),sessionStorage.removeItem(md)}function xd(){return!!localStorage.getItem(hd)}function Sd(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function Cd(){return vd()}function wd(){return gd}async function Td(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await Q(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return ud(r.accessToken,e.remember),yd(Sd(r.user),e.remember),{success:!0}}catch(e){return e instanceof dd?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Ed(){let e=ld();if(!e)return bd(),null;if(e===`mock-admin-token`){let e=vd()??_d.session;return yd(e,xd()),e}try{let e=Sd(await Q(`/auth/me`));return yd(e,xd()),e}catch{return ud(null),bd(),null}}function Dd(){ud(null),bd()}var Od=Dc(`auth`,()=>{let e=L(Cd()),t=L(!1),n=L(null),r=X(()=>!!e.value),i=X(()=>e.value?.fullName??``),a=X(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}async function s(){e.value=Cd(),e.value=await Ed()}async function c(r,i,a){t.value=!0,n.value=null;let o=await Td({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=Cd(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Dd(),e.value=null,n.value=null}return{session:e,loading:t,error:n,isAuthenticated:r,fullName:i,roleLabel:a,clearError:o,hydrate:s,login:c,logout:l}}),kd={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},Ad={class:`admin-sidebar__nav`},jd=[`onClick`],Md=jc(xr({__name:`AdminSidebar`,setup(e){let t=bl(),n=yl(),r=Od();function i(e){n.push(e)}function a(){r.logout(),n.push(`/login`)}return(e,n)=>(G(),K(`aside`,kd,[n[1]||=q(`div`,{class:`admin-sidebar__brand`},[q(`strong`,{class:`admin-sidebar__title`},`پارچه`),q(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`)],-1),q(`nav`,Ad,[(G(!0),K(W,null,Xr(R(id),e=>(G(),K(`button`,{key:e.name,type:`button`,class:A([`admin-sidebar__item`,{active:R(ad)(e.path,R(t).path)}]),onClick:t=>i(e.path)},[J(od,{name:e.icon,size:20},null,8,[`name`]),q(`span`,null,j(e.label),1)],10,jd))),128))]),q(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:a},[J(od,{name:`logout`,size:20}),n[0]||=q(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-bcc6586c`]]),Nd=new WeakMap,Pd=(...e)=>{let t=e[0],n=Ba()?.proxy??De();if(n==null&&!Wn())throw Error(`injectLocal must be called in setup`);return n&&Nd.has(n)&&t in Nd.get(n)?Nd.get(n)[t]:V(...e)},Fd=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Id=Object.prototype.toString,Ld=e=>Id.call(e)===`[object Object]`,Rd=()=>{},zd=Bd();function Bd(){var e,t;return Fd&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function Vd(...e){if(e.length!==1)return ln(...e);let t=e[0];return typeof t==`function`?Vt(an(()=>({get:t,set:Rd}))):L(t)}function Hd(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var Ud=e=>e();function Wd(e=Ud,t={}){let{initialState:n=`active`}=t,r=Vd(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:Ht(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function Gd(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function Kd(e){return Array.isArray(e)?e:[e]}function qd(e){return e||Ba()}function Jd(e,t,n={}){let{eventFilter:r=Ud,...i}=n;return Jn(e,Hd(r,t),i)}function Yd(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=Wd(r,{initialState:i});return{stop:Jd(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function Xd(e,t=!0,n){qd(n)?Ir(e,n):t?e():kn(e)}function Zd(e,t,n){return Jn(e,t,{...n,immediate:!0})}var Qd=Fd?window:void 0;Fd&&window.document,Fd&&window.navigator,Fd&&window.location;function $d(e){let t=en(e);return t?.$el??t}function ef(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=X(()=>{let t=Kd(en(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return Zd(()=>[n.value?.map(e=>$d(e))??[Qd].filter(e=>e!=null),Kd(en(n.value?e[1]:e[0])),Kd(R(n.value?e[2]:e[1])),en(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=Ld(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var tf=!1;function nf(e,t,n={}){let{window:r=Qd,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:Rd,cancel:Rd,trigger:Rd}:Rd;if(zd&&!tf){tf=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,Rd,e)),r.document.documentElement.addEventListener(`click`,Rd,e)}let c=!0,l=e=>en(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=$d(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=en(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=en(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=$d(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[ef(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),ef(r,`pointerdown`,t=>{let n=$d(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&ef(r,`blur`,n=>{setTimeout(()=>{let i=$d(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function rf(){let e=Zt(!1),t=Ba();return t&&Ir(()=>{e.value=!0},t),e}function af(e){let t=rf();return X(()=>(t.value,!!e()))}var of=Symbol(`vueuse-ssr-width`);function sf(){let e=Wn()?Pd(of,null):null;return typeof e==`number`?e:void 0}function cf(e,t={}){let{window:n=Qd,ssrWidth:r=sf()}=t,i=af(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=Zt(typeof r==`number`),o=Zt(),s=Zt(!1);return qn(()=>{if(a.value){a.value=!i.value;let t=en(e).split(`,`);s.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||i);return n&&a&&(a=r>=Gd(n[1])),i&&a&&(a=r<=Gd(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(en(e)),s.value=o.value.matches)}),ef(o,`change`,e=>{s.value=e.matches},{passive:!0}),X(()=>s.value)}var lf=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},uf=`__vueuse_ssr_handlers__`,df=ff();function ff(){return uf in lf||(lf[uf]=lf[uf]||{}),lf[uf]}function pf(e,t){return df[e]||t}function mf(e){return cf(`(prefers-color-scheme: dark)`,e)}function hf(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var gf={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},_f=`vueuse-storage`;function vf(e,t,n,r={}){let{flush:i=`pre`,deep:a=!0,listenToStorageChanges:o=!0,writeDefaults:s=!0,mergeDefaults:c=!1,shallow:l,window:u=Qd,eventFilter:d,onError:f=e=>{console.error(e)},initOnMounted:p}=r,m=(l?Zt:L)(typeof t==`function`?t():t),h=X(()=>en(e));if(!n)try{n=pf(`getDefaultStorage`,()=>Qd?.localStorage)()}catch(e){f(e)}if(!n)return m;let g=en(t),_=hf(g),v=r.serializer??gf[_],{pause:y,resume:b}=Yd(m,e=>C(e),{flush:i,deep:a,eventFilter:d});Jn(h,()=>T(),{flush:i});let x=!1;u&&o&&(n instanceof Storage?ef(u,`storage`,e=>{p&&!x||T(e)},{passive:!0}):ef(u,_f,e=>{p&&!x||ee(e)})),p?Xd(()=>{x=!0,T()}):T();function S(e,t){if(u){let r={key:h.value,oldValue:e,newValue:t,storageArea:n};u.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(_f,{detail:r}))}}function C(e){try{let t=n.getItem(h.value);if(e==null)S(t,null),n.removeItem(h.value);else{let r=v.write(e);t!==r&&(n.setItem(h.value,r),S(t,r))}}catch(e){f(e)}}function w(e){let t=e?e.newValue:n.getItem(h.value);if(t==null)return s&&g!=null&&n.setItem(h.value,v.write(g)),g;if(!e&&c){let e=v.read(t);return typeof c==`function`?c(e,g):_===`object`&&!Array.isArray(e)?{...g,...e}:e}return typeof t==`string`?v.read(t):t}function T(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){m.value=g;return}if(!(e&&e.key!==h.value)){y();try{let t=v.write(m.value);(e===void 0||e?.newValue!==t)&&(m.value=w(e))}catch(e){f(e)}finally{e?kn(b):b()}}}}function ee(e){T(e.detail)}return m}function yf(e){return{...e,status:e.adminStatus??e.status,rawStatus:e.status,allowedTransitions:e.allowedTransitions??[],settlementMethod:e.settlementMethod??e.settlementType??null,meterage:e.meterage??e.totalMeterage??0}}function bf(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var xf={list:e=>Q(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>Q(`/companies/${e}`),create:e=>Q(`/companies`,{body:e}),update:(e,t)=>Q(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Q(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Sf={listByCompany:e=>Q(`/companies/${e}/bank-accounts`),create:(e,t)=>Q(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>Q(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Q(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Cf={list:e=>Q(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Q(`/catalogs`,{body:e}),update:(e,t)=>Q(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Q(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},wf={list:e=>Q(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Q(`/products`,{body:e,timeoutMs:9e4}),update:(e,t)=>Q(`/products/${e}`,{method:`PATCH`,body:t,timeoutMs:9e4}),setActive:(e,t)=>Q(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Tf={list:(e,t)=>Q(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>Q(`/admin/customers`,{body:e}),update:(e,t)=>Q(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Q(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ef={list:e=>Q(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>Q(`/admin/orders/${e}`),create:e=>Q(`/admin/orders`,{body:e}),updatePricing:(e,t)=>Q(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>Q(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Df={list:e=>Q(`/admin/checks`,{query:{status:e}}),listByOrder:e=>Q(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>Q(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Of={list:e=>Q(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>Q(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},kf={list:e=>Q(`/admin/shipments`,{query:{status:e}}),create:e=>Q(`/admin/shipments`,{body:e}),update:(e,t)=>Q(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>Q(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},Af={list:()=>Q(`/admin/users`),create:e=>Q(`/admin/users`,{body:e}),update:(e,t)=>Q(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Q(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},jf={get:()=>Q(`/admin/dashboard`),reports:()=>Q(`/admin/reports`)},Mf={get:()=>Q(`/admin/settings`),update:e=>Q(`/admin/settings`,{method:`PATCH`,body:e})},Nf={markRead:e=>Q(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>Q(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>Q(`/admin/notifications/broadcast`,{method:`POST`,body:e})},Pf={list:e=>Q(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>Q(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>Q(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},Ff={list:e=>Q(`/admin/banners`,{query:{slot:e}}),create:e=>Q(`/admin/banners`,{body:e}),update:(e,t)=>Q(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>Q(`/admin/banners/${e}`,{method:`DELETE`})},If={list:()=>Q(`/admin/brands`),create:e=>Q(`/admin/brands`,{body:e}),update:(e,t)=>Q(`/admin/brands/${e}`,{method:`PATCH`,body:t})},Lf={list:()=>Q(`/admin/levels`),create:e=>Q(`/admin/levels`,{body:e}),update:(e,t)=>Q(`/admin/levels/${e}`,{method:`PATCH`,body:t})},Rf={list:e=>Q(`/admin/suggestions`,{query:{customerId:e}}),create:e=>Q(`/admin/suggestions`,{body:e}),setActive:(e,t)=>Q(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},zf={list:()=>Q(`/admin/stock-alerts`),notify:e=>Q(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},Bf=`۰۱۲۳۴۵۶۷۸۹`,Vf=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function Hf(e){return e.replace(/[۰-۹]/g,e=>String(Bf.indexOf(e)))}function Uf(e){return Hf(e).replace(/[^\d]/g,``)}function Wf(e){return Number.isFinite(e)?Vf.format(e):`—`}function Gf(e){return`${Wf(e)} تومان`}function Kf(e){return`${Wf(e)} متر`}function qf(e){return String(e).replace(/\d/g,e=>Bf[Number(e)])}var Jf=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),Yf=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function Xf(e){let t=Hf(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function Zf(e){if(typeof e!=`string`)return e;let t=e.trim(),n=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(n&&Number(n[1])>=1700)return new Date(Number(n[1]),Number(n[2])-1,Number(n[3]));let r=new Date(t);return Number.isNaN(r.getTime())?new Date(NaN):r}function Qf(e){if(!e)return`—`;if(typeof e==`string`&&Xf(e)){let t=Hf(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return qf(t);let[,r,i,a]=n;return qf(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=Zf(e);return Number.isNaN(t.getTime())?`—`:Jf.format(t)}function $f(e){if(!e)return`—`;if(typeof e==`string`&&Xf(e)&&!/[T\s]\d/.test(e))return Qf(e);let t=Zf(e);return Number.isNaN(t.getTime())?`—`:Yf.format(t)}var ep=/ORD-?\d{2,4}-?\d{2,6}/i,tp=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,np=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function rp(e){let t=e.match(ep);if(!t?.[0])return null;let n=t[0].toUpperCase().replace(/^ORD-?/,``).replace(/-/g,``);return n.length<6?t[0].toUpperCase():`ORD-${n.slice(0,4)}-${n.slice(4)}`}function ip(e,t){return t.some(t=>t.test(e))}function ap(e){let t=e.trim();if(!t)return t;try{if(/^https?:\/\//i.test(t)){let e=new URL(t);t=`${e.pathname}${e.search}`}}catch{}t=t.replace(/^\/admin(?=\/)/,``),t.startsWith(`/`)||(t=`/${t}`);let n=t.match(np);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(tp);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function op(e){let t=e.link?.trim();if(t)return ap(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=rp(n),a=ip(n,[/پیامک/]),o=ip(n,[/چک/]),s=ip(n,[/قیمت/,/تخفیف/,/پیش[‌\s]?فاکتور/,/قیمت‌گذاری/,/اصلاح قیمت/]),c=!a&&ip(n,[/ارسال/,/باربری/,/حمل/,/بارنامه/]),l=ip(n,[/نقدی/,/پرداخت نقد/,/رسید پرداخت/]),u=ip(n,[/گزارش/]),d=ip(n,[/مشتری جدید/,/ثبت مشتری/]),f=ip(n,[/کالیته/]),p=ip(n,[/محصول/]),m=ip(n,[/شرکت/,/حساب بانکی/]),h=ip(n,[/سفارش/]),g=a||ip(n,[/پشتیبان/,/تنظیمات/]);return r?o?`/orders/${r}/checks`:s?`/orders/${r}/pricing`:c?`/shipping?order=${encodeURIComponent(r)}`:l?`/cash-payments?order=${encodeURIComponent(r)}`:`/orders?order=${encodeURIComponent(r)}`:i?o?`/orders?order=${encodeURIComponent(i)}&focus=checks`:s?`/orders?order=${encodeURIComponent(i)}&focus=pricing`:c?`/shipping?order=${encodeURIComponent(i)}`:l?`/cash-payments?order=${encodeURIComponent(i)}`:`/orders?order=${encodeURIComponent(i)}`:o?`/checks`:c?`/shipping`:l?`/cash-payments`:u?`/reports`:d?`/customers`:f?`/catalogs`:p?`/products`:m?`/companies`:g?`/settings`:s||h?`/orders`:null}var sp=Dc(`theme`,()=>{let e=vf(`ft_admin_theme`,`system`),t=mf(),n=X(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=X(()=>n.value===`dark`);qn(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}return{preference:e,resolved:n,isDark:r,setPreference:i}}),cp={class:`admin-header`},lp={class:`admin-header__right`},up={class:`admin-header__dropdown`},dp=[`aria-label`,`aria-expanded`],fp={key:0,class:`admin-header__badge`,"aria-hidden":`true`},pp={class:`admin-header__panel-header`},mp={key:0,class:`admin-header__panel-list`},hp=[`onClick`],gp={class:`admin-header__panel-item-top`},_p=[`datetime`],vp={class:`admin-header__panel-item-sender`},yp={class:`admin-header__panel-item-body`},bp={key:1,class:`admin-header__panel-empty`},xp={class:`admin-header__dropdown`},Sp=[`aria-label`,`aria-expanded`],Cp={key:0,class:`admin-header__badge`,"aria-hidden":`true`},wp={class:`admin-header__panel-header`},Tp={key:0,class:`admin-header__panel-list`},Ep=[`onClick`],Dp={class:`admin-header__panel-item-top`},Op=[`datetime`],kp={class:`admin-header__panel-item-body`},Ap={key:1,class:`admin-header__panel-empty`},jp={class:`admin-header__dropdown`},Mp=[`aria-label`,`aria-expanded`],Np={class:`admin-header__theme-glyph`,"aria-hidden":`true`},Pp={class:`admin-header__theme-list`},Fp=[`onClick`],Ip={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},Lp={class:`admin-header__theme-option-label`},Rp={class:`admin-header__user`},zp={class:`admin-header__avatar`},Bp={class:`admin-header__user-info`},Vp=jc(xr({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let t=yl(),n=Od(),r=sp(),i=L(null),a=L(null),o=L([]),s=L([]),c=X(()=>o.value.filter(e=>!e.isRead).length),l=X(()=>s.value.filter(e=>!e.isRead).length),u=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],d=X(()=>u.find(e=>e.value===r.preference)?.label??`سیستم`),f=X(()=>u.find(e=>e.value===r.preference)?.icon??`vuesax-linear:sun-1`);jf.get().then(e=>{o.value=e.messages??[],s.value=e.notifications??[]}).catch(()=>{o.value=[],s.value=[]}),nf(a,()=>{i.value=null}),ef(document,`keydown`,e=>{e.key===`Escape`&&(i.value=null)});function p(e){i.value=i.value===e?null:e}function m(){i.value=null}function h(e){e.isRead=!0}function g(e){e.isRead||(e.isRead=!0,Nf.markRead(e.id).catch(()=>{e.isRead=!1}))}function _(){o.value.forEach(e=>{e.isRead=!0})}function v(){let e=s.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),Nf.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function y(e){m(),e&&t.push(e)}function b(e){h(e),y(op({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function x(e){g(e),y(op({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function S(e){r.setPreference(e),m()}return(e,t)=>(G(),K(`header`,cp,[q(`div`,lp,[q(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:t[0]||=t=>e.$emit(`menuClick`)},[J(od,{name:`menu`,size:22})])]),q(`div`,{ref_key:`actionsRef`,ref:a,class:`admin-header__left`},[q(`div`,up,[q(`button`,{type:`button`,class:A([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${c.value} پیام خوانده‌نشده`,"aria-expanded":i.value===`messages`,"aria-haspopup":`true`,onClick:t[1]||=Vs(e=>p(`messages`),[`stop`])},[J(od,{name:`message`,size:22}),c.value?(G(),K(`span`,fp,j(c.value),1)):ja(``,!0),t[7]||=q(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,dp),i.value===`messages`?(G(),K(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:t[2]||=Vs(()=>{},[`stop`])},[q(`div`,pp,[t[8]||=q(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),c.value?(G(),K(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:_},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):ja(``,!0)]),o.value.length?(G(),K(`ul`,mp,[(G(!0),K(W,null,Xr(o.value,e=>(G(),K(`li`,{key:e.id,class:A([`admin-header__panel-item`,{unread:!e.isRead}])},[q(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>b(e)},[q(`span`,gp,[q(`strong`,null,j(e.subject),1),q(`time`,{datetime:e.sentAt},j(R($f)(e.sentAt)),9,_p)]),q(`span`,vp,`از `+j(e.senderName),1),q(`span`,yp,j(e.preview),1)],8,hp)],2))),128))])):(G(),K(`p`,bp,`پیامی وجود ندارد.`))])):ja(``,!0)]),q(`div`,xp,[q(`button`,{type:`button`,class:A([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${l.value} اعلان جدید`,"aria-expanded":i.value===`notifications`,"aria-haspopup":`true`,onClick:t[3]||=Vs(e=>p(`notifications`),[`stop`])},[J(od,{name:`bell`,size:22}),l.value?(G(),K(`span`,Cp,j(l.value),1)):ja(``,!0),t[9]||=q(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Sp),i.value===`notifications`?(G(),K(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:t[4]||=Vs(()=>{},[`stop`])},[q(`div`,wp,[t[10]||=q(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),l.value?(G(),K(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:v},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):ja(``,!0)]),s.value.length?(G(),K(`ul`,Tp,[(G(!0),K(W,null,Xr(s.value,e=>(G(),K(`li`,{key:e.id,class:A([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[q(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>x(e)},[q(`span`,Dp,[q(`strong`,null,j(e.title),1),q(`time`,{datetime:e.sentAt},j(R($f)(e.sentAt)),9,Op)]),q(`span`,kp,j(e.body),1)],8,Ep)],2))),128))])):(G(),K(`p`,Ap,`اعلانی وجود ندارد.`))])):ja(``,!0)]),q(`div`,jp,[q(`button`,{type:`button`,class:A([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${d.value}`,"aria-expanded":i.value===`theme`,"aria-haspopup":`true`,onClick:t[5]||=Vs(e=>p(`theme`),[`stop`])},[q(`span`,Np,[J(Mc,{icon:f.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),t[11]||=q(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,Mp),i.value===`theme`?(G(),K(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:t[6]||=Vs(()=>{},[`stop`])},[t[12]||=q(`div`,{class:`admin-header__panel-header`},[q(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),q(`ul`,Pp,[(G(),K(W,null,Xr(u,e=>q(`li`,{key:e.value},[q(`button`,{type:`button`,class:A([`admin-header__theme-option`,{"admin-header__theme-option--active":R(r).preference===e.value}]),onClick:t=>S(e.value)},[q(`span`,Ip,[J(Mc,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),q(`span`,Lp,j(e.label),1),R(r).preference===e.value?(G(),xa(Mc,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):ja(``,!0)],10,Fp)])),64))])])):ja(``,!0)]),q(`div`,Rp,[q(`div`,zp,j(R(n).fullName.charAt(0)||`؟`),1),q(`div`,Bp,[q(`strong`,null,j(R(n).fullName||`مدیر`),1),q(`span`,null,j(R(n).roleLabel||`پنل مدیریت`),1)])])],512)]))}}),[[`__scopeId`,`data-v-7fec14ae`]]),Hp=[`aria-hidden`],Up={class:`admin-drawer__brand`},Wp={class:`admin-drawer__nav`},Gp=[`onClick`],Kp=jc(xr({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let n=t,r=bl(),i=yl(),a=Od();function o(e){i.push(e),n(`close`)}function s(){a.logout(),i.push(`/login`),n(`close`)}return(t,i)=>(G(),K(W,null,[q(`div`,{class:A([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:i[0]||=e=>n(`close`)},null,2),q(`aside`,{class:A([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[q(`div`,Up,[i[2]||=q(`strong`,null,`پارچه`,-1),i[3]||=q(`span`,null,`پنل مدیریت`,-1),q(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:i[1]||=e=>n(`close`)},` × `)]),q(`nav`,Wp,[(G(!0),K(W,null,Xr(R(id),e=>(G(),K(`button`,{key:e.name,type:`button`,class:A([`admin-drawer__item`,{active:R(ad)(e.path,R(r).path)}]),onClick:t=>o(e.path)},[J(od,{name:e.icon,size:20},null,8,[`name`]),q(`span`,null,j(e.label),1)],10,Gp))),128))]),q(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:s},[J(od,{name:`logout`,size:20}),i[4]||=q(`span`,null,`خروج`,-1)])],10,Hp)],64))}}),[[`__scopeId`,`data-v-7a746e66`]]),qp={class:`admin-shell`},Jp={class:`admin-shell__main`},Yp={class:`admin-shell__content`},Xp=jc(xr({__name:`AdminShell`,setup(e){let t=bl(),n=L(!1);function r(){n.value=!0}function i(){n.value=!1}return Jn(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=Kr(`RouterView`);return G(),K(`div`,qp,[J(Md,{class:`desktop-only admin-shell__sidebar`}),J(Kp,{open:n.value,onClose:i},null,8,[`open`]),q(`div`,Jp,[J(Vp,{onMenuClick:r}),q(`main`,Yp,[J(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),Zp=`modulepreload`,Qp=function(e){return`/admin/`+e},$p={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Qp(t,n),t=s(t),t in $p)return;$p[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Zp,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},em=rd({history:Tu(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-D1CCMfxr.js`),__vite__mapDeps([0,1])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:Xp,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-BXkuwSW-.js`),__vite__mapDeps([2,3,4,5,6])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-D-3A1wX9.js`),__vite__mapDeps([7,8,9,10,4,3,5,11])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-CvBkBKTY.js`),__vite__mapDeps([12,13,14,8,9,4,3,5,15,16,17])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-BQ_mFtUm.js`),__vite__mapDeps([18,13,14,8,9,3,4,5,19])),meta:{title:`چک‌ها`}},{path:`orders/:id/checks`,name:`order-checks`,component:()=>$(()=>import(`./CheckManagementView-DFrKKIXW.js`),__vite__mapDeps([20,4,3,5,21])),meta:{title:`مدیریت چک‌های سفارش`}},{path:`orders/:id`,name:`order-detail`,redirect:e=>({name:`orders`,query:{order:String(e.params.id)}})},{path:`companies`,name:`companies`,component:()=>$(()=>import(`./CompaniesView-CFgjGQke.js`),__vite__mapDeps([22,13,14,23,24,25,26,27,28])),meta:{title:`مدیریت شرکت‌ها`}},{path:`companies/:companyId/accounts`,name:`bank-accounts`,component:()=>$(()=>import(`./BankAccountsView-33uUkn7P.js`),__vite__mapDeps([29,23,24,25,26,27,30])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-2wzqQ3p0.js`),__vite__mapDeps([31,13,14,23,24,25,26,8,9,10,27,32])),meta:{title:`مشتریان و واسطه‌ها`}},{path:`products`,name:`products`,component:()=>$(()=>import(`./ProductsView-V-E7JmoO.js`),__vite__mapDeps([33,13,14,23,24,25,26,34,35,8,9,27,15,16,36])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-jQSu6NG7.js`),__vite__mapDeps([37,13,14,23,24,34,35,8,9,38])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-CZaBcIQn.js`),__vite__mapDeps([39,13,14,23,24,25,26,34,35,8,9,40])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-BqUCTvB5.js`),__vite__mapDeps([41,13,14,23,24,25,26,34,35,8,9,27,42])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-DSpZCB11.js`),__vite__mapDeps([43,13,14,25,26,8,9,44])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-CPBAGKxa.js`),__vite__mapDeps([45,13,14,23,24,25,26,46])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-DKPC0xly.js`),__vite__mapDeps([47,13,14,25,26,8,9,48])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-by4e-dTJ.js`),__vite__mapDeps([49,13,14,25,26,50])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-rP_u9G1_.js`),__vite__mapDeps([51,13,14,25,26,52])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-C7RaPyP8.js`),__vite__mapDeps([53,13,14,8,9,10,54])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-XJtm6EAp.js`),__vite__mapDeps([55,13,14,8,9,10,4,56])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-Caau4ET1.js`),__vite__mapDeps([57,13,14,58])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-DUUxvo0M.js`),__vite__mapDeps([59,13,14,60])),meta:{title:`تنظیمات`}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-DIwx8h0p.js`),__vite__mapDeps([61,13,14,23,24,25,26,8,9,10,27,62])),meta:{title:`کاربران و دسترسی‌ها`}}]}]});em.beforeEach(async e=>{let t=Od();return await t.hydrate(),e.meta.public?t.isAuthenticated&&e.name===`login`?{name:`dashboard`}:!0:e.matched.some(e=>e.meta.requiresAuth)&&!t.isAuthenticated?{name:`login`,query:{redirect:e.fullPath}}:!0});var tm=qs(il),nm=pc();tm.use(nm),tm.use(em),sp(nm),Od(nm).hydrate(),tm.mount(`#app`);export{ja as $,Od as A,Mc as B,Mf as C,j as Ct,Rf as D,zf as E,bl as F,Os as G,ks as H,yl as I,W as J,Us as K,Xc as L,wd as M,dd as N,nf as O,od as P,xa as Q,qc as R,wf as S,ue as St,bf as T,Is as U,jc as V,Ms as W,X,lr as Y,q as Z,jf as _,I as _t,Kf as a,V as at,Nf as b,R as bt,Sf as c,Br as ct,Of as d,Xr as dt,K as et,Pf as f,Zr as ft,Tf as g,Vn as gt,xf as h,Bn as ht,$f as i,xr as it,_d as j,cf as k,Ff as l,G as lt,Df as m,Jn as mt,Gf as n,ka as nt,Wf as o,kn as ot,Cf as p,Kr as pt,Vs as q,Qf as r,J as rt,Af as s,Ir as st,Uf as t,Aa as tt,If as u,Un as ut,Lf as v,zt as vt,kf as w,Ef as x,A as xt,yf as y,L as yt,Ic as z}; \ No newline at end of file diff --git a/dist/assets/index-CXa4EMLW.js b/dist/assets/index-CXa4EMLW.js new file mode 100644 index 0000000..2ad0640 --- /dev/null +++ b/dist/assets/index-CXa4EMLW.js @@ -0,0 +1,382 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-w-SE2utd.js","assets/_plugin-vue_export-helper-OaxA6A2f.js","assets/LoginView-IFH_z0sG.css","assets/DashboardView-cyaZFrOQ.js","assets/StatusBadge-Cg2zTE2k.js","assets/orderStatus-CYVblRJB.js","assets/StatusBadge-D4wGJ-Ud.css","assets/DashboardView-Tmb__ujh.css","assets/OrdersView-DGNYhZg3.js","assets/AdminSelect-9UfEJQzN.js","assets/AdminSelect-DRq_EKw9.css","assets/adminLabels-Cz9ccm1Z.js","assets/OrdersView-BdQzhX-C.css","assets/OrderPricingView-vS7IKrtc.js","assets/AdminPageSkeleton-CTgUqaAu.js","assets/AdminPageSkeleton-Gm3IJwUK.css","assets/AdminCurrencyInput-D6MsBhvR.js","assets/AdminCurrencyInput-QPh70it7.css","assets/OrderPricingView-D4tU9mWx.css","assets/ChecksListView-DgtZLWw5.js","assets/ChecksListView-DeOu1gFo.css","assets/CheckManagementView-D9Dy0r7I.js","assets/CheckManagementView-C1ozixF5.css","assets/CompaniesView-C28l_bkY.js","assets/BaseSwitch-TV5Yvtf7.js","assets/BaseSwitch-CCZjYqBV.css","assets/BaseEmptyState-BmO9aDcK.js","assets/BaseEmptyState-Df57vCUi.css","assets/ActiveSwitchCell-DJZQHZ-8.js","assets/CompaniesView-BubE_GYW.css","assets/BankAccountsView-CjjgU3ea.js","assets/BankAccountsView-jIdT6saw.css","assets/CustomersView-D2DfLX0j.js","assets/CustomersView-Bx7jWwze.css","assets/ProductsView-NLVncfjZ.js","assets/AdminImagePicker-C4toq7MG.js","assets/AdminImagePicker-BeE_kWbB.css","assets/ProductsView-DdADDBgQ.css","assets/CategoriesView-DAT9P8-Q.js","assets/CategoriesView-D7xsOZr4.css","assets/BannersView-KHMLub3-.js","assets/BannersView-TRKkvRxh.css","assets/CatalogsView-DJJrDHxo.js","assets/CatalogsView-yskXIlwQ.css","assets/CatalogRequestsView-DQu3_M_v.js","assets/CatalogRequestsView-DmO_C6eq.css","assets/BrandsView-Il4Q4zqB.js","assets/BrandsView-B85xOFCI.css","assets/SuggestionsView-SvmEopB3.js","assets/SuggestionsView-ztSfUAsG.css","assets/StockAlertsView-B7WDBhjL.js","assets/StockAlertsView-CBkZ5P6m.css","assets/LevelsView-Cos5Q_ra.js","assets/LevelsView-Bwpvfee6.css","assets/CashPaymentsView-BmPMXCl-.js","assets/CashPaymentsView-DDBlTRfX.css","assets/ShippingView-Ck9kASgn.js","assets/ShippingView-G0QuXsX0.css","assets/ReportsView-uTGceQoW.js","assets/ReportsView-dONYkP5k.css","assets/SettingsView-BSpASBj1.js","assets/SettingsView-CfZQdUlT.css","assets/UsersView-OSVbK-od.js","assets/UsersView-DSH2HjHE.css","assets/NotFoundView-BAomeX7E.js","assets/NotFoundView-CY2m4474.css"])))=>i.map(i=>d[i]); +import{$ as e,A as t,B as n,C as r,Ct as i,D as a,E as o,Et as s,F as c,G as l,H as u,I as d,J as f,K as p,L as m,M as h,N as g,O as _,Ot as v,P as y,Q as ee,R as b,S as x,St as S,T as C,Tt as w,U as te,W as T,X as ne,Y as re,Z as E,_ as D,_t as ie,a as ae,at as O,b as oe,bt as k,c as A,ct as se,d as j,dt as ce,et as le,f as ue,ft as de,g as M,gt as fe,h as N,ht as pe,i as me,it as P,j as he,k as ge,kt as _e,l as ve,lt as ye,m as be,mt as xe,n as Se,nt as Ce,o as we,ot as Te,pt as F,q as Ee,r as I,rt as De,s as L,st as Oe,t as ke,tt as Ae,u as R,ut as je,v as Me,vt as Ne,w as Pe,wt as Fe,x as z,xt as Ie,y as Le,yt as Re,z as ze}from"./_plugin-vue_export-helper-OaxA6A2f.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Be=void 0,Ve=typeof window<`u`&&window.trustedTypes;if(Ve)try{Be=Ve.createPolicy(`vue`,{createHTML:e=>e})}catch{}var He=Be?e=>Be.createHTML(e):e=>e,Ue=`http://www.w3.org/2000/svg`,We=`http://www.w3.org/1998/Math/MathML`,B=typeof document<`u`?document:null,Ge=B&&B.createElement(`template`),Ke={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?B.createElementNS(Ue,e):t===`mathml`?B.createElementNS(We,e):n?B.createElement(e,{is:n}):B.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>B.createTextNode(e),createComment:e=>B.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>B.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{Ge.innerHTML=He(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Ge.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},V=`transition`,qe=`animation`,Je=Symbol(`_vtc`),Ye={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Xe=ye({},Se,Ye),Ze=(e,t=[])=>{F(e)?e.forEach(e=>e(...t)):e&&e(...t)},Qe=e=>e?F(e)?e.some(e=>e.length>1):e.length>1:!1;function $e(e){let t={};for(let n in e)n in Ye||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=et(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:v,onEnterCancelled:y,onLeave:ee,onLeaveCancelled:b,onBeforeAppear:x=_,onAppear:S=v,onAppearCancelled:C=y}=t,w=(e,t,n,r)=>{e._enterCancelled=r,U(e,t?u:s),U(e,t?l:o),n&&n()},te=(e,t)=>{e._isLeaving=!1,U(e,d),U(e,p),U(e,f),t&&t()},T=e=>(t,n)=>{let i=e?S:v,o=()=>w(t,e,n);Ze(i,[t,o]),nt(()=>{U(t,e?c:a),H(t,e?u:s),Qe(i)||it(t,r,h,o)})};return ye(t,{onBeforeEnter(e){Ze(_,[e]),H(e,a),H(e,o)},onBeforeAppear(e){Ze(x,[e]),H(e,c),H(e,l)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>te(e,t);H(e,d),e._enterCancelled?(H(e,f),ct(e)):(ct(e),H(e,f)),nt(()=>{e._isLeaving&&(U(e,d),H(e,p),Qe(ee)||it(e,r,g,n))}),Ze(ee,[e,n])},onEnterCancelled(e){w(e,!1,void 0,!0),Ze(y,[e])},onAppearCancelled(e){w(e,!0,void 0,!0),Ze(C,[e])},onLeaveCancelled(e){te(e),Ze(b,[e])}})}function et(e){if(e==null)return null;if(fe(e))return[tt(e.enter),tt(e.leave)];{let t=tt(e);return[t,t]}}function tt(e){return _e(e)}function H(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Je]||(e[Je]=new Set)).add(t)}function U(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Je];n&&(n.delete(t),n.size||(e[Je]=void 0))}function nt(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var rt=0;function it(e,t,n,r){let i=e._endId=++rt,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=at(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${V}Delay`),a=r(`${V}Duration`),o=ot(i,a),s=r(`${qe}Delay`),c=r(`${qe}Duration`),l=ot(s,c),u=null,d=0,f=0;t===V?o>0&&(u=V,d=o,f=a.length):t===qe?l>0&&(u=qe,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?V:qe:null,f=u?u===V?a.length:c.length:0);let p=u===V&&/\b(?:transform|all)(?:,|$)/.test(r(`${V}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function ot(e,t){for(;e.lengthst(t)+st(e[n])))}function st(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function ct(e){return(e?e.ownerDocument:document).body.offsetHeight}function lt(e,t,n){let r=e[Je];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var ut=Symbol(`_vod`),dt=Symbol(`_vsh`),ft=Symbol(``);function pt(e){let n=D();if(!n)return;let r=n.ut=(t=e(n.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${n.uid}"]`)).forEach(e=>ht(e,t))},i=()=>{let t=e(n.proxy);n.ce?ht(n.ce,t):mt(n.subTree,t),r(t)};Pe(()=>{t(i)}),C(()=>{b(i,Te,{flush:`post`});let e=new MutationObserver(i);e.observe(n.subTree.el.parentNode,{childList:!0}),o(()=>e.disconnect())})}function mt(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{mt(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)ht(e.el,t);else if(e.type===I)e.children.forEach(e=>mt(e,t));else if(e.type===me){let{el:n,anchor:r}=e;for(;n&&(ht(n,t),n!==r);)n=n.nextSibling}}function ht(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=s(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[ft]=r}}var gt=/(?:^|;)\s*display\s*:/;function _t(e,t,n){let r=e.style,i=k(n),a=!1;if(n&&!i){if(t)if(k(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??yt(r,t,``)}else for(let e in t)n[e]??yt(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?yt(r,i,``):Ct(e,i,!k(t)&&t?t[i]:void 0,o)||yt(r,i,o)}}else if(i){if(t!==n){let e=r[ft];e&&(n+=`;`+e),r.cssText=n,a=gt.test(n)}}else t&&e.removeAttribute(`style`);ut in e&&(e[ut]=a?r.display:``,e[dt]&&(r.display=`none`))}var vt=/\s*!important$/;function yt(e,t,n){if(F(n))n.forEach(n=>yt(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=St(e,t);vt.test(n)?e.setProperty(je(r),n.replace(vt,``),`important`):e[r]=n}}var bt=[`Webkit`,`Moz`,`ms`],xt={};function St(e,t){let n=xt[t];if(n)return n;let r=Oe(t);if(r!==`filter`&&r in e)return xt[t]=r;r=se(r);for(let n=0;nNt||=(Pt.then(()=>Nt=0),Date.now());function It(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(F(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rt=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?lt(e,r,o):t===`style`?_t(e,n,r):ie(t)?pe(t)||kt(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):zt(e,t,r,o))?(Et(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Tt(e,t,r,o,a,t!==`value`)):e._isVueCE&&(Bt(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!k(r)))?Et(e,Oe(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Tt(e,t,r,o))};function zt(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Lt(t)&&xe(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Lt(t)&&k(n)?!1:t in e}function Bt(e,t){let n=e._def.props;if(!n)return!1;let r=Oe(t);return Array.isArray(n)?n.some(e=>Oe(e)===r):Object.keys(n).some(e=>Oe(e)===r)}var Vt=new WeakMap,Ht=new WeakMap,Ut=Symbol(`_moveCb`),Wt=Symbol(`_enterCb`),Gt=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:ye({},Xe,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=D(),r=m(),i,o;return a(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Xt(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(Kt),i.forEach(qt);let r=i.filter(Jt);ct(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;H(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Ut]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Ut]=null,U(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let a=Ae(e),s=$e(a),l=a.tag||I;if(i=[],o)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=at(r);return a.removeChild(r),o}var G=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return F(t)?e=>de(t,e):t};function Zt(e){e.target.composing=!0}function Qt(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var K=Symbol(`_assign`);function $t(e,t,n){return t&&(e=e.trim()),n&&(e=Fe(e)),e}var en={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[K]=G(i);let a=r||i.props&&i.props.type===`number`;W(e,t?`change`:`input`,t=>{t.target.composing||e[K]($t(e.value,n,a))}),(n||a)&&W(e,`change`,()=>{e.value=$t(e.value,n,a)}),t||(W(e,`compositionstart`,Zt),W(e,`compositionend`,Qt),W(e,`change`,Qt))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[K]=G(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?Fe(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},tn={deep:!0,created(e,t,n){e[K]=G(n),W(e,`change`,()=>{let t=e._modelValue,n=sn(e),r=e.checked,a=e[K];if(F(t)){let e=i(t,n),o=e!==-1;if(r&&!o)a(t.concat(n));else if(!r&&o){let n=[...t];n.splice(e,1),a(n)}}else if(Ne(t)){let e=new Set(t);r?e.add(n):e.delete(n),a(e)}else a(cn(e,r))})},mounted:nn,beforeUpdate(e,t,n){e[K]=G(n),nn(e,t,n)}};function nn(e,{value:t,oldValue:n},r){e._modelValue=t;let a;if(F(t))a=i(t,r.props.value)>-1;else if(Ne(t))a=t.has(r.props.value);else{if(t===n)return;a=S(t,cn(e,!0))}e.checked!==a&&(e.checked=a)}var rn={created(e,{value:t},n){e.checked=S(t,n.props.value),e[K]=G(n),W(e,`change`,()=>{e[K](sn(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[K]=G(r),t!==n&&(e.checked=S(t,r.props.value))}},an={deep:!0,created(e,{value:t,modifiers:{number:n}},i){e._modelValue=t,W(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?Fe(sn(e)):sn(e));e[K](e.multiple?Ne(e._modelValue)?new Set(t):t:t[0]),e._assigning=!0,r(()=>{e._assigning=!1})}),e[K]=G(i)},mounted(e,{value:t}){on(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[K]=G(n)},updated(e,{value:t}){e._assigning||on(e,t)}};function on(e,t){let n=e.multiple,r=F(t);if(!(n&&!r&&!Ne(t))){for(let a=0,o=e.options.length;aString(e)===String(s)):i(t,s)>-1}else o.selected=t.has(s);else if(S(sn(o),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function sn(e){return`_value`in e?e._value:e.value}function cn(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var ln={created(e,t,n){dn(e,t,n,null,`created`)},mounted(e,t,n){dn(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){dn(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){dn(e,t,n,r,`updated`)}};function un(e,t){switch(e){case`SELECT`:return an;case`TEXTAREA`:return en;default:switch(t){case`checkbox`:return tn;case`radio`:return rn;default:return en}}}function dn(e,t,n,r,i){let a=un(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}var fn=[`ctrl`,`shift`,`alt`,`meta`],pn={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>fn.some(n=>e[`${n}Key`]&&!t.includes(n))},q=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=je(n.key);if(t.some(e=>e===r||mn[e]===r))return e(n)}))},gn=ye({patchProp:Rt},Ke),_n;function vn(){return _n||=ue(gn)}var yn=((...e)=>{let t=vn().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=xn(e);if(!r)return;let i=t._component;!xe(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,bn(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function bn(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function xn(e){return k(e)?document.querySelector(e):e}var Sn=typeof window<`u`,Cn,wn=e=>Cn=e,Tn=Symbol();function En(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Dn=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function On(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function kn(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Pn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function An(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function jn(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Mn=typeof navigator==`object`?navigator:{userAgent:``},Nn=/Macintosh/.test(Mn.userAgent)&&/AppleWebKit/.test(Mn.userAgent)&&!/Safari/.test(Mn.userAgent),Pn=Sn?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Nn?Fn:`msSaveOrOpenBlob`in Mn?In:Ln:()=>{};function Fn(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?jn(r):An(r.href)?kn(e,t,n):(r.target=`_blank`,jn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){jn(r)},0))}function In(e,t=`download`,n){if(typeof e==`string`)if(An(e))kn(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){jn(t)})}else navigator.msSaveOrOpenBlob(On(e,n),t)}function Ln(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return kn(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Dn.HTMLElement))||`safari`in Dn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Nn)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Rn}=Object;function zn(){let e=te(!0),t=e.run(()=>E({})),n=[],r=[],i=Ee({install(e){wn(i),i._a=e,e.provide(Tn,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var Bn=()=>{};function Vn(e,t,n,r=Bn){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&T()&&f(i),i}function Hn(e,...t){e.forEach(e=>{e(...t)})}var Un=e=>e(),Wn=Symbol(),Gn=Symbol();function Kn(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=En(i)&&En(r)&&Object.hasOwn(e,n)&&!p(r)&&!l(r)?Kn(i,r):r}return e}var qn=Symbol();function Jn(e){return!e||typeof e!=`object`||!Object.hasOwn(e,qn)}var{assign:Yn}=Object;function Xn(e){return!!(p(e)&&e.effect)}function Zn(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),Yn(De(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Ee(L(()=>{wn(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Qn(e,l,t,n,r,!0),c}function Qn(e,t,n={},i,a,o){let s,c=Yn({actions:{}},n),u={deep:!0},d,f,m=new Set,h=new Set,g,_=i.state.value[e];!o&&!_&&(i.state.value[e]={});let v;function y(t){let n;d=f=!1,typeof t==`function`?(t(i.state.value[e]),n={type:`patch function`,storeId:e,events:g}):(Kn(i.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:g});let a=v=Symbol();r().then(()=>{v===a&&(d=!0)}),f=!0,Hn(m,n,i.state.value[e])}let ee=o?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Yn(e,t)})}:Bn;function x(){s.stop(),m.clear(),h.clear(),i._s.delete(e)}let S=(t,n=``)=>{if(Wn in t)return t[Gn]=n,t;let r=function(){wn(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Hn(h,{args:n,name:r[Gn],store:w,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:w,n)}catch(e){throw Hn(o,e),e}return l instanceof Promise?l.then(e=>(Hn(a,e),e)).catch(e=>(Hn(o,e),Promise.reject(e))):(Hn(a,l),l)};return r[Wn]=!0,r[Gn]=n,r},C={_p:i,$id:e,$onAction:Vn.bind(null,h),$patch:y,$reset:ee,$subscribe(t,n={}){if(m.has(t))return Bn;let r=Vn(m,t,n.detached,()=>a()),a=s.run(()=>b(()=>i.state.value[e],r=>{(n.flush===`sync`?f:d)&&t({storeId:e,type:`direct`,events:g},r)},Yn({},u,n)));return r},$dispose:x},w=re(C);i._s.set(e,w);let T=(i._a&&i._a.runWithContext||Un)(()=>i._e.run(()=>(s=te()).run(()=>t({action:S}))));for(let t in T){let n=T[t];p(n)&&!Xn(n)||l(n)?o||(_&&Jn(n)&&(p(n)?n.value=_[t]:Kn(n,_[t])),i.state.value[e][t]=n):typeof n==`function`&&(T[t]=S(n,t),c.actions[t]=n)}return Yn(w,T),Yn(Ae(w),T),Object.defineProperty(w,"$state",{get:()=>i.state.value[e],set:e=>{y(t=>{Yn(t,e)})}}),i._p.forEach(e=>{let t=s.run(()=>e({store:w,app:i._a,pinia:i,options:c}));Yn(w,t)}),_&&o&&n.hydrate&&n.hydrate(w.$state,_),d=!0,f=!0,w}function $n(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=oe();return n||=o?z(Tn,null):null,n&&wn(n),n=Cn,n._s.has(e)||(i?Qn(e,t,r,n):Zn(e,r,n)),n._s.get(e)}return a.$id=e,a}var er={"vuesax-linear:add":` + + + +`,"vuesax-linear:arrow-down":` + + +`,"vuesax-linear:arrow-left-1":` + + +`,"vuesax-linear:arrow-right-1":` + + +`,"vuesax-linear:bag-2":` + + + + + +`,"vuesax-linear:bag-cross":` + + + + + + + +`,"vuesax-linear:box-1":` + + + + +`,"vuesax-linear:box-remove":` + + + + + + + +`,"vuesax-linear:box-search":` + + + + + + +`,"vuesax-linear:building":` + + + + + + + +`,"vuesax-linear:buildings":` + + + + + + + + +`,"vuesax-linear:calendar":` + + + + + + + + + + + +`,"vuesax-linear:call":` + + +`,"vuesax-linear:card":` + + + + + +`,"vuesax-linear:card-receive":` + + + + + + + +`,"vuesax-linear:category":` + + + + + +`,"vuesax-linear:chart-2":` + + + + +`,"vuesax-linear:clipboard-close":` + + + + + +`,"vuesax-linear:clock":` + + + + + +`,"vuesax-linear:close-circle":` + + + + +`,"vuesax-linear:cpu":` + + + + + + + + + + + + + + + +`,"vuesax-linear:diamonds":` + + + +`,"vuesax-linear:document-text":` + + + + + +`,"vuesax-linear:edit-2":` + + + + +`,"vuesax-linear:element-3":` + + + + + +`,"vuesax-linear:eye":` + + + +`,"vuesax-linear:eye-slash":` + + + + + + + +`,"vuesax-linear:filter":` + + + +`,"vuesax-linear:flash":` + + + + + +`,"vuesax-linear:headphone":` + + +`,"vuesax-linear:home":` + + + +`,"vuesax-linear:info-circle":` + + + + +`,"vuesax-linear:lamp-on":` + + + +`,"vuesax-linear:location":` + + + +`,"vuesax-linear:lock":` + + + + + + +`,"vuesax-linear:logout":` + + + + +`,"vuesax-linear:menu":` + + + + +`,"vuesax-linear:message":` + + + + + +`,"vuesax-linear:mobile":` + + + + +`,"vuesax-linear:money-4":` + + + + + + + +`,"vuesax-linear:monitor":` + + + + + +`,"vuesax-linear:moon":` + + +`,"vuesax-linear:more":` + + + + +`,"vuesax-linear:note-remove":` + + + + + + + + +`,"vuesax-linear:notification":` + + + + +`,"vuesax-linear:pen-add":` + + + + + + + + +`,"vuesax-linear:people":` + + + + + + + +`,"vuesax-linear:personalcard":` + + + + + + + +`,"vuesax-linear:printer":` + + + + + + +`,"vuesax-linear:profile-2user":` + + + + + +`,"vuesax-linear:profile-circle":` + + + + +`,"vuesax-linear:receipt-search":` + + + + + + +`,"vuesax-linear:search-normal":` + + + +`,"vuesax-linear:search-status":` + + + + + +`,"vuesax-linear:setting-2":` + + + +`,"vuesax-linear:shopping-bag":` + + + + +`,"vuesax-linear:sms":` + + + +`,"vuesax-linear:sun-1":` + + + +`,"vuesax-linear:tick-circle":` + + + +`,"vuesax-linear:timer-1":` + + + + +`,"vuesax-linear:trash":` + + + + + + +`,"vuesax-linear:truck-time":` + + + + + + + + +`,"vuesax-linear:verify":` + + + +`,"vuesax-linear:wallet":` + + + + +`,"vuesax-linear:warning-2":` + + + + +`},tr=[`aria-hidden`,`innerHTML`],nr=ke(M({inheritAttrs:!1,__name:`BasicIcon`,props:{icon:{},color:{default:null},size:{default:24},strokeWidth:{default:1.5}},setup(e){pt(e=>({v196ba43b:String(t.strokeWidth)}));let t=e,n=d(),r=L(()=>{let e=er[t.icon];if(!e)return``;let n=String(t.size);return e.replace(/\swidth="[^"]*"/,` width="${n}"`).replace(/\sheight="[^"]*"/,` height="${n}"`).replace(/stroke="#[^"]*"/g,`stroke="currentColor"`)}),i=L(()=>({color:t.color||void 0,width:`${t.size}px`,height:`${t.size}px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,lineHeight:0,flexShrink:0})),a=L(()=>n[`aria-hidden`]??!0);return(e,t)=>(_(),j(`span`,x({class:`basic-icon`},O(n),{style:i.value,"aria-hidden":a.value,innerHTML:r.value}),null,16,tr))}}),[[`__scopeId`,`data-v-159253ae`]]),rr=re({items:[]});function ir(e,t){let n=crypto.randomUUID();rr.items.push({id:n,message:e,tone:t}),window.setTimeout(()=>ar(n),3200)}function ar(e){let t=rr.items.findIndex(t=>t.id===e);t!==-1&&rr.items.splice(t,1)}function or(){return{toasts:Ce(rr,`items`),dismiss:ar,success:e=>ir(e,`success`),error:e=>ir(e,`error`),info:e=>ir(e,`info`),warning:e=>ir(e,`warning`)}}var sr={class:`toast-container`,"aria-live":`polite`,"aria-relevant":`additions`},cr={class:`toast__icon`,"aria-hidden":`true`},lr={class:`toast__message`},ur=[`onClick`],dr=ke(M({__name:`ToastContainer`,setup(e){let{toasts:t,dismiss:r}=or(),i={success:`vuesax-linear:tick-circle`,error:`vuesax-linear:close-circle`,warning:`vuesax-linear:warning-2`,info:`vuesax-linear:info-circle`};function a(e,t){t.preventDefault(),t.stopPropagation(),r(e)}return(e,r)=>(_(),j(`div`,sr,[N(Gt,{name:`toast`,tag:`div`,class:`toast-container__list`},{default:n(()=>[(_(!0),j(I,null,he(O(t),e=>(_(),j(`div`,{key:e.id,class:w([`toast`,`toast--${e.tone}`]),role:`status`},[A(`span`,cr,[N(nr,{icon:i[e.tone]||`vuesax-linear:info-circle`,size:20,"stroke-width":1.5},null,8,[`icon`])]),A(`p`,lr,v(e.message),1),A(`button`,{type:`button`,class:`toast__close`,"aria-label":`بستن`,onClick:t=>a(e.id,t)},` × `,8,ur)],2))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-223aafac`]]),fr=[`aria-label`],pr={class:`admin-modal__header`},mr={class:`admin-modal__title`},hr={class:`admin-modal__body`},gr={key:0,class:`admin-modal__footer`},_r=ke(M({__name:`BaseModal`,props:{open:{type:Boolean},title:{},size:{}},emits:[`close`],setup(e,{emit:t}){let n=t;function r(e){e.target===e.currentTarget&&n(`close`)}return(t,i)=>(_(),ve(ae,{to:`body`},[e.open?(_(),j(`div`,{key:0,class:`admin-modal-backdrop`,role:`presentation`,onClick:r},[A(`div`,{class:w([`admin-modal`,{"admin-modal--lg":e.size===`lg`,"admin-modal--xl":e.size===`xl`}]),role:`dialog`,"aria-modal":`true`,"aria-label":e.title,onClick:i[1]||=q(()=>{},[`stop`])},[A(`header`,pr,[A(`h2`,mr,v(e.title),1),A(`button`,{type:`button`,class:`admin-modal__close`,"aria-label":`بستن`,onClick:i[0]||=e=>n(`close`)},` × `)]),A(`div`,hr,[h(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(_(),j(`footer`,gr,[h(t.$slots,`footer`,{},void 0,!0)])):R(``,!0)],10,fr)])):R(``,!0)]))}}),[[`__scopeId`,`data-v-a52d3eeb`]]),vr=re({open:!1,loading:!1,title:``,message:``,confirmLabel:`تأیید`,cancelLabel:`انصراف`,tone:`primary`,resolve:null});function yr(){return vr}function br(e){return new Promise(t=>{Object.assign(vr,{open:!0,loading:!1,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`تأیید`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`primary`,resolve:t})})}function xr(e){vr.resolve?.(e),vr.open=!1,vr.loading=!1,vr.resolve=null}function Sr(e){vr.loading=e}var Cr={class:`confirm-dialog__message`},wr=[`disabled`],Tr=[`disabled`],Er={key:0,class:`admin-btn__spinner`,"aria-hidden":`true`},Dr=ke(M({__name:`ConfirmDialog`,setup(e){let t=yr();function r(){xr(!1)}function i(){Sr(!0),xr(!0)}return(e,a)=>(_(),ve(_r,{open:O(t).open,title:O(t).title,size:`md`,onClose:r},{footer:n(()=>[A(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,disabled:O(t).loading,onClick:r},v(O(t).cancelLabel),9,wr),A(`button`,{type:`button`,class:w([`admin-btn`,O(t).tone===`danger`?`admin-btn--danger`:`admin-btn--primary`]),disabled:O(t).loading,onClick:i},[O(t).loading?(_(),j(`span`,Er)):R(``,!0),be(` `+v(O(t).confirmLabel),1)],10,Tr)]),default:n(()=>[A(`p`,Cr,v(O(t).message),1)]),_:1},8,[`open`,`title`]))}}),[[`__scopeId`,`data-v-47354e67`]]),Or=M({__name:`App`,setup(e){return(e,t)=>{let n=g(`RouterView`);return _(),j(I,null,[N(n),N(dr),N(Dr)],64)}}});function kr(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function Ar(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&kr(e.default)}var J=Object.assign;function jr(e,t){let n={};for(let r in t){let i=t[r];n[r]=Y(i)?i.map(e):e(i)}return n}var Mr=()=>{},Y=Array.isArray;function Nr(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Pr=Symbol(``);function Fr(e,t){return J(Error(),{type:e,[Pr]:!0},t)}function X(e,t){return e instanceof Error&&Pr in e&&(t==null||!!(e.type&t))}var Ir=Symbol(``),Lr=Symbol(``),Rr=Symbol(``),zr=Symbol(``),Br=Symbol(``);function Vr(){return z(Rr)}function Hr(e){return z(zr)}var Ur=typeof document<`u`,Wr=/#/g,Gr=/&/g,Kr=/\//g,qr=/=/g,Jr=/\?/g,Yr=/\+/g,Xr=/%5B/g,Zr=/%5D/g,Qr=/%5E/g,$r=/%60/g,ei=/%7B/g,ti=/%7C/g,ni=/%7D/g,ri=/%20/g;function ii(e){return e==null?``:encodeURI(``+e).replace(ti,`|`).replace(Xr,`[`).replace(Zr,`]`)}function ai(e){return ii(e).replace(ei,`{`).replace(ni,`}`).replace(Qr,`^`)}function oi(e){return ii(e).replace(Yr,`%2B`).replace(ri,`+`).replace(Wr,`%23`).replace(Gr,`%26`).replace($r,"`").replace(ei,`{`).replace(ni,`}`).replace(Qr,`^`)}function si(e){return oi(e).replace(qr,`%3D`)}function ci(e){return ii(e).replace(Wr,`%23`).replace(Jr,`%3F`)}function li(e){return ci(e).replace(Kr,`%2F`)}function ui(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var di=/\/$/,fi=e=>e.replace(di,``);function pi(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=xi(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:ui(o)}}function mi(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function hi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function gi(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&_i(t.matched[r],n.matched[i])&&vi(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function _i(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!yi(e[n],t[n]))return!1;return!0}function yi(e,t){return Y(e)?bi(e,t):Y(t)?bi(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function bi(e,t){return Y(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function xi(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var Si={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Ci(e){if(!e)if(Ur){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),fi(e)}var wi=/^[^#]+#/;function Ti(e,t){return e.replace(wi,`#`)+t}function Ei(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Di=()=>({left:window.scrollX,top:window.scrollY});function Oi(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Ei(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function ki(e,t){return(history.state?history.state.position-t:-1)+e}var Ai=new Map;function ji(e,t){Ai.set(e,t)}function Mi(e){let t=Ai.get(e);return Ai.delete(e),t}function Ni(e){return typeof e==`string`||e&&typeof e==`object`}function Pi(e){return typeof e==`string`||typeof e==`symbol`}function Fi(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&oi(e)):[r&&oi(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Li(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Y(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Ri(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function zi(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Fr(4,{from:n,to:t})):e instanceof Error?c(e):Ni(e)?c(Fr(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Bi(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(kr(s)){let c=(s.__vccOpts||s)[t];c&&a.push(zi(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=Ar(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&zi(c,n,r,o,e,i)()}))}}return a}function Vi(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o_i(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>_i(e,s))||i.push(s))}return[n,r,i]}var Hi=()=>location.protocol+`//`+location.host;function Ui(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),hi(n,``)}return hi(n,e)+r+i}function Wi(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ui(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(J({},e.state,{scroll:Di()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Gi(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Di():null}}function Ki(e){let{history:t,location:n}=window,r={value:Ui(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Hi()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,J({},t.state,Gi(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=J({},i.value,t.state,{forward:e,scroll:Di()});a(o.current,o,!0),a(e,J({},Gi(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function qi(e){e=Ci(e);let t=Ki(e),n=Wi(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=J({location:``,base:e,go:r,createHref:Ti.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ji={type:0,value:``},Yi=/[a-zA-Z0-9_]/;function Xi(e){if(!e)return[[]];if(e===`/`)return[[Ji]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function na(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var ia={strict:!1,end:!0,sensitive:!1};function aa(e,t,n){let r=J(ea(Xi(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function oa(e,t){let n=[],r=new Map;t=Nr(ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=ca(e);s.aliasOf=r&&r.record;let l=Nr(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(ca(J({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=aa(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ua(d)&&o(e.name)),ma(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Mr}function o(e){if(Pi(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=fa(e,n);n.splice(t,0,e),e.record.name&&!ua(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Fr(1,{location:e});s=i.record.name,a=J(sa(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&sa(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Fr(1,{location:e,currentLocation:t});s=i.record.name,a=J({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:da(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function sa(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function ca(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:la(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function la(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ua(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function da(e){return e.reduce((e,t)=>J(e,t.meta),{})}function fa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;na(e,t[i])<0?r=i:n=i+1}let i=pa(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function pa(e){let t=e;for(;t=t.parent;)if(ma(t)&&na(e,t)===0)return t}function ma({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ha(e){let t=z(Rr),n=z(zr),r=L(()=>{let n=O(e.to);return t.resolve(n)}),i=L(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(_i.bind(null,i));if(o>-1)return o;let s=ba(e[t-2]);return t>1&&ba(i)===s&&a[a.length-1].path!==s?a.findIndex(_i.bind(null,e[t-2])):o}),a=L(()=>i.value>-1&&ya(n.params,r.value.params)),o=L(()=>i.value>-1&&i.value===n.matched.length-1&&vi(n.params,r.value.params));function s(n={}){if(va(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(Mr);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:L(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function ga(e){return e.length===1?e[0]:e}var _a=M({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:ha,setup(e,{slots:t}){let n=re(ha(e)),{options:r}=z(Rr),i=L(()=>({[xa(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[xa(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&ga(t.default(n));return e.custom?r:Le(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function va(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ya(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Y(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function ba(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var xa=(e,t,n)=>e??t??n,Sa=M({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=z(Br),i=L(()=>e.route||r.value),a=z(Lr,0),o=L(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=L(()=>i.value.matched[o.value]);ge(Lr,L(()=>o.value+1)),ge(Ir,s),ge(Br,i);let c=E();return b(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!_i(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Ca(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=Le(l,J({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Ca(n.default,{Component:f,route:r})||f}}});function Ca(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var wa=Sa;function Ta(e){let t=oa(e.routes,e),n=e.parseQuery||Fi,i=e.stringifyQuery||Ii,a=e.history,o=Ri(),s=Ri(),c=Ri(),l=le(Si),u=Si;Ur&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=jr.bind(null,e=>``+e),f=jr.bind(null,li),p=jr.bind(null,ui);function m(e,n){let r,i;return Pi(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function h(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function g(){return t.getRoutes().map(e=>e.record)}function _(e){return!!t.getRecordMatcher(e)}function v(e,r){if(r=J({},r||l.value),typeof e==`string`){let i=pi(n,e,r.path),o=t.resolve({path:i.path},r),s=a.createHref(i.fullPath);return J(i,o,{params:p(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=J({},e,{path:pi(n,e.path,r.path).path});else{let t=J({},e.params);for(let e in t)t[e]??delete t[e];o=J({},e,{params:f(t)}),r.params=f(r.params)}let s=t.resolve(o,r),c=e.hash||``;s.params=d(p(s.params));let u=mi(i,J({},e,{hash:ai(c),path:s.path})),m=a.createHref(u);return J({fullPath:u,hash:c,query:i===Ii?Li(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function y(e){return typeof e==`string`?pi(n,e,l.value.path):J({},e)}function b(e,t){if(u!==e)return Fr(8,{from:t,to:e})}function x(e){return w(e)}function S(e){return x(J(y(e),{replace:!0}))}function C(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=y(i):{path:i},i.params={}),J({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function w(e,t){let n=u=v(e),r=l.value,a=e.state,o=e.force,s=e.replace===!0,c=C(n,r);if(c)return w(J(y(c),{state:typeof c==`object`?J({},a,c.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&gi(i,r,n)&&(f=Fr(16,{to:d,from:r}),ce(r,r,!0,!1)),(f?Promise.resolve(f):ne(d,r)).catch(e=>X(e)?X(e,2)?e:j(e):A(e,d,r)).then(e=>{if(e){if(X(e,2))return w(J({replace:s},y(e.to),{state:typeof e.to==`object`?J({},a,e.to.state):a,force:o}),t||d)}else e=E(d,r,!0,s,a);return re(d,r,e),e})}function te(e,t){let n=b(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ne(e,t){let n,[r,i,a]=Vi(e,t);n=Bi(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(zi(r,e,t))});let c=te.bind(null,e,t);return n.push(c),N(n).then(()=>{n=[];for(let r of o.list())n.push(zi(r,e,t));return n.push(c),N(n)}).then(()=>{n=Bi(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(zi(r,e,t))});return n.push(c),N(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(Y(r.beforeEnter))for(let i of r.beforeEnter)n.push(zi(i,e,t));else n.push(zi(r.beforeEnter,e,t));return n.push(c),N(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Bi(a,`beforeRouteEnter`,e,t,T),n.push(c),N(n))).then(()=>{n=[];for(let r of s.list())n.push(zi(r,e,t));return n.push(c),N(n)}).catch(e=>X(e,8)?e:Promise.reject(e))}function re(e,t,n){c.list().forEach(r=>T(()=>r(e,t,n)))}function E(e,t,n,r,i){let o=b(e,t);if(o)return o;let s=t===Si,c=Ur?history.state:{};n&&(r||s?a.replace(e.fullPath,J({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),l.value=e,ce(e,t,n,s),j()}let D;function ie(){D||=a.listen((e,t,n)=>{if(!fe.listening)return;let r=v(e),i=C(r,fe.currentRoute.value);if(i){w(J(i,{replace:!0,force:!0}),r).catch(Mr);return}u=r;let o=l.value;Ur&&ji(ki(o.fullPath,n.delta),Di()),ne(r,o).catch(e=>X(e,12)?e:X(e,2)?(w(J(y(e.to),{force:!0}),r).then(e=>{X(e,20)&&!n.delta&&n.type===`pop`&&a.go(-1,!1)}).catch(Mr),Promise.reject()):(n.delta&&a.go(-n.delta,!1),A(e,r,o))).then(e=>{e||=E(r,o,!1),e&&(n.delta&&!X(e,8)?a.go(-n.delta,!1):n.type===`pop`&&X(e,20)&&a.go(-1,!1)),re(r,o,e)}).catch(Mr)})}let ae=Ri(),oe=Ri(),k;function A(e,t,n){j(e);let r=oe.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return k&&l.value!==Si?Promise.resolve():new Promise((e,t)=>{ae.add([e,t])})}function j(e){return k||(k=!e,ie(),ae.list().forEach(([t,n])=>e?n(e):t()),ae.reset()),e}function ce(t,n,i,a){let{scrollBehavior:o}=e;if(!Ur||!o)return Promise.resolve();let s=!i&&Mi(ki(t.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return r().then(()=>o(t,n,s)).then(e=>t===l.value&&e&&Oi(e)).catch(e=>t===l.value&&A(e,t,n))}let ue=e=>a.go(e),de,M=new Set,fe={currentRoute:l,listening:!0,addRoute:m,removeRoute:h,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:v,options:e,push:x,replace:S,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:oe.add,isReady:se,install(e){e.component(`RouterLink`,_a),e.component(`RouterView`,wa),e.config.globalProperties.$router=fe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(l)}),Ur&&!de&&l.value===Si&&(de=!0,x(a.location).catch(e=>{}));let t={};for(let e in Si)Object.defineProperty(t,e,{get:()=>l.value[e],enumerable:!0});e.provide(Rr,fe),e.provide(zr,ee(t)),e.provide(Br,l);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(u=Si,D&&D(),D=null,l.value=Si,de=!1,k=!1),n()}}};function N(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return fe}var Ea=[{name:`dashboard`,label:`داشبورد`,path:`/`,icon:`home`},{name:`orders`,label:`سفارش‌ها`,path:`/orders`,icon:`orders`},{name:`customers`,label:`مشتریان و واسطه‌ها`,path:`/customers`,icon:`customers`},{name:`products`,label:`محصولات`,path:`/products`,icon:`products`},{name:`categories`,label:`دسته‌بندی‌ها`,path:`/categories`,icon:`catalogs`},{name:`banners`,label:`بنرها`,path:`/banners`,icon:`image`},{name:`catalogs`,label:`کالیته‌ها`,path:`/catalogs`,icon:`catalogs`},{name:`catalog-requests`,label:`درخواست کالیته فیزیکی`,path:`/catalog-requests`,icon:`file`},{name:`brands`,label:`برندها`,path:`/brands`,icon:`building`},{name:`suggestions`,label:`پیشنهاد محصول`,path:`/suggestions`,icon:`cart`},{name:`stock-alerts`,label:`خبر موجودی`,path:`/stock-alerts`,icon:`bell`},{name:`levels`,label:`سطوح مشتری`,path:`/levels`,icon:`users`},{name:`companies`,label:`شرکت‌ها`,path:`/companies`,icon:`companies`},{name:`checks`,label:`چک‌ها`,path:`/checks`,icon:`checks`},{name:`cash-payments`,label:`پرداخت‌های نقدی`,path:`/cash-payments`,icon:`cash`},{name:`shipping`,label:`ارسال و باربری`,path:`/shipping`,icon:`shipping`},{name:`reports`,label:`گزارش‌ها`,path:`/reports`,icon:`reports`},{name:`settings`,label:`تنظیمات`,path:`/settings`,icon:`settings`},{name:`users`,label:`کاربران و دسترسی‌ها`,path:`/users`,icon:`users`}];function Da(e,t){if(e===`/`)return t===`/`;if(/^\/orders\/[^/]+\/checks/.test(t)){if(e===`/checks`)return!0;if(e===`/orders`)return!1}return t===e||t.startsWith(`${e}/`)}var Oa=M({__name:`AdminIcon`,props:{name:{},size:{default:20},strokeWidth:{default:1.5},color:{default:null}},setup(e){let t=e,n={home:`vuesax-linear:home`,orders:`vuesax-linear:document-text`,customers:`vuesax-linear:profile-2user`,products:`vuesax-linear:box-1`,catalogs:`vuesax-linear:category`,image:`vuesax-linear:category`,companies:`vuesax-linear:buildings`,checks:`vuesax-linear:card-receive`,cash:`vuesax-linear:money-4`,shipping:`vuesax-linear:truck-time`,reports:`vuesax-linear:chart-2`,settings:`vuesax-linear:setting-2`,users:`vuesax-linear:people`,logout:`vuesax-linear:logout`,search:`vuesax-linear:search-normal`,bell:`vuesax-linear:notification`,message:`vuesax-linear:message`,calendar:`vuesax-linear:calendar`,menu:`vuesax-linear:menu`,filter:`vuesax-linear:filter`,more:`vuesax-linear:more`,"chevron-left":`vuesax-linear:arrow-left-1`,"chevron-right":`vuesax-linear:arrow-right-1`,"chevron-back":`vuesax-linear:arrow-right-1`,"chevron-down":`vuesax-linear:arrow-down`,print:`vuesax-linear:printer`,sms:`vuesax-linear:sms`,check:`vuesax-linear:tick-circle`,cart:`vuesax-linear:bag-2`,file:`vuesax-linear:document-text`,wallet:`vuesax-linear:wallet`,"check-circle":`vuesax-linear:tick-circle`,phone:`vuesax-linear:call`,"id-card":`vuesax-linear:personalcard`,lock:`vuesax-linear:lock`,eye:`vuesax-linear:eye`,"eye-off":`vuesax-linear:eye-slash`,user:`vuesax-linear:profile-circle`,building:`vuesax-linear:building`,trash:`vuesax-linear:trash`},r=L(()=>t.name.startsWith(`vuesax-linear:`)?t.name:n[t.name]??`vuesax-linear:info-circle`);return(t,n)=>(_(),ve(nr,{icon:r.value,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`icon`,`size`,`stroke-width`,`color`]))}}),ka=`fabric-admin-token`;function Aa(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function ja(){return localStorage.getItem(ka)??sessionStorage.getItem(ka)}function Ma(e,t=!0){localStorage.removeItem(ka),sessionStorage.removeItem(ka),e&&(t?localStorage.setItem(ka,e):sessionStorage.setItem(ka,e))}var Na=class extends Error{status;constructor(e,t){super(t),this.status=e}};function Pa(e,t){let n=Aa(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function Fa(e,t){if(typeof e==`object`&&e&&`message`in e){let t=e.message;return Array.isArray(t)?t.join(`، `):String(t)}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return`خطای سرور (${t})`}async function Z(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=ja();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch(Pa(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(t.timeoutMs??2e4)})}catch(e){throw new Na(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){Ma(null),localStorage.removeItem(`fabric-admin-session`),sessionStorage.removeItem(`fabric-admin-session`);let e=`/admin/login`;if(typeof window<`u`&&window.location.pathname!==e){let t=`/admin/`.replace(/\/$/,``),n=window.location.pathname.startsWith(t)?window.location.pathname.slice(t.length)||`/`:window.location.pathname,r=encodeURIComponent(`${n}${window.location.search}`);window.location.assign(`${e}?redirect=${r}`)}}throw new Na(r.status,Fa(a,r.status))}return a}var Ia=`fabric-admin-session`,La=`fabric-admin-token`,Ra=!1,za={phone:`09128081392`,password:`123456`,session:{id:`mock-admin-1`,fullName:`مدیر سیستم (موک)`,phone:`09128081392`,email:`admin@parche.ir`,role:`admin`}};function Ba(){try{let e=localStorage.getItem(Ia)??sessionStorage.getItem(Ia);return e?JSON.parse(e):null}catch{return null}}function Va(e,t){let n=JSON.stringify(e);localStorage.removeItem(Ia),sessionStorage.removeItem(Ia),t?localStorage.setItem(Ia,n):sessionStorage.setItem(Ia,n)}function Ha(){localStorage.removeItem(Ia),sessionStorage.removeItem(Ia)}function Ua(){return!!localStorage.getItem(La)}function Wa(e){return{id:e.id,fullName:e.fullName,phone:e.phone,email:e.email,role:e.role}}function Ga(){return Ba()}function Ka(){return Ra}async function qa(e){let t=e.phone.trim(),n=e.password;if(!t||!n)return{success:!1,message:`شماره موبایل و رمز عبور الزامی است.`};try{let r=await Z(`/admin/auth/login`,{method:`POST`,body:{phone:t,password:n},auth:!1});return Ma(r.accessToken,e.remember),Va(Wa(r.user),e.remember),{success:!0}}catch(e){return e instanceof Na?{success:!1,message:e.message}:{success:!1,message:`ورود انجام نشد.`}}}async function Ja(){let e=ja();if(!e)return Ha(),null;if(e===`mock-admin-token`){let e=Ba()??za.session;return Va(e,Ua()),e}try{let e=Wa(await Z(`/auth/me`));return Va(e,Ua()),e}catch{return Ma(null),Ha(),null}}function Ya(){Ma(null),Ha()}var Xa=$n(`auth`,()=>{let e=E(Ga()),t=E(!1),n=E(null),r=L(()=>!!e.value),i=L(()=>e.value?.fullName??``),a=L(()=>e.value?{admin:`مدیر سیستم`,sales:`واحد فروش`,finance:`واحد مالی`,warehouse:`انبار`}[e.value.role]:``);function o(){n.value=null}async function s(){e.value=Ga(),e.value=await Ja()}async function c(r,i,a){t.value=!0,n.value=null;let o=await qa({phone:r,password:i,remember:a});return t.value=!1,o.success?(e.value=Ga(),!0):(n.value=o.message??`ورود انجام نشد.`,!1)}function l(){Ya(),e.value=null,n.value=null}return{session:e,loading:t,error:n,isAuthenticated:r,fullName:i,roleLabel:a,clearError:o,hydrate:s,login:c,logout:l}}),Za={class:`admin-sidebar`,"aria-label":`ناوبری پنل مدیریت`},Qa={class:`admin-sidebar__nav`},$a=[`onClick`],eo=ke(M({__name:`AdminSidebar`,setup(e){let t=Hr(),n=Vr(),r=Xa();function i(e){n.push(e)}function a(){r.logout(),n.push(`/login`)}return(e,n)=>(_(),j(`aside`,Za,[n[1]||=A(`div`,{class:`admin-sidebar__brand`},[A(`strong`,{class:`admin-sidebar__title`},`پارچه`),A(`span`,{class:`admin-sidebar__subtitle`},`پنل مدیریت`)],-1),A(`nav`,Qa,[(_(!0),j(I,null,he(O(Ea),e=>(_(),j(`button`,{key:e.name,type:`button`,class:w([`admin-sidebar__item`,{active:O(Da)(e.path,O(t).path)}]),onClick:t=>i(e.path)},[N(Oa,{name:e.icon,size:20},null,8,[`name`]),A(`span`,null,v(e.label),1)],10,$a))),128))]),A(`button`,{type:`button`,class:`admin-sidebar__logout`,onClick:a},[N(Oa,{name:`logout`,size:20}),n[0]||=A(`span`,null,`خروج`,-1)])]))}}),[[`__scopeId`,`data-v-bcc6586c`]]),to=new WeakMap,no=(...e)=>{let t=e[0],n=D()?.proxy??T();if(n==null&&!oe())throw Error(`injectLocal must be called in setup`);return n&&to.has(n)&&t in to.get(n)?to.get(n)[t]:z(...e)},ro=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var io=Object.prototype.toString,ao=e=>io.call(e)===`[object Object]`,oo=()=>{},so=co();function co(){var e,t;return ro&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function lo(...e){if(e.length!==1)return Ce(...e);let t=e[0];return typeof t==`function`?ne(u(()=>({get:t,set:oo}))):E(t)}function uo(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var fo=e=>e();function po(t=fo,n={}){let{initialState:r=`active`}=n,i=lo(r===`active`);function a(){i.value=!1}function o(){i.value=!0}return{isActive:e(i),pause:a,resume:o,eventFilter:(...e)=>{i.value&&t(...e)}}}function mo(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function ho(e){return Array.isArray(e)?e:[e]}function go(e){return e||D()}function _o(e,t,n={}){let{eventFilter:r=fo,...i}=n;return b(e,uo(r,t),i)}function vo(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=po(r,{initialState:i});return{stop:_o(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function yo(e,t=!0,n){go(n)?C(e,n):t?e():r(e)}function bo(e,t,n){return b(e,t,{...n,immediate:!0})}var xo=ro?window:void 0;ro&&window.document,ro&&window.navigator,ro&&window.location;function So(e){let t=P(e);return t?.$el??t}function Co(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=L(()=>{let t=ho(P(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return bo(()=>[n.value?.map(e=>So(e))??[xo].filter(e=>e!=null),ho(P(n.value?e[1]:e[0])),ho(O(n.value?e[2]:e[1])),P(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=ao(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var wo=!1;function To(e,t,n={}){let{window:r=xo,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:oo,cancel:oo,trigger:oo}:oo;if(so&&!wo){wo=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,oo,e)),r.document.documentElement.addEventListener(`click`,oo,e)}let c=!0,l=e=>P(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=So(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=P(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=P(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=So(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[Co(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),Co(r,`pointerdown`,t=>{let n=So(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&Co(r,`blur`,n=>{setTimeout(()=>{let i=So(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function Eo(){let e=le(!1),t=D();return t&&C(()=>{e.value=!0},t),e}function Do(e){let t=Eo();return L(()=>(t.value,!!e()))}var Oo=Symbol(`vueuse-ssr-width`);function ko(){let e=oe()?no(Oo,null):null;return typeof e==`number`?e:void 0}function Ao(e,t={}){let{window:n=xo,ssrWidth:r=ko()}=t,i=Do(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),a=le(typeof r==`number`),o=le(),s=le(!1);return ze(()=>{if(a.value){a.value=!i.value;let t=P(e).split(`,`);s.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),i=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||i);return n&&a&&(a=r>=mo(n[1])),i&&a&&(a=r<=mo(i[1])),t?!a:a});return}i.value&&(o.value=n.matchMedia(P(e)),s.value=o.value.matches)}),Co(o,`change`,e=>{s.value=e.matches},{passive:!0}),L(()=>s.value)}var jo=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},Mo=`__vueuse_ssr_handlers__`,No=Po();function Po(){return Mo in jo||(jo[Mo]=jo[Mo]||{}),jo[Mo]}function Fo(e,t){return No[e]||t}function Io(e){return Ao(`(prefers-color-scheme: dark)`,e)}function Lo(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var Ro={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},zo=`vueuse-storage`;function Bo(e,t,n,i={}){let{flush:a=`pre`,deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,mergeDefaults:l=!1,shallow:u,window:d=xo,eventFilter:f,onError:p=e=>{console.error(e)},initOnMounted:m}=i,h=(u?le:E)(typeof t==`function`?t():t),g=L(()=>P(e));if(!n)try{n=Fo(`getDefaultStorage`,()=>xo?.localStorage)()}catch(e){p(e)}if(!n)return h;let _=P(t),v=Lo(_),y=i.serializer??Ro[v],{pause:ee,resume:x}=vo(h,e=>w(e),{flush:a,deep:o,eventFilter:f});b(g,()=>T(),{flush:a});let S=!1;d&&s&&(n instanceof Storage?Co(d,`storage`,e=>{m&&!S||T(e)},{passive:!0}):Co(d,zo,e=>{m&&!S||ne(e)})),m?yo(()=>{S=!0,T()}):T();function C(e,t){if(d){let r={key:g.value,oldValue:e,newValue:t,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(zo,{detail:r}))}}function w(e){try{let t=n.getItem(g.value);if(e==null)C(t,null),n.removeItem(g.value);else{let r=y.write(e);t!==r&&(n.setItem(g.value,r),C(t,r))}}catch(e){p(e)}}function te(e){let t=e?e.newValue:n.getItem(g.value);if(t==null)return c&&_!=null&&n.setItem(g.value,y.write(_)),_;if(!e&&l){let e=y.read(t);return typeof l==`function`?l(e,_):v===`object`&&!Array.isArray(e)?{..._,...e}:e}return typeof t==`string`?y.read(t):t}function T(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){h.value=_;return}if(!(e&&e.key!==g.value)){ee();try{let t=y.write(h.value);(e===void 0||e?.newValue!==t)&&(h.value=te(e))}catch(e){p(e)}finally{e?r(x):x()}}}}function ne(e){T(e.detail)}return h}function Vo(e){return{...e,status:e.adminStatus??e.status,rawStatus:e.status,allowedTransitions:e.allowedTransitions??[],settlementMethod:e.settlementMethod??e.settlementType??null,meterage:e.meterage??e.totalMeterage??0}}function Ho(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`c-${Date.now()}`}var Uo={list:e=>Z(`/companies`,{query:{activeOnly:e?`true`:void 0}}),get:e=>Z(`/companies/${e}`),create:e=>Z(`/companies`,{body:e}),update:(e,t)=>Z(`/companies/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/companies/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Wo={listByCompany:e=>Z(`/companies/${e}/bank-accounts`),create:(e,t)=>Z(`/companies/${e}/bank-accounts`,{body:t}),update:(e,t)=>Z(`/bank-accounts/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/bank-accounts/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Go={list:e=>Z(`/catalogs`,{query:{companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Z(`/catalogs`,{body:e}),update:(e,t)=>Z(`/catalogs/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/catalogs/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Ko={list:e=>Z(`/products`,{query:{catalogId:e?.catalogId,companyId:e?.companyId,activeOnly:e?.activeOnly?`true`:void 0}}),create:e=>Z(`/products`,{body:e,timeoutMs:9e4}),update:(e,t)=>Z(`/products/${e}`,{method:`PATCH`,body:t,timeoutMs:9e4}),setActive:(e,t)=>Z(`/products/${e}/active`,{method:`PATCH`,body:{isActive:t}})},qo={list:(e,t)=>Z(`/admin/customers`,{query:{q:e,appRole:t}}),create:e=>Z(`/admin/customers`,{body:e}),update:(e,t)=>Z(`/admin/customers/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/admin/customers/${e}/active`,{method:`PATCH`,body:{isActive:t}})},Jo={list:e=>Z(`/admin/orders`,{query:{status:e?.status,q:e?.q}}),get:e=>Z(`/admin/orders/${e}`),create:e=>Z(`/admin/orders`,{body:e}),updatePricing:(e,t)=>Z(`/admin/orders/${e}/pricing`,{method:`PATCH`,body:t}),updateStatus:(e,t)=>Z(`/admin/orders/${e}/status`,{method:`PATCH`,body:t})},Yo={list:e=>Z(`/admin/checks`,{query:{status:e}}),listByOrder:e=>Z(`/admin/orders/${e}/checks`),updateStatus:(e,t)=>Z(`/admin/checks/${e}/status`,{method:`PATCH`,body:t})},Xo={list:e=>Z(`/admin/cash-payments`,{query:{status:e}}),updateStatus:(e,t)=>Z(`/admin/cash-payments/${e}/status`,{method:`PATCH`,body:t})},Zo={list:e=>Z(`/admin/shipments`,{query:{status:e}}),create:e=>Z(`/admin/shipments`,{body:e}),update:(e,t)=>Z(`/admin/shipments/${e}`,{method:`PATCH`,body:t}),advanceStatus:(e,t)=>Z(`/admin/shipments/${e}/status`,{method:`PATCH`,body:t??{}})},Qo={list:()=>Z(`/admin/users`),create:e=>Z(`/admin/users`,{body:e}),update:(e,t)=>Z(`/admin/users/${e}`,{method:`PATCH`,body:t}),setActive:(e,t)=>Z(`/admin/users/${e}/active`,{method:`PATCH`,body:{isActive:t}})},$o={get:()=>Z(`/admin/dashboard`),reports:()=>Z(`/admin/reports`)},es={get:()=>Z(`/admin/settings`),update:e=>Z(`/admin/settings`,{method:`PATCH`,body:e})},ts={markRead:e=>Z(`/admin/notifications/${e}/read`,{method:`PATCH`}),markAllRead:()=>Z(`/admin/notifications/read-all`,{method:`PATCH`}),broadcast:e=>Z(`/admin/notifications/broadcast`,{method:`POST`,body:e})},ns={list:e=>Z(`/admin/catalog-requests`,{query:{status:e}}),updateStatus:(e,t)=>Z(`/admin/catalog-requests/${e}/status`,{method:`PATCH`,body:{status:t}}),updateHolder:(e,t)=>Z(`/admin/catalog-request-items/${e}/holder`,{method:`PATCH`,body:t})},rs={list:e=>Z(`/admin/banners`,{query:{slot:e}}),create:e=>Z(`/admin/banners`,{body:e}),update:(e,t)=>Z(`/admin/banners/${e}`,{method:`PATCH`,body:t}),remove:e=>Z(`/admin/banners/${e}`,{method:`DELETE`})},is={list:()=>Z(`/admin/brands`),create:e=>Z(`/admin/brands`,{body:e}),update:(e,t)=>Z(`/admin/brands/${e}`,{method:`PATCH`,body:t})},as={list:()=>Z(`/admin/levels`),create:e=>Z(`/admin/levels`,{body:e}),update:(e,t)=>Z(`/admin/levels/${e}`,{method:`PATCH`,body:t})},os={list:e=>Z(`/admin/suggestions`,{query:{customerId:e}}),create:e=>Z(`/admin/suggestions`,{body:e}),setActive:(e,t)=>Z(`/admin/suggestions/${e}/active`,{method:`PATCH`,body:{isActive:t}})},ss={list:()=>Z(`/admin/stock-alerts`),notify:e=>Z(`/admin/stock-alerts/${e}/notify`,{method:`PATCH`})},cs=`۰۱۲۳۴۵۶۷۸۹`,ls=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function us(e){return e.replace(/[۰-۹]/g,e=>String(cs.indexOf(e)))}function ds(e){return us(e).replace(/[^\d]/g,``)}function fs(e){return Number.isFinite(e)?ls.format(e):`—`}function ps(e){return`${fs(e)} تومان`}function ms(e){return`${fs(e)} متر`}function hs(e){return String(e).replace(/\d/g,e=>cs[Number(e)])}var gs=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),_s=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function vs(e){let t=us(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function ys(e){if(typeof e!=`string`)return e;let t=e.trim(),n=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(n&&Number(n[1])>=1700)return new Date(Number(n[1]),Number(n[2])-1,Number(n[3]));let r=new Date(t);return Number.isNaN(r.getTime())?new Date(NaN):r}function bs(e){if(!e)return`—`;if(typeof e==`string`&&vs(e)){let t=us(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return hs(t);let[,r,i,a]=n;return hs(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=ys(e);return Number.isNaN(t.getTime())?`—`:gs.format(t)}function xs(e){if(!e)return`—`;if(typeof e==`string`&&vs(e)&&!/[T\s]\d/.test(e))return bs(e);let t=ys(e);return Number.isNaN(t.getTime())?`—`:_s.format(t)}var Ss=/ORD-?\d{2,4}-?\d{2,6}/i,Cs=/^\/?(?:admin\/)?orders\/([^/?#]+)\/?$/i,ws=/^\/?(?:admin\/)?orders\/([^/?#]+)\/(pricing|checks)\/?$/i;function Ts(e){let t=e.match(Ss);if(!t?.[0])return null;let n=t[0].toUpperCase().replace(/^ORD-?/,``).replace(/-/g,``);return n.length<6?t[0].toUpperCase():`ORD-${n.slice(0,4)}-${n.slice(4)}`}function Q(e,t){return t.some(t=>t.test(e))}function Es(e){let t=e.trim();if(!t)return t;try{if(/^https?:\/\//i.test(t)){let e=new URL(t);t=`${e.pathname}${e.search}`}}catch{}t=t.replace(/^\/admin(?=\/)/,``),t.startsWith(`/`)||(t=`/${t}`);let n=t.match(ws);if(n?.[1]&&n[2])return`/orders/${n[1]}/${n[2]}`;let r=t.match(Cs);return r?.[1]?`/orders?order=${encodeURIComponent(r[1])}`:t}function Ds(e){let t=e.link?.trim();if(t)return Es(t);let n=`${e.title?.trim()??``} ${e.body?.trim()??``}`,r=e.orderId?.trim()||null,i=Ts(n),a=Q(n,[/پیامک/]),o=Q(n,[/چک/]),s=Q(n,[/قیمت/,/تخفیف/,/پیش[‌\s]?فاکتور/,/قیمت‌گذاری/,/اصلاح قیمت/]),c=!a&&Q(n,[/ارسال/,/باربری/,/حمل/,/بارنامه/]),l=Q(n,[/نقدی/,/پرداخت نقد/,/رسید پرداخت/]),u=Q(n,[/گزارش/]),d=Q(n,[/مشتری جدید/,/ثبت مشتری/]),f=Q(n,[/کالیته/]),p=Q(n,[/محصول/]),m=Q(n,[/شرکت/,/حساب بانکی/]),h=Q(n,[/سفارش/]),g=a||Q(n,[/پشتیبان/,/تنظیمات/]);return r?o?`/orders/${r}/checks`:s?`/orders/${r}/pricing`:c?`/shipping?order=${encodeURIComponent(r)}`:l?`/cash-payments?order=${encodeURIComponent(r)}`:`/orders?order=${encodeURIComponent(r)}`:i?o?`/orders?order=${encodeURIComponent(i)}&focus=checks`:s?`/orders?order=${encodeURIComponent(i)}&focus=pricing`:c?`/shipping?order=${encodeURIComponent(i)}`:l?`/cash-payments?order=${encodeURIComponent(i)}`:`/orders?order=${encodeURIComponent(i)}`:o?`/checks`:c?`/shipping`:l?`/cash-payments`:u?`/reports`:d?`/customers`:f?`/catalogs`:p?`/products`:m?`/companies`:g?`/settings`:s||h?`/orders`:null}var Os=$n(`theme`,()=>{let e=Bo(`ft_admin_theme`,`system`),t=Io(),n=L(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=L(()=>n.value===`dark`);ze(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}return{preference:e,resolved:n,isDark:r,setPreference:i}}),ks={class:`admin-header`},As={class:`admin-header__right`},js={class:`admin-header__dropdown`},Ms=[`aria-label`,`aria-expanded`],Ns={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Ps={class:`admin-header__panel-header`},Fs={key:0,class:`admin-header__panel-list`},Is=[`onClick`],Ls={class:`admin-header__panel-item-top`},Rs=[`datetime`],zs={class:`admin-header__panel-item-sender`},Bs={class:`admin-header__panel-item-body`},Vs={key:1,class:`admin-header__panel-empty`},Hs={class:`admin-header__dropdown`},Us=[`aria-label`,`aria-expanded`],Ws={key:0,class:`admin-header__badge`,"aria-hidden":`true`},Gs={class:`admin-header__panel-header`},Ks={key:0,class:`admin-header__panel-list`},qs=[`onClick`],Js={class:`admin-header__panel-item-top`},Ys=[`datetime`],Xs={class:`admin-header__panel-item-body`},Zs={key:1,class:`admin-header__panel-empty`},Qs={class:`admin-header__dropdown`},$s=[`aria-label`,`aria-expanded`],ec={class:`admin-header__theme-glyph`,"aria-hidden":`true`},tc={class:`admin-header__theme-list`},nc=[`onClick`],rc={class:`admin-header__theme-option-icon`,"aria-hidden":`true`},ic={class:`admin-header__theme-option-label`},ac={class:`admin-header__user`},oc={class:`admin-header__avatar`},sc={class:`admin-header__user-info`},cc=ke(M({__name:`AdminHeader`,emits:[`menuClick`],setup(e){let t=Vr(),n=Xa(),r=Os(),i=E(null),a=E(null),o=E([]),s=E([]),c=L(()=>o.value.filter(e=>!e.isRead).length),l=L(()=>s.value.filter(e=>!e.isRead).length),u=[{value:`light`,label:`روشن`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,icon:`vuesax-linear:mobile`}],d=L(()=>u.find(e=>e.value===r.preference)?.label??`سیستم`),f=L(()=>u.find(e=>e.value===r.preference)?.icon??`vuesax-linear:sun-1`);$o.get().then(e=>{o.value=e.messages??[],s.value=e.notifications??[]}).catch(()=>{o.value=[],s.value=[]}),To(a,()=>{i.value=null}),Co(document,`keydown`,e=>{e.key===`Escape`&&(i.value=null)});function p(e){i.value=i.value===e?null:e}function m(){i.value=null}function h(e){e.isRead=!0}function g(e){e.isRead||(e.isRead=!0,ts.markRead(e.id).catch(()=>{e.isRead=!1}))}function y(){o.value.forEach(e=>{e.isRead=!0})}function ee(){let e=s.value.filter(e=>!e.isRead);e.length&&(e.forEach(e=>{e.isRead=!0}),ts.markAllRead().catch(()=>{e.forEach(e=>{e.isRead=!1})}))}function b(e){m(),e&&t.push(e)}function x(e){h(e),b(Ds({link:e.link,orderId:e.orderId,title:e.subject,body:e.preview}))}function S(e){g(e),b(Ds({link:e.link,orderId:e.orderId,title:e.title,body:e.body}))}function C(e){r.setPreference(e),m()}return(e,t)=>(_(),j(`header`,ks,[A(`div`,As,[A(`button`,{type:`button`,class:`admin-header__menu-btn compact-only`,"aria-label":`باز کردن منو`,onClick:t[0]||=t=>e.$emit(`menuClick`)},[N(Oa,{name:`menu`,size:22})])]),A(`div`,{ref_key:`actionsRef`,ref:a,class:`admin-header__left`},[A(`div`,js,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`messages`}]),title:`پیام‌های داخلی`,"aria-label":`پیام‌های داخلی — ${c.value} پیام خوانده‌نشده`,"aria-expanded":i.value===`messages`,"aria-haspopup":`true`,onClick:t[1]||=q(e=>p(`messages`),[`stop`])},[N(Oa,{name:`message`,size:22}),c.value?(_(),j(`span`,Ns,v(c.value),1)):R(``,!0),t[7]||=A(`span`,{class:`admin-header__icon-label`},`پیام`,-1)],10,Ms),i.value===`messages`?(_(),j(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`پیام‌های داخلی`,onClick:t[2]||=q(()=>{},[`stop`])},[A(`div`,Ps,[t[8]||=A(`h2`,{class:`admin-header__panel-title`},`پیام‌های داخلی`,-1),c.value?(_(),j(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:y},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):R(``,!0)]),o.value.length?(_(),j(`ul`,Fs,[(_(!0),j(I,null,he(o.value,e=>(_(),j(`li`,{key:e.id,class:w([`admin-header__panel-item`,{unread:!e.isRead}])},[A(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>x(e)},[A(`span`,Ls,[A(`strong`,null,v(e.subject),1),A(`time`,{datetime:e.sentAt},v(O(xs)(e.sentAt)),9,Rs)]),A(`span`,zs,`از `+v(e.senderName),1),A(`span`,Bs,v(e.preview),1)],8,Is)],2))),128))])):(_(),j(`p`,Vs,`پیامی وجود ندارد.`))])):R(``,!0)]),A(`div`,Hs,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`notifications`}]),title:`اعلان‌ها`,"aria-label":`اعلان‌ها — ${l.value} اعلان جدید`,"aria-expanded":i.value===`notifications`,"aria-haspopup":`true`,onClick:t[3]||=q(e=>p(`notifications`),[`stop`])},[N(Oa,{name:`bell`,size:22}),l.value?(_(),j(`span`,Ws,v(l.value),1)):R(``,!0),t[9]||=A(`span`,{class:`admin-header__icon-label`},`اعلان`,-1)],10,Us),i.value===`notifications`?(_(),j(`div`,{key:0,class:`admin-header__panel`,role:`dialog`,"aria-label":`اعلان‌ها`,onClick:t[4]||=q(()=>{},[`stop`])},[A(`div`,Gs,[t[10]||=A(`h2`,{class:`admin-header__panel-title`},`اعلان‌ها`,-1),l.value?(_(),j(`button`,{key:0,type:`button`,class:`admin-header__panel-action`,onClick:ee},` علامت‌گذاری همه به‌عنوان خوانده‌شده `)):R(``,!0)]),s.value.length?(_(),j(`ul`,Ks,[(_(!0),j(I,null,he(s.value,e=>(_(),j(`li`,{key:e.id,class:w([`admin-header__panel-item`,[{unread:!e.isRead},e.tone?`admin-header__panel-item--${e.tone}`:``]])},[A(`button`,{type:`button`,class:`admin-header__panel-item-btn`,onClick:t=>S(e)},[A(`span`,Js,[A(`strong`,null,v(e.title),1),A(`time`,{datetime:e.sentAt},v(O(xs)(e.sentAt)),9,Ys)]),A(`span`,Xs,v(e.body),1)],8,qs)],2))),128))])):(_(),j(`p`,Zs,`اعلانی وجود ندارد.`))])):R(``,!0)]),A(`div`,Qs,[A(`button`,{type:`button`,class:w([`admin-header__icon-btn`,{"admin-header__icon-btn--active":i.value===`theme`}]),title:`حالت نمایش`,"aria-label":`حالت نمایش — ${d.value}`,"aria-expanded":i.value===`theme`,"aria-haspopup":`true`,onClick:t[5]||=q(e=>p(`theme`),[`stop`])},[A(`span`,ec,[N(nr,{icon:f.value,size:20,"stroke-width":1.5},null,8,[`icon`])]),t[11]||=A(`span`,{class:`admin-header__icon-label`},`تم`,-1)],10,$s),i.value===`theme`?(_(),j(`div`,{key:0,class:`admin-header__panel admin-header__panel--theme`,role:`dialog`,"aria-label":`انتخاب حالت نمایش`,onClick:t[6]||=q(()=>{},[`stop`])},[t[12]||=A(`div`,{class:`admin-header__panel-header`},[A(`h2`,{class:`admin-header__panel-title`},`حالت نمایش`)],-1),A(`ul`,tc,[(_(),j(I,null,he(u,e=>A(`li`,{key:e.value},[A(`button`,{type:`button`,class:w([`admin-header__theme-option`,{"admin-header__theme-option--active":O(r).preference===e.value}]),onClick:t=>C(e.value)},[A(`span`,rc,[N(nr,{icon:e.icon,size:18,"stroke-width":1.5},null,8,[`icon`])]),A(`span`,ic,v(e.label),1),O(r).preference===e.value?(_(),ve(nr,{key:0,class:`admin-header__theme-option-check`,icon:`vuesax-linear:tick-circle`,size:16,"stroke-width":1.75})):R(``,!0)],10,nc)])),64))])])):R(``,!0)]),A(`div`,ac,[A(`div`,oc,v(O(n).fullName.charAt(0)||`؟`),1),A(`div`,sc,[A(`strong`,null,v(O(n).fullName||`مدیر`),1),A(`span`,null,v(O(n).roleLabel||`پنل مدیریت`),1)])])],512)]))}}),[[`__scopeId`,`data-v-7fec14ae`]]),lc=[`aria-hidden`],uc={class:`admin-drawer__brand`},dc={class:`admin-drawer__nav`},fc=[`onClick`],pc=ke(M({__name:`AdminMobileDrawer`,props:{open:{type:Boolean}},emits:[`close`],setup(e,{emit:t}){let n=t,r=Hr(),i=Vr(),a=Xa();function o(e){i.push(e),n(`close`)}function s(){a.logout(),i.push(`/login`),n(`close`)}return(t,i)=>(_(),j(I,null,[A(`div`,{class:w([`admin-drawer-backdrop`,{open:e.open}]),role:`presentation`,onClick:i[0]||=e=>n(`close`)},null,2),A(`aside`,{class:w([`admin-drawer`,{open:e.open}]),"aria-label":`منوی ناوبری`,"aria-hidden":!e.open},[A(`div`,uc,[i[2]||=A(`strong`,null,`پارچه`,-1),i[3]||=A(`span`,null,`پنل مدیریت`,-1),A(`button`,{type:`button`,class:`admin-drawer__close`,"aria-label":`بستن منو`,onClick:i[1]||=e=>n(`close`)},` × `)]),A(`nav`,dc,[(_(!0),j(I,null,he(O(Ea),e=>(_(),j(`button`,{key:e.name,type:`button`,class:w([`admin-drawer__item`,{active:O(Da)(e.path,O(r).path)}]),onClick:t=>o(e.path)},[N(Oa,{name:e.icon,size:20},null,8,[`name`]),A(`span`,null,v(e.label),1)],10,fc))),128))]),A(`button`,{type:`button`,class:`admin-drawer__logout`,onClick:s},[N(Oa,{name:`logout`,size:20}),i[4]||=A(`span`,null,`خروج`,-1)])],10,lc)],64))}}),[[`__scopeId`,`data-v-7a746e66`]]),mc={class:`admin-shell`},hc={class:`admin-shell__main`},gc={class:`admin-shell__content`},_c=ke(M({__name:`AdminShell`,setup(e){let t=Hr(),n=E(!1);function r(){n.value=!0}function i(){n.value=!1}return b(()=>t.path,()=>{n.value=!1}),(e,t)=>{let a=g(`RouterView`);return _(),j(`div`,mc,[N(eo,{class:`desktop-only admin-shell__sidebar`}),N(pc,{open:n.value,onClose:i},null,8,[`open`]),A(`div`,hc,[N(cc,{onMenuClick:r}),A(`main`,gc,[N(a)])])])}}}),[[`__scopeId`,`data-v-435fffac`]]),vc=`modulepreload`,yc=function(e){return`/admin/`+e},bc={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=yc(t,n),t=s(t),t in bc)return;bc[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:vc,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},xc=Ta({history:qi(`/admin/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-w-SE2utd.js`),__vite__mapDeps([0,1,2])),meta:{public:!0,title:`ورود به پنل مدیریت`}},{path:`/`,component:_c,meta:{requiresAuth:!0},children:[{path:``,name:`dashboard`,component:()=>$(()=>import(`./DashboardView-cyaZFrOQ.js`),__vite__mapDeps([3,1,4,5,6,7])),meta:{title:`داشبورد مدیریتی`}},{path:`orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-DGNYhZg3.js`),__vite__mapDeps([8,1,9,10,11,5,4,6,12])),meta:{title:`سفارش‌ها`}},{path:`orders/:id/pricing`,name:`order-pricing`,component:()=>$(()=>import(`./OrderPricingView-vS7IKrtc.js`),__vite__mapDeps([13,1,14,15,9,10,5,4,6,16,17,18])),meta:{title:`قیمت‌گذاری سفارش`}},{path:`checks`,name:`checks`,component:()=>$(()=>import(`./ChecksListView-DgtZLWw5.js`),__vite__mapDeps([19,1,14,15,9,10,4,5,6,20])),meta:{title:`چک‌ها`}},{path:`orders/:id/checks`,name:`order-checks`,component:()=>$(()=>import(`./CheckManagementView-D9Dy0r7I.js`),__vite__mapDeps([21,1,5,4,6,22])),meta:{title:`مدیریت چک‌های سفارش`}},{path:`orders/:id`,name:`order-detail`,redirect:e=>({name:`orders`,query:{order:String(e.params.id)}})},{path:`companies`,name:`companies`,component:()=>$(()=>import(`./CompaniesView-C28l_bkY.js`),__vite__mapDeps([23,1,14,15,24,25,26,27,28,29])),meta:{title:`مدیریت شرکت‌ها`}},{path:`companies/:companyId/accounts`,name:`bank-accounts`,component:()=>$(()=>import(`./BankAccountsView-CjjgU3ea.js`),__vite__mapDeps([30,1,24,25,26,27,28,31])),meta:{title:`حساب‌های بانکی`}},{path:`customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-D2DfLX0j.js`),__vite__mapDeps([32,1,14,15,24,25,26,27,9,10,11,28,33])),meta:{title:`مشتریان و واسطه‌ها`}},{path:`products`,name:`products`,component:()=>$(()=>import(`./ProductsView-NLVncfjZ.js`),__vite__mapDeps([34,1,14,15,24,25,26,27,35,36,9,10,28,16,17,37])),meta:{title:`محصولات`}},{path:`categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-DAT9P8-Q.js`),__vite__mapDeps([38,1,14,15,24,25,35,36,9,10,39])),meta:{title:`دسته‌بندی‌ها`}},{path:`banners`,name:`banners`,component:()=>$(()=>import(`./BannersView-KHMLub3-.js`),__vite__mapDeps([40,1,14,15,24,25,26,27,35,36,9,10,41])),meta:{title:`بنرها`}},{path:`catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsView-DJJrDHxo.js`),__vite__mapDeps([42,1,14,15,24,25,26,27,35,36,9,10,28,43])),meta:{title:`کالیته‌ها`}},{path:`catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-DQu3_M_v.js`),__vite__mapDeps([44,1,14,15,26,27,9,10,45])),meta:{title:`درخواست کالیته فیزیکی`}},{path:`brands`,name:`brands`,component:()=>$(()=>import(`./BrandsView-Il4Q4zqB.js`),__vite__mapDeps([46,1,14,15,24,25,26,27,47])),meta:{title:`برندها`}},{path:`suggestions`,name:`suggestions`,component:()=>$(()=>import(`./SuggestionsView-SvmEopB3.js`),__vite__mapDeps([48,1,14,15,26,27,9,10,49])),meta:{title:`پیشنهاد محصول`}},{path:`stock-alerts`,name:`stock-alerts`,component:()=>$(()=>import(`./StockAlertsView-B7WDBhjL.js`),__vite__mapDeps([50,1,14,15,26,27,51])),meta:{title:`خبر موجودی`}},{path:`levels`,name:`levels`,component:()=>$(()=>import(`./LevelsView-Cos5Q_ra.js`),__vite__mapDeps([52,1,14,15,26,27,53])),meta:{title:`سطوح مشتری`}},{path:`cash-payments`,name:`cash-payments`,component:()=>$(()=>import(`./CashPaymentsView-BmPMXCl-.js`),__vite__mapDeps([54,1,14,15,9,10,11,55])),meta:{title:`پرداخت‌های نقدی`}},{path:`shipping`,name:`shipping`,component:()=>$(()=>import(`./ShippingView-Ck9kASgn.js`),__vite__mapDeps([56,1,14,15,9,10,11,5,57])),meta:{title:`ارسال و باربری`}},{path:`reports`,name:`reports`,component:()=>$(()=>import(`./ReportsView-uTGceQoW.js`),__vite__mapDeps([58,1,14,15,59])),meta:{title:`گزارش‌ها`}},{path:`settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-BSpASBj1.js`),__vite__mapDeps([60,1,14,15,61])),meta:{title:`تنظیمات`}},{path:`users`,name:`users`,component:()=>$(()=>import(`./UsersView-OSVbK-od.js`),__vite__mapDeps([62,1,14,15,24,25,26,27,9,10,11,28,63])),meta:{title:`کاربران و دسترسی‌ها`}}]},{path:`/:pathMatch(.*)*`,name:`not-found`,component:()=>$(()=>import(`./NotFoundView-BAomeX7E.js`),__vite__mapDeps([64,1,65]))}]});xc.beforeEach(async e=>{let t=Xa();return await t.hydrate(),e.meta.public?t.isAuthenticated&&e.name===`login`?{name:`dashboard`}:!0:e.matched.some(e=>e.meta.requiresAuth)&&!t.isAuthenticated?{name:`login`,query:{redirect:e.fullPath}}:!0});var Sc=yn(Or),Cc=zn();Sc.use(Cc),Sc.use(xc),Os(Cc),Xa(Cc).hydrate(),Sc.mount(`#app`);export{Xa as A,nr as B,es as C,os as D,ss as E,Hr as F,hn as G,ln as H,Vr as I,q as K,br as L,Ka as M,Na as N,To as O,Oa as P,_r as R,Ko as S,Ho as T,an as U,tn as V,en as W,$o as _,ms as a,ts as b,Wo as c,Xo as d,ns as f,qo as g,Uo as h,xs as i,za as j,Ao as k,rs as l,Yo as m,ps as n,fs as o,Go as p,bs as r,Qo as s,ds as t,is as u,as as v,Zo as w,Jo as x,Vo as y,or as z}; \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 0271b98..bc18811 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,7 +5,8 @@ پنل مدیریت | پارچه - + +