diff --git a/dist/assets/CartView-BqUM1Ido.js b/dist/assets/CartView-BqUM1Ido.js new file mode 100644 index 0000000..d98a2af --- /dev/null +++ b/dist/assets/CartView-BqUM1Ido.js @@ -0,0 +1 @@ +import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,Q as c,T as l,Y as u,_ as d,bt as f,ft as p,j as m,k as h,n as g,q as _,t as v,tt as y,wt as b,xt as x}from"./BasicIcon-CjTTsi6o.js";import{a as S,o as C}from"./format-BHJptHdF.js";import{C as w,S as T,T as ee,h as E,n as D,o as O,t as k}from"./index-D3Z8WOeX.js";import{t as te}from"./EmptyState-BpC5eqVE.js";import{t as A}from"./IconChevronBack-B10eZjCQ.js";import{t as j}from"./FormErrorBanner-B8THF9oG.js";import{t as M}from"./CheckoutStepper-BoOJQ-Nf.js";import{t as N}from"./IconBuilding-BTmZv_WO.js";import{t as P}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as F}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as I}from"./IconDiamond-Yhg3u2_R.js";function L(){let e=d(),t=ee(),n=E(),i=p(!1),a=p(!1),o=p(``),c=s(()=>t.activeCart?.items??[]),l=s(()=>c.value.length===0),u=s(()=>t.companyNamesLabel||t.activeCart?.companyName||``),f=s(()=>t.companySummaries);async function m(e){let n=c.value.find(t=>t.id===e);await k({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}async function h(){if(!(!t.activeCart||c.value.length===0||a.value)){a.value=!0,o.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){o.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let r=await n.submitOrder(t.activeCart);await t.hydrate(),e.replace(`/orders/${r.id}/success`)}catch(e){o.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{a.value=!1}}}function g(){if(c.value.length!==0){if(t.isFull){i.value=!0;return}h()}}function _(){i.value=!1,h()}async function v(){await t.createNewCartForSameCompany(),i.value=!1,e.push(`/categories`)}return r(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:c,isEmpty:l,companyName:u,companySummaries:f,showFullDialog:i,submitting:a,submitError:o,removeItem:m,proceedToCheckout:g,proceedAnyway:_,createNewInvoice:v}}var R=a({__name:`IconTrash`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(_(),e(v,{icon:`vuesax-linear:trash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),z={class:`cart-mobile-page`},B={class:`cart-mobile-page__nav`},V={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},H={key:0,class:`cart-mobile-page__body`},U={class:`cart-mobile-page__company`},W={class:`cart-mobile-page__scroll`},G={class:`cart-mobile-table`},K={class:`col-product`},q={key:0,class:`col-product__company`},J={class:`col-meterage`},Y={class:`col-delete`},X=[`onClick`],Z={class:`cart-mobile-page__footer`},Q={class:`cart-mobile-summary`},ne={class:`cart-mobile-summary__row`},re={class:`cart-mobile-summary__cap`},ie={key:1,class:`cart-mobile-summary__row`},ae={class:`cart-mobile-summary__row`},oe=g(a({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(r,{emit:a}){let s=a;return(a,c)=>(_(),o(`div`,z,[h(`header`,B,[h(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:c[0]||=e=>s(`back`)},[i(A,{size:20})]),c[3]||=h(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),h(`button`,V,[i(A,{size:18,class:`nav-btn__flip`})])]),r.isEmpty?(_(),e(te,{key:1,variant:`cart`,message:`از دسته‌بندی یا کالیته محصول را انتخاب کنید`},{default:y(()=>[i(D,{onClick:c[2]||=e=>s(`selectCompany`)},{default:y(()=>[...c[10]||=[n(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(_(),o(`div`,H,[h(`p`,U,b(r.companyName?`شرکت‌ها: ${r.companyName}`:`سبد خرید مشترک`),1),h(`div`,W,[h(`div`,G,[c[4]||=h(`div`,{class:`cart-mobile-table__head`},[h(`span`,null,`محصول`),h(`span`,null,`متراژ (متر)`),h(`span`,null,`حذف`)],-1),(_(!0),o(t,null,u(r.items,e=>(_(),o(`div`,{key:e.id,class:`cart-mobile-table__row`},[h(`div`,K,[h(`strong`,null,b(e.productName),1),h(`span`,null,`کد: `+b(e.productCode),1),e.companyName?(_(),o(`span`,q,b(e.companyName),1)):m(``,!0)]),h(`div`,J,b(f(C)(e.meterage)),1),h(`div`,Y,[h(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[i(R,{size:20})],8,X)])]))),128))])]),h(`div`,Z,[h(`div`,Q,[h(`div`,ne,[c[5]||=h(`span`,null,`جمع متراژ کل`,-1),h(`strong`,null,b(f(S)(r.totalMeterage)),1)]),r.companySummaries?.length?(_(!0),o(t,{key:0},u(r.companySummaries,e=>(_(),o(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[h(`span`,null,b(e.companyName),1),h(`strong`,null,[n(b(f(S)(e.meterage))+` `,1),h(`span`,re,`/ `+b(f(S)(e.maxMeterage)),1)])]))),128)):(_(),o(`div`,ie,[c[6]||=h(`span`,null,`حداکثر مجاز`,-1),h(`strong`,null,b(f(S)(r.maxMeterage)),1)])),h(`div`,ae,[c[7]||=h(`span`,null,`باقی مانده`,-1),h(`strong`,null,b(f(S)(r.remainingCapacity)),1)])]),c[9]||=h(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت، همه اقلام در یک پیش‌سفارش واحد قرار می‌گیرند و مدیریت قیمت‌گذاری می‌کند. `,-1),i(D,{block:``,loading:r.submitting,onClick:c[1]||=e=>s(`checkout`)},{default:y(()=>[...c[8]||=[n(`ثبت پیش‌سفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-6370ec52`]]),se=a({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(_(),e(v,{icon:`vuesax-linear:lamp-on`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),ce={class:`desktop-page cart-desktop-page`},le={class:`cart-desktop-page__head`},ue={class:`cart-desktop-page__subtitle`},de={class:`cart-desktop-page__layout`},fe={class:`cart-desktop-page__main`},pe={key:0,class:`cart-empty-card`},me={class:`cart-empty-card__visual`,"aria-hidden":`true`},he={class:`cart-empty-card__circle`},ge={class:`cart-empty-card__actions`},_e={key:1,class:`cart-items-card`},ve={class:`cart-items-card__scroll`},ye={class:`cart-items-table`},be={class:`cart-items-table__name`},xe=[`onClick`],Se={class:`cart-desktop-page__sidebar`},Ce={class:`cart-summary-card`},we={class:`cart-summary-card__title`},Te={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Ee={class:`cart-summary-card__rows`},De={class:`cart-summary-card__row`},Oe={class:`cart-summary-card__row-label`},ke={class:`cart-summary-card__row`},Ae={class:`cart-summary-card__row-label`},je={class:`cart-summary-card__row-label`},Me={class:`cart-summary-card__cap`},Ne={class:`cart-summary-card__row cart-summary-card__row--hint`},Pe={class:`cart-summary-card__row-label`},$=[`disabled`],Fe={class:`cart-guide-card`},Ie={class:`cart-guide-card__title`},Le={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Re={class:`cart-guide-card__text`},ze={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},Be=[`onClick`],Ve={class:`cart-quick-nav__body`},He={class:`cart-quick-nav__title`},Ue={class:`cart-quick-nav__desc`},We=g(a({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(r,{emit:a}){let s=a,l=d(),p=[{title:`انتخاب شرکت`,desc:`شروع سفارش از انتخاب شرکت`,icon:N,tone:`blue`,action:()=>s(`selectCompany`)},{title:`سفارش‌گذاری`,desc:`مشاهده کاتالوگ و افزودن کالا`,icon:w,tone:`green`,action:()=>s(`back`)},{title:`سفارش‌های من`,desc:`پیگیری وضعیت سفارش‌ها`,icon:T,tone:`blue`,action:()=>l.push(`/orders`)}];return(a,l)=>(_(),o(`div`,ce,[i(M,{"current-step":1}),h(`header`,le,[l[3]||=h(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),h(`p`,ue,b(r.companyName?`شرکت‌ها: ${r.companyName}`:`سبد خرید مشترک`),1)]),h(`div`,de,[h(`section`,fe,[r.isEmpty?(_(),o(`div`,pe,[h(`div`,me,[l[4]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),l[5]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),h(`span`,he,[i(w,{size:40})]),l[6]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),l[9]||=h(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),l[10]||=h(`p`,{class:`cart-empty-card__text`},` از دسته‌بندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),h(`div`,ge,[h(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:l[0]||=e=>s(`selectCompany`)},[i(N,{size:18}),l[7]||=n(` مشاهده محصولات `,-1)]),h(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:l[1]||=e=>s(`back`)},[i(O,{size:16}),l[8]||=n(` بازگشت به سفارش‌گذاری `,-1)])])])):(_(),o(`div`,_e,[h(`div`,ve,[h(`table`,ye,[l[11]||=h(`thead`,null,[h(`tr`,null,[h(`th`,{scope:`col`},`محصول`),h(`th`,{scope:`col`},`شرکت`),h(`th`,{scope:`col`},`کد`),h(`th`,{scope:`col`},`متراژ (متر)`),h(`th`,{scope:`col`},`حذف`)])],-1),h(`tbody`,null,[(_(!0),o(t,null,u(r.items,e=>(_(),o(`tr`,{key:e.id},[h(`td`,null,[h(`strong`,be,b(e.productName),1)]),h(`td`,null,b(e.companyName||`—`),1),h(`td`,null,b(e.productCode),1),h(`td`,null,b(f(C)(e.meterage)),1),h(`td`,null,[h(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[i(R,{size:18})],8,xe)])]))),128))])])])]))]),h(`aside`,Se,[h(`div`,Ce,[h(`h2`,we,[h(`span`,Te,[i(P,{size:22})]),l[12]||=n(` خلاصه سفارش `,-1)]),h(`div`,Ee,[h(`div`,De,[h(`span`,Oe,[i(F,{size:16}),l[13]||=n(` تعداد آیتم‌ها `,-1)]),h(`strong`,null,b(f(C)(r.items.length)),1)]),h(`div`,ke,[h(`span`,Ae,[i(I,{size:16}),l[14]||=n(` متراژ کل `,-1)]),h(`strong`,null,b(f(S)(r.totalMeterage)),1)]),(_(!0),o(t,null,u(r.companySummaries??[],e=>(_(),o(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[h(`span`,je,b(e.companyName),1),h(`strong`,null,[n(b(f(S)(e.meterage))+` `,1),h(`span`,Me,`/ `+b(f(S)(e.maxMeterage)),1)])]))),128)),h(`div`,Ne,[h(`span`,Pe,[i(T,{size:16}),l[15]||=n(` مبلغ فاکتور `,-1)]),l[16]||=h(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمت‌گذاری مدیریت `,-1)])]),h(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:r.isEmpty||r.submitting,onClick:l[2]||=e=>s(`checkout`)},[i(O,{size:16}),n(` `+b(r.submitting?`در حال ثبت…`:`ثبت پیش‌سفارش`),1)],8,$),l[17]||=h(`p`,{class:`cart-summary-card__note`},` اقلام همه شرکت‌ها در یک سبد و یک فاکتور ثبت می‌شوند؛ پس از قیمت‌گذاری، یک‌بار تسویه می‌کنید. `,-1)]),h(`div`,Fe,[h(`h3`,Ie,[h(`span`,Le,[i(se,{size:18})]),l[18]||=n(` راهنمای گام بعدی `,-1)]),h(`p`,Re,[l[19]||=n(` پس از انتخاب شرکت و افزودن محصولات، متراژ کل و سقف مجاز فاکتور را بررسی کنید. `,-1),r.isEmpty?m(``,!0):(_(),o(t,{key:0},[n(` سقف مجاز: `+b(f(S)(r.maxMeterage))+` — باقی‌مانده: `+b(f(S)(r.remainingCapacity))+`. `,1)],64)),l[20]||=n(` سپس برای تکمیل سفارش، گزینه «ادامه و انتخاب تسویه» را بزنید. `,-1)])])])]),h(`nav`,ze,[(_(),o(t,null,u(p,t=>h(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[h(`span`,{class:x([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(_(),e(c(t.icon),{size:20}))],2),h(`span`,Ve,[h(`strong`,He,b(t.title),1),h(`span`,Ue,b(t.desc),1)]),i(O,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,Be)),64))]),l[21]||=h(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارش‌گذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-ceb44f7f`]]),Ge={class:`cart-view`},Ke={class:`dialog card`},qe={class:`dialog-actions`},Je=g(a({__name:`CartView`,setup(t){let r=d(),{cartStore:a,items:s,isEmpty:c,companyName:u,companySummaries:p,showFullDialog:g,submitting:v,submitError:b,removeItem:x,proceedToCheckout:S,proceedAnyway:C,createNewInvoice:w}=L();function T(){r.push(`/categories`)}return(t,d)=>(_(),o(`div`,Ge,[f(b)?(_(),e(j,{key:0,message:f(b),class:`cart-view__error`},null,8,[`message`])):m(``,!0),i(oe,{class:`mobile-only`,items:f(s),"company-name":f(u),"company-summaries":f(p),"total-meterage":f(a).totalMeterage,"max-meterage":f(a).maxMeterage,"remaining-capacity":f(a).remainingCapacity,"is-empty":f(c),submitting:f(v),onBack:d[0]||=e=>f(r).push(`/`),onRemove:f(x),onCheckout:f(S),onSelectCompany:d[1]||=e=>T()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),i(We,{class:`desktop-only`,items:f(s),"company-name":f(u),"company-summaries":f(p),"total-meterage":f(a).totalMeterage,"max-meterage":f(a).maxMeterage,"remaining-capacity":f(a).remainingCapacity,"is-empty":f(c),submitting:f(v),onRemove:f(x),onCheckout:f(S),onSelectCompany:d[2]||=e=>T(),onBack:T},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),f(g)?(_(),o(`div`,{key:1,class:`dialog-overlay`,onClick:d[3]||=l(e=>g.value=!1,[`self`])},[h(`div`,Ke,[d[6]||=h(`h3`,null,`سقف متراژ تکمیل شد`,-1),d[7]||=h(`p`,{class:`text-sm`},` سقف متراژ حداقل یک شرکت در سبد پر شده است. می‌توانید همین پیش‌سفارش‌ها را ثبت کنید یا سبد را خالی کرده و فاکتور جدید بسازید. `,-1),h(`div`,qe,[i(D,{variant:`outline`,loading:f(v),onClick:f(C)},{default:y(()=>[...d[4]||=[n(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),i(D,{onClick:f(w)},{default:y(()=>[...d[5]||=[n(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-8b0b9b14`]]);export{Je as default}; \ No newline at end of file diff --git a/dist/assets/CartView-CZLNxzfD.css b/dist/assets/CartView-CZLNxzfD.css deleted file mode 100644 index 9887ab3..0000000 --- a/dist/assets/CartView-CZLNxzfD.css +++ /dev/null @@ -1 +0,0 @@ -.cart-mobile-page[data-v-239ed7d0]{background:var(--color-bg);width:100%;min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:12px 0 0;display:flex;overflow:hidden}.cart-mobile-page__nav[data-v-239ed7d0]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.cart-mobile-page__hint[data-v-239ed7d0]{color:var(--color-text-muted);margin:0 0 10px;font-size:.75rem;line-height:1.6}.cart-mobile-page__title[data-v-239ed7d0]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-239ed7d0]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.nav-btn--ghost[data-v-239ed7d0]{visibility:hidden}.nav-btn__flip[data-v-239ed7d0]{transform:scaleX(-1)}.cart-mobile-page__body[data-v-239ed7d0]{flex-direction:column;flex:1;min-height:0;display:flex}.cart-mobile-page__company[data-v-239ed7d0]{color:var(--color-text-muted);margin:0 0 16px;font-size:.875rem}.cart-mobile-page__scroll[data-v-239ed7d0]{flex:1;min-height:0;overflow-y:auto}.cart-mobile-table[data-v-239ed7d0]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);overflow:hidden}.cart-mobile-table__head[data-v-239ed7d0],.cart-mobile-table__row[data-v-239ed7d0]{grid-template-columns:1fr 88px 52px;align-items:center;gap:8px;padding:10px 12px;display:grid}.cart-mobile-table__head[data-v-239ed7d0]{background:var(--color-summary-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:600}.cart-mobile-table__row[data-v-239ed7d0]{border-top:1px solid var(--color-border);color:var(--color-text)}.col-product strong[data-v-239ed7d0]{font-size:.875rem;display:block}.col-product span[data-v-239ed7d0]{color:var(--color-text-muted);font-size:.75rem;display:block}.col-product__company[data-v-239ed7d0]{margin-top:2px;font-weight:600;color:var(--color-primary)!important}.col-meterage[data-v-239ed7d0]{text-align:center;font-weight:700}.col-delete[data-v-239ed7d0]{justify-content:center;display:flex}.col-delete button[data-v-239ed7d0]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none}.cart-mobile-page__footer[data-v-239ed7d0]{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0));border-top:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;margin:0}.cart-mobile-summary[data-v-239ed7d0]{background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:14px 16px}.cart-mobile-summary__row[data-v-239ed7d0]{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.cart-mobile-summary__row--sub[data-v-239ed7d0]{color:var(--color-text-muted);font-size:.8125rem}.cart-mobile-summary__cap[data-v-239ed7d0]{color:var(--color-text-muted);font-weight:500}.cart-mobile-summary__row[data-v-239ed7d0]:not(:last-child){border-bottom:1px solid var(--color-border)}.cart-desktop-page[data-v-705b9f9e]{width:100%;padding-bottom:24px}.cart-desktop-page__head[data-v-705b9f9e]{margin-bottom:20px}.cart-desktop-page__title[data-v-705b9f9e]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.cart-desktop-page__subtitle[data-v-705b9f9e]{color:var(--color-text-muted);margin:0;font-size:.875rem}.cart-desktop-page__layout[data-v-705b9f9e]{direction:ltr;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;margin-bottom:24px;display:grid}@media (width>=1100px){.cart-desktop-page__layout[data-v-705b9f9e]{grid-template-columns:minmax(0,1fr) 300px}}.cart-desktop-page__main[data-v-705b9f9e],.cart-desktop-page__sidebar[data-v-705b9f9e]{direction:rtl}.cart-desktop-page__sidebar[data-v-705b9f9e]{flex-direction:column;gap:16px;display:flex}.cart-empty-card[data-v-705b9f9e],.cart-items-card[data-v-705b9f9e]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.cart-empty-card[data-v-705b9f9e]{text-align:center;flex-direction:column;align-items:center;min-height:360px;padding:48px 32px 40px;display:flex}.cart-empty-card__visual[data-v-705b9f9e]{width:140px;height:100px;margin-bottom:24px;position:relative}.cart-empty-card__circle[data-v-705b9f9e]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px 24px}.cart-empty-card__spark[data-v-705b9f9e]{color:#93c5fd;font-size:1.125rem;font-weight:700;line-height:1;position:absolute}.cart-empty-card__spark--1[data-v-705b9f9e]{top:8px;right:18px}.cart-empty-card__spark--2[data-v-705b9f9e]{font-size:1.5rem;top:28px;left:8px}.cart-empty-card__spark--3[data-v-705b9f9e]{font-size:1.25rem;bottom:16px;right:10px}.cart-empty-card__heading[data-v-705b9f9e]{color:var(--color-text);margin:0 0 10px;font-size:1.0625rem;font-weight:700}.cart-empty-card__text[data-v-705b9f9e]{max-width:380px;color:var(--color-text-muted);margin:0 0 28px;font-size:.8125rem;line-height:1.7}.cart-empty-card__actions[data-v-705b9f9e]{flex-direction:column;align-items:center;gap:12px;display:flex}.cart-btn[data-v-705b9f9e]{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 22px;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.cart-btn--primary[data-v-705b9f9e]{background:var(--color-primary);color:var(--color-surface);border:none}.cart-btn--primary[data-v-705b9f9e]:hover{background:var(--color-primary-dark)}.cart-btn--outline[data-v-705b9f9e]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.cart-btn--outline[data-v-705b9f9e]:hover{background:var(--color-primary-soft)}.cart-items-card__scroll[data-v-705b9f9e]{overflow-x:auto}.cart-items-table[data-v-705b9f9e]{border-collapse:collapse;width:100%;min-width:520px;font-size:.875rem}.cart-items-table th[data-v-705b9f9e]{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:14px 18px;font-size:.8125rem;font-weight:600}.cart-items-table td[data-v-705b9f9e]{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:16px 18px}.cart-items-table tr:last-child td[data-v-705b9f9e]{border-bottom:none}.cart-items-table__name[data-v-705b9f9e]{font-weight:600}.cart-items-table__delete[data-v-705b9f9e]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;display:inline-flex}.cart-items-table__delete[data-v-705b9f9e]:hover{color:var(--color-danger)}.cart-summary-card[data-v-705b9f9e],.cart-guide-card[data-v-705b9f9e]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.cart-summary-card__title[data-v-705b9f9e],.cart-guide-card__title[data-v-705b9f9e]{color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;font-size:.9375rem;font-weight:700;display:flex}.cart-summary-card__title-icon[data-v-705b9f9e],.cart-guide-card__title-icon[data-v-705b9f9e]{color:var(--color-primary);justify-content:center;align-items:center;display:flex}.cart-summary-card__rows[data-v-705b9f9e]{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.cart-summary-card__row[data-v-705b9f9e]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.8125rem;display:flex}.cart-summary-card__row--sub[data-v-705b9f9e]{color:var(--color-text-muted);padding-block:6px;font-size:.8125rem}.cart-summary-card__cap[data-v-705b9f9e]{color:var(--color-text-muted);font-weight:500}.cart-summary-card__row[data-v-705b9f9e]:last-child{border-bottom:none}.cart-summary-card__row-label[data-v-705b9f9e]{color:var(--color-text-muted);align-items:center;gap:8px;display:inline-flex}.cart-summary-card__row strong[data-v-705b9f9e]{font-variant-numeric:tabular-nums;color:var(--color-text)}.cart-summary-card__hint-value[data-v-705b9f9e]{color:var(--color-text-muted);font-size:.75rem}.cart-summary-card__note[data-v-705b9f9e]{color:var(--color-text-muted);margin:10px 0 0;font-size:.75rem;line-height:1.6}.cart-summary-card__cta[data-v-705b9f9e]{border-radius:var(--radius-md);background:var(--color-primary);width:100%;min-height:44px;color:var(--color-surface);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.cart-summary-card__cta[data-v-705b9f9e]:hover:not(:disabled){background:var(--color-primary-dark)}.cart-summary-card__cta[data-v-705b9f9e]:disabled{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.cart-guide-card__text[data-v-705b9f9e]{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.75}.cart-quick-nav[data-v-705b9f9e]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.cart-quick-nav__item[data-v-705b9f9e]{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;text-align:right;direction:rtl;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:grid}.cart-quick-nav__item[data-v-705b9f9e]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cart-quick-nav__icon[data-v-705b9f9e]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.cart-quick-nav__icon--blue[data-v-705b9f9e]{background:var(--color-primary-soft);color:var(--color-primary)}.cart-quick-nav__icon--green[data-v-705b9f9e]{background:var(--color-success-soft);color:var(--color-success)}.cart-quick-nav__body[data-v-705b9f9e]{flex-direction:column;gap:4px;min-width:0;display:flex}.cart-quick-nav__title[data-v-705b9f9e]{color:var(--color-text);font-size:.875rem;font-weight:700}.cart-quick-nav__desc[data-v-705b9f9e]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.4}.cart-quick-nav__chevron[data-v-705b9f9e]{color:var(--color-text-muted);flex-shrink:0}.cart-desktop-page__footer[data-v-705b9f9e]{text-align:center;color:var(--color-text-muted);margin:0;font-size:.75rem}.cart-view[data-v-7f394ea9]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cart-view__error[data-v-7f394ea9]{margin:0 var(--page-padding)}.dialog h3[data-v-7f394ea9]{margin:0 0 12px}@media (width>=768px){.cart-view[data-v-7f394ea9]{flex:1 0 auto;min-height:auto;overflow:visible}.dialog-actions[data-v-7f394ea9]{flex-direction:row;justify-content:flex-end}} diff --git a/dist/assets/CartView-CiGb3xZt.css b/dist/assets/CartView-CiGb3xZt.css new file mode 100644 index 0000000..816e138 --- /dev/null +++ b/dist/assets/CartView-CiGb3xZt.css @@ -0,0 +1 @@ +.cart-mobile-page[data-v-6370ec52]{background:var(--color-bg);width:100%;min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:12px 0 0;display:flex;overflow:hidden}.cart-mobile-page__nav[data-v-6370ec52]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.cart-mobile-page__hint[data-v-6370ec52]{color:var(--color-text-muted);margin:0 0 10px;font-size:.75rem;line-height:1.6}.cart-mobile-page__title[data-v-6370ec52]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-6370ec52]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.nav-btn--ghost[data-v-6370ec52]{visibility:hidden}.nav-btn__flip[data-v-6370ec52]{transform:scaleX(-1)}.cart-mobile-page__body[data-v-6370ec52]{flex-direction:column;flex:1;min-height:0;display:flex}.cart-mobile-page__company[data-v-6370ec52]{color:var(--color-text-muted);margin:0 0 16px;font-size:.875rem}.cart-mobile-page__scroll[data-v-6370ec52]{flex:1;min-height:0;overflow-y:auto}.cart-mobile-table[data-v-6370ec52]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);overflow:hidden}.cart-mobile-table__head[data-v-6370ec52],.cart-mobile-table__row[data-v-6370ec52]{grid-template-columns:1fr 88px 52px;align-items:center;gap:8px;padding:10px 12px;display:grid}.cart-mobile-table__head[data-v-6370ec52]{background:var(--color-summary-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:600}.cart-mobile-table__row[data-v-6370ec52]{border-top:1px solid var(--color-border);color:var(--color-text)}.col-product strong[data-v-6370ec52]{font-size:.875rem;display:block}.col-product span[data-v-6370ec52]{color:var(--color-text-muted);font-size:.75rem;display:block}.col-product__company[data-v-6370ec52]{margin-top:2px;font-weight:600;color:var(--color-primary)!important}.col-meterage[data-v-6370ec52]{text-align:center;font-weight:700}.col-delete[data-v-6370ec52]{justify-content:center;display:flex}.col-delete button[data-v-6370ec52]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none}.cart-mobile-page__footer[data-v-6370ec52]{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0));border-top:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;margin:0}.cart-mobile-summary[data-v-6370ec52]{background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:14px 16px}.cart-mobile-summary__row[data-v-6370ec52]{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.cart-mobile-summary__row--sub[data-v-6370ec52]{color:var(--color-text-muted);font-size:.8125rem}.cart-mobile-summary__cap[data-v-6370ec52]{color:var(--color-text-muted);font-weight:500}.cart-mobile-summary__row[data-v-6370ec52]:not(:last-child){border-bottom:1px solid var(--color-border)}.cart-desktop-page[data-v-ceb44f7f]{width:100%;padding-bottom:24px}.cart-desktop-page__head[data-v-ceb44f7f]{margin-bottom:20px}.cart-desktop-page__title[data-v-ceb44f7f]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.cart-desktop-page__subtitle[data-v-ceb44f7f]{color:var(--color-text-muted);margin:0;font-size:.875rem}.cart-desktop-page__layout[data-v-ceb44f7f]{direction:ltr;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;margin-bottom:24px;display:grid}@media (width>=1100px){.cart-desktop-page__layout[data-v-ceb44f7f]{grid-template-columns:minmax(0,1fr) 300px}}.cart-desktop-page__main[data-v-ceb44f7f],.cart-desktop-page__sidebar[data-v-ceb44f7f]{direction:rtl}.cart-desktop-page__sidebar[data-v-ceb44f7f]{flex-direction:column;gap:16px;display:flex}.cart-empty-card[data-v-ceb44f7f],.cart-items-card[data-v-ceb44f7f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.cart-empty-card[data-v-ceb44f7f]{text-align:center;flex-direction:column;align-items:center;min-height:360px;padding:48px 32px 40px;display:flex}.cart-empty-card__visual[data-v-ceb44f7f]{width:140px;height:100px;margin-bottom:24px;position:relative}.cart-empty-card__circle[data-v-ceb44f7f]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px 24px}.cart-empty-card__spark[data-v-ceb44f7f]{color:#93c5fd;font-size:1.125rem;font-weight:700;line-height:1;position:absolute}.cart-empty-card__spark--1[data-v-ceb44f7f]{top:8px;right:18px}.cart-empty-card__spark--2[data-v-ceb44f7f]{font-size:1.5rem;top:28px;left:8px}.cart-empty-card__spark--3[data-v-ceb44f7f]{font-size:1.25rem;bottom:16px;right:10px}.cart-empty-card__heading[data-v-ceb44f7f]{color:var(--color-text);margin:0 0 10px;font-size:1.0625rem;font-weight:700}.cart-empty-card__text[data-v-ceb44f7f]{max-width:380px;color:var(--color-text-muted);margin:0 0 28px;font-size:.8125rem;line-height:1.7}.cart-empty-card__actions[data-v-ceb44f7f]{flex-direction:column;align-items:center;gap:12px;display:flex}.cart-btn[data-v-ceb44f7f]{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 22px;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.cart-btn--primary[data-v-ceb44f7f]{background:var(--color-primary);color:var(--color-surface);border:none}.cart-btn--primary[data-v-ceb44f7f]:hover{background:var(--color-primary-dark)}.cart-btn--outline[data-v-ceb44f7f]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.cart-btn--outline[data-v-ceb44f7f]:hover{background:var(--color-primary-soft)}.cart-items-card__scroll[data-v-ceb44f7f]{overflow-x:auto}.cart-items-table[data-v-ceb44f7f]{border-collapse:collapse;width:100%;min-width:520px;font-size:.875rem}.cart-items-table th[data-v-ceb44f7f]{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:14px 18px;font-size:.8125rem;font-weight:600}.cart-items-table td[data-v-ceb44f7f]{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:16px 18px}.cart-items-table tr:last-child td[data-v-ceb44f7f]{border-bottom:none}.cart-items-table__name[data-v-ceb44f7f]{font-weight:600}.cart-items-table__delete[data-v-ceb44f7f]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;display:inline-flex}.cart-items-table__delete[data-v-ceb44f7f]:hover{color:var(--color-danger)}.cart-summary-card[data-v-ceb44f7f],.cart-guide-card[data-v-ceb44f7f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.cart-summary-card__title[data-v-ceb44f7f],.cart-guide-card__title[data-v-ceb44f7f]{color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;font-size:.9375rem;font-weight:700;display:flex}.cart-summary-card__title-icon[data-v-ceb44f7f],.cart-guide-card__title-icon[data-v-ceb44f7f]{color:var(--color-primary);justify-content:center;align-items:center;display:flex}.cart-summary-card__rows[data-v-ceb44f7f]{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.cart-summary-card__row[data-v-ceb44f7f]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.8125rem;display:flex}.cart-summary-card__row--sub[data-v-ceb44f7f]{color:var(--color-text-muted);padding-block:6px;font-size:.8125rem}.cart-summary-card__cap[data-v-ceb44f7f]{color:var(--color-text-muted);font-weight:500}.cart-summary-card__row[data-v-ceb44f7f]:last-child{border-bottom:none}.cart-summary-card__row-label[data-v-ceb44f7f]{color:var(--color-text-muted);align-items:center;gap:8px;display:inline-flex}.cart-summary-card__row strong[data-v-ceb44f7f]{font-variant-numeric:tabular-nums;color:var(--color-text)}.cart-summary-card__hint-value[data-v-ceb44f7f]{color:var(--color-text-muted);font-size:.75rem}.cart-summary-card__note[data-v-ceb44f7f]{color:var(--color-text-muted);margin:10px 0 0;font-size:.75rem;line-height:1.6}.cart-summary-card__cta[data-v-ceb44f7f]{border-radius:var(--radius-md);background:var(--color-primary);width:100%;min-height:44px;color:var(--color-surface);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.cart-summary-card__cta[data-v-ceb44f7f]:hover:not(:disabled){background:var(--color-primary-dark)}.cart-summary-card__cta[data-v-ceb44f7f]:disabled{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.cart-guide-card__text[data-v-ceb44f7f]{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.75}.cart-quick-nav[data-v-ceb44f7f]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.cart-quick-nav__item[data-v-ceb44f7f]{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;text-align:right;direction:rtl;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:grid}.cart-quick-nav__item[data-v-ceb44f7f]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cart-quick-nav__icon[data-v-ceb44f7f]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.cart-quick-nav__icon--blue[data-v-ceb44f7f]{background:var(--color-primary-soft);color:var(--color-primary)}.cart-quick-nav__icon--green[data-v-ceb44f7f]{background:var(--color-success-soft);color:var(--color-success)}.cart-quick-nav__body[data-v-ceb44f7f]{flex-direction:column;gap:4px;min-width:0;display:flex}.cart-quick-nav__title[data-v-ceb44f7f]{color:var(--color-text);font-size:.875rem;font-weight:700}.cart-quick-nav__desc[data-v-ceb44f7f]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.4}.cart-quick-nav__chevron[data-v-ceb44f7f]{color:var(--color-text-muted);flex-shrink:0}.cart-desktop-page__footer[data-v-ceb44f7f]{text-align:center;color:var(--color-text-muted);margin:0;font-size:.75rem}.cart-view[data-v-8b0b9b14]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cart-view__error[data-v-8b0b9b14]{margin:0 var(--page-padding)}.dialog h3[data-v-8b0b9b14]{margin:0 0 12px}@media (width>=768px){.cart-view[data-v-8b0b9b14]{flex:1 0 auto;min-height:auto;overflow:visible}.dialog-actions[data-v-8b0b9b14]{flex-direction:row;justify-content:flex-end}} diff --git a/dist/assets/CartView-Cr4iq0ZB.js b/dist/assets/CartView-Cr4iq0ZB.js deleted file mode 100644 index 9410bb6..0000000 --- a/dist/assets/CartView-Cr4iq0ZB.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,Q as c,T as l,Y as u,_ as d,bt as f,ft as p,j as m,k as h,n as g,q as _,t as v,tt as y,wt as b,xt as x}from"./BasicIcon-CjTTsi6o.js";import{a as S,o as C}from"./format-BHJptHdF.js";import{C as w,S as T,T as ee,h as E,n as D,o as O,t as k}from"./index-BQQA5ZX-.js";import{t as te}from"./EmptyState-BpC5eqVE.js";import{t as A}from"./IconChevronBack-B10eZjCQ.js";import{t as j}from"./FormErrorBanner-B8THF9oG.js";import{t as M}from"./CheckoutStepper-BoOJQ-Nf.js";import{t as N}from"./IconBuilding-BTmZv_WO.js";import{t as P}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as F}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as I}from"./IconDiamond-Yhg3u2_R.js";function L(){let e=d(),t=ee(),n=E(),i=p(!1),a=p(!1),o=p(``),c=s(()=>t.activeCart?.items??[]),l=s(()=>c.value.length===0),u=s(()=>t.companyNamesLabel||t.activeCart?.companyName||``),f=s(()=>t.companySummaries);async function m(e){let n=c.value.find(t=>t.id===e);await k({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}async function h(){if(!(!t.activeCart||c.value.length===0||a.value)){a.value=!0,o.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){o.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let r=await n.submitOrder(t.activeCart);await t.hydrate(),e.replace(`/orders/${r.id}/success`)}catch(e){o.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{a.value=!1}}}function g(){if(c.value.length!==0){if(t.isFull){i.value=!0;return}h()}}function _(){i.value=!1,h()}async function v(){await t.createNewCartForSameCompany(),i.value=!1;let n=t.selectedCompanyId||t.activeCart?.companyId;n?e.push(`/companies/${n}/catalogs`):e.push(`/companies`)}return r(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:c,isEmpty:l,companyName:u,companySummaries:f,showFullDialog:i,submitting:a,submitError:o,removeItem:m,proceedToCheckout:g,proceedAnyway:_,createNewInvoice:v}}var R=a({__name:`IconTrash`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(_(),e(v,{icon:`vuesax-linear:trash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),z={class:`cart-mobile-page`},B={class:`cart-mobile-page__nav`},V={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},H={key:0,class:`cart-mobile-page__body`},U={class:`cart-mobile-page__company`},W={class:`cart-mobile-page__scroll`},G={class:`cart-mobile-table`},K={class:`col-product`},q={key:0,class:`col-product__company`},J={class:`col-meterage`},Y={class:`col-delete`},X=[`onClick`],Z={class:`cart-mobile-page__footer`},Q={class:`cart-mobile-summary`},ne={class:`cart-mobile-summary__row`},re={class:`cart-mobile-summary__cap`},ie={key:1,class:`cart-mobile-summary__row`},ae={class:`cart-mobile-summary__row`},oe=g(a({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(r,{emit:a}){let s=a;return(a,c)=>(_(),o(`div`,z,[h(`header`,B,[h(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:c[0]||=e=>s(`back`)},[i(A,{size:20})]),c[3]||=h(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),h(`button`,V,[i(A,{size:18,class:`nav-btn__flip`})])]),r.isEmpty?(_(),e(te,{key:1,variant:`cart`,message:`برای شروع سفارش، یک شرکت انتخاب کنید`},{default:y(()=>[i(D,{onClick:c[2]||=e=>s(`selectCompany`)},{default:y(()=>[...c[10]||=[n(`انتخاب شرکت`,-1)]]),_:1})]),_:1})):(_(),o(`div`,H,[h(`p`,U,b(r.companyName?`شرکت‌ها: ${r.companyName}`:`سبد خرید مشترک`),1),h(`div`,W,[h(`div`,G,[c[4]||=h(`div`,{class:`cart-mobile-table__head`},[h(`span`,null,`محصول`),h(`span`,null,`متراژ (متر)`),h(`span`,null,`حذف`)],-1),(_(!0),o(t,null,u(r.items,e=>(_(),o(`div`,{key:e.id,class:`cart-mobile-table__row`},[h(`div`,K,[h(`strong`,null,b(e.productName),1),h(`span`,null,`کد: `+b(e.productCode),1),e.companyName?(_(),o(`span`,q,b(e.companyName),1)):m(``,!0)]),h(`div`,J,b(f(C)(e.meterage)),1),h(`div`,Y,[h(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[i(R,{size:20})],8,X)])]))),128))])]),h(`div`,Z,[h(`div`,Q,[h(`div`,ne,[c[5]||=h(`span`,null,`جمع متراژ کل`,-1),h(`strong`,null,b(f(S)(r.totalMeterage)),1)]),r.companySummaries?.length?(_(!0),o(t,{key:0},u(r.companySummaries,e=>(_(),o(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[h(`span`,null,b(e.companyName),1),h(`strong`,null,[n(b(f(S)(e.meterage))+` `,1),h(`span`,re,`/ `+b(f(S)(e.maxMeterage)),1)])]))),128)):(_(),o(`div`,ie,[c[6]||=h(`span`,null,`حداکثر مجاز`,-1),h(`strong`,null,b(f(S)(r.maxMeterage)),1)])),h(`div`,ae,[c[7]||=h(`span`,null,`باقی مانده`,-1),h(`strong`,null,b(f(S)(r.remainingCapacity)),1)])]),c[9]||=h(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت، همه اقلام در یک پیش‌سفارش واحد قرار می‌گیرند و مدیریت قیمت‌گذاری می‌کند. `,-1),i(D,{block:``,loading:r.submitting,onClick:c[1]||=e=>s(`checkout`)},{default:y(()=>[...c[8]||=[n(`ثبت پیش‌سفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-239ed7d0`]]),se=a({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(_(),e(v,{icon:`vuesax-linear:lamp-on`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),ce={class:`desktop-page cart-desktop-page`},le={class:`cart-desktop-page__head`},ue={class:`cart-desktop-page__subtitle`},de={class:`cart-desktop-page__layout`},fe={class:`cart-desktop-page__main`},pe={key:0,class:`cart-empty-card`},me={class:`cart-empty-card__visual`,"aria-hidden":`true`},he={class:`cart-empty-card__circle`},ge={class:`cart-empty-card__actions`},_e={key:1,class:`cart-items-card`},ve={class:`cart-items-card__scroll`},ye={class:`cart-items-table`},be={class:`cart-items-table__name`},xe=[`onClick`],Se={class:`cart-desktop-page__sidebar`},Ce={class:`cart-summary-card`},we={class:`cart-summary-card__title`},Te={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Ee={class:`cart-summary-card__rows`},De={class:`cart-summary-card__row`},Oe={class:`cart-summary-card__row-label`},ke={class:`cart-summary-card__row`},Ae={class:`cart-summary-card__row-label`},je={class:`cart-summary-card__row-label`},Me={class:`cart-summary-card__cap`},Ne={class:`cart-summary-card__row cart-summary-card__row--hint`},Pe={class:`cart-summary-card__row-label`},$=[`disabled`],Fe={class:`cart-guide-card`},Ie={class:`cart-guide-card__title`},Le={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Re={class:`cart-guide-card__text`},ze={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},Be=[`onClick`],Ve={class:`cart-quick-nav__body`},He={class:`cart-quick-nav__title`},Ue={class:`cart-quick-nav__desc`},We=g(a({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(r,{emit:a}){let s=a,l=d(),p=[{title:`انتخاب شرکت`,desc:`شروع سفارش از انتخاب شرکت`,icon:N,tone:`blue`,action:()=>s(`selectCompany`)},{title:`سفارش‌گذاری`,desc:`مشاهده کاتالوگ و افزودن کالا`,icon:w,tone:`green`,action:()=>s(`back`)},{title:`سفارش‌های من`,desc:`پیگیری وضعیت سفارش‌ها`,icon:T,tone:`blue`,action:()=>l.push(`/orders`)}];return(a,l)=>(_(),o(`div`,ce,[i(M,{"current-step":1}),h(`header`,le,[l[3]||=h(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),h(`p`,ue,b(r.companyName?`شرکت‌ها: ${r.companyName}`:`سبد خرید مشترک`),1)]),h(`div`,de,[h(`section`,fe,[r.isEmpty?(_(),o(`div`,pe,[h(`div`,me,[l[4]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),l[5]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),h(`span`,he,[i(w,{size:40})]),l[6]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),l[9]||=h(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),l[10]||=h(`p`,{class:`cart-empty-card__text`},` برای ثبت سفارش جدید، ابتدا شرکت موردنظر را انتخاب کنید و سپس کالیته و محصولات را به سبد اضافه کنید. `,-1),h(`div`,ge,[h(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:l[0]||=e=>s(`selectCompany`)},[i(N,{size:18}),l[7]||=n(` انتخاب شرکت `,-1)]),h(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:l[1]||=e=>s(`back`)},[i(O,{size:16}),l[8]||=n(` بازگشت به سفارش‌گذاری `,-1)])])])):(_(),o(`div`,_e,[h(`div`,ve,[h(`table`,ye,[l[11]||=h(`thead`,null,[h(`tr`,null,[h(`th`,{scope:`col`},`محصول`),h(`th`,{scope:`col`},`شرکت`),h(`th`,{scope:`col`},`کد`),h(`th`,{scope:`col`},`متراژ (متر)`),h(`th`,{scope:`col`},`حذف`)])],-1),h(`tbody`,null,[(_(!0),o(t,null,u(r.items,e=>(_(),o(`tr`,{key:e.id},[h(`td`,null,[h(`strong`,be,b(e.productName),1)]),h(`td`,null,b(e.companyName||`—`),1),h(`td`,null,b(e.productCode),1),h(`td`,null,b(f(C)(e.meterage)),1),h(`td`,null,[h(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[i(R,{size:18})],8,xe)])]))),128))])])])]))]),h(`aside`,Se,[h(`div`,Ce,[h(`h2`,we,[h(`span`,Te,[i(P,{size:22})]),l[12]||=n(` خلاصه سفارش `,-1)]),h(`div`,Ee,[h(`div`,De,[h(`span`,Oe,[i(F,{size:16}),l[13]||=n(` تعداد آیتم‌ها `,-1)]),h(`strong`,null,b(f(C)(r.items.length)),1)]),h(`div`,ke,[h(`span`,Ae,[i(I,{size:16}),l[14]||=n(` متراژ کل `,-1)]),h(`strong`,null,b(f(S)(r.totalMeterage)),1)]),(_(!0),o(t,null,u(r.companySummaries??[],e=>(_(),o(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[h(`span`,je,b(e.companyName),1),h(`strong`,null,[n(b(f(S)(e.meterage))+` `,1),h(`span`,Me,`/ `+b(f(S)(e.maxMeterage)),1)])]))),128)),h(`div`,Ne,[h(`span`,Pe,[i(T,{size:16}),l[15]||=n(` مبلغ فاکتور `,-1)]),l[16]||=h(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمت‌گذاری مدیریت `,-1)])]),h(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:r.isEmpty||r.submitting,onClick:l[2]||=e=>s(`checkout`)},[i(O,{size:16}),n(` `+b(r.submitting?`در حال ثبت…`:`ثبت پیش‌سفارش`),1)],8,$),l[17]||=h(`p`,{class:`cart-summary-card__note`},` اقلام همه شرکت‌ها در یک سبد و یک فاکتور ثبت می‌شوند؛ پس از قیمت‌گذاری، یک‌بار تسویه می‌کنید. `,-1)]),h(`div`,Fe,[h(`h3`,Ie,[h(`span`,Le,[i(se,{size:18})]),l[18]||=n(` راهنمای گام بعدی `,-1)]),h(`p`,Re,[l[19]||=n(` پس از انتخاب شرکت و افزودن محصولات، متراژ کل و سقف مجاز فاکتور را بررسی کنید. `,-1),r.isEmpty?m(``,!0):(_(),o(t,{key:0},[n(` سقف مجاز: `+b(f(S)(r.maxMeterage))+` — باقی‌مانده: `+b(f(S)(r.remainingCapacity))+`. `,1)],64)),l[20]||=n(` سپس برای تکمیل سفارش، گزینه «ادامه و انتخاب تسویه» را بزنید. `,-1)])])])]),h(`nav`,ze,[(_(),o(t,null,u(p,t=>h(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[h(`span`,{class:x([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(_(),e(c(t.icon),{size:20}))],2),h(`span`,Ve,[h(`strong`,He,b(t.title),1),h(`span`,Ue,b(t.desc),1)]),i(O,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,Be)),64))]),l[21]||=h(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارش‌گذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-705b9f9e`]]),Ge={class:`cart-view`},Ke={class:`dialog card`},qe={class:`dialog-actions`},Je=g(a({__name:`CartView`,setup(t){let r=d(),{cartStore:a,items:s,isEmpty:c,companyName:u,companySummaries:p,showFullDialog:g,submitting:v,submitError:b,removeItem:x,proceedToCheckout:S,proceedAnyway:C,createNewInvoice:w}=L();function T(){let e=a.selectedCompanyId||a.activeCart?.companyId;if(e){r.push(`/companies/${e}/catalogs`);return}r.push(`/companies`)}return(t,d)=>(_(),o(`div`,Ge,[f(b)?(_(),e(j,{key:0,message:f(b),class:`cart-view__error`},null,8,[`message`])):m(``,!0),i(oe,{class:`mobile-only`,items:f(s),"company-name":f(u),"company-summaries":f(p),"total-meterage":f(a).totalMeterage,"max-meterage":f(a).maxMeterage,"remaining-capacity":f(a).remainingCapacity,"is-empty":f(c),submitting:f(v),onBack:d[0]||=e=>f(r).push(`/`),onRemove:f(x),onCheckout:f(S),onSelectCompany:d[1]||=e=>f(r).push(`/companies`)},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),i(We,{class:`desktop-only`,items:f(s),"company-name":f(u),"company-summaries":f(p),"total-meterage":f(a).totalMeterage,"max-meterage":f(a).maxMeterage,"remaining-capacity":f(a).remainingCapacity,"is-empty":f(c),submitting:f(v),onRemove:f(x),onCheckout:f(S),onSelectCompany:d[2]||=e=>f(r).push(`/companies`),onBack:T},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),f(g)?(_(),o(`div`,{key:1,class:`dialog-overlay`,onClick:d[3]||=l(e=>g.value=!1,[`self`])},[h(`div`,Ke,[d[6]||=h(`h3`,null,`سقف متراژ تکمیل شد`,-1),d[7]||=h(`p`,{class:`text-sm`},` سقف متراژ حداقل یک شرکت در سبد پر شده است. می‌توانید همین پیش‌سفارش‌ها را ثبت کنید یا سبد را خالی کرده و فاکتور جدید بسازید. `,-1),h(`div`,qe,[i(D,{variant:`outline`,loading:f(v),onClick:f(C)},{default:y(()=>[...d[4]||=[n(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),i(D,{onClick:f(w)},{default:y(()=>[...d[5]||=[n(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-7f394ea9`]]);export{Je as default}; \ No newline at end of file diff --git a/dist/assets/CashSettlementView-UYDfJFC3.js b/dist/assets/CashSettlementView-CUX9QmvM.js similarity index 96% rename from dist/assets/CashSettlementView-UYDfJFC3.js rename to dist/assets/CashSettlementView-CUX9QmvM.js index abe7526..a467e23 100644 --- a/dist/assets/CashSettlementView-UYDfJFC3.js +++ b/dist/assets/CashSettlementView-CUX9QmvM.js @@ -1 +1 @@ -import{$ as e,A as t,E as n,F as r,I as i,L as a,M as o,O as s,Y as c,_ as ee,bt as l,ft as te,k as u,n as d,q as f,t as p,tt as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{i as ne,n as re}from"./format-BHJptHdF.js";import{t as ie}from"./catalog-Dd554brK.js";import{h as ae,n as g}from"./index-BQQA5ZX-.js";import{t as oe}from"./PageHeader-WFa4BbgN.js";import{t as se}from"./useRequirePricedOrder-bwpoZWB1.js";var _=a({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(f(),t(p,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),ce={class:`page cash-mobile-page mobile-only`},le={class:`cash-page__scroll page__scroll`},ue={class:`cash-page__success cash-page__success--done`},v={class:`cash-page__success-title`},y={class:`cash-page__success-subtitle`},b={class:`accounts-panel`},x={class:`accounts-panel__title`},S={class:`bank-card__head`},C={class:`bank-card__name`},w={class:`bank-card__icon`,"aria-hidden":`true`},T={class:`bank-card__field`},E={class:`bank-card__value`,dir:`ltr`},D={class:`bank-card__field`},O={class:`bank-card__value`,dir:`ltr`},k={class:`cash-page__footer`},A={class:`desktop-checkout-shell cash-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__subtitle`},N={class:`cash-page__success cash-page__success--done`},de={class:`cash-page__success-title`},P={class:`accounts-panel`},F={class:`accounts-panel__title`},I={class:`desktop-grid-2`},L={class:`bank-card__head`},R={class:`bank-card__name`},z={class:`bank-card__icon`,"aria-hidden":`true`},B={class:`bank-card__field`},V={class:`bank-card__value`,dir:`ltr`},H={class:`bank-card__field`},fe={class:`bank-card__value`,dir:`ltr`},pe={class:`cash-desktop-page__actions`},U=d(a({__name:`CashSettlementView`,setup(t){let a=ee(),d=ae(),p=ie(),U=te([]),{orderId:W,order:G}=se(),K=s(()=>G.value?.companyName??``);e(W,async e=>{e&&!d.getOrderById(e)&&await d.fetchOrder(e)},{immediate:!0}),e(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}p.companies.length||await p.loadCompanies(),U.value=await d.getBankAccountsForOrder(G.value)},{immediate:!0});let q=s(()=>G.value?.finalAmount?re(G.value.finalAmount):`—`),J=s(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حساب‌های زیر واریز و رسید را ثبت کنید.`}),Y=s(()=>{let e=K.value.replace(/^شرکت\s+/u,``);return e?`شماره حساب‌های واریز — ${e}`:`شماره حساب‌های واریز`});function X(e){return e.replace(/\D/g,``).replace(/(\d{4})(?=\d)/g,`$1 `).trim()}function Z(e){return e.replace(/\s/g,``).toUpperCase().replace(/(.{4})/g,`$1 `).trim()}function Q(){a.replace(`/orders/${W.value}?track=1`)}function $(){a.replace(`/orders/${W.value}?track=1&receipt=1`)}return(e,t)=>(f(),o(n,null,[u(`div`,ce,[i(oe,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:t[0]||=e=>l(a).push(`/orders/${l(W)}`)}),u(`div`,le,[u(`div`,ue,[i(_,{size:56}),u(`p`,v,`مبلغ قابل پرداخت `+h(q.value),1),u(`p`,y,h(J.value),1)]),u(`section`,b,[u(`h2`,x,h(Y.value),1),(f(!0),o(n,null,c(U.value,e=>(f(),o(`article`,{key:e.id,class:`bank-card`},[u(`div`,S,[u(`span`,C,h(e.bankName),1),u(`span`,w,h(e.bankName.charAt(0)),1)]),u(`div`,T,[t[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,E,h(X(e.cardNumber)),1)]),u(`div`,D,[t[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,O,h(Z(e.iban)),1)])]))),128))])]),u(`div`,k,[i(g,{variant:`outline`,block:``,onClick:Q},{default:m(()=>[...t[3]||=[r(`مشاهده سفارش`,-1)]]),_:1}),i(g,{block:``,class:`cash-page__submit`,onClick:$},{default:m(()=>[...t[4]||=[r(` ثبت رسید پرداخت `,-1)]]),_:1})])]),u(`div`,A,[u(`header`,j,[t[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,M,h(J.value),1)]),u(`div`,N,[i(_,{size:56}),u(`p`,de,`مبلغ قابل پرداخت `+h(q.value),1)]),u(`section`,P,[u(`h2`,F,h(Y.value),1),u(`div`,I,[(f(!0),o(n,null,c(U.value,e=>(f(),o(`article`,{key:e.id,class:`bank-card`},[u(`div`,L,[u(`span`,R,h(e.bankName),1),u(`span`,z,h(e.bankName.charAt(0)),1)]),u(`div`,B,[t[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,V,h(X(e.cardNumber)),1)]),u(`div`,H,[t[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,fe,h(Z(e.iban)),1)])]))),128))])]),u(`div`,pe,[i(g,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:m(()=>[...t[8]||=[r(` مشاهده سفارش `,-1)]]),_:1}),i(g,{class:`desktop-btn-compact`,onClick:$},{default:m(()=>[...t[9]||=[r(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-c299caf6`]]);export{U as default}; \ No newline at end of file +import{$ as e,A as t,E as n,F as r,I as i,L as a,M as o,O as s,Y as c,_ as ee,bt as l,ft as te,k as u,n as d,q as f,t as p,tt as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{i as ne,n as re}from"./format-BHJptHdF.js";import{t as ie}from"./catalog-Dd554brK.js";import{h as ae,n as g}from"./index-D3Z8WOeX.js";import{t as oe}from"./PageHeader-B47bvmJV.js";import{t as se}from"./useRequirePricedOrder-a2bgwmwB.js";var _=a({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(f(),t(p,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),ce={class:`page cash-mobile-page mobile-only`},le={class:`cash-page__scroll page__scroll`},ue={class:`cash-page__success cash-page__success--done`},v={class:`cash-page__success-title`},y={class:`cash-page__success-subtitle`},b={class:`accounts-panel`},x={class:`accounts-panel__title`},S={class:`bank-card__head`},C={class:`bank-card__name`},w={class:`bank-card__icon`,"aria-hidden":`true`},T={class:`bank-card__field`},E={class:`bank-card__value`,dir:`ltr`},D={class:`bank-card__field`},O={class:`bank-card__value`,dir:`ltr`},k={class:`cash-page__footer`},A={class:`desktop-checkout-shell cash-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__subtitle`},N={class:`cash-page__success cash-page__success--done`},de={class:`cash-page__success-title`},P={class:`accounts-panel`},F={class:`accounts-panel__title`},I={class:`desktop-grid-2`},L={class:`bank-card__head`},R={class:`bank-card__name`},z={class:`bank-card__icon`,"aria-hidden":`true`},B={class:`bank-card__field`},V={class:`bank-card__value`,dir:`ltr`},H={class:`bank-card__field`},fe={class:`bank-card__value`,dir:`ltr`},pe={class:`cash-desktop-page__actions`},U=d(a({__name:`CashSettlementView`,setup(t){let a=ee(),d=ae(),p=ie(),U=te([]),{orderId:W,order:G}=se(),K=s(()=>G.value?.companyName??``);e(W,async e=>{e&&!d.getOrderById(e)&&await d.fetchOrder(e)},{immediate:!0}),e(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}p.companies.length||await p.loadCompanies(),U.value=await d.getBankAccountsForOrder(G.value)},{immediate:!0});let q=s(()=>G.value?.finalAmount?re(G.value.finalAmount):`—`),J=s(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حساب‌های زیر واریز و رسید را ثبت کنید.`}),Y=s(()=>{let e=K.value.replace(/^شرکت\s+/u,``);return e?`شماره حساب‌های واریز — ${e}`:`شماره حساب‌های واریز`});function X(e){return e.replace(/\D/g,``).replace(/(\d{4})(?=\d)/g,`$1 `).trim()}function Z(e){return e.replace(/\s/g,``).toUpperCase().replace(/(.{4})/g,`$1 `).trim()}function Q(){a.replace(`/orders/${W.value}?track=1`)}function $(){a.replace(`/orders/${W.value}?track=1&receipt=1`)}return(e,t)=>(f(),o(n,null,[u(`div`,ce,[i(oe,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:t[0]||=e=>l(a).push(`/orders/${l(W)}`)}),u(`div`,le,[u(`div`,ue,[i(_,{size:56}),u(`p`,v,`مبلغ قابل پرداخت `+h(q.value),1),u(`p`,y,h(J.value),1)]),u(`section`,b,[u(`h2`,x,h(Y.value),1),(f(!0),o(n,null,c(U.value,e=>(f(),o(`article`,{key:e.id,class:`bank-card`},[u(`div`,S,[u(`span`,C,h(e.bankName),1),u(`span`,w,h(e.bankName.charAt(0)),1)]),u(`div`,T,[t[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,E,h(X(e.cardNumber)),1)]),u(`div`,D,[t[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,O,h(Z(e.iban)),1)])]))),128))])]),u(`div`,k,[i(g,{variant:`outline`,block:``,onClick:Q},{default:m(()=>[...t[3]||=[r(`مشاهده سفارش`,-1)]]),_:1}),i(g,{block:``,class:`cash-page__submit`,onClick:$},{default:m(()=>[...t[4]||=[r(` ثبت رسید پرداخت `,-1)]]),_:1})])]),u(`div`,A,[u(`header`,j,[t[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,M,h(J.value),1)]),u(`div`,N,[i(_,{size:56}),u(`p`,de,`مبلغ قابل پرداخت `+h(q.value),1)]),u(`section`,P,[u(`h2`,F,h(Y.value),1),u(`div`,I,[(f(!0),o(n,null,c(U.value,e=>(f(),o(`article`,{key:e.id,class:`bank-card`},[u(`div`,L,[u(`span`,R,h(e.bankName),1),u(`span`,z,h(e.bankName.charAt(0)),1)]),u(`div`,B,[t[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,V,h(X(e.cardNumber)),1)]),u(`div`,H,[t[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,fe,h(Z(e.iban)),1)])]))),128))])]),u(`div`,pe,[i(g,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:m(()=>[...t[8]||=[r(` مشاهده سفارش `,-1)]]),_:1}),i(g,{class:`desktop-btn-compact`,onClick:$},{default:m(()=>[...t[9]||=[r(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-c299caf6`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CatalogListView-Bx4Ch_pg.css b/dist/assets/CatalogListView-Bx4Ch_pg.css deleted file mode 100644 index d0cd4b9..0000000 --- a/dist/assets/CatalogListView-Bx4Ch_pg.css +++ /dev/null @@ -1 +0,0 @@ -.catalog-mobile-page[data-v-6f91757e]{background:var(--color-bg);color:var(--color-text);padding:12px 0 0}.catalog-page__search[data-v-6f91757e]{margin-bottom:16px}.catalog-mobile-scroll[data-v-6f91757e]{flex-direction:column;flex:1;min-height:0;display:flex}.catalog-mobile-list[data-v-6f91757e]{flex-direction:column;gap:12px;display:flex}.catalog-card[data-v-6f91757e]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);width:100%;box-shadow:var(--shadow-sm);color:var(--color-text);text-align:right;cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.catalog-card--desktop[data-v-6f91757e]{flex-direction:column;align-items:flex-start;min-height:140px;padding:20px}.catalog-card[data-v-6f91757e]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.catalog-card__icon[data-v-6f91757e]{background:var(--color-primary-light);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.catalog-card__info[data-v-6f91757e]{flex:1}.catalog-card__info h3[data-v-6f91757e]{color:var(--color-text);margin:0 0 4px;font-size:.9375rem}.catalog-card__info p[data-v-6f91757e]{color:var(--color-text-muted);margin:0;font-size:.8125rem}.catalog-card__count[data-v-6f91757e]{color:var(--color-primary);font-size:.8125rem;font-weight:600} diff --git a/dist/assets/CatalogListView-CJBMOWwi.css b/dist/assets/CatalogListView-CJBMOWwi.css new file mode 100644 index 0000000..76e360f --- /dev/null +++ b/dist/assets/CatalogListView-CJBMOWwi.css @@ -0,0 +1 @@ +.catalog-mobile-page[data-v-fa6b4c3f]{background:var(--color-bg);color:var(--color-text);padding:12px 0 0}.catalog-page__search[data-v-fa6b4c3f]{margin-bottom:16px}.catalog-mobile-scroll[data-v-fa6b4c3f]{flex-direction:column;flex:1;min-height:0;display:flex}.catalog-mobile-list[data-v-fa6b4c3f]{flex-direction:column;gap:12px;display:flex}.catalog-card[data-v-fa6b4c3f]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);width:100%;box-shadow:var(--shadow-sm);color:var(--color-text);text-align:right;cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.catalog-card--desktop[data-v-fa6b4c3f]{flex-direction:column;align-items:flex-start;min-height:140px;padding:20px}.catalog-card[data-v-fa6b4c3f]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.catalog-card__icon[data-v-fa6b4c3f]{background:var(--color-primary-light);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.catalog-card__info[data-v-fa6b4c3f]{flex:1}.catalog-card__info h3[data-v-fa6b4c3f]{color:var(--color-text);margin:0 0 4px;font-size:.9375rem}.catalog-card__info p[data-v-fa6b4c3f]{color:var(--color-text-muted);margin:0;font-size:.8125rem}.catalog-card__count[data-v-fa6b4c3f]{color:var(--color-primary);font-size:.8125rem;font-weight:600} diff --git a/dist/assets/CatalogListView-DF3_XOfL.js b/dist/assets/CatalogListView-DF3_XOfL.js new file mode 100644 index 0000000..64266d4 --- /dev/null +++ b/dist/assets/CatalogListView-DF3_XOfL.js @@ -0,0 +1 @@ +import{$ as e,A as t,E as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,ft as d,g as f,k as p,n as m,q as h,wt as g}from"./BasicIcon-CjTTsi6o.js";import{t as _}from"./catalog-Dd554brK.js";import{b as v}from"./index-D3Z8WOeX.js";import{t as y}from"./EmptyState-BpC5eqVE.js";import{t as b}from"./PageHeader-B47bvmJV.js";import{t as x}from"./SearchField-Ao52FWA8.js";import{t as S}from"./PageSkeleton-CyATkHE1.js";var C={class:`page catalog-mobile-page mobile-only`},w={class:`page__scroll page__scroll--with-nav catalog-mobile-scroll`},T={key:1,class:`catalog-mobile-list`},E=[`onClick`],D={class:`catalog-card__icon`},O={class:`catalog-card__info`},k={class:`catalog-card__count`},A={class:`desktop-page catalog-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__title`},N={key:0,class:`desktop-grid-3`},P=[`onClick`],F={class:`catalog-card__icon`},I={class:`catalog-card__info`},L={class:`catalog-card__count`},R=m(a({__name:`CatalogListView`,setup(a){let m=f(),R=l(),z=_(),B=d(!0),V=s(()=>m.params.companyId),H=s(()=>z.getCompany(V.value)),U=d(``),W=s(()=>z.fetchCatalogs(V.value,U.value));async function G(){B.value=!0,z.getCompany(V.value)||await z.loadCompanies(),await z.loadCatalogs(V.value),B.value=!1}r(G),e(V,G);function K(e){R.push({path:`/products`,query:{catalogId:e,companyId:V.value}})}function q(e){let t=z.getCatalog(e);return t?.productCount==null?z.fetchProducts(e).length:t.productCount}return(e,r)=>(h(),o(n,null,[p(`div`,C,[i(b,{title:H.value?.name??`کالیته‌ها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:r[0]||=e=>u(R).push(`/`)},null,8,[`title`]),i(x,{modelValue:U.value,"onUpdate:modelValue":r[1]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),p(`div`,w,[B.value?(h(),t(S,{key:0,variant:`cards`,rows:5})):W.value.length>0?(h(),o(`div`,T,[(h(!0),o(n,null,c(W.value,e=>(h(),o(`button`,{key:e.id,type:`button`,class:`catalog-card`,onClick:t=>K(e.id)},[p(`span`,D,[i(v,{size:22})]),p(`div`,O,[p(`h3`,null,`کالیته کد `+g(e.code),1),p(`p`,null,g(e.name),1)]),p(`span`,k,g(q(e.id))+` محصول`,1)],8,E))),128))])):(h(),t(y,{key:2,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])]),p(`div`,A,[p(`header`,j,[p(`h1`,M,g(H.value?.name??`کالیته‌ها`),1),r[3]||=p(`p`,{class:`desktop-page__subtitle`},`کالیته مورد نظر را انتخاب کنید`,-1)]),i(x,{modelValue:U.value,"onUpdate:modelValue":r[2]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),W.value.length>0?(h(),o(`div`,N,[(h(!0),o(n,null,c(W.value,e=>(h(),o(`button`,{key:e.id,type:`button`,class:`catalog-card catalog-card--desktop`,onClick:t=>K(e.id)},[p(`span`,F,[i(v,{size:24})]),p(`div`,I,[p(`h3`,null,`کالیته کد `+g(e.code),1),p(`p`,null,g(e.name),1)]),p(`span`,L,g(q(e.id))+` محصول`,1)],8,P))),128))])):(h(),t(y,{key:1,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])],64))}}),[[`__scopeId`,`data-v-fa6b4c3f`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/CatalogListView-uZQRG5yv.js b/dist/assets/CatalogListView-uZQRG5yv.js deleted file mode 100644 index 1e72f44..0000000 --- a/dist/assets/CatalogListView-uZQRG5yv.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,E as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,ft as d,g as f,k as p,n as m,q as h,wt as g}from"./BasicIcon-CjTTsi6o.js";import{t as _}from"./catalog-Dd554brK.js";import{b as v}from"./index-BQQA5ZX-.js";import{t as y}from"./EmptyState-BpC5eqVE.js";import{t as b}from"./PageHeader-WFa4BbgN.js";import{t as x}from"./SearchField-Ao52FWA8.js";import{t as S}from"./PageSkeleton-CyATkHE1.js";var C={class:`page catalog-mobile-page mobile-only`},w={class:`page__scroll page__scroll--with-nav catalog-mobile-scroll`},T={key:1,class:`catalog-mobile-list`},E=[`onClick`],D={class:`catalog-card__icon`},O={class:`catalog-card__info`},k={class:`catalog-card__count`},A={class:`desktop-page catalog-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__title`},N={key:0,class:`desktop-grid-3`},P=[`onClick`],F={class:`catalog-card__icon`},I={class:`catalog-card__info`},L={class:`catalog-card__count`},R=m(a({__name:`CatalogListView`,setup(a){let m=f(),R=l(),z=_(),B=d(!0),V=s(()=>m.params.companyId),H=s(()=>z.getCompany(V.value)),U=d(``),W=s(()=>z.fetchCatalogs(V.value,U.value));async function G(){B.value=!0,z.getCompany(V.value)||await z.loadCompanies(),await z.loadCatalogs(V.value),B.value=!1}r(G),e(V,G);function K(e){R.push(`/companies/${V.value}/catalogs/${e}/products`)}function q(e){let t=z.getCatalog(e);return t?.productCount==null?z.fetchProducts(e).length:t.productCount}return(e,r)=>(h(),o(n,null,[p(`div`,C,[i(b,{title:H.value?.name??`کالیته‌ها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:r[0]||=e=>u(R).push(`/`)},null,8,[`title`]),i(x,{modelValue:U.value,"onUpdate:modelValue":r[1]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),p(`div`,w,[B.value?(h(),t(S,{key:0,variant:`cards`,rows:5})):W.value.length>0?(h(),o(`div`,T,[(h(!0),o(n,null,c(W.value,e=>(h(),o(`button`,{key:e.id,type:`button`,class:`catalog-card`,onClick:t=>K(e.id)},[p(`span`,D,[i(v,{size:22})]),p(`div`,O,[p(`h3`,null,`کالیته کد `+g(e.code),1),p(`p`,null,g(e.name),1)]),p(`span`,k,g(q(e.id))+` محصول`,1)],8,E))),128))])):(h(),t(y,{key:2,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])]),p(`div`,A,[p(`header`,j,[p(`h1`,M,g(H.value?.name??`کالیته‌ها`),1),r[3]||=p(`p`,{class:`desktop-page__subtitle`},`کالیته مورد نظر را انتخاب کنید`,-1)]),i(x,{modelValue:U.value,"onUpdate:modelValue":r[2]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),W.value.length>0?(h(),o(`div`,N,[(h(!0),o(n,null,c(W.value,e=>(h(),o(`button`,{key:e.id,type:`button`,class:`catalog-card catalog-card--desktop`,onClick:t=>K(e.id)},[p(`span`,F,[i(v,{size:24})]),p(`div`,I,[p(`h3`,null,`کالیته کد `+g(e.code),1),p(`p`,null,g(e.name),1)]),p(`span`,L,g(q(e.id))+` محصول`,1)],8,P))),128))])):(h(),t(y,{key:1,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])],64))}}),[[`__scopeId`,`data-v-6f91757e`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestView-18LsN9_v.js b/dist/assets/CatalogRequestView-18LsN9_v.js new file mode 100644 index 0000000..42ed04e --- /dev/null +++ b/dist/assets/CatalogRequestView-18LsN9_v.js @@ -0,0 +1 @@ +import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,S as c,Y as l,_ as u,bt as d,ft as f,g as p,k as m,n as h,nt as g,q as _,wt as v,xt as y}from"./BasicIcon-CjTTsi6o.js";import{o as b}from"./format-BHJptHdF.js";import{t as x}from"./PageHeader-B47bvmJV.js";import{t as S}from"./PageSkeleton-CyATkHE1.js";import{t as C}from"./crm-l0KpZ2AN.js";import{t as w}from"./catalogRequests-CmW4jeEs.js";var T={class:`page`},E={class:`page__scroll page__scroll--with-nav body`},D={class:`hint`},O={key:1,class:`error`},k=[`value`,`onInput`],A={class:`note`},j={class:`summary`},M=[`disabled`],N=h(a({__name:`CatalogRequestView`,setup(a){let h=p(),N=u(),P=C(),F=w(),I=f(!0),L=f(!1),R=f(null),z=f(``),B=f([]),V=f({}),H=s(()=>String(h.query.productId??``)),U=s(()=>B.value.filter(e=>(V.value[e.id]??0)>0).map(e=>({productId:e.id,productName:e.name,productCode:e.code,quantity:V.value[e.id]??0})));r(async()=>{I.value=!0,R.value=null;try{let e=await P.loadBrowseProducts(),t=H.value;B.value=t?[...e].sort((e,n)=>Number(n.id===t)-Number(e.id===t)):e,t&&(V.value={...V.value,[t]:1})}catch(e){R.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`}finally{I.value=!1}});function W(e,t){V.value={...V.value,[e]:Math.max(0,Math.floor(t)||0)}}async function G(){L.value=!0,R.value=null;try{let e=await F.create({items:U.value,note:z.value});if(!e.success){R.value=e.message;return}N.push(`/catalog-requests`)}finally{L.value=!1}}return(r,a)=>(_(),o(`div`,T,[i(x,{title:`درخواست کالیته`,"show-back":``,centered:``,onBack:a[0]||=e=>d(N).back()}),m(`div`,E,[m(`p`,D,v(H.value?`این محصول برای درخواست کالیته انتخاب شده است. در صورت نیاز اقلام دیگر را هم اضافه کنید.`:`محصولات و تعداد اقلام موردنظر را مشخص کنید.`),1),I.value?(_(),e(S,{key:0,variant:`form`})):R.value?(_(),o(`p`,O,v(R.value),1)):(_(),o(t,{key:2},[(_(!0),o(t,null,l(B.value,e=>(_(),o(`article`,{key:e.id,class:y([`row`,{"row--selected":H.value===e.id}])},[m(`div`,null,[m(`strong`,null,v(e.name),1),m(`span`,null,`کد `+v(e.code),1)]),m(`input`,{class:`qty`,type:`number`,min:`0`,value:V.value[e.id]??0,onInput:t=>W(e.id,Number(t.target.value))},null,40,k)],2))),128)),m(`label`,A,[a[3]||=n(` توضیحات `,-1),g(m(`textarea`,{"onUpdate:modelValue":a[1]||=e=>z.value=e,rows:`3`,placeholder:`آدرس یا توضیحات اختیاری`},null,512),[[c,z.value]])]),m(`p`,j,`اقلام انتخاب‌شده: `+v(d(b)(U.value.length)),1),m(`button`,{type:`button`,class:`submit`,disabled:L.value,onClick:G},v(L.value?`در حال ثبت...`:`ثبت درخواست کالیته`),9,M),m(`button`,{type:`button`,class:`linkish`,onClick:a[2]||=e=>d(N).push(`/catalog-requests`)},` وضعیت درخواست‌های قبلی `)],64))])]))}}),[[`__scopeId`,`data-v-74250a20`]]);export{N as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestView-Ba1kJ7pw.css b/dist/assets/CatalogRequestView-Ba1kJ7pw.css new file mode 100644 index 0000000..9657c7e --- /dev/null +++ b/dist/assets/CatalogRequestView-Ba1kJ7pw.css @@ -0,0 +1 @@ +.body[data-v-74250a20]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.hint[data-v-74250a20]{color:var(--color-text-muted);margin:0;font-size:.85rem}.error[data-v-74250a20]{color:#b42318}.row[data-v-74250a20]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.row--selected[data-v-74250a20]{outline:2px solid var(--color-primary)}.row strong[data-v-74250a20]{font-size:.9rem;display:block}.row span[data-v-74250a20]{color:var(--color-text-muted);font-size:.78rem}.qty[data-v-74250a20]{border:1px solid var(--color-border);text-align:center;width:64px;height:40px;font:inherit;background:var(--color-bg);color:var(--color-text);border-radius:10px}.note[data-v-74250a20]{color:var(--color-text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.note textarea[data-v-74250a20]{border:1px solid var(--color-border);font:inherit;resize:vertical;background:var(--color-surface);color:var(--color-text);border-radius:12px;padding:10px 12px}.summary[data-v-74250a20]{color:var(--color-text-muted);margin:4px 0 0;font-size:.85rem}.submit[data-v-74250a20]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;min-height:48px;font-weight:700}.submit[data-v-74250a20]:disabled{opacity:.7}.linkish[data-v-74250a20]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:8px;font-weight:700} diff --git a/dist/assets/CatalogRequestView-C2TJS6QO.css b/dist/assets/CatalogRequestView-C2TJS6QO.css deleted file mode 100644 index 8c08dba..0000000 --- a/dist/assets/CatalogRequestView-C2TJS6QO.css +++ /dev/null @@ -1 +0,0 @@ -.body[data-v-bad320b3]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.hint[data-v-bad320b3]{color:var(--color-text-muted);margin:0;font-size:.85rem}.error[data-v-bad320b3]{color:#b42318}.row[data-v-bad320b3]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.row strong[data-v-bad320b3]{font-size:.9rem;display:block}.row span[data-v-bad320b3]{color:var(--color-text-muted);font-size:.78rem}.qty[data-v-bad320b3]{border:1px solid var(--color-border);text-align:center;width:64px;height:40px;font:inherit;background:var(--color-bg);color:var(--color-text);border-radius:10px}.note[data-v-bad320b3]{color:var(--color-text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.note textarea[data-v-bad320b3]{border:1px solid var(--color-border);font:inherit;resize:vertical;background:var(--color-surface);color:var(--color-text);border-radius:12px;padding:10px 12px}.summary[data-v-bad320b3]{color:var(--color-text-muted);margin:4px 0 0;font-size:.85rem}.submit[data-v-bad320b3]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;min-height:48px;font-weight:700}.submit[data-v-bad320b3]:disabled{opacity:.7}.linkish[data-v-bad320b3]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:8px;font-weight:700} diff --git a/dist/assets/CatalogRequestView-C8c_kKUC.js b/dist/assets/CatalogRequestView-C8c_kKUC.js deleted file mode 100644 index 5da691d..0000000 --- a/dist/assets/CatalogRequestView-C8c_kKUC.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,S as c,Y as l,_ as u,bt as d,ft as f,g as p,k as m,n as h,nt as g,q as _,wt as v}from"./BasicIcon-CjTTsi6o.js";import{o as y}from"./format-BHJptHdF.js";import{t as b}from"./PageHeader-WFa4BbgN.js";import{t as x}from"./PageSkeleton-CyATkHE1.js";import{t as S}from"./crm-DPw1h61_.js";import{t as C}from"./catalogRequests-CmW4jeEs.js";var w={class:`page`},T={class:`page__scroll page__scroll--with-nav body`},E={key:1,class:`error`},D=[`value`,`onInput`],O={class:`note`},k={class:`summary`},A=[`disabled`],j=h(a({__name:`CatalogRequestView`,setup(a){let h=p(),j=u(),M=S(),N=C(),P=f(!0),F=f(!1),I=f(null),L=f(``),R=f([]),z=f({}),B=s(()=>String(h.query.productId??``)),V=s(()=>R.value.filter(e=>(z.value[e.id]??0)>0).map(e=>({productId:e.id,productName:e.name,productCode:e.code,quantity:z.value[e.id]??0})));r(async()=>{P.value=!0,I.value=null;try{let e=await M.loadBrowseProducts();R.value=e,B.value&&(z.value={...z.value,[B.value]:1})}catch(e){I.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`}finally{P.value=!1}});function H(e,t){z.value={...z.value,[e]:Math.max(0,Math.floor(t)||0)}}async function U(){F.value=!0,I.value=null;try{let e=await N.create({items:V.value,note:L.value});if(!e.success){I.value=e.message;return}j.push(`/catalog-requests`)}finally{F.value=!1}}return(r,a)=>(_(),o(`div`,w,[i(b,{title:`درخواست کالیته`,"show-back":``,centered:``,onBack:a[0]||=e=>d(j).back()}),m(`div`,T,[a[4]||=m(`p`,{class:`hint`},`محصولات و تعداد اقلام موردنظر را مشخص کنید.`,-1),P.value?(_(),e(x,{key:0,variant:`form`})):I.value?(_(),o(`p`,E,v(I.value),1)):(_(),o(t,{key:2},[(_(!0),o(t,null,l(R.value,e=>(_(),o(`article`,{key:e.id,class:`row`},[m(`div`,null,[m(`strong`,null,v(e.name),1),m(`span`,null,`کد `+v(e.code),1)]),m(`input`,{class:`qty`,type:`number`,min:`0`,value:z.value[e.id]??0,onInput:t=>H(e.id,Number(t.target.value))},null,40,D)]))),128)),m(`label`,O,[a[3]||=n(` توضیحات `,-1),g(m(`textarea`,{"onUpdate:modelValue":a[1]||=e=>L.value=e,rows:`3`,placeholder:`آدرس یا توضیحات اختیاری`},null,512),[[c,L.value]])]),m(`p`,k,`اقلام انتخاب‌شده: `+v(d(y)(V.value.length)),1),m(`button`,{type:`button`,class:`submit`,disabled:F.value,onClick:U},v(F.value?`در حال ثبت...`:`ثبت درخواست کالیته`),9,A),m(`button`,{type:`button`,class:`linkish`,onClick:a[2]||=e=>d(j).push(`/catalog-requests`)},` وضعیت درخواست‌های قبلی `)],64))])]))}}),[[`__scopeId`,`data-v-bad320b3`]]);export{j as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-C7r0RQIw.js b/dist/assets/CatalogRequestsView-BHPBd5vT.js similarity index 95% rename from dist/assets/CatalogRequestsView-C7r0RQIw.js rename to dist/assets/CatalogRequestsView-BHPBd5vT.js index 464f4cd..37e75c3 100644 --- a/dist/assets/CatalogRequestsView-C7r0RQIw.js +++ b/dist/assets/CatalogRequestsView-BHPBd5vT.js @@ -1 +1 @@ -import{E as e,G as t,I as n,L as r,M as i,Y as a,_ as o,bt as s,j as c,k as l,n as u,q as d,wt as f}from"./BasicIcon-CjTTsi6o.js";import{o as p}from"./format-BHJptHdF.js";import{t as m}from"./PageHeader-WFa4BbgN.js";import{t as h}from"./catalogRequests-CmW4jeEs.js";var g={class:`page`},_={class:`page__scroll page__scroll--with-nav body`},v={key:0,class:`empty`},y={class:`card__top`},b={class:`badge`},x={key:0,class:`note`},S=u(r({__name:`CatalogRequestsView`,setup(r){let u=o(),S=h();return t(()=>S.hydrate()),(t,r)=>(d(),i(`div`,g,[n(m,{title:`وضعیت کالیته‌ها`,"show-back":``,centered:``,onBack:r[0]||=e=>s(u).push(`/catalogs`)}),l(`div`,_,[l(`button`,{type:`button`,class:`new-btn`,onClick:r[1]||=e=>s(u).push(`/catalog-request`)},` درخواست کالیته جدید `),s(S).sorted.length?c(``,!0):(d(),i(`p`,v,`هنوز درخواستی ثبت نکرده‌اید.`)),(d(!0),i(e,null,a(s(S).sorted,t=>(d(),i(`article`,{key:t.id,class:`card`},[l(`div`,y,[l(`strong`,null,`درخواست `+f(t.id.slice(-6)),1),l(`span`,b,f(s(S).statusLabel(t.status)),1)]),l(`p`,null,f(t.createdAt.slice(0,10)),1),l(`p`,null,f(s(p)(t.items.length))+` قلم`,1),l(`ul`,null,[(d(!0),i(e,null,a(t.items,e=>(d(),i(`li`,{key:e.productId},f(e.productName)+` × `+f(s(p)(e.quantity)),1))),128))]),t.note?(d(),i(`p`,x,f(t.note),1)):c(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-fc04181d`]]);export{S as default}; \ No newline at end of file +import{E as e,G as t,I as n,L as r,M as i,Y as a,_ as o,bt as s,j as c,k as l,n as u,q as d,wt as f}from"./BasicIcon-CjTTsi6o.js";import{o as p}from"./format-BHJptHdF.js";import{t as m}from"./PageHeader-B47bvmJV.js";import{t as h}from"./catalogRequests-CmW4jeEs.js";var g={class:`page`},_={class:`page__scroll page__scroll--with-nav body`},v={key:0,class:`empty`},y={class:`card__top`},b={class:`badge`},x={key:0,class:`note`},S=u(r({__name:`CatalogRequestsView`,setup(r){let u=o(),S=h();return t(()=>S.hydrate()),(t,r)=>(d(),i(`div`,g,[n(m,{title:`وضعیت کالیته‌ها`,"show-back":``,centered:``,onBack:r[0]||=e=>s(u).push(`/catalogs`)}),l(`div`,_,[l(`button`,{type:`button`,class:`new-btn`,onClick:r[1]||=e=>s(u).push(`/catalog-request`)},` درخواست کالیته جدید `),s(S).sorted.length?c(``,!0):(d(),i(`p`,v,`هنوز درخواستی ثبت نکرده‌اید.`)),(d(!0),i(e,null,a(s(S).sorted,t=>(d(),i(`article`,{key:t.id,class:`card`},[l(`div`,y,[l(`strong`,null,`درخواست `+f(t.id.slice(-6)),1),l(`span`,b,f(s(S).statusLabel(t.status)),1)]),l(`p`,null,f(t.createdAt.slice(0,10)),1),l(`p`,null,f(s(p)(t.items.length))+` قلم`,1),l(`ul`,null,[(d(!0),i(e,null,a(t.items,e=>(d(),i(`li`,{key:e.productId},f(e.productName)+` × `+f(s(p)(e.quantity)),1))),128))]),t.note?(d(),i(`p`,x,f(t.note),1)):c(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-fc04181d`]]);export{S as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsHubView-Bb-hkFRI.js b/dist/assets/CatalogsHubView-Bb-hkFRI.js new file mode 100644 index 0000000..7388c6c --- /dev/null +++ b/dist/assets/CatalogsHubView-Bb-hkFRI.js @@ -0,0 +1 @@ +import{A as e,E as t,G as n,I as r,L as i,M as a,U as o,Y as s,_ as c,bt as l,ft as u,g as d,j as f,k as p,n as m,q as h,wt as g,xt as _}from"./BasicIcon-CjTTsi6o.js";import{t as v}from"./catalog-Dd554brK.js";import{o as y}from"./index-D3Z8WOeX.js";import{t as b}from"./PageHeader-B47bvmJV.js";import{t as x}from"./PageSkeleton-CyATkHE1.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav catalog-hub`},w={key:1},T=[`onClick`],E={class:`calite-item__text`},D={key:0,class:`empty-hint`},O=m(i({__name:`CatalogsHubView`,setup(i){let m=d(),O=c(),k=v(),A=u([]),j=u(!0),M=u(null);n(async()=>{try{let e=await k.loadCompanies(),t=await Promise.all(e.map(e=>k.loadCatalogs(e.id)));A.value=t.flat();let n=String(m.query.id??``);if(n){let e=A.value.find(e=>e.id===n);e&&(await o(),N(e))}}catch(e){M.value=e instanceof Error?e.message:`بارگذاری کالیته‌ها ناموفق بود.`}finally{j.value=!1}});function N(e){O.push({path:`/products`,query:{catalogId:e.id,companyId:e.companyId}})}function P(e){return k.getCompany(e)?.name??`برند`}return(n,i)=>(h(),a(`div`,S,[r(b,{title:`کالیته‌ها`,"show-back":``,centered:``,onBack:i[0]||=e=>l(O).push(`/`)}),p(`div`,C,[p(`button`,{type:`button`,class:`hub-card`,onClick:i[1]||=e=>l(O).push(`/catalog-request`)},[...i[5]||=[p(`strong`,null,`درخواست کالیته فیزیکی`,-1),p(`span`,null,`ثبت اقلام و پیگیری وضعیت`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[2]||=e=>l(O).push(`/catalog-requests`)},[...i[6]||=[p(`strong`,null,`وضعیت درخواست‌ها`,-1),p(`span`,null,`پیگیری کالیته‌های ثبت‌شده`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[3]||=e=>l(O).push(`/categories`)},[...i[7]||=[p(`strong`,null,`مشاهده دسته‌بندی‌ها`,-1),p(`span`,null,`انتخاب بر اساس کاربرد و فصل`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[4]||=e=>l(O).push(`/products`)},[...i[8]||=[p(`strong`,null,`همه محصولات`,-1),p(`span`,null,`مشاهده کاتالوگ و ثبت سفارش`,-1)]]),j.value?(h(),e(x,{key:0,variant:`grid`})):M.value?(h(),a(`p`,w,g(M.value),1)):(h(),a(t,{key:2},[i[9]||=p(`h2`,{class:`section-title`},`کالیته‌های موجود`,-1),(h(!0),a(t,null,s(A.value,e=>(h(),a(`button`,{key:e.id,type:`button`,class:_([`calite-item`,{"calite-item--focus":String(l(m).query.id??``)===e.id}]),onClick:t=>N(e)},[p(`div`,E,[p(`strong`,null,g(e.name),1),p(`span`,null,`کد `+g(e.code),1),p(`em`,null,g(P(e.companyId)),1)]),r(y,{size:18,color:`#9aa3a0`})],10,T))),128)),A.value.length?f(``,!0):(h(),a(`p`,D,`کالیته‌ای یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-a452107a`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsHubView-COE4952g.css b/dist/assets/CatalogsHubView-COE4952g.css new file mode 100644 index 0000000..757bf18 --- /dev/null +++ b/dist/assets/CatalogsHubView-COE4952g.css @@ -0,0 +1 @@ +.catalog-hub[data-v-a452107a]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.section-title[data-v-a452107a]{margin:8px 0 0;font-size:.95rem}.hub-card[data-v-a452107a],.calite-item[data-v-a452107a]{text-align:start;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;border:none;flex-direction:column;align-items:stretch;gap:4px;width:100%;padding:14px;display:flex}.calite-item[data-v-a452107a]{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.calite-item--focus[data-v-a452107a]{outline:2px solid var(--color-primary)}.calite-item__text[data-v-a452107a]{flex-direction:column;gap:4px;min-width:0;display:flex}.calite-item strong[data-v-a452107a]{color:var(--color-text);font-size:.95rem;font-weight:700;line-height:1.5;display:block}.hub-card span[data-v-a452107a],.calite-item span[data-v-a452107a],.calite-item em[data-v-a452107a]{color:var(--color-text-muted);font-size:.8rem;font-style:normal;line-height:1.5;display:block}.empty-hint[data-v-a452107a]{color:var(--color-text-muted);text-align:center;margin:12px 0 0} diff --git a/dist/assets/CatalogsHubView-CYqXALDE.js b/dist/assets/CatalogsHubView-CYqXALDE.js deleted file mode 100644 index b3f2aef..0000000 --- a/dist/assets/CatalogsHubView-CYqXALDE.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,E as t,G as n,I as r,L as i,M as a,U as o,Y as s,_ as c,bt as l,ft as u,g as d,j as f,k as p,n as m,q as h,wt as g,xt as _}from"./BasicIcon-CjTTsi6o.js";import{t as v}from"./catalog-Dd554brK.js";import{o as y}from"./index-BQQA5ZX-.js";import{t as b}from"./PageHeader-WFa4BbgN.js";import{t as x}from"./PageSkeleton-CyATkHE1.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav catalog-hub`},w={key:1},T=[`onClick`],E={class:`calite-item__text`},D={key:0,class:`empty-hint`},O=m(i({__name:`CatalogsHubView`,setup(i){let m=d(),O=c(),k=v(),A=u([]),j=u(!0),M=u(null);n(async()=>{try{let e=await k.loadCompanies(),t=await Promise.all(e.map(e=>k.loadCatalogs(e.id)));A.value=t.flat();let n=String(m.query.id??``);if(n){let e=A.value.find(e=>e.id===n);e&&(await o(),N(e))}}catch(e){M.value=e instanceof Error?e.message:`بارگذاری کالیته‌ها ناموفق بود.`}finally{j.value=!1}});function N(e){O.push({path:`/companies/${e.companyId}/catalogs/${e.id}/products`})}function P(e){return k.getCompany(e)?.name??`برند`}return(n,i)=>(h(),a(`div`,S,[r(b,{title:`کالیته‌ها`,"show-back":``,centered:``,onBack:i[0]||=e=>l(O).push(`/`)}),p(`div`,C,[p(`button`,{type:`button`,class:`hub-card`,onClick:i[1]||=e=>l(O).push(`/catalog-request`)},[...i[5]||=[p(`strong`,null,`درخواست کالیته فیزیکی`,-1),p(`span`,null,`ثبت اقلام و پیگیری وضعیت`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[2]||=e=>l(O).push(`/catalog-requests`)},[...i[6]||=[p(`strong`,null,`وضعیت درخواست‌ها`,-1),p(`span`,null,`پیگیری کالیته‌های ثبت‌شده`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[3]||=e=>l(O).push(`/categories`)},[...i[7]||=[p(`strong`,null,`مشاهده دسته‌بندی‌ها`,-1),p(`span`,null,`انتخاب بر اساس کاربرد و فصل`,-1)]]),p(`button`,{type:`button`,class:`hub-card`,onClick:i[4]||=e=>l(O).push(`/companies`)},[...i[8]||=[p(`strong`,null,`کالیته‌های برندها`,-1),p(`span`,null,`مسیر انتخاب شرکت و کالیته`,-1)]]),j.value?(h(),e(x,{key:0,variant:`grid`})):M.value?(h(),a(`p`,w,g(M.value),1)):(h(),a(t,{key:2},[i[9]||=p(`h2`,{class:`section-title`},`کالیته‌های موجود`,-1),(h(!0),a(t,null,s(A.value,e=>(h(),a(`button`,{key:e.id,type:`button`,class:_([`calite-item`,{"calite-item--focus":String(l(m).query.id??``)===e.id}]),onClick:t=>N(e)},[p(`div`,E,[p(`strong`,null,g(e.name),1),p(`span`,null,`کد `+g(e.code),1),p(`em`,null,g(P(e.companyId)),1)]),r(y,{size:18,color:`#9aa3a0`})],10,T))),128)),A.value.length?f(``,!0):(h(),a(`p`,D,`کالیته‌ای یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-c021c7aa`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsHubView-e5g217zy.css b/dist/assets/CatalogsHubView-e5g217zy.css deleted file mode 100644 index b8cde24..0000000 --- a/dist/assets/CatalogsHubView-e5g217zy.css +++ /dev/null @@ -1 +0,0 @@ -.catalog-hub[data-v-c021c7aa]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.section-title[data-v-c021c7aa]{margin:8px 0 0;font-size:.95rem}.hub-card[data-v-c021c7aa],.calite-item[data-v-c021c7aa]{text-align:start;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;border:none;flex-direction:column;align-items:stretch;gap:4px;width:100%;padding:14px;display:flex}.calite-item[data-v-c021c7aa]{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.calite-item--focus[data-v-c021c7aa]{outline:2px solid var(--color-primary)}.calite-item__text[data-v-c021c7aa]{flex-direction:column;gap:4px;min-width:0;display:flex}.calite-item strong[data-v-c021c7aa]{color:var(--color-text);font-size:.95rem;font-weight:700;line-height:1.5;display:block}.hub-card span[data-v-c021c7aa],.calite-item span[data-v-c021c7aa],.calite-item em[data-v-c021c7aa]{color:var(--color-text-muted);font-size:.8rem;font-style:normal;line-height:1.5;display:block}.empty-hint[data-v-c021c7aa]{color:var(--color-text-muted);text-align:center;margin:12px 0 0} diff --git a/dist/assets/CategoriesView-B2_xTRif.js b/dist/assets/CategoriesView-B2_xTRif.js new file mode 100644 index 0000000..e8f55fb --- /dev/null +++ b/dist/assets/CategoriesView-B2_xTRif.js @@ -0,0 +1 @@ +import{A as e,Ct as t,E as n,F as r,G as i,I as a,L as o,M as s,Q as c,Y as l,_ as u,bt as d,ft as f,k as p,n as m,q as h,t as g,w as ee,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{b as te,i as ne,m as re,o as y,s as ie}from"./index-D3Z8WOeX.js";import{t as ae}from"./IconChevronBack-B10eZjCQ.js";import{t as b}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as x}from"./IconDiamond-Yhg3u2_R.js";import{t as S}from"./PageSkeleton-CyATkHE1.js";import{t as C}from"./crm-l0KpZ2AN.js";import{t as w}from"./IconShoppingBag-B7WsCtZ4.js";import{n as T,t as E}from"./IconBolt-DDYT1Qsn.js";import{t as D}from"./useGoBack-D3aJ73Q-.js";var O=o({__name:`IconSearch`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(h(),e(g,{icon:`vuesax-linear:search-normal`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),k=o({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(h(),e(g,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),A={class:`page categories-page`},j={class:`cat-top`},M={class:`cat-top__actions`},N={class:`page__scroll page__scroll--with-nav cat-scroll`},P={key:0},F={class:`usage-grid`},I=[`onClick`],L={class:`usage-card__icon`},R={class:`usage-card__body`},z={class:`usage-card__link`},oe={class:`season-stack`},B=[`onClick`],V={class:`season-card__body`},H={class:`season-card__title-row`},U={class:`season-card__icon`},W={class:`usage-card__link`},G={class:`feature-row`,"aria-label":`ویژگی‌ها`},K={class:`feature-card`},q={class:`feature-card__icon`,"aria-hidden":`true`},se={class:`feature-card`},ce={class:`feature-card__icon`,"aria-hidden":`true`},le={class:`feature-card__icon`,"aria-hidden":`true`},J=m(o({__name:`CategoriesView`,setup(o){let m=u(),{goBack:g}=D(`/`),J=C(),Y=f([]),X=f([]),Z=f(!0),Q=f(null),$={shirt:T,suit:w,trousers:b},ue={summer:E,winter:k,all_season:x};i(async()=>{try{let e=await J.loadCategories();Y.value=e.usage,X.value=e.seasons}catch(e){Q.value=e instanceof Error?e.message:`بارگذاری دسته‌ها ناموفق بود.`}finally{Z.value=!1}});function de(e){m.push({path:`/products`,query:{categoryId:e}})}function fe(e){m.push({path:`/products`,query:{season:e}})}return(i,o)=>(h(),s(`div`,A,[p(`header`,j,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:o[0]||=(...e)=>d(g)&&d(g)(...e)},[a(ae,{size:20})]),o[5]||=p(`h1`,{class:`cat-top__title`},`دسته‌بندی‌ها`,-1),p(`div`,M,[a(ne,{variant:`inline`}),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:o[1]||=e=>d(m).push({path:`/products`,query:{q:``}})},[a(O,{size:20})]),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:o[2]||=e=>d(m).push(`/profile/notifications`)},[a(ie,{size:20})])])]),p(`div`,N,[Q.value?(h(),s(`p`,P,_(Q.value),1)):Z.value?(h(),e(S,{key:1,variant:`grid`})):(h(),s(n,{key:2},[p(`section`,null,[o[7]||=p(`h2`,{class:`block-title`},`انتخاب بر اساس کاربرد`,-1),o[8]||=p(`p`,{class:`block-sub`},`دسته موردنظر خود را انتخاب کنید`,-1),p(`div`,F,[(h(!0),s(n,null,l(Y.value,n=>(h(),s(`button`,{key:n.id,type:`button`,class:`usage-card`,onClick:e=>de(n.id)},[p(`div`,{class:v([`usage-card__image`,`usage-card__image--${n.id}`]),style:t(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},[p(`span`,L,[(h(),e(c($[n.id]||b),{size:18}))])],6),p(`div`,R,[p(`strong`,null,_(n.title),1),p(`span`,z,[o[6]||=r(` مشاهده محصولات `,-1),a(y,{size:14})])])],8,I))),128))])]),p(`section`,null,[o[10]||=p(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),o[11]||=p(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),p(`div`,oe,[(h(!0),s(n,null,l(X.value,n=>(h(),s(`button`,{key:n.id,type:`button`,class:`season-card`,onClick:e=>fe(n.id)},[p(`div`,V,[p(`div`,H,[p(`span`,U,[(h(),e(c(ue[n.id]||x),{size:16}))]),p(`strong`,null,_(n.title),1)]),p(`p`,null,_(n.description),1),p(`span`,W,[o[9]||=r(` مشاهده محصولات `,-1),a(y,{size:14})])]),p(`div`,{class:v([`season-card__image`,`season-card__image--${n.id}`]),style:t(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},null,6)],8,B))),128))])]),p(`section`,G,[p(`div`,K,[p(`span`,q,[a(re,{size:22})]),o[12]||=p(`div`,{class:`feature-card__text`},[p(`strong`,null,`پشتیبانی اختصاصی`),p(`span`,null,`در کنار شما هستیم`)],-1)]),p(`div`,se,[p(`span`,ce,[a(x,{size:22})]),o[13]||=p(`div`,{class:`feature-card__text`},[p(`strong`,null,`مزایای مشتریان ویژه`),p(`span`,null,`بر اساس سطح شما`)],-1)]),p(`div`,{class:`feature-card feature-card--link`,role:`button`,tabindex:`0`,onClick:o[3]||=e=>d(m).push(`/catalog-request`),onKeydown:o[4]||=ee(e=>d(m).push(`/catalog-request`),[`enter`])},[p(`span`,le,[a(te,{size:22})]),o[14]||=p(`div`,{class:`feature-card__text`},[p(`strong`,null,`درخواست کالیته فیزیکی`),p(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-ff74517b`]]);export{J as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-BKzeeMB3.js b/dist/assets/CategoriesView-BKzeeMB3.js deleted file mode 100644 index 3740e23..0000000 --- a/dist/assets/CategoriesView-BKzeeMB3.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,Ct as t,E as n,F as r,G as i,I as a,L as o,M as s,Q as c,Y as l,_ as ee,bt as u,ft as d,k as f,n as p,q as m,t as h,w as g,wt as _}from"./BasicIcon-CjTTsi6o.js";import{b as te,i as ne,m as re,o as v,s as ie}from"./index-BQQA5ZX-.js";import{t as ae}from"./IconChevronBack-B10eZjCQ.js";import{t as y}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as b}from"./IconDiamond-Yhg3u2_R.js";import{t as x}from"./PageSkeleton-CyATkHE1.js";import{t as S}from"./crm-DPw1h61_.js";import{t as C}from"./IconShoppingBag-B7WsCtZ4.js";import{n as w,t as T}from"./IconBolt-DDYT1Qsn.js";import{t as E}from"./useGoBack-D3aJ73Q-.js";var D=o({__name:`IconSearch`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(m(),e(h,{icon:`vuesax-linear:search-normal`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),O=o({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(m(),e(h,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),k={class:`page categories-page`},A={class:`cat-top`},j={class:`cat-top__actions`},M={class:`page__scroll page__scroll--with-nav cat-scroll`},N={key:0},P={class:`usage-grid`},F=[`onClick`],I={class:`usage-card__icon`},L={class:`usage-card__body`},R={class:`usage-card__link`},oe={class:`season-stack`},z=[`onClick`],B={class:`season-card__body`},V={class:`season-card__title-row`},H={class:`season-card__icon`},U={class:`usage-card__link`},W={class:`feature-row`,"aria-label":`ویژگی‌ها`},G={class:`feature-card`},K={class:`feature-card__icon`,"aria-hidden":`true`},q={class:`feature-card`},se={class:`feature-card__icon`,"aria-hidden":`true`},ce={class:`feature-card__icon`,"aria-hidden":`true`},J=p(o({__name:`CategoriesView`,setup(o){let p=ee(),{goBack:h}=E(`/`),J=S(),Y=d([]),X=d([]),Z=d(!0),Q=d(null),le={shirt:w,suit:C,trousers:y},$={summer:T,winter:O,all_season:b};i(async()=>{try{let e=await J.loadCategories();Y.value=e.usage,X.value=e.seasons}catch(e){Q.value=e instanceof Error?e.message:`بارگذاری دسته‌ها ناموفق بود.`}finally{Z.value=!1}});function ue(e){p.push({path:`/products`,query:{categoryId:e}})}function de(e){p.push({path:`/products`,query:{season:e}})}return(i,o)=>(m(),s(`div`,k,[f(`header`,A,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:o[0]||=(...e)=>u(h)&&u(h)(...e)},[a(ae,{size:20})]),o[5]||=f(`h1`,{class:`cat-top__title`},`دسته‌بندی‌ها`,-1),f(`div`,j,[a(ne,{variant:`inline`}),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:o[1]||=e=>u(p).push({path:`/products`,query:{q:``}})},[a(D,{size:20})]),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:o[2]||=e=>u(p).push(`/profile/notifications`)},[a(ie,{size:20})])])]),f(`div`,M,[Q.value?(m(),s(`p`,N,_(Q.value),1)):Z.value?(m(),e(x,{key:1,variant:`grid`})):(m(),s(n,{key:2},[f(`section`,null,[o[7]||=f(`h2`,{class:`block-title`},`انتخاب بر اساس کاربرد`,-1),o[8]||=f(`p`,{class:`block-sub`},`دسته موردنظر خود را انتخاب کنید`,-1),f(`div`,P,[(m(!0),s(n,null,l(Y.value,n=>(m(),s(`button`,{key:n.id,type:`button`,class:`usage-card`,onClick:e=>ue(n.id)},[f(`div`,{class:`usage-card__image`,style:t(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},[f(`span`,I,[(m(),e(c(le[n.id]||y),{size:18}))])],4),f(`div`,L,[f(`strong`,null,_(n.title),1),f(`span`,R,[o[6]||=r(` مشاهده محصولات `,-1),a(v,{size:14})])])],8,F))),128))])]),f(`section`,null,[o[10]||=f(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),o[11]||=f(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),f(`div`,oe,[(m(!0),s(n,null,l(X.value,n=>(m(),s(`button`,{key:n.id,type:`button`,class:`season-card`,onClick:e=>de(n.id)},[f(`div`,{class:`season-card__image`,style:t(n.imageUrl?{backgroundImage:`url(${n.imageUrl})`}:void 0)},null,4),f(`div`,B,[f(`div`,V,[f(`span`,H,[(m(),e(c($[n.id]||b),{size:16}))]),f(`strong`,null,_(n.title),1)]),f(`p`,null,_(n.description),1),f(`span`,U,[o[9]||=r(` مشاهده محصولات `,-1),a(v,{size:14})])])],8,z))),128))])]),f(`section`,W,[f(`div`,G,[f(`span`,K,[a(re,{size:22})]),o[12]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`پشتیبانی اختصاصی`),f(`span`,null,`در کنار شما هستیم`)],-1)]),f(`div`,q,[f(`span`,se,[a(b,{size:22})]),o[13]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`مزایای مشتریان ویژه`),f(`span`,null,`بر اساس سطح شما`)],-1)]),f(`div`,{class:`feature-card feature-card--link`,role:`button`,tabindex:`0`,onClick:o[3]||=e=>u(p).push(`/catalog-request`),onKeydown:o[4]||=g(e=>u(p).push(`/catalog-request`),[`enter`])},[f(`span`,ce,[a(te,{size:22})]),o[14]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`درخواست کالیته فیزیکی`),f(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-ce0d068d`]]);export{J as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-BPyEMB_L.css b/dist/assets/CategoriesView-BPyEMB_L.css new file mode 100644 index 0000000..6e31544 --- /dev/null +++ b/dist/assets/CategoriesView-BPyEMB_L.css @@ -0,0 +1 @@ +.categories-page[data-v-ff74517b]{background:var(--color-bg)}.cat-top[data-v-ff74517b]{padding:10px var(--page-padding);background:var(--color-surface);color:var(--color-text);grid-template-columns:40px 1fr auto;align-items:center;gap:4px;display:grid}.cat-top__title[data-v-ff74517b]{text-align:center;margin:0;font-size:1rem}.cat-top__actions[data-v-ff74517b]{color:inherit;align-items:center;gap:0;display:flex}.icon-btn[data-v-ff74517b]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;display:grid}.cat-scroll[data-v-ff74517b]{padding:16px var(--page-padding) 24px;flex-direction:column;gap:22px;display:flex}.block-title[data-v-ff74517b]{margin:0;font-size:1.05rem}.block-sub[data-v-ff74517b]{color:var(--color-text-muted);margin:4px 0 12px;font-size:.8rem}.usage-grid[data-v-ff74517b]{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.usage-card[data-v-ff74517b]{background:var(--color-surface);border-radius:var(--radius-md);text-align:start;cursor:pointer;box-shadow:var(--shadow-sm);border:none;padding:0;overflow:hidden}.usage-card__image[data-v-ff74517b]{background:linear-gradient(140deg,#6b7280,#1f2937) 50%/cover no-repeat;height:96px;position:relative}.usage-card__image--suit[data-v-ff74517b]{background:linear-gradient(150deg,#2c3038,#111318) 50%/cover no-repeat}.usage-card__image--shirt[data-v-ff74517b]{background:linear-gradient(150deg,#e8eef3,#9aa8b5) 50%/cover no-repeat}.usage-card__image--trousers[data-v-ff74517b]{background:linear-gradient(150deg,#1a1d24,#0b0d12) 50%/cover no-repeat}.usage-card__icon[data-v-ff74517b]{background:var(--color-surface);width:28px;height:28px;color:var(--color-primary);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:-12px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.usage-card__body[data-v-ff74517b]{flex-direction:column;gap:6px;padding:18px 8px 12px;display:flex}.usage-card__body strong[data-v-ff74517b]{font-size:.72rem;line-height:1.5}.usage-card__link[data-v-ff74517b]{color:var(--color-info);align-items:center;gap:2px;font-size:.65rem;display:inline-flex}.season-stack[data-v-ff74517b]{flex-direction:column;gap:10px;display:flex}.season-card[data-v-ff74517b]{background:var(--color-surface);border-radius:var(--radius-lg);text-align:start;cursor:pointer;box-shadow:var(--shadow-sm);border:none;grid-template-columns:1fr 42%;padding:0;display:grid;overflow:hidden}.season-card__image[data-v-ff74517b]{background:linear-gradient(160deg,#d6c3a8,#8b7355) 50%/cover no-repeat;min-height:124px}.season-card__image--summer[data-v-ff74517b]{background:linear-gradient(160deg,#f3e6c8,#c4a574) 50%/cover no-repeat}.season-card__image--winter[data-v-ff74517b]{background:linear-gradient(160deg,#cfd6de,#7d8b99) 50%/cover no-repeat}.season-card__image--all_season[data-v-ff74517b]{background:linear-gradient(160deg,#efe6d6,#b9a48a) 50%/cover no-repeat}.season-card__body[data-v-ff74517b]{padding:12px}.season-card__body strong[data-v-ff74517b]{margin-bottom:0;display:block}.season-card__title-row[data-v-ff74517b]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.season-card__icon[data-v-ff74517b]{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.season-card__body p[data-v-ff74517b]{color:var(--color-text-muted);margin:0 0 8px;font-size:.75rem;line-height:1.6}.feature-row[data-v-ff74517b]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.feature-card[data-v-ff74517b]{background:#f3f4f6;border-radius:12px;flex-direction:row;align-items:center;gap:8px;min-width:0;padding:10px 8px;display:flex}.feature-card--link[data-v-ff74517b]{cursor:pointer}.feature-card__icon[data-v-ff74517b]{width:22px;height:22px;color:var(--color-text);flex-shrink:0;place-items:center;display:grid}.feature-card__text[data-v-ff74517b]{text-align:start;flex-direction:column;gap:2px;min-width:0;display:flex}.feature-card__text strong[data-v-ff74517b]{color:var(--color-text);font-size:.6875rem;font-weight:700;line-height:1.35}.feature-card__text span[data-v-ff74517b]{color:var(--color-text-muted);font-size:.625rem;line-height:1.35} diff --git a/dist/assets/CategoriesView-CpH_4Bby.css b/dist/assets/CategoriesView-CpH_4Bby.css deleted file mode 100644 index 1980b33..0000000 --- a/dist/assets/CategoriesView-CpH_4Bby.css +++ /dev/null @@ -1 +0,0 @@ -.categories-page[data-v-ce0d068d]{background:var(--color-bg)}.cat-top[data-v-ce0d068d]{padding:10px var(--page-padding);background:var(--color-surface);color:var(--color-text);grid-template-columns:40px 1fr auto;align-items:center;gap:4px;display:grid}.cat-top__title[data-v-ce0d068d]{text-align:center;margin:0;font-size:1rem}.cat-top__actions[data-v-ce0d068d]{color:inherit;align-items:center;gap:0;display:flex}.icon-btn[data-v-ce0d068d]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;display:grid}.cat-scroll[data-v-ce0d068d]{padding:16px var(--page-padding) 24px;flex-direction:column;gap:22px;display:flex}.block-title[data-v-ce0d068d]{margin:0;font-size:1.05rem}.block-sub[data-v-ce0d068d]{color:var(--color-text-muted);margin:4px 0 12px;font-size:.8rem}.usage-grid[data-v-ce0d068d]{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.usage-card[data-v-ce0d068d]{background:var(--color-surface);border-radius:var(--radius-md);text-align:start;cursor:pointer;box-shadow:var(--shadow-sm);border:none;padding:0;overflow:hidden}.usage-card__image[data-v-ce0d068d]{background:linear-gradient(140deg,#6b7280,#1f2937) 50%/cover no-repeat;height:72px;position:relative}.usage-card__icon[data-v-ce0d068d]{background:var(--color-surface);width:28px;height:28px;color:var(--color-primary);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:-12px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.usage-card__body[data-v-ce0d068d]{flex-direction:column;gap:6px;padding:18px 8px 12px;display:flex}.usage-card__body strong[data-v-ce0d068d]{font-size:.72rem;line-height:1.5}.usage-card__link[data-v-ce0d068d]{color:var(--color-info);align-items:center;gap:2px;font-size:.65rem;display:inline-flex}.season-stack[data-v-ce0d068d]{flex-direction:column;gap:10px;display:flex}.season-card[data-v-ce0d068d]{background:var(--color-surface);border-radius:var(--radius-lg);text-align:start;cursor:pointer;box-shadow:var(--shadow-sm);border:none;grid-template-columns:110px 1fr;padding:0;display:grid;overflow:hidden}.season-card__image[data-v-ce0d068d]{background:linear-gradient(160deg,#d6c3a8,#8b7355) 50%/cover no-repeat;min-height:100px}.season-card__body[data-v-ce0d068d]{padding:12px}.season-card__body strong[data-v-ce0d068d]{margin-bottom:0;display:block}.season-card__title-row[data-v-ce0d068d]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.season-card__icon[data-v-ce0d068d]{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.season-card__body p[data-v-ce0d068d]{color:var(--color-text-muted);margin:0 0 8px;font-size:.75rem;line-height:1.6}.feature-row[data-v-ce0d068d]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.feature-card[data-v-ce0d068d]{background:#f3f4f6;border-radius:12px;flex-direction:row;align-items:center;gap:8px;min-width:0;padding:10px 8px;display:flex}.feature-card--link[data-v-ce0d068d]{cursor:pointer}.feature-card__icon[data-v-ce0d068d]{width:22px;height:22px;color:var(--color-text);flex-shrink:0;place-items:center;display:grid}.feature-card__text[data-v-ce0d068d]{text-align:start;flex-direction:column;gap:2px;min-width:0;display:flex}.feature-card__text strong[data-v-ce0d068d]{color:var(--color-text);font-size:.6875rem;font-weight:700;line-height:1.35}.feature-card__text span[data-v-ce0d068d]{color:var(--color-text-muted);font-size:.625rem;line-height:1.35} diff --git a/dist/assets/CheckFormView-DW5qmSv3.js b/dist/assets/CheckFormView-DicpQoBz.js similarity index 97% rename from dist/assets/CheckFormView-DW5qmSv3.js rename to dist/assets/CheckFormView-DicpQoBz.js index 6b0d6e6..f536238 100644 --- a/dist/assets/CheckFormView-DW5qmSv3.js +++ b/dist/assets/CheckFormView-DicpQoBz.js @@ -1 +1 @@ -import{$ as e,E as t,F as n,I as r,L as i,M as a,O as o,_ as ee,bt as s,ft as c,j as l,k as u,n as d,q as f,tt as te,wt as p,xt as m}from"./BasicIcon-CjTTsi6o.js";import{l as h,n as g,o as ne}from"./format-BHJptHdF.js";import{i as re,n as ie,o as ae,t as oe}from"./validation-BD7oi-2I.js";import{h as _,n as se,y as ce}from"./index-BQQA5ZX-.js";import{t as v}from"./BaseInput-oWA7d1_u.js";import{t as le}from"./FormErrorBanner-B8THF9oG.js";import{n as y,r as b,t as ue}from"./formErrors-DglFjYkZ.js";import{t as de}from"./PageHeader-WFa4BbgN.js";import{t as fe}from"./useRequirePricedOrder-bwpoZWB1.js";import{n as pe,t as me}from"./PersianDateInput-C60QImoe.js";import{t as he}from"./IconCash-CCD4LPLC.js";var ge={class:`page`},_e={class:`page__scroll checkout-page__scroll`},ve={class:`mb-3 flex items-start gap-3`},ye={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[var(--color-primary-soft)] text-[var(--color-primary)]`,"aria-hidden":`true`},be={class:`flex flex-col gap-2`},xe={class:`flex items-center justify-between gap-3 text-sm`},Se={class:`font-tabular text-[var(--color-text)]`},Ce={class:`flex items-center justify-between gap-3 text-sm`},we={class:`inline-flex items-center gap-1.5 text-[var(--color-text-muted)]`},Te={key:0,class:`text-xs`},x={class:`font-tabular text-[var(--color-text)]`},S={class:`mt-1 flex items-center justify-between gap-3 border-t border-[var(--color-border)] pt-3`},C={class:`card`},w={class:`form-group`},T=[`src`],E={key:1,class:`upload-box__placeholder`},D={key:0,class:`input-error-text`},O={key:2,class:`form-group`},Ee={class:`upload-box`},De=[`src`],Oe={key:1,class:`upload-box__placeholder`},k=d(i({__name:`CheckFormView`,setup(i){let d=ee(),k=_(),{orderId:A,order:ke}=fe(),j=o(()=>k.draftCheckMode===`full`),M=c(``),N=c(``),P=c(``),F=c(``),I=c(``),L=c(``),R=c(``),z=c(``),B=c(``),V=c(``),H=c(``),U=c(``),W=c({}),G=c(``),K=c(!1),q=o(()=>ke.value?.finalAmount??0),J=o(()=>k.draftChecks.reduce((e,t)=>e+t.amount,0)),Y=o(()=>h(M.value)||0),X=o(()=>Math.max(0,q.value-J.value)),Ae=o(()=>Math.max(0,q.value-J.value-Y.value)),Z=o(()=>q.value>0&&J.value+Y.value>=q.value),Q=o(()=>q.value>0&&J.value+Y.value>q.value);e([q,X],()=>{K.value||M.value||X.value<=0||(M.value=String(X.value),K.value=!0)},{immediate:!0}),e(M,()=>{W.value=y(W.value,`amount`),b(W.value)||(G.value=``)}),e(N,()=>{W.value=y(W.value,`dueDate`),b(W.value)||(G.value=``)}),e(P,()=>{W.value=y(W.value,`sayadId`),b(W.value)||(G.value=``)}),e(I,()=>{W.value=y(W.value,`ownerNationalId`),b(W.value)||(G.value=``)}),e(V,()=>{W.value=y(W.value,`frontImage`),b(W.value)||(G.value=``)});async function $(e,t){let n=e.target.files?.[0];if(!n)return;let r=ie(n);if(!r.valid){t===`front`&&(W.value={...W.value,frontImage:r.message??`خطا`});return}let i=await oe(n);t===`front`?V.value=i:H.value=i}function je(){X.value<=0||(M.value=String(X.value))}function Me(){W.value={},G.value=``;let e={},t=h(M.value);return(!t||t<=0)&&(e.amount=`مبلغ چک باید بزرگ‌تر از صفر باشد.`),N.value||(e.dueDate=`تاریخ سررسید الزامی است.`),V.value||(e.frontImage=`تصویر روی چک الزامی است.`),j.value&&(ae(P.value)||(e.sayadId=`شناسه صیادی باید ۱۶ رقم باشد.`),re(I.value)||(e.ownerNationalId=`کد ملی صاحب چک معتبر نیست.`),k.draftChecks.some(e=>e.sayadId===P.value.replace(/\s/g,``))&&(e.sayadId=`شناسه صیادی تکراری است.`)),W.value=e,!b(e)||(G.value=ue,!1)}function Ne(){Me()&&(k.addDraftCheck({amount:h(M.value),dueDate:N.value,sayadId:j.value?P.value.replace(/\s/g,``):void 0,checkNumber:j.value?F.value:void 0,ownerNationalId:j.value?I.value:void 0,ownerFirstName:j.value?L.value:void 0,ownerLastName:j.value?R.value:void 0,bankName:j.value?z.value:void 0,branchName:j.value?B.value:void 0,frontImage:V.value,backImage:H.value||void 0,notes:U.value||void 0,mode:k.draftCheckMode??`brief`}),Pe(),d.push(`/orders/${A.value}/check-list`))}function Pe(){M.value=``,N.value=``,P.value=``,F.value=``,I.value=``,L.value=``,R.value=``,z.value=``,B.value=``,V.value=``,H.value=``,U.value=``,W.value={},G.value=``,K.value=!1}return(e,i)=>(f(),a(`div`,ge,[r(de,{title:j.value?`ثبت چک - حالت کامل`:`ثبت چک - حالت مختصر`,"show-back":``,onBack:i[0]||=e=>s(d).push(`/orders/${s(A)}/check-mode`)},null,8,[`title`]),u(`div`,_e,[r(le,{message:G.value},null,8,[`message`]),q.value>0?(f(),a(`div`,{key:0,class:m([`check-balance mb-4 rounded-[var(--radius-md)] border border-[var(--color-border)] bg-[var(--color-surface)] p-4`,{"check-balance--ok":Z.value&&!Q.value,"check-balance--warn":Q.value}])},[u(`div`,ve,[u(`span`,ye,[r(he,{size:22})]),i[13]||=u(`div`,{class:`min-w-0 flex-1`},[u(`p`,{class:`m-0 text-sm font-semibold text-[var(--color-text)]`},`مانده فاکتور`),u(`p`,{class:`m-0 mt-1 text-xs leading-relaxed text-[var(--color-text-muted)]`},` با هر چک، مبلغ باقی‌مانده به‌روز می‌شود تا پوشش کامل فاکتور را از دست ندهید. `)],-1)]),u(`div`,be,[u(`div`,xe,[i[14]||=u(`span`,{class:`text-[var(--color-text-muted)]`},`مبلغ فاکتور`,-1),u(`strong`,Se,p(s(g)(q.value)),1)]),u(`div`,Ce,[u(`span`,we,[r(ce,{size:14}),i[15]||=n(` چک‌های ثبت‌شده `,-1),s(k).draftChecks.length?(f(),a(`span`,Te,` (`+p(s(ne)(s(k).draftChecks.length))+`) `,1)):l(``,!0)]),u(`strong`,x,p(s(g)(J.value)),1)]),u(`div`,S,[i[16]||=u(`span`,{class:`text-sm font-semibold text-[var(--color-text)]`},`باقی‌مانده`,-1),u(`strong`,{class:m([`font-tabular text-base`,Z.value&&!Q.value?`text-[var(--color-success)]`:Q.value?`text-[var(--color-danger)]`:`text-[var(--color-primary)]`])},p(Q.value?`${s(g)(J.value+Y.value-q.value)} بیش از فاکتور`:Z.value?`پوشش کامل شد`:s(g)(Ae.value)),3)])])],2)):l(``,!0),i[20]||=u(`div`,{class:`steps`},[u(`span`,{class:`step active`},`۱. اطلاعات چک`),u(`span`,{class:`step`},`۲. چک بعدی`),u(`span`,{class:`step`},`۳. خلاصه`)],-1),u(`div`,C,[r(pe,{modelValue:M.value,"onUpdate:modelValue":i[1]||=e=>M.value=e,label:`مبلغ چک (تومان)`,placeholder:`مبلغ`,error:W.value.amount},null,8,[`modelValue`,`error`]),X.value>0&&Y.value!==X.value?(f(),a(`button`,{key:0,type:`button`,class:`check-fill-remaining mb-3 text-sm font-medium text-[var(--color-primary)]`,onClick:je},` پر کردن با باقی‌مانده (`+p(s(g)(X.value))+`) `,1)):l(``,!0),r(me,{modelValue:N.value,"onUpdate:modelValue":i[2]||=e=>N.value=e,label:`تاریخ سررسید`,error:W.value.dueDate},null,8,[`modelValue`,`error`]),j.value?(f(),a(t,{key:1},[r(v,{modelValue:P.value,"onUpdate:modelValue":i[3]||=e=>P.value=e,label:`شناسه صیادی`,placeholder:`۱۶ رقم`,maxlength:`16`,inputmode:`numeric`,dir:`ltr`,error:W.value.sayadId},null,8,[`modelValue`,`error`]),r(v,{modelValue:F.value,"onUpdate:modelValue":i[4]||=e=>F.value=e,label:`شماره چک`,inputmode:`numeric`,dir:`ltr`},null,8,[`modelValue`]),r(v,{modelValue:I.value,"onUpdate:modelValue":i[5]||=e=>I.value=e,label:`کد ملی صاحب چک`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,error:W.value.ownerNationalId},null,8,[`modelValue`,`error`]),r(v,{modelValue:L.value,"onUpdate:modelValue":i[6]||=e=>L.value=e,label:`نام صاحب چک`},null,8,[`modelValue`]),r(v,{modelValue:R.value,"onUpdate:modelValue":i[7]||=e=>R.value=e,label:`نام خانوادگی صاحب چک`},null,8,[`modelValue`]),r(v,{modelValue:z.value,"onUpdate:modelValue":i[8]||=e=>z.value=e,label:`نام بانک`},null,8,[`modelValue`]),r(v,{modelValue:B.value,"onUpdate:modelValue":i[9]||=e=>B.value=e,label:`نام شعبه`},null,8,[`modelValue`])],64)):l(``,!0),u(`div`,w,[i[17]||=u(`label`,{class:`form-label`},`تصویر روی چک *`,-1),u(`label`,{class:m([`upload-box`,{"upload-box--error":W.value.frontImage}])},[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:i[10]||=e=>$(e,`front`)},null,32),V.value?(f(),a(`img`,{key:0,src:V.value,class:`upload-box__preview`,alt:`روی چک`},null,8,T)):(f(),a(`span`,E,`بارگذاری تصویر چک`))],2),W.value.frontImage?(f(),a(`p`,D,p(W.value.frontImage),1)):l(``,!0)]),j.value?(f(),a(`div`,O,[i[18]||=u(`label`,{class:`form-label`},`تصویر پشت چک`,-1),u(`label`,Ee,[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:i[11]||=e=>$(e,`back`)},null,32),H.value?(f(),a(`img`,{key:0,src:H.value,class:`upload-box__preview`,alt:`پشت چک`},null,8,De)):(f(),a(`span`,Oe,`بارگذاری تصویر`))])])):l(``,!0),r(v,{modelValue:U.value,"onUpdate:modelValue":i[12]||=e=>U.value=e,label:`توضیحات`},null,8,[`modelValue`]),r(se,{block:``,class:`mt-4`,onClick:Ne},{default:te(()=>[...i[19]||=[n(`ذخیره چک`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-5976552f`]]);export{k as default}; \ No newline at end of file +import{$ as e,E as t,F as n,I as r,L as i,M as a,O as o,_ as ee,bt as s,ft as c,j as l,k as u,n as d,q as f,tt as te,wt as p,xt as m}from"./BasicIcon-CjTTsi6o.js";import{l as h,n as g,o as ne}from"./format-BHJptHdF.js";import{i as re,n as ie,o as ae,t as oe}from"./validation-BD7oi-2I.js";import{h as _,n as se,y as ce}from"./index-D3Z8WOeX.js";import{t as v}from"./BaseInput-oWA7d1_u.js";import{t as le}from"./FormErrorBanner-B8THF9oG.js";import{n as y,r as b,t as ue}from"./formErrors-DglFjYkZ.js";import{t as de}from"./PageHeader-B47bvmJV.js";import{t as fe}from"./useRequirePricedOrder-a2bgwmwB.js";import{n as pe,t as me}from"./PersianDateInput-C60QImoe.js";import{t as he}from"./IconCash-CCD4LPLC.js";var ge={class:`page`},_e={class:`page__scroll checkout-page__scroll`},ve={class:`mb-3 flex items-start gap-3`},ye={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[var(--color-primary-soft)] text-[var(--color-primary)]`,"aria-hidden":`true`},be={class:`flex flex-col gap-2`},xe={class:`flex items-center justify-between gap-3 text-sm`},Se={class:`font-tabular text-[var(--color-text)]`},Ce={class:`flex items-center justify-between gap-3 text-sm`},we={class:`inline-flex items-center gap-1.5 text-[var(--color-text-muted)]`},Te={key:0,class:`text-xs`},x={class:`font-tabular text-[var(--color-text)]`},S={class:`mt-1 flex items-center justify-between gap-3 border-t border-[var(--color-border)] pt-3`},C={class:`card`},w={class:`form-group`},T=[`src`],E={key:1,class:`upload-box__placeholder`},D={key:0,class:`input-error-text`},O={key:2,class:`form-group`},Ee={class:`upload-box`},De=[`src`],Oe={key:1,class:`upload-box__placeholder`},k=d(i({__name:`CheckFormView`,setup(i){let d=ee(),k=_(),{orderId:A,order:ke}=fe(),j=o(()=>k.draftCheckMode===`full`),M=c(``),N=c(``),P=c(``),F=c(``),I=c(``),L=c(``),R=c(``),z=c(``),B=c(``),V=c(``),H=c(``),U=c(``),W=c({}),G=c(``),K=c(!1),q=o(()=>ke.value?.finalAmount??0),J=o(()=>k.draftChecks.reduce((e,t)=>e+t.amount,0)),Y=o(()=>h(M.value)||0),X=o(()=>Math.max(0,q.value-J.value)),Ae=o(()=>Math.max(0,q.value-J.value-Y.value)),Z=o(()=>q.value>0&&J.value+Y.value>=q.value),Q=o(()=>q.value>0&&J.value+Y.value>q.value);e([q,X],()=>{K.value||M.value||X.value<=0||(M.value=String(X.value),K.value=!0)},{immediate:!0}),e(M,()=>{W.value=y(W.value,`amount`),b(W.value)||(G.value=``)}),e(N,()=>{W.value=y(W.value,`dueDate`),b(W.value)||(G.value=``)}),e(P,()=>{W.value=y(W.value,`sayadId`),b(W.value)||(G.value=``)}),e(I,()=>{W.value=y(W.value,`ownerNationalId`),b(W.value)||(G.value=``)}),e(V,()=>{W.value=y(W.value,`frontImage`),b(W.value)||(G.value=``)});async function $(e,t){let n=e.target.files?.[0];if(!n)return;let r=ie(n);if(!r.valid){t===`front`&&(W.value={...W.value,frontImage:r.message??`خطا`});return}let i=await oe(n);t===`front`?V.value=i:H.value=i}function je(){X.value<=0||(M.value=String(X.value))}function Me(){W.value={},G.value=``;let e={},t=h(M.value);return(!t||t<=0)&&(e.amount=`مبلغ چک باید بزرگ‌تر از صفر باشد.`),N.value||(e.dueDate=`تاریخ سررسید الزامی است.`),V.value||(e.frontImage=`تصویر روی چک الزامی است.`),j.value&&(ae(P.value)||(e.sayadId=`شناسه صیادی باید ۱۶ رقم باشد.`),re(I.value)||(e.ownerNationalId=`کد ملی صاحب چک معتبر نیست.`),k.draftChecks.some(e=>e.sayadId===P.value.replace(/\s/g,``))&&(e.sayadId=`شناسه صیادی تکراری است.`)),W.value=e,!b(e)||(G.value=ue,!1)}function Ne(){Me()&&(k.addDraftCheck({amount:h(M.value),dueDate:N.value,sayadId:j.value?P.value.replace(/\s/g,``):void 0,checkNumber:j.value?F.value:void 0,ownerNationalId:j.value?I.value:void 0,ownerFirstName:j.value?L.value:void 0,ownerLastName:j.value?R.value:void 0,bankName:j.value?z.value:void 0,branchName:j.value?B.value:void 0,frontImage:V.value,backImage:H.value||void 0,notes:U.value||void 0,mode:k.draftCheckMode??`brief`}),Pe(),d.push(`/orders/${A.value}/check-list`))}function Pe(){M.value=``,N.value=``,P.value=``,F.value=``,I.value=``,L.value=``,R.value=``,z.value=``,B.value=``,V.value=``,H.value=``,U.value=``,W.value={},G.value=``,K.value=!1}return(e,i)=>(f(),a(`div`,ge,[r(de,{title:j.value?`ثبت چک - حالت کامل`:`ثبت چک - حالت مختصر`,"show-back":``,onBack:i[0]||=e=>s(d).push(`/orders/${s(A)}/check-mode`)},null,8,[`title`]),u(`div`,_e,[r(le,{message:G.value},null,8,[`message`]),q.value>0?(f(),a(`div`,{key:0,class:m([`check-balance mb-4 rounded-[var(--radius-md)] border border-[var(--color-border)] bg-[var(--color-surface)] p-4`,{"check-balance--ok":Z.value&&!Q.value,"check-balance--warn":Q.value}])},[u(`div`,ve,[u(`span`,ye,[r(he,{size:22})]),i[13]||=u(`div`,{class:`min-w-0 flex-1`},[u(`p`,{class:`m-0 text-sm font-semibold text-[var(--color-text)]`},`مانده فاکتور`),u(`p`,{class:`m-0 mt-1 text-xs leading-relaxed text-[var(--color-text-muted)]`},` با هر چک، مبلغ باقی‌مانده به‌روز می‌شود تا پوشش کامل فاکتور را از دست ندهید. `)],-1)]),u(`div`,be,[u(`div`,xe,[i[14]||=u(`span`,{class:`text-[var(--color-text-muted)]`},`مبلغ فاکتور`,-1),u(`strong`,Se,p(s(g)(q.value)),1)]),u(`div`,Ce,[u(`span`,we,[r(ce,{size:14}),i[15]||=n(` چک‌های ثبت‌شده `,-1),s(k).draftChecks.length?(f(),a(`span`,Te,` (`+p(s(ne)(s(k).draftChecks.length))+`) `,1)):l(``,!0)]),u(`strong`,x,p(s(g)(J.value)),1)]),u(`div`,S,[i[16]||=u(`span`,{class:`text-sm font-semibold text-[var(--color-text)]`},`باقی‌مانده`,-1),u(`strong`,{class:m([`font-tabular text-base`,Z.value&&!Q.value?`text-[var(--color-success)]`:Q.value?`text-[var(--color-danger)]`:`text-[var(--color-primary)]`])},p(Q.value?`${s(g)(J.value+Y.value-q.value)} بیش از فاکتور`:Z.value?`پوشش کامل شد`:s(g)(Ae.value)),3)])])],2)):l(``,!0),i[20]||=u(`div`,{class:`steps`},[u(`span`,{class:`step active`},`۱. اطلاعات چک`),u(`span`,{class:`step`},`۲. چک بعدی`),u(`span`,{class:`step`},`۳. خلاصه`)],-1),u(`div`,C,[r(pe,{modelValue:M.value,"onUpdate:modelValue":i[1]||=e=>M.value=e,label:`مبلغ چک (تومان)`,placeholder:`مبلغ`,error:W.value.amount},null,8,[`modelValue`,`error`]),X.value>0&&Y.value!==X.value?(f(),a(`button`,{key:0,type:`button`,class:`check-fill-remaining mb-3 text-sm font-medium text-[var(--color-primary)]`,onClick:je},` پر کردن با باقی‌مانده (`+p(s(g)(X.value))+`) `,1)):l(``,!0),r(me,{modelValue:N.value,"onUpdate:modelValue":i[2]||=e=>N.value=e,label:`تاریخ سررسید`,error:W.value.dueDate},null,8,[`modelValue`,`error`]),j.value?(f(),a(t,{key:1},[r(v,{modelValue:P.value,"onUpdate:modelValue":i[3]||=e=>P.value=e,label:`شناسه صیادی`,placeholder:`۱۶ رقم`,maxlength:`16`,inputmode:`numeric`,dir:`ltr`,error:W.value.sayadId},null,8,[`modelValue`,`error`]),r(v,{modelValue:F.value,"onUpdate:modelValue":i[4]||=e=>F.value=e,label:`شماره چک`,inputmode:`numeric`,dir:`ltr`},null,8,[`modelValue`]),r(v,{modelValue:I.value,"onUpdate:modelValue":i[5]||=e=>I.value=e,label:`کد ملی صاحب چک`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,error:W.value.ownerNationalId},null,8,[`modelValue`,`error`]),r(v,{modelValue:L.value,"onUpdate:modelValue":i[6]||=e=>L.value=e,label:`نام صاحب چک`},null,8,[`modelValue`]),r(v,{modelValue:R.value,"onUpdate:modelValue":i[7]||=e=>R.value=e,label:`نام خانوادگی صاحب چک`},null,8,[`modelValue`]),r(v,{modelValue:z.value,"onUpdate:modelValue":i[8]||=e=>z.value=e,label:`نام بانک`},null,8,[`modelValue`]),r(v,{modelValue:B.value,"onUpdate:modelValue":i[9]||=e=>B.value=e,label:`نام شعبه`},null,8,[`modelValue`])],64)):l(``,!0),u(`div`,w,[i[17]||=u(`label`,{class:`form-label`},`تصویر روی چک *`,-1),u(`label`,{class:m([`upload-box`,{"upload-box--error":W.value.frontImage}])},[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:i[10]||=e=>$(e,`front`)},null,32),V.value?(f(),a(`img`,{key:0,src:V.value,class:`upload-box__preview`,alt:`روی چک`},null,8,T)):(f(),a(`span`,E,`بارگذاری تصویر چک`))],2),W.value.frontImage?(f(),a(`p`,D,p(W.value.frontImage),1)):l(``,!0)]),j.value?(f(),a(`div`,O,[i[18]||=u(`label`,{class:`form-label`},`تصویر پشت چک`,-1),u(`label`,Ee,[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:i[11]||=e=>$(e,`back`)},null,32),H.value?(f(),a(`img`,{key:0,src:H.value,class:`upload-box__preview`,alt:`پشت چک`},null,8,De)):(f(),a(`span`,Oe,`بارگذاری تصویر`))])])):l(``,!0),r(v,{modelValue:U.value,"onUpdate:modelValue":i[12]||=e=>U.value=e,label:`توضیحات`},null,8,[`modelValue`]),r(se,{block:``,class:`mt-4`,onClick:Ne},{default:te(()=>[...i[19]||=[n(`ذخیره چک`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-5976552f`]]);export{k as default}; \ No newline at end of file diff --git a/dist/assets/CheckListView-B_ogsKeK.css b/dist/assets/CheckListView-B_ogsKeK.css new file mode 100644 index 0000000..be4d0d7 --- /dev/null +++ b/dist/assets/CheckListView-B_ogsKeK.css @@ -0,0 +1 @@ +.check-list-desktop__thumb[data-v-83f3f9a7]{object-fit:cover;border-radius:4px;width:48px;height:32px;display:block}.check-list-desktop__amount[data-v-83f3f9a7]{font-variant-numeric:tabular-nums;white-space:nowrap}.check-list-desktop__table[data-v-83f3f9a7]{min-width:560px}.check-list-desktop__add[data-v-83f3f9a7]{margin-top:16px}@media (width>=768px) and (width<=1099px){.check-list-desktop[data-v-83f3f9a7] .desktop-two-col{grid-template-columns:1fr}.check-list-desktop[data-v-83f3f9a7] .desktop-summary-panel{position:static}}.desktop-summary-panel__action[data-v-83f3f9a7]{flex-direction:column;gap:10px;display:flex}.desktop-summary-panel__row--remain strong[data-v-83f3f9a7]{color:var(--color-primary)}.desktop-summary-panel__row--ok strong[data-v-83f3f9a7]{color:var(--color-success)}.desktop-summary-panel__row--warn strong[data-v-83f3f9a7]{color:var(--color-danger)}.check-list-page[data-v-83f3f9a7]{height:100%;min-height:0;padding:12px var(--page-padding) 0;background:var(--color-bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.check-list-page__nav[data-v-83f3f9a7]{flex-shrink:0;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:16px;display:grid}.check-list-page__title[data-v-83f3f9a7]{text-align:center;margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-83f3f9a7]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.nav-btn--ghost[data-v-83f3f9a7]{visibility:hidden;pointer-events:none}.nav-btn__flip[data-v-83f3f9a7]{transform:scaleX(-1)}.check-list-page__scroll[data-v-83f3f9a7]{flex:1;min-height:0;padding-bottom:12px}.check-list-page__empty[data-v-83f3f9a7]{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.summary-cards[data-v-83f3f9a7]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.summary-card[data-v-83f3f9a7]{background:var(--color-summary-bg);border:1px solid var(--color-border);text-align:center;color:var(--color-text);border-radius:14px;padding:14px 12px}.summary-card--remain[data-v-83f3f9a7]{border-color:color-mix(in srgb, var(--color-primary) 30%, var(--color-border));background:var(--color-primary-soft);grid-column:1/-1}.summary-card--remain-ok[data-v-83f3f9a7]{border-color:color-mix(in srgb, var(--color-success) 35%, var(--color-border));background:var(--color-success-soft)}.summary-card--remain-warn[data-v-83f3f9a7]{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border));background:var(--color-danger-light)}.summary-card__label[data-v-83f3f9a7]{color:var(--color-text-muted);margin-bottom:8px;font-size:.75rem;display:block}.summary-card__value[data-v-83f3f9a7]{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.2;display:block}.summary-card__unit[data-v-83f3f9a7]{color:var(--color-text-muted);margin-top:2px;font-size:.75rem;display:block}.summary-card__status[data-v-83f3f9a7]{color:var(--color-success);justify-content:center;align-items:center;gap:4px;margin:8px 0 0;font-size:.6875rem;font-weight:600;display:flex}.summary-card__status--warn[data-v-83f3f9a7]{color:var(--color-danger)}.summary-card__hint[data-v-83f3f9a7]{color:var(--color-primary);margin:8px 0 0;font-size:.6875rem;font-weight:500}.summary-card__status-icon[data-v-83f3f9a7]{background:var(--color-success-light);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.625rem;display:inline-flex}.checks-list[data-v-83f3f9a7]{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.check-card[data-v-83f3f9a7]{background:var(--color-elevated);border:1px solid var(--color-border);color:var(--color-text);border-radius:14px;grid-template-columns:28px 1fr 72px;align-items:center;gap:10px;padding:12px;display:grid}.check-card__menu-wrap[data-v-83f3f9a7]{position:relative}.check-card__menu-btn[data-v-83f3f9a7]{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.125rem;line-height:1}.check-card__menu[data-v-83f3f9a7]{z-index:10;border-radius:var(--radius-sm);background:var(--color-elevated);border:1px solid var(--color-border);min-width:88px;box-shadow:var(--shadow-md);padding:4px;position:absolute;top:100%;right:0}.check-card__menu button[data-v-83f3f9a7]{text-align:right;width:100%;color:var(--color-danger);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:.8125rem}.check-card__menu button[data-v-83f3f9a7]:hover{background:var(--color-danger-light)}.check-card__body[data-v-83f3f9a7]{min-width:0}.check-card__title[data-v-83f3f9a7]{color:var(--color-text);margin:0 0 4px;font-size:.875rem;font-weight:700}.check-card__amount[data-v-83f3f9a7]{color:var(--color-text);margin:0 0 4px;font-size:.8125rem;font-weight:600}.check-card__date[data-v-83f3f9a7]{color:var(--color-text-muted);margin:0;font-size:.75rem}.check-card__thumb-wrap[data-v-83f3f9a7]{flex-shrink:0}.check-card__thumb[data-v-83f3f9a7]{object-fit:cover;border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;width:72px;height:48px}.check-card__thumb--empty[data-v-83f3f9a7]{color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.6875rem;display:flex}.rass-panel[data-v-83f3f9a7]{background:var(--color-success-light);border:1px solid var(--color-success);text-align:center;border-radius:14px;margin-bottom:12px;padding:16px}.rass-panel__title[data-v-83f3f9a7]{color:var(--color-success);margin:0 0 6px;font-size:.875rem;font-weight:600}.rass-panel__days[data-v-83f3f9a7]{color:var(--color-success);font-size:1.75rem;font-weight:700;line-height:1.2}.rass-panel__date[data-v-83f3f9a7]{color:var(--color-success);margin:6px 0 0;font-size:.8125rem}.check-list-page__footer[data-v-83f3f9a7]{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0));background:var(--color-bg);border-top:1px solid var(--color-border);margin:0 calc(-1 * var(--page-padding));padding-left:var(--page-padding);padding-right:var(--page-padding);flex-direction:column;flex-shrink:0;gap:10px;display:flex;box-shadow:0 -4px 16px #0f172a0f} diff --git a/dist/assets/CheckListView-C3cvQuGR.js b/dist/assets/CheckListView-C3cvQuGR.js deleted file mode 100644 index bc09816..0000000 --- a/dist/assets/CheckListView-C3cvQuGR.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,E as n,F as r,I as i,L as a,M as o,O as s,Y as c,_ as ee,bt as l,ft as u,g as te,j as d,k as f,n as p,q as m,tt as h,wt as g,xt as _}from"./BasicIcon-CjTTsi6o.js";import{n as ne,o as v,r as y,u as b}from"./format-BHJptHdF.js";import{c as re,g as ie,h as ae,n as x,t as oe}from"./index-BQQA5ZX-.js";import{t as S}from"./EmptyState-BpC5eqVE.js";import{t as C}from"./IconChevronBack-B10eZjCQ.js";import{t as se}from"./FormErrorBanner-B8THF9oG.js";import{t as ce}from"./useRequirePricedOrder-bwpoZWB1.js";var w=Object.defineProperty,T=(e,t)=>{let n={};for(var r in e)w(n,r,{get:e[r],enumerable:!0});return t||w(n,Symbol.toStringTag,{value:`Module`}),n},le={class:`check-list-page mobile-only`},ue={class:`check-list-page__nav`},de={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},fe={key:0,class:`check-list-page__empty page__scroll page__scroll--with-nav`},pe={class:`check-list-page__scroll page__scroll`},me={class:`summary-cards`},he={class:`summary-card`},ge={class:`summary-card__value`},_e={class:`summary-card`},E={class:`summary-card__value`},D={key:0,class:`summary-card__status`},O={key:1,class:`summary-card__status summary-card__status--warn`},k={class:`summary-card__value`},A={key:0,class:`summary-card__hint`},j={class:`checks-list`},M={class:`check-card__menu-wrap`},N=[`onClick`],P={key:1,class:`check-card__menu`},F=[`onClick`],I={class:`check-card__body`},ve={class:`check-card__title`},ye={class:`check-card__amount`},be={class:`check-card__date`},xe={class:`check-card__thumb-wrap`},Se=[`src`],Ce={key:1,class:`check-card__thumb check-card__thumb--empty`},we={class:`rass-panel`},Te={class:`rass-panel__days`},Ee={key:0,class:`rass-panel__date`},De={key:0,class:`check-list-page__footer`},Oe={key:0,class:`desktop-checkout-shell check-list-desktop desktop-only`},ke={class:`desktop-two-col`},Ae={class:`desktop-two-col__main`},L={class:`desktop-table-wrap`},je={class:`desktop-table-scroll`},Me={class:`desktop-table check-list-desktop__table`},Ne={key:0,scope:`col`},Pe=[`src`],Fe={key:1},Ie={class:`check-list-desktop__amount`},Le={key:0},Re=[`onClick`],ze={class:`desktop-summary-panel`},Be={class:`desktop-summary-panel__row`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={key:0,class:`desktop-summary-panel__action`},We={key:1,class:`desktop-checkout-shell desktop-only`},R=a({__name:`CheckListView`,setup(a){let p=te(),w=ee(),T=ae(),R=re(),z=u(``),B=u(!1),V=s(()=>p.name===`check-list`),{orderId:H}=ce(),U=s(()=>H.value?T.getOrderById(H.value):void 0);e(H,async e=>{if(!e||!V.value)return;let t=T.getOrderById(e)??await T.fetchOrder(e);t&&(T.draftChecks.length===0&&(t.checks?.length??0)>0?T.loadChecksIntoDraft(t):T.draftOrderId!==e&&T.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=s(()=>T.draftChecks.length>0?T.draftChecks:V.value?U.value?.checks??[]:R.user?T.userOrders(R.user.id).filter(e=>e.settlementType===`check`&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=s(()=>T.draftChecks.length>0?T.getDraftRass():ie(W.value,new Date)),K=s(()=>U.value?.finalAmount??0),q=s(()=>Math.max(0,K.value-G.value.totalAmount)),J=s(()=>K.value>0&&G.value.totalAmount>=K.value),Y=s(()=>K.value>0&&G.value.totalAmount>K.value),X=s({get:()=>p.query.menu??``,set:e=>{w.replace({query:e?{menu:e}:{}})}});function Ge(){w.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){w.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await oe({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&T.removeDraftCheck(e)}function Ke(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||T.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await T.updateOrderChecks(H.value,[...T.draftChecks],T.draftCheckMode??`brief`),w.replace(`/orders/${H.value}?track=1`)}catch(e){z.value=e instanceof Error?e.message:`ثبت چک‌ها ناموفق بود.`}finally{B.value=!1}}}return(e,a)=>(m(),o(n,null,[f(`div`,le,[f(`header`,ue,[f(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:Ge},[i(C,{size:20})]),a[1]||=f(`h1`,{class:`check-list-page__title`},`چک‌های ثبت شده`,-1),f(`button`,de,[i(C,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(m(),o(`div`,fe,[i(S,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:h(()=>[V.value?(m(),t(x,{key:0,onClick:Z},{default:h(()=>[...a[2]||=[r(`ثبت چک جدید`,-1)]]),_:1})):(m(),t(x,{key:1,variant:`outline`,onClick:a[0]||=e=>l(w).push(`/companies`)},{default:h(()=>[...a[3]||=[r(`ثبت سفارش جدید`,-1)]]),_:1}))]),_:1})])):(m(),o(n,{key:1},[f(`div`,pe,[i(se,{message:z.value},null,8,[`message`]),f(`div`,me,[f(`div`,he,[a[4]||=f(`span`,{class:`summary-card__label`},`مجموع مبلغ چک‌ها`,-1),f(`strong`,ge,g(l(v)(G.value.totalAmount)),1),a[5]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1)]),f(`div`,_e,[a[7]||=f(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),f(`strong`,E,g(l(v)(K.value)),1),a[8]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(m(),o(`p`,D,[...a[6]||=[f(`span`,{class:`summary-card__status-icon`},`✓`,-1),r(` مبلغ کامل است `,-1)]])):Y.value?(m(),o(`p`,O,` بیش از مبلغ فاکتور `)):d(``,!0)]),f(`div`,{class:_([`summary-card summary-card--remain`,{"summary-card--remain-ok":J.value&&!Y.value,"summary-card--remain-warn":Y.value}])},[a[9]||=f(`span`,{class:`summary-card__label`},`باقی‌مانده`,-1),f(`strong`,k,g(Y.value?l(v)(G.value.totalAmount-K.value):l(v)(q.value)),1),a[10]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value?d(``,!0):(m(),o(`p`,A,` هنوز باید چک ثبت کنید `))],2)]),f(`div`,j,[(m(!0),o(n,null,c(W.value,(e,t)=>(m(),o(`article`,{key:e.id,class:`check-card`},[f(`div`,M,[V.value&&l(T).draftChecks.length>0?(m(),o(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینه‌ها`,onClick:t=>Ke(e.id)},` ⋮ `,8,N)):d(``,!0),X.value===e.id?(m(),o(`div`,P,[f(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,F)])):d(``,!0)]),f(`div`,I,[f(`h3`,ve,`چک `+g(l(b)(String(t+1))),1),f(`p`,ye,g(l(ne)(e.amount)),1),f(`p`,be,`تاریخ: `+g(l(y)(e.dueDate)),1)]),f(`div`,xe,[e.frontImage?(m(),o(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Se)):(m(),o(`div`,Ce,`چک`))])]))),128))]),f(`div`,we,[a[11]||=f(`h3`,{class:`rass-panel__title`},`رأس چک‌ها`,-1),f(`div`,Te,g(l(b)(String(G.value.rassDays)))+` روز`,1),G.value.rassDate?(m(),o(`p`,Ee,` تاریخ رأس تقریبی: `+g(l(y)(G.value.rassDate)),1)):d(``,!0)])]),V.value&&l(T).draftChecks.length>0?(m(),o(`div`,De,[i(x,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:h(()=>[...a[12]||=[r(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),i(x,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:h(()=>[...a[13]||=[r(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):d(``,!0)],64))]),W.value.length>0?(m(),o(`div`,Oe,[a[26]||=f(`header`,{class:`desktop-page__head`},[f(`h1`,{class:`desktop-page__title`},`چک‌های ثبت شده`),f(`p`,{class:`desktop-page__subtitle`},`خلاصه و فهرست چک‌های ثبت‌شده`)],-1),f(`div`,ke,[f(`div`,Ae,[f(`div`,L,[f(`div`,je,[f(`table`,Me,[f(`thead`,null,[f(`tr`,null,[a[14]||=f(`th`,{scope:`col`},`تصویر`,-1),a[15]||=f(`th`,{scope:`col`},`مبلغ (تومان)`,-1),a[16]||=f(`th`,{scope:`col`},`تاریخ سررسید`,-1),a[17]||=f(`th`,{scope:`col`},`شناسه`,-1),V.value?(m(),o(`th`,Ne,`عملیات`)):d(``,!0)])]),f(`tbody`,null,[(m(!0),o(n,null,c(W.value,(e,t)=>(m(),o(`tr`,{key:e.id},[f(`td`,null,[e.frontImage?(m(),o(`img`,{key:0,src:e.frontImage,class:`check-list-desktop__thumb`,alt:`تصویر چک`},null,8,Pe)):(m(),o(`span`,Fe,`—`))]),f(`td`,Ie,g(l(v)(e.amount)),1),f(`td`,null,g(l(y)(e.dueDate)),1),f(`td`,null,`چک `+g(l(b)(String(t+1))),1),V.value&&l(T).draftChecks.length>0?(m(),o(`td`,Le,[f(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,Re)])):d(``,!0)]))),128))])])])]),V.value?(m(),t(x,{key:0,variant:`outline`,class:`desktop-btn-compact check-list-desktop__add`,onClick:Z},{default:h(()=>[...a[18]||=[r(` ثبت چک دیگر `,-1)]]),_:1})):d(``,!0)]),f(`aside`,ze,[a[25]||=f(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),f(`div`,Be,[a[19]||=f(`span`,null,`مجموع چک‌ها`,-1),f(`strong`,null,g(l(v)(G.value.totalAmount))+` تومان`,1)]),f(`div`,Ve,[a[20]||=f(`span`,null,`مبلغ فاکتور`,-1),f(`strong`,null,g(l(v)(K.value))+` تومان`,1)]),f(`div`,{class:_([`desktop-summary-panel__row desktop-summary-panel__row--remain`,{"desktop-summary-panel__row--ok":J.value&&!Y.value,"desktop-summary-panel__row--warn":Y.value}])},[a[21]||=f(`span`,null,`باقی‌مانده`,-1),f(`strong`,null,g(Y.value?`${l(v)(G.value.totalAmount-K.value)} بیش از فاکتور`:J.value?`پوشش کامل`:`${l(v)(q.value)} تومان`),1)],2),f(`div`,He,[a[22]||=f(`span`,null,`رأس چک‌ها`,-1),f(`strong`,null,g(l(b)(String(G.value.rassDays)))+` روز`,1)]),V.value&&l(T).draftChecks.length>0?(m(),o(`div`,Ue,[i(x,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:h(()=>[...a[23]||=[r(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),i(x,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:h(()=>[...a[24]||=[r(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):d(``,!0)])])])):(m(),o(`div`,We,[i(S,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:h(()=>[V.value?(m(),t(x,{key:0,onClick:Z},{default:h(()=>[...a[27]||=[r(`ثبت چک جدید`,-1)]]),_:1})):d(``,!0)]),_:1})]))],64))}}),z=T({default:()=>B}),B=p(R,[[`__scopeId`,`data-v-c856ecad`]]);export{z as n,B as t}; \ No newline at end of file diff --git a/dist/assets/CheckListView-DDLtEQn_.css b/dist/assets/CheckListView-DDLtEQn_.css deleted file mode 100644 index 2b14b50..0000000 --- a/dist/assets/CheckListView-DDLtEQn_.css +++ /dev/null @@ -1 +0,0 @@ -.check-list-desktop__thumb[data-v-c856ecad]{object-fit:cover;border-radius:4px;width:48px;height:32px;display:block}.check-list-desktop__amount[data-v-c856ecad]{font-variant-numeric:tabular-nums;white-space:nowrap}.check-list-desktop__table[data-v-c856ecad]{min-width:560px}.check-list-desktop__add[data-v-c856ecad]{margin-top:16px}@media (width>=768px) and (width<=1099px){.check-list-desktop[data-v-c856ecad] .desktop-two-col{grid-template-columns:1fr}.check-list-desktop[data-v-c856ecad] .desktop-summary-panel{position:static}}.desktop-summary-panel__action[data-v-c856ecad]{flex-direction:column;gap:10px;display:flex}.desktop-summary-panel__row--remain strong[data-v-c856ecad]{color:var(--color-primary)}.desktop-summary-panel__row--ok strong[data-v-c856ecad]{color:var(--color-success)}.desktop-summary-panel__row--warn strong[data-v-c856ecad]{color:var(--color-danger)}.check-list-page[data-v-c856ecad]{height:100%;min-height:0;padding:12px var(--page-padding) 0;background:var(--color-bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.check-list-page__nav[data-v-c856ecad]{flex-shrink:0;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:16px;display:grid}.check-list-page__title[data-v-c856ecad]{text-align:center;margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-c856ecad]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.nav-btn--ghost[data-v-c856ecad]{visibility:hidden;pointer-events:none}.nav-btn__flip[data-v-c856ecad]{transform:scaleX(-1)}.check-list-page__scroll[data-v-c856ecad]{flex:1;min-height:0;padding-bottom:12px}.check-list-page__empty[data-v-c856ecad]{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.summary-cards[data-v-c856ecad]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.summary-card[data-v-c856ecad]{background:var(--color-summary-bg);border:1px solid var(--color-border);text-align:center;color:var(--color-text);border-radius:14px;padding:14px 12px}.summary-card--remain[data-v-c856ecad]{border-color:color-mix(in srgb, var(--color-primary) 30%, var(--color-border));background:var(--color-primary-soft);grid-column:1/-1}.summary-card--remain-ok[data-v-c856ecad]{border-color:color-mix(in srgb, var(--color-success) 35%, var(--color-border));background:var(--color-success-soft)}.summary-card--remain-warn[data-v-c856ecad]{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border));background:var(--color-danger-light)}.summary-card__label[data-v-c856ecad]{color:var(--color-text-muted);margin-bottom:8px;font-size:.75rem;display:block}.summary-card__value[data-v-c856ecad]{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.2;display:block}.summary-card__unit[data-v-c856ecad]{color:var(--color-text-muted);margin-top:2px;font-size:.75rem;display:block}.summary-card__status[data-v-c856ecad]{color:var(--color-success);justify-content:center;align-items:center;gap:4px;margin:8px 0 0;font-size:.6875rem;font-weight:600;display:flex}.summary-card__status--warn[data-v-c856ecad]{color:var(--color-danger)}.summary-card__hint[data-v-c856ecad]{color:var(--color-primary);margin:8px 0 0;font-size:.6875rem;font-weight:500}.summary-card__status-icon[data-v-c856ecad]{background:var(--color-success-light);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.625rem;display:inline-flex}.checks-list[data-v-c856ecad]{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.check-card[data-v-c856ecad]{background:var(--color-elevated);border:1px solid var(--color-border);color:var(--color-text);border-radius:14px;grid-template-columns:28px 1fr 72px;align-items:center;gap:10px;padding:12px;display:grid}.check-card__menu-wrap[data-v-c856ecad]{position:relative}.check-card__menu-btn[data-v-c856ecad]{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.125rem;line-height:1}.check-card__menu[data-v-c856ecad]{z-index:10;border-radius:var(--radius-sm);background:var(--color-elevated);border:1px solid var(--color-border);min-width:88px;box-shadow:var(--shadow-md);padding:4px;position:absolute;top:100%;right:0}.check-card__menu button[data-v-c856ecad]{text-align:right;width:100%;color:var(--color-danger);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:.8125rem}.check-card__menu button[data-v-c856ecad]:hover{background:var(--color-danger-light)}.check-card__body[data-v-c856ecad]{min-width:0}.check-card__title[data-v-c856ecad]{color:var(--color-text);margin:0 0 4px;font-size:.875rem;font-weight:700}.check-card__amount[data-v-c856ecad]{color:var(--color-text);margin:0 0 4px;font-size:.8125rem;font-weight:600}.check-card__date[data-v-c856ecad]{color:var(--color-text-muted);margin:0;font-size:.75rem}.check-card__thumb-wrap[data-v-c856ecad]{flex-shrink:0}.check-card__thumb[data-v-c856ecad]{object-fit:cover;border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;width:72px;height:48px}.check-card__thumb--empty[data-v-c856ecad]{color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.6875rem;display:flex}.rass-panel[data-v-c856ecad]{background:var(--color-success-light);border:1px solid var(--color-success);text-align:center;border-radius:14px;margin-bottom:12px;padding:16px}.rass-panel__title[data-v-c856ecad]{color:var(--color-success);margin:0 0 6px;font-size:.875rem;font-weight:600}.rass-panel__days[data-v-c856ecad]{color:var(--color-success);font-size:1.75rem;font-weight:700;line-height:1.2}.rass-panel__date[data-v-c856ecad]{color:var(--color-success);margin:6px 0 0;font-size:.8125rem}.check-list-page__footer[data-v-c856ecad]{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0));background:var(--color-bg);border-top:1px solid var(--color-border);margin:0 calc(-1 * var(--page-padding));padding-left:var(--page-padding);padding-right:var(--page-padding);flex-direction:column;flex-shrink:0;gap:10px;display:flex;box-shadow:0 -4px 16px #0f172a0f} diff --git a/dist/assets/CheckListView-RTeRZSX_.js b/dist/assets/CheckListView-RTeRZSX_.js new file mode 100644 index 0000000..62104b8 --- /dev/null +++ b/dist/assets/CheckListView-RTeRZSX_.js @@ -0,0 +1 @@ +import{$ as e,A as t,E as n,F as r,I as i,L as a,M as o,O as s,Y as c,_ as ee,bt as l,ft as u,g as te,j as d,k as f,n as p,q as m,tt as h,wt as g,xt as _}from"./BasicIcon-CjTTsi6o.js";import{n as ne,o as v,r as y,u as b}from"./format-BHJptHdF.js";import{c as re,g as ie,h as ae,n as x,t as oe}from"./index-D3Z8WOeX.js";import{t as S}from"./EmptyState-BpC5eqVE.js";import{t as C}from"./IconChevronBack-B10eZjCQ.js";import{t as se}from"./FormErrorBanner-B8THF9oG.js";import{t as ce}from"./useRequirePricedOrder-a2bgwmwB.js";var w=Object.defineProperty,T=(e,t)=>{let n={};for(var r in e)w(n,r,{get:e[r],enumerable:!0});return t||w(n,Symbol.toStringTag,{value:`Module`}),n},le={class:`check-list-page mobile-only`},ue={class:`check-list-page__nav`},de={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},fe={key:0,class:`check-list-page__empty page__scroll page__scroll--with-nav`},pe={class:`check-list-page__scroll page__scroll`},me={class:`summary-cards`},he={class:`summary-card`},ge={class:`summary-card__value`},_e={class:`summary-card`},E={class:`summary-card__value`},D={key:0,class:`summary-card__status`},O={key:1,class:`summary-card__status summary-card__status--warn`},k={class:`summary-card__value`},A={key:0,class:`summary-card__hint`},j={class:`checks-list`},M={class:`check-card__menu-wrap`},N=[`onClick`],P={key:1,class:`check-card__menu`},F=[`onClick`],I={class:`check-card__body`},ve={class:`check-card__title`},ye={class:`check-card__amount`},be={class:`check-card__date`},xe={class:`check-card__thumb-wrap`},Se=[`src`],Ce={key:1,class:`check-card__thumb check-card__thumb--empty`},we={class:`rass-panel`},Te={class:`rass-panel__days`},Ee={key:0,class:`rass-panel__date`},De={key:0,class:`check-list-page__footer`},Oe={key:0,class:`desktop-checkout-shell check-list-desktop desktop-only`},ke={class:`desktop-two-col`},Ae={class:`desktop-two-col__main`},L={class:`desktop-table-wrap`},je={class:`desktop-table-scroll`},Me={class:`desktop-table check-list-desktop__table`},Ne={key:0,scope:`col`},Pe=[`src`],Fe={key:1},Ie={class:`check-list-desktop__amount`},Le={key:0},Re=[`onClick`],ze={class:`desktop-summary-panel`},Be={class:`desktop-summary-panel__row`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={key:0,class:`desktop-summary-panel__action`},We={key:1,class:`desktop-checkout-shell desktop-only`},R=a({__name:`CheckListView`,setup(a){let p=te(),w=ee(),T=ae(),R=re(),z=u(``),B=u(!1),V=s(()=>p.name===`check-list`),{orderId:H}=ce(),U=s(()=>H.value?T.getOrderById(H.value):void 0);e(H,async e=>{if(!e||!V.value)return;let t=T.getOrderById(e)??await T.fetchOrder(e);t&&(T.draftChecks.length===0&&(t.checks?.length??0)>0?T.loadChecksIntoDraft(t):T.draftOrderId!==e&&T.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=s(()=>T.draftChecks.length>0?T.draftChecks:V.value?U.value?.checks??[]:R.user?T.userOrders(R.user.id).filter(e=>e.settlementType===`check`&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=s(()=>T.draftChecks.length>0?T.getDraftRass():ie(W.value,new Date)),K=s(()=>U.value?.finalAmount??0),q=s(()=>Math.max(0,K.value-G.value.totalAmount)),J=s(()=>K.value>0&&G.value.totalAmount>=K.value),Y=s(()=>K.value>0&&G.value.totalAmount>K.value),X=s({get:()=>p.query.menu??``,set:e=>{w.replace({query:e?{menu:e}:{}})}});function Ge(){w.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){w.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await oe({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&T.removeDraftCheck(e)}function Ke(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||T.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await T.updateOrderChecks(H.value,[...T.draftChecks],T.draftCheckMode??`brief`),w.replace(`/orders/${H.value}?track=1`)}catch(e){z.value=e instanceof Error?e.message:`ثبت چک‌ها ناموفق بود.`}finally{B.value=!1}}}return(e,a)=>(m(),o(n,null,[f(`div`,le,[f(`header`,ue,[f(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:Ge},[i(C,{size:20})]),a[1]||=f(`h1`,{class:`check-list-page__title`},`چک‌های ثبت شده`,-1),f(`button`,de,[i(C,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(m(),o(`div`,fe,[i(S,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:h(()=>[V.value?(m(),t(x,{key:0,onClick:Z},{default:h(()=>[...a[2]||=[r(`ثبت چک جدید`,-1)]]),_:1})):(m(),t(x,{key:1,variant:`outline`,onClick:a[0]||=e=>l(w).push(`/categories`)},{default:h(()=>[...a[3]||=[r(`ثبت سفارش جدید`,-1)]]),_:1}))]),_:1})])):(m(),o(n,{key:1},[f(`div`,pe,[i(se,{message:z.value},null,8,[`message`]),f(`div`,me,[f(`div`,he,[a[4]||=f(`span`,{class:`summary-card__label`},`مجموع مبلغ چک‌ها`,-1),f(`strong`,ge,g(l(v)(G.value.totalAmount)),1),a[5]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1)]),f(`div`,_e,[a[7]||=f(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),f(`strong`,E,g(l(v)(K.value)),1),a[8]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(m(),o(`p`,D,[...a[6]||=[f(`span`,{class:`summary-card__status-icon`},`✓`,-1),r(` مبلغ کامل است `,-1)]])):Y.value?(m(),o(`p`,O,` بیش از مبلغ فاکتور `)):d(``,!0)]),f(`div`,{class:_([`summary-card summary-card--remain`,{"summary-card--remain-ok":J.value&&!Y.value,"summary-card--remain-warn":Y.value}])},[a[9]||=f(`span`,{class:`summary-card__label`},`باقی‌مانده`,-1),f(`strong`,k,g(Y.value?l(v)(G.value.totalAmount-K.value):l(v)(q.value)),1),a[10]||=f(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value?d(``,!0):(m(),o(`p`,A,` هنوز باید چک ثبت کنید `))],2)]),f(`div`,j,[(m(!0),o(n,null,c(W.value,(e,t)=>(m(),o(`article`,{key:e.id,class:`check-card`},[f(`div`,M,[V.value&&l(T).draftChecks.length>0?(m(),o(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینه‌ها`,onClick:t=>Ke(e.id)},` ⋮ `,8,N)):d(``,!0),X.value===e.id?(m(),o(`div`,P,[f(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,F)])):d(``,!0)]),f(`div`,I,[f(`h3`,ve,`چک `+g(l(b)(String(t+1))),1),f(`p`,ye,g(l(ne)(e.amount)),1),f(`p`,be,`تاریخ: `+g(l(y)(e.dueDate)),1)]),f(`div`,xe,[e.frontImage?(m(),o(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Se)):(m(),o(`div`,Ce,`چک`))])]))),128))]),f(`div`,we,[a[11]||=f(`h3`,{class:`rass-panel__title`},`رأس چک‌ها`,-1),f(`div`,Te,g(l(b)(String(G.value.rassDays)))+` روز`,1),G.value.rassDate?(m(),o(`p`,Ee,` تاریخ رأس تقریبی: `+g(l(y)(G.value.rassDate)),1)):d(``,!0)])]),V.value&&l(T).draftChecks.length>0?(m(),o(`div`,De,[i(x,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:h(()=>[...a[12]||=[r(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),i(x,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:h(()=>[...a[13]||=[r(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):d(``,!0)],64))]),W.value.length>0?(m(),o(`div`,Oe,[a[26]||=f(`header`,{class:`desktop-page__head`},[f(`h1`,{class:`desktop-page__title`},`چک‌های ثبت شده`),f(`p`,{class:`desktop-page__subtitle`},`خلاصه و فهرست چک‌های ثبت‌شده`)],-1),f(`div`,ke,[f(`div`,Ae,[f(`div`,L,[f(`div`,je,[f(`table`,Me,[f(`thead`,null,[f(`tr`,null,[a[14]||=f(`th`,{scope:`col`},`تصویر`,-1),a[15]||=f(`th`,{scope:`col`},`مبلغ (تومان)`,-1),a[16]||=f(`th`,{scope:`col`},`تاریخ سررسید`,-1),a[17]||=f(`th`,{scope:`col`},`شناسه`,-1),V.value?(m(),o(`th`,Ne,`عملیات`)):d(``,!0)])]),f(`tbody`,null,[(m(!0),o(n,null,c(W.value,(e,t)=>(m(),o(`tr`,{key:e.id},[f(`td`,null,[e.frontImage?(m(),o(`img`,{key:0,src:e.frontImage,class:`check-list-desktop__thumb`,alt:`تصویر چک`},null,8,Pe)):(m(),o(`span`,Fe,`—`))]),f(`td`,Ie,g(l(v)(e.amount)),1),f(`td`,null,g(l(y)(e.dueDate)),1),f(`td`,null,`چک `+g(l(b)(String(t+1))),1),V.value&&l(T).draftChecks.length>0?(m(),o(`td`,Le,[f(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,Re)])):d(``,!0)]))),128))])])])]),V.value?(m(),t(x,{key:0,variant:`outline`,class:`desktop-btn-compact check-list-desktop__add`,onClick:Z},{default:h(()=>[...a[18]||=[r(` ثبت چک دیگر `,-1)]]),_:1})):d(``,!0)]),f(`aside`,ze,[a[25]||=f(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),f(`div`,Be,[a[19]||=f(`span`,null,`مجموع چک‌ها`,-1),f(`strong`,null,g(l(v)(G.value.totalAmount))+` تومان`,1)]),f(`div`,Ve,[a[20]||=f(`span`,null,`مبلغ فاکتور`,-1),f(`strong`,null,g(l(v)(K.value))+` تومان`,1)]),f(`div`,{class:_([`desktop-summary-panel__row desktop-summary-panel__row--remain`,{"desktop-summary-panel__row--ok":J.value&&!Y.value,"desktop-summary-panel__row--warn":Y.value}])},[a[21]||=f(`span`,null,`باقی‌مانده`,-1),f(`strong`,null,g(Y.value?`${l(v)(G.value.totalAmount-K.value)} بیش از فاکتور`:J.value?`پوشش کامل`:`${l(v)(q.value)} تومان`),1)],2),f(`div`,He,[a[22]||=f(`span`,null,`رأس چک‌ها`,-1),f(`strong`,null,g(l(b)(String(G.value.rassDays)))+` روز`,1)]),V.value&&l(T).draftChecks.length>0?(m(),o(`div`,Ue,[i(x,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:h(()=>[...a[23]||=[r(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),i(x,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:h(()=>[...a[24]||=[r(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):d(``,!0)])])])):(m(),o(`div`,We,[i(S,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:h(()=>[V.value?(m(),t(x,{key:0,onClick:Z},{default:h(()=>[...a[27]||=[r(`ثبت چک جدید`,-1)]]),_:1})):d(``,!0)]),_:1})]))],64))}}),z=T({default:()=>B}),B=p(R,[[`__scopeId`,`data-v-83f3f9a7`]]);export{z as n,B as t}; \ No newline at end of file diff --git a/dist/assets/CheckModeSelectView-BpHuwbJg.js b/dist/assets/CheckModeSelectView-DpttebVb.js similarity index 86% rename from dist/assets/CheckModeSelectView-BpHuwbJg.js rename to dist/assets/CheckModeSelectView-DpttebVb.js index d5cd530..84a3e84 100644 --- a/dist/assets/CheckModeSelectView-BpHuwbJg.js +++ b/dist/assets/CheckModeSelectView-DpttebVb.js @@ -1 +1 @@ -import{$ as e,I as t,L as n,M as r,O as i,_ as a,bt as o,k as s,n as c,q as l,wt as u}from"./BasicIcon-CjTTsi6o.js";import{n as d}from"./format-BHJptHdF.js";import{h as f,y as p}from"./index-BQQA5ZX-.js";import{t as m}from"./IconEditPen-CUhGotGH.js";import{t as h}from"./PageHeader-WFa4BbgN.js";import{t as g}from"./useRequirePricedOrder-bwpoZWB1.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=c(n({__name:`CheckModeSelectView`,setup(n){let c=a(),w=f(),{orderId:T,order:E}=g(),D=i(()=>E.value?.finalAmount?d(E.value.finalAmount):`—`);e(T,async e=>{e&&(w.getOrderById(e)||await w.fetchOrder(e),w.draftOrderId!==e&&w.startCheckDraft(e))},{immediate:!0});function O(e){w.setCheckMode(e),c.push(`/orders/${T.value}/check-form`)}return(e,n)=>(l(),r(`div`,_,[t(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:n[0]||=e=>o(c).push(`/orders/${o(T)}`)}),s(`div`,v,[s(`div`,y,[n[3]||=s(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),s(`strong`,b,u(D.value),1)]),s(`div`,x,[s(`button`,{type:`button`,class:`mode-card`,onClick:n[1]||=e=>O(`full`)},[s(`span`,S,[t(p,{size:36})]),n[4]||=s(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),n[5]||=s(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),s(`button`,{type:`button`,class:`mode-card`,onClick:n[2]||=e=>O(`brief`)},[s(`span`,C,[t(m,{size:36})]),n[6]||=s(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),n[7]||=s(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default}; \ No newline at end of file +import{$ as e,I as t,L as n,M as r,O as i,_ as a,bt as o,k as s,n as c,q as l,wt as u}from"./BasicIcon-CjTTsi6o.js";import{n as d}from"./format-BHJptHdF.js";import{h as f,y as p}from"./index-D3Z8WOeX.js";import{t as m}from"./IconEditPen-CUhGotGH.js";import{t as h}from"./PageHeader-B47bvmJV.js";import{t as g}from"./useRequirePricedOrder-a2bgwmwB.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=c(n({__name:`CheckModeSelectView`,setup(n){let c=a(),w=f(),{orderId:T,order:E}=g(),D=i(()=>E.value?.finalAmount?d(E.value.finalAmount):`—`);e(T,async e=>{e&&(w.getOrderById(e)||await w.fetchOrder(e),w.draftOrderId!==e&&w.startCheckDraft(e))},{immediate:!0});function O(e){w.setCheckMode(e),c.push(`/orders/${T.value}/check-form`)}return(e,n)=>(l(),r(`div`,_,[t(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:n[0]||=e=>o(c).push(`/orders/${o(T)}`)}),s(`div`,v,[s(`div`,y,[n[3]||=s(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),s(`strong`,b,u(D.value),1)]),s(`div`,x,[s(`button`,{type:`button`,class:`mode-card`,onClick:n[1]||=e=>O(`full`)},[s(`span`,S,[t(p,{size:36})]),n[4]||=s(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),n[5]||=s(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),s(`button`,{type:`button`,class:`mode-card`,onClick:n[2]||=e=>O(`brief`)},[s(`span`,C,[t(m,{size:36})]),n[6]||=s(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),n[7]||=s(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default}; \ No newline at end of file diff --git a/dist/assets/CompanySelectView-liyb-0yE.js b/dist/assets/CompanySelectView-CyQjKzR7.js similarity index 99% rename from dist/assets/CompanySelectView-liyb-0yE.js rename to dist/assets/CompanySelectView-CyQjKzR7.js index e2e48b5..56d241c 100644 --- a/dist/assets/CompanySelectView-liyb-0yE.js +++ b/dist/assets/CompanySelectView-CyQjKzR7.js @@ -1 +1 @@ -import{A as e,E as t,G as n,I as r,L as i,M as a,O as o,P as s,Q as c,Y as l,_ as u,bt as d,ft as f,j as p,k as m,n as h,q as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{t as y}from"./catalog-Dd554brK.js";import{C as b,S as x,T as S,b as ee,o as C,w as te}from"./index-BQQA5ZX-.js";import{t as w}from"./IconChevronBack-B10eZjCQ.js";import{n as T,t as E}from"./IconFamBaftLogo-DC-RbvIL.js";import{t as D}from"./IconBuilding-BTmZv_WO.js";import{t as O}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as k}from"./PageSkeleton-CyATkHE1.js";import{t as A}from"./IconShoppingBag-B7WsCtZ4.js";import{t as j}from"./useGoBack-D3aJ73Q-.js";var M={class:`company-mobile-page`},N={class:`company-mobile-page__header`},P={class:`company-mobile-page__nav`},F={class:`company-mobile-page__list`},I=[`onClick`],L={class:`company-brand-card__logo`},R={class:`company-brand-card__name`},z={class:`company-brand-card__desc`},B=h(i({__name:`MobileCompanySelect`,props:{companies:{},cardVariant:{type:Function},companyDescription:{type:Function},companyLogo:{type:Function}},emits:[`select`,`back`],setup(n){return(i,o)=>(g(),a(`div`,M,[m(`header`,N,[m(`div`,P,[m(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:o[0]||=e=>i.$emit(`back`)},[r(w,{size:20})]),o[1]||=m(`h1`,{class:`company-mobile-page__title`},`انتخاب شرکت`,-1),o[2]||=m(`span`,{class:`nav-btn nav-btn--spacer`,"aria-hidden":`true`},null,-1)]),o[3]||=m(`p`,{class:`company-mobile-page__subtitle`},`شرکت مورد نظر خود را انتخاب کنید`,-1)]),m(`div`,F,[(g(!0),a(t,null,l(n.companies,t=>(g(),a(`button`,{key:t.id,type:`button`,class:v([`company-brand-card`,`company-brand-card--${n.cardVariant(t.slug)}`]),onClick:e=>i.$emit(`select`,t.id)},[m(`span`,L,[(g(),e(c(n.companyLogo(t.slug)),{size:72}))]),m(`h2`,R,_(t.name),1),m(`p`,z,_(n.companyDescription(t)),1)],10,I))),128))])]))}}),[[`__scopeId`,`data-v-4a6c95ce`]]),V={class:`desktop-page home-dashboard`},H={class:`welcome-banner`,"aria-label":`خوش‌آمدگویی`},U={class:`welcome-banner__icon`,"aria-hidden":`true`},W={class:`home-dashboard__companies`},ne={class:`company-showcase__body`},G={class:`company-showcase__logo`},K={class:`company-showcase__name`},q={class:`company-showcase__desc`},J=[`onClick`],Y={class:`home-dashboard__bottom`},X={class:`home-panel home-panel--quick`},Z={class:`quick-access`},re=[`onClick`],ie={class:`quick-access__label`},ae={class:`home-panel home-panel--steps`},oe={class:`order-steps`},se={class:`order-step__dot`},Q={class:`order-step__icon`},ce={class:`order-step__label`},le={key:0,class:`order-step-bridge`,"aria-hidden":`true`},$=1,ue=h(i({__name:`DesktopHomeDashboard`,props:{companies:{},cardVariant:{type:Function},companyDescription:{type:Function},companyLogo:{type:Function}},emits:[`select`],setup(n,{emit:i}){let f=n,h=i,y=u(),S=o(()=>[...f.companies].sort((e,t)=>e.slug===`fam-baft`?-1:+(t.slug===`fam-baft`))),w=[{label:`انتخاب شرکت`,icon:te,path:`/`,tone:`orange`},{label:`سفارش‌گذاری`,icon:ee,path:`/`,tone:`blue`},{label:`سبد خرید`,icon:b,path:`/cart`,tone:`green`},{label:`سفارش‌های من`,icon:x,path:`/orders`,tone:`purple`}],T=[{id:1,label:`انتخاب شرکت`,icon:D,active:!0},{id:2,label:`انتخاب کالیته`,icon:O,active:!1},{id:3,label:`ثبت سفارش`,icon:x,active:!1}];return(i,o)=>(g(),a(`div`,V,[o[5]||=m(`header`,{class:`home-dashboard__head`},[m(`h1`,{class:`home-dashboard__title`},`انتخاب شرکت`),m(`p`,{class:`home-dashboard__subtitle`},`شرکت موردنظر خود را برای شروع سفارش‌گذاری انتخاب کنید`)],-1),m(`section`,H,[o[0]||=s(`

به پارس بافت خوش آمدید

برای شروع سفارش، ابتدا شرکت موردنظر را انتخاب کنید و سپس کالیته و محصولات را اضافه کنید.

`,2),m(`div`,U,[r(A,{size:26})])]),m(`div`,W,[(g(!0),a(t,null,l(S.value,t=>(g(),a(`article`,{key:t.id,class:v([`company-showcase`,`company-showcase--${n.cardVariant(t.slug)}`])},[o[2]||=m(`div`,{class:`company-showcase__pattern`,"aria-hidden":`true`},null,-1),m(`div`,ne,[m(`span`,G,[(g(),e(c(n.companyLogo(t.slug)),{size:72}))]),m(`h3`,K,_(t.name),1),m(`p`,q,_(n.companyDescription(t)),1),m(`button`,{type:`button`,class:`company-showcase__cta`,onClick:e=>h(`select`,t.id)},[o[1]||=m(`span`,{class:`company-showcase__cta-text`},`ورود به کاتالوگ‌ها`,-1),r(C,{size:16,class:`company-showcase__cta-icon`,"aria-hidden":`true`})],8,J)])],2))),128))]),m(`div`,Y,[m(`section`,X,[o[3]||=m(`h3`,{class:`home-panel__title`},`دسترسی سریع`,-1),m(`div`,Z,[(g(),a(t,null,l(w,t=>m(`button`,{key:t.label,type:`button`,class:`quick-access__item`,onClick:e=>d(y).push(t.path)},[m(`span`,{class:v([`quick-access__icon`,`quick-access__icon--${t.tone}`])},[(g(),e(c(t.icon),{size:22}))],2),m(`span`,ie,_(t.label),1)],8,re)),64))])]),m(`section`,ae,[o[4]||=m(`h3`,{class:`home-panel__title`},`مراحل ثبت سفارش`,-1),m(`ol`,oe,[(g(),a(t,null,l(T,(n,r)=>(g(),a(t,{key:n.id},[m(`li`,{class:v([`order-step`,{"order-step--active":n.id===$}])},[m(`span`,se,_(n.id),1),m(`span`,Q,[(g(),e(c(n.icon),{size:18}))]),m(`span`,ce,_(n.label),1)],2),rc.getActiveCompanies()),h={par:{description:`تولید و عرضه انواع پارچه`,logo:T},"fam-baft":{description:`تولید و عرضه انواع پارچه`,logo:E}};n(async()=>{await c.loadCompanies(),p.value=!1});function _(e){let t=c.getCompany(e);t&&(l.selectCompany(t),i.push(`/companies/${e}/catalogs`))}function v(e){return e===`par`?`par`:`fam-baft`}function b(e){return h[e.slug]?.description??e.description}function x(e){return h[e]?.logo??T}return(e,n)=>p.value?(g(),a(`div`,de,[r(k,{variant:`cards`})])):(g(),a(t,{key:1},[r(B,{class:`mobile-only`,companies:m.value,"card-variant":v,"company-description":b,"company-logo":x,onSelect:_,onBack:d(s)},null,8,[`companies`,`onBack`]),r(ue,{class:`desktop-only`,companies:m.value,"card-variant":v,"company-description":b,"company-logo":x,onSelect:_},null,8,[`companies`])],64))}});export{fe as default}; \ No newline at end of file +import{A as e,E as t,G as n,I as r,L as i,M as a,O as o,P as s,Q as c,Y as l,_ as u,bt as d,ft as f,j as p,k as m,n as h,q as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{t as y}from"./catalog-Dd554brK.js";import{C as b,S as x,T as S,b as ee,o as C,w as te}from"./index-D3Z8WOeX.js";import{t as w}from"./IconChevronBack-B10eZjCQ.js";import{n as T,t as E}from"./IconFamBaftLogo-DC-RbvIL.js";import{t as D}from"./IconBuilding-BTmZv_WO.js";import{t as O}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as k}from"./PageSkeleton-CyATkHE1.js";import{t as A}from"./IconShoppingBag-B7WsCtZ4.js";import{t as j}from"./useGoBack-D3aJ73Q-.js";var M={class:`company-mobile-page`},N={class:`company-mobile-page__header`},P={class:`company-mobile-page__nav`},F={class:`company-mobile-page__list`},I=[`onClick`],L={class:`company-brand-card__logo`},R={class:`company-brand-card__name`},z={class:`company-brand-card__desc`},B=h(i({__name:`MobileCompanySelect`,props:{companies:{},cardVariant:{type:Function},companyDescription:{type:Function},companyLogo:{type:Function}},emits:[`select`,`back`],setup(n){return(i,o)=>(g(),a(`div`,M,[m(`header`,N,[m(`div`,P,[m(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:o[0]||=e=>i.$emit(`back`)},[r(w,{size:20})]),o[1]||=m(`h1`,{class:`company-mobile-page__title`},`انتخاب شرکت`,-1),o[2]||=m(`span`,{class:`nav-btn nav-btn--spacer`,"aria-hidden":`true`},null,-1)]),o[3]||=m(`p`,{class:`company-mobile-page__subtitle`},`شرکت مورد نظر خود را انتخاب کنید`,-1)]),m(`div`,F,[(g(!0),a(t,null,l(n.companies,t=>(g(),a(`button`,{key:t.id,type:`button`,class:v([`company-brand-card`,`company-brand-card--${n.cardVariant(t.slug)}`]),onClick:e=>i.$emit(`select`,t.id)},[m(`span`,L,[(g(),e(c(n.companyLogo(t.slug)),{size:72}))]),m(`h2`,R,_(t.name),1),m(`p`,z,_(n.companyDescription(t)),1)],10,I))),128))])]))}}),[[`__scopeId`,`data-v-4a6c95ce`]]),V={class:`desktop-page home-dashboard`},H={class:`welcome-banner`,"aria-label":`خوش‌آمدگویی`},U={class:`welcome-banner__icon`,"aria-hidden":`true`},W={class:`home-dashboard__companies`},ne={class:`company-showcase__body`},G={class:`company-showcase__logo`},K={class:`company-showcase__name`},q={class:`company-showcase__desc`},J=[`onClick`],Y={class:`home-dashboard__bottom`},X={class:`home-panel home-panel--quick`},Z={class:`quick-access`},re=[`onClick`],ie={class:`quick-access__label`},ae={class:`home-panel home-panel--steps`},oe={class:`order-steps`},se={class:`order-step__dot`},Q={class:`order-step__icon`},ce={class:`order-step__label`},le={key:0,class:`order-step-bridge`,"aria-hidden":`true`},$=1,ue=h(i({__name:`DesktopHomeDashboard`,props:{companies:{},cardVariant:{type:Function},companyDescription:{type:Function},companyLogo:{type:Function}},emits:[`select`],setup(n,{emit:i}){let f=n,h=i,y=u(),S=o(()=>[...f.companies].sort((e,t)=>e.slug===`fam-baft`?-1:+(t.slug===`fam-baft`))),w=[{label:`انتخاب شرکت`,icon:te,path:`/`,tone:`orange`},{label:`سفارش‌گذاری`,icon:ee,path:`/`,tone:`blue`},{label:`سبد خرید`,icon:b,path:`/cart`,tone:`green`},{label:`سفارش‌های من`,icon:x,path:`/orders`,tone:`purple`}],T=[{id:1,label:`انتخاب شرکت`,icon:D,active:!0},{id:2,label:`انتخاب کالیته`,icon:O,active:!1},{id:3,label:`ثبت سفارش`,icon:x,active:!1}];return(i,o)=>(g(),a(`div`,V,[o[5]||=m(`header`,{class:`home-dashboard__head`},[m(`h1`,{class:`home-dashboard__title`},`انتخاب شرکت`),m(`p`,{class:`home-dashboard__subtitle`},`شرکت موردنظر خود را برای شروع سفارش‌گذاری انتخاب کنید`)],-1),m(`section`,H,[o[0]||=s(`

به پارس بافت خوش آمدید

برای شروع سفارش، ابتدا شرکت موردنظر را انتخاب کنید و سپس کالیته و محصولات را اضافه کنید.

`,2),m(`div`,U,[r(A,{size:26})])]),m(`div`,W,[(g(!0),a(t,null,l(S.value,t=>(g(),a(`article`,{key:t.id,class:v([`company-showcase`,`company-showcase--${n.cardVariant(t.slug)}`])},[o[2]||=m(`div`,{class:`company-showcase__pattern`,"aria-hidden":`true`},null,-1),m(`div`,ne,[m(`span`,G,[(g(),e(c(n.companyLogo(t.slug)),{size:72}))]),m(`h3`,K,_(t.name),1),m(`p`,q,_(n.companyDescription(t)),1),m(`button`,{type:`button`,class:`company-showcase__cta`,onClick:e=>h(`select`,t.id)},[o[1]||=m(`span`,{class:`company-showcase__cta-text`},`ورود به کاتالوگ‌ها`,-1),r(C,{size:16,class:`company-showcase__cta-icon`,"aria-hidden":`true`})],8,J)])],2))),128))]),m(`div`,Y,[m(`section`,X,[o[3]||=m(`h3`,{class:`home-panel__title`},`دسترسی سریع`,-1),m(`div`,Z,[(g(),a(t,null,l(w,t=>m(`button`,{key:t.label,type:`button`,class:`quick-access__item`,onClick:e=>d(y).push(t.path)},[m(`span`,{class:v([`quick-access__icon`,`quick-access__icon--${t.tone}`])},[(g(),e(c(t.icon),{size:22}))],2),m(`span`,ie,_(t.label),1)],8,re)),64))])]),m(`section`,ae,[o[4]||=m(`h3`,{class:`home-panel__title`},`مراحل ثبت سفارش`,-1),m(`ol`,oe,[(g(),a(t,null,l(T,(n,r)=>(g(),a(t,{key:n.id},[m(`li`,{class:v([`order-step`,{"order-step--active":n.id===$}])},[m(`span`,se,_(n.id),1),m(`span`,Q,[(g(),e(c(n.icon),{size:18}))]),m(`span`,ce,_(n.label),1)],2),rc.getActiveCompanies()),h={par:{description:`تولید و عرضه انواع پارچه`,logo:T},"fam-baft":{description:`تولید و عرضه انواع پارچه`,logo:E}};n(async()=>{await c.loadCompanies(),p.value=!1});function _(e){let t=c.getCompany(e);t&&(l.selectCompany(t),i.push(`/companies/${e}/catalogs`))}function v(e){return e===`par`?`par`:`fam-baft`}function b(e){return h[e.slug]?.description??e.description}function x(e){return h[e]?.logo??T}return(e,n)=>p.value?(g(),a(`div`,de,[r(k,{variant:`cards`})])):(g(),a(t,{key:1},[r(B,{class:`mobile-only`,companies:m.value,"card-variant":v,"company-description":b,"company-logo":x,onSelect:_,onBack:d(s)},null,8,[`companies`,`onBack`]),r(ue,{class:`desktop-only`,companies:m.value,"card-variant":v,"company-description":b,"company-logo":x,onSelect:_},null,8,[`companies`])],64))}});export{fe as default}; \ No newline at end of file diff --git a/dist/assets/CustomerCreateView-Bs4pjofV.js b/dist/assets/CustomerCreateView-CYoHi2HU.js similarity index 93% rename from dist/assets/CustomerCreateView-Bs4pjofV.js rename to dist/assets/CustomerCreateView-CYoHi2HU.js index bd9ecaf..2abb6dd 100644 --- a/dist/assets/CustomerCreateView-Bs4pjofV.js +++ b/dist/assets/CustomerCreateView-CYoHi2HU.js @@ -1 +1 @@ -import{F as e,I as t,L as n,M as r,_ as i,bt as a,ft as o,k as s,n as c,q as l,tt as u}from"./BasicIcon-CjTTsi6o.js";import{t as d}from"./http-Bfs7sUUO.js";import{c as f}from"./format-BHJptHdF.js";import{a as p}from"./validation-BD7oi-2I.js";import{c as m,n as h}from"./index-BQQA5ZX-.js";import{t as g}from"./BaseInput-oWA7d1_u.js";import{t as _}from"./FormErrorBanner-B8THF9oG.js";import{n as v,r as y,t as b}from"./formErrors-DglFjYkZ.js";import{t as x}from"./PageHeader-WFa4BbgN.js";import{t as S}from"./crm-DPw1h61_.js";import{t as C}from"./useGoBack-D3aJ73Q-.js";var w={class:`page customer-create-page`},T={class:`page__scroll customer-create-scroll`},E={class:`form-card`},D={class:`footer`},O=c(n({__name:`CustomerCreateView`,setup(n){let c=i(),O=m(),k=S(),{goBack:A}=C(`/customers`),j=o(``),M=o(``),N=o(``),P=o(``),F=o({}),I=o(``),L=o(!1);function R(e){F.value=v(F.value,e),y(F.value)||(I.value=``)}async function z(){if(F.value={},I.value=``,!O.isAgent){I.value=`فقط واسطه می‌تواند مشتری به لیست خود اضافه کند.`;return}let e=f(N.value),t={};if(j.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),p(e)||(t.phone=`شماره موبایل معتبر نیست.`),y(t)){F.value=t,I.value=b;return}L.value=!0;try{let t=await k.registerCustomer({firstName:j.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0});if(t?.id){await c.replace({path:`/customer`,query:{id:t.id}});return}await c.replace(`/customers`)}catch(e){I.value=e instanceof d||e instanceof Error?e.message:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return(n,i)=>(l(),r(`div`,w,[t(x,{title:`افزودن مشتری`,"show-back":``,centered:``,onBack:a(A)},null,8,[`onBack`]),s(`div`,T,[i[7]||=s(`p`,{class:`intro`},` مشتری به لیست شما اضافه می‌شود و بعد از ورود با همین شماره، سفارش‌هایش به حساب شما وصل می‌ماند. `,-1),t(_,{message:I.value},null,8,[`message`]),s(`div`,E,[t(g,{modelValue:j.value,"onUpdate:modelValue":[i[0]||=e=>j.value=e,i[1]||=e=>R(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),t(g,{modelValue:M.value,"onUpdate:modelValue":[i[2]||=e=>M.value=e,i[3]||=e=>R(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),t(g,{modelValue:N.value,"onUpdate:modelValue":[i[4]||=e=>N.value=e,i[5]||=e=>R(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),t(g,{modelValue:P.value,"onUpdate:modelValue":i[6]||=e=>P.value=e,label:`نام فروشگاه یا برند (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])])]),s(`footer`,D,[t(h,{block:``,loading:L.value,disabled:L.value,onClick:z},{default:u(()=>[...i[8]||=[e(` ثبت مشتری `,-1)]]),_:1},8,[`loading`,`disabled`])])]))}}),[[`__scopeId`,`data-v-f29dd241`]]);export{O as default}; \ No newline at end of file +import{F as e,I as t,L as n,M as r,_ as i,bt as a,ft as o,k as s,n as c,q as l,tt as u}from"./BasicIcon-CjTTsi6o.js";import{t as d}from"./http-Bfs7sUUO.js";import{c as f}from"./format-BHJptHdF.js";import{a as p}from"./validation-BD7oi-2I.js";import{c as m,n as h}from"./index-D3Z8WOeX.js";import{t as g}from"./BaseInput-oWA7d1_u.js";import{t as _}from"./FormErrorBanner-B8THF9oG.js";import{n as v,r as y,t as b}from"./formErrors-DglFjYkZ.js";import{t as x}from"./PageHeader-B47bvmJV.js";import{t as S}from"./crm-l0KpZ2AN.js";import{t as C}from"./useGoBack-D3aJ73Q-.js";var w={class:`page customer-create-page`},T={class:`page__scroll customer-create-scroll`},E={class:`form-card`},D={class:`footer`},O=c(n({__name:`CustomerCreateView`,setup(n){let c=i(),O=m(),k=S(),{goBack:A}=C(`/customers`),j=o(``),M=o(``),N=o(``),P=o(``),F=o({}),I=o(``),L=o(!1);function R(e){F.value=v(F.value,e),y(F.value)||(I.value=``)}async function z(){if(F.value={},I.value=``,!O.isAgent){I.value=`فقط واسطه می‌تواند مشتری به لیست خود اضافه کند.`;return}let e=f(N.value),t={};if(j.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),p(e)||(t.phone=`شماره موبایل معتبر نیست.`),y(t)){F.value=t,I.value=b;return}L.value=!0;try{let t=await k.registerCustomer({firstName:j.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0});if(t?.id){await c.replace({path:`/customer`,query:{id:t.id}});return}await c.replace(`/customers`)}catch(e){I.value=e instanceof d||e instanceof Error?e.message:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return(n,i)=>(l(),r(`div`,w,[t(x,{title:`افزودن مشتری`,"show-back":``,centered:``,onBack:a(A)},null,8,[`onBack`]),s(`div`,T,[i[7]||=s(`p`,{class:`intro`},` مشتری به لیست شما اضافه می‌شود و بعد از ورود با همین شماره، سفارش‌هایش به حساب شما وصل می‌ماند. `,-1),t(_,{message:I.value},null,8,[`message`]),s(`div`,E,[t(g,{modelValue:j.value,"onUpdate:modelValue":[i[0]||=e=>j.value=e,i[1]||=e=>R(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),t(g,{modelValue:M.value,"onUpdate:modelValue":[i[2]||=e=>M.value=e,i[3]||=e=>R(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),t(g,{modelValue:N.value,"onUpdate:modelValue":[i[4]||=e=>N.value=e,i[5]||=e=>R(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),t(g,{modelValue:P.value,"onUpdate:modelValue":i[6]||=e=>P.value=e,label:`نام فروشگاه یا برند (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])])]),s(`footer`,D,[t(h,{block:``,loading:L.value,disabled:L.value,onClick:z},{default:u(()=>[...i[8]||=[e(` ثبت مشتری `,-1)]]),_:1},8,[`loading`,`disabled`])])]))}}),[[`__scopeId`,`data-v-f29dd241`]]);export{O as default}; \ No newline at end of file diff --git a/dist/assets/CustomerDetailView-BizpJZAo.js b/dist/assets/CustomerDetailView-BizpJZAo.js new file mode 100644 index 0000000..dc11618 --- /dev/null +++ b/dist/assets/CustomerDetailView-BizpJZAo.js @@ -0,0 +1 @@ +import{$ as e,A as t,Ct as n,E as r,F as ee,G as i,I as a,L as te,M as o,N as ne,O as s,Y as c,_ as re,bt as l,ft as u,g as ie,j as d,k as f,n as p,q as m,tt as h,w as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{o as y}from"./format-BHJptHdF.js";import{C as ae,c as oe,o as b}from"./index-D3Z8WOeX.js";import{r as se,t as ce}from"./constants-DXXK14Zz.js";import{t as le}from"./IconEditPen-CUhGotGH.js";import{t as ue}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as de}from"./PageHeader-B47bvmJV.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{t as pe}from"./crm-l0KpZ2AN.js";import{n as me,t as he}from"./IconMail-xKb9uNIK.js";var ge={key:0,class:`page customer-page`},_e={class:`page__scroll page__scroll--with-nav customer-scroll`},x={key:0,class:`profile-row`},S={class:`name-row`},C={dir:`ltr`},w={key:1,class:`profile-banner`},T={class:`profile-banner__top`},E={dir:`ltr`},D={class:`profile-banner__stats`},O={class:`tabs`},k=[`onClick`],A={class:`stats`},j={class:`stats__grid`},M={class:`agent-card__avatar`},N={class:`section-head`},P=[`onClick`,`onKeydown`],F={key:0,class:`empty-inline`},I=[`onClick`,`onKeydown`],ve={key:0,class:`empty-inline`},ye={class:`meeting-filters`},be=[`onClick`],xe={class:`meeting-row__body`},Se={key:0,class:`empty-inline`},Ce={key:0,class:`cta-bar`},we={key:1,class:`page empty`},Te={key:2,class:`page empty`},L=p(te({__name:`CustomerDetailView`,setup(te){let p=ie(),L=re(),Ee=pe(),R=oe(),z=s(()=>String(p.query.id??``)),B=s(()=>String(p.query.tab??`info`)),V=u(null),H=u([]),U=u([]),W=u(`all`),G=u(!0),K=u(null),De=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارش‌ها`},{id:`reports`,label:`گزارش‌ها و پیگیری‌ها`}];async function q(){if(!z.value){V.value=null,G.value=!1;return}G.value=!0,K.value=null;try{let e=await Ee.loadCustomerDetail(z.value);V.value=e.customer,H.value=e.orders,U.value=e.meetings}catch(e){V.value=null,K.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{G.value=!1}}i(q),e(z,q);function J(e){L.replace({path:`/customer`,query:{id:z.value,tab:e}})}function Oe(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Y=s(()=>V.value?.agentName||R.fullName||`واسطه`),ke=s(()=>V.value?.agentCode||R.user?.agentCode||`—`),Ae=s(()=>Y.value.charAt(0)),je=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],X=s(()=>W.value===`all`?U.value:U.value.filter(e=>e.type===W.value));function Me(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function Z(e){e&&L.push({path:`/order`,query:{id:e}})}function Q(e){let t=e.statusLabel;return ce[t]||e.statusLabel}function $(e){let t=se[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}return(e,i)=>V.value?(m(),o(`div`,ge,[a(de,{title:B.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[1]||=e=>l(L).push(`/customers`)},ne({_:2},[B.value===`info`?{name:`trailing`,fn:h(()=>[f(`button`,{type:`button`,class:`edit-btn`,onClick:i[0]||=e=>l(L).back()},`ویرایش`)]),key:`0`}:void 0]),1032,[`title`]),f(`div`,_e,[B.value===`reports`?(m(),o(`section`,w,[f(`div`,T,[f(`div`,{class:`avatar avatar--lg`,style:n({background:V.value.avatarColor})},_(V.value.avatarLetter),5),f(`div`,null,[f(`h2`,null,_(V.value.name),1),f(`p`,null,_(V.value.contactName),1),f(`p`,E,_(V.value.phone),1)]),i[7]||=f(`span`,{class:`badge badge--light`},`مشتری فعال`,-1)]),f(`div`,D,[f(`div`,null,[i[8]||=f(`span`,null,`سطح مشتری`,-1),f(`strong`,null,_(V.value.levelLabel),1)]),f(`div`,null,[i[9]||=f(`span`,null,`تاریخ اولین خرید`,-1),f(`strong`,null,_(V.value.firstPurchaseDate),1)]),f(`div`,null,[i[10]||=f(`span`,null,`تعداد سفارش`,-1),f(`strong`,null,_(l(y)(V.value.orderCount))+` سفارش`,1)])])])):(m(),o(`section`,x,[f(`div`,{class:`avatar`,style:n({background:V.value.avatarColor})},_(V.value.avatarLetter),5),f(`div`,null,[f(`div`,S,[f(`h2`,null,_(V.value.name),1),i[6]||=f(`span`,{class:`badge`},`فعال`,-1)]),f(`p`,C,_(V.value.phone),1)])])),f(`div`,O,[(m(),o(r,null,c(De,e=>f(`button`,{key:e.id,type:`button`,class:v([`tab`,{"tab--active":B.value===e.id}]),onClick:t=>J(e.id)},_(e.label),11,k)),64))]),B.value===`info`?(m(),o(r,{key:2},[f(`section`,A,[i[16]||=f(`h3`,null,`اطلاعات خرید`,-1),f(`div`,j,[f(`div`,null,[i[11]||=f(`span`,null,`تعداد سفارش`,-1),f(`strong`,null,_(l(y)(V.value.orderCount)),1)]),f(`div`,null,[i[12]||=f(`span`,null,`مجموع خرید`,-1),f(`strong`,null,_(l(y)(V.value.totalPurchaseToman)),1),i[13]||=f(`em`,null,`تومان`,-1)]),f(`div`,null,[i[14]||=f(`span`,null,`میانگین هر سفارش`,-1),f(`strong`,null,_(l(y)(V.value.averageOrderToman)),1),i[15]||=f(`em`,null,`تومان`,-1)])])]),f(`button`,{type:`button`,class:`agent-card`,onClick:i[2]||=e=>l(L).push(`/profile`)},[f(`div`,M,_(Ae.value),1),f(`div`,null,[f(`strong`,null,_(Y.value),1),f(`p`,null,`کد واسطه: `+_(ke.value),1)]),a(b,{size:18})]),f(`section`,null,[f(`div`,N,[i[17]||=f(`h3`,null,`آخرین سفارش‌ها`,-1),f(`button`,{type:`button`,class:`link`,onClick:i[3]||=e=>J(`orders`)},`مشاهده همه`)]),(m(!0),o(r,null,c(H.value,e=>(m(),o(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:g(t=>Z(e.id),[`enter`])},[f(`div`,null,[f(`strong`,null,_(e.title),1),f(`p`,null,_(l(y)(e.amountToman))+` تومان`,1)]),f(`span`,{class:v([`tone`,`tone--${$(e)}`])},_(Q(e)),3),a(b,{size:16,class:`order-row__chevron`})],40,P))),128)),H.value.length?d(``,!0):(m(),o(`p`,F,`سفارشی ثبت نشده است.`))])],64)):B.value===`orders`?(m(),o(r,{key:3},[(m(!0),o(r,null,c(H.value,e=>(m(),o(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:g(t=>Z(e.id),[`enter`])},[f(`div`,null,[f(`strong`,null,_(e.title),1),f(`p`,null,_(e.date)+` — `+_(l(y)(e.amountToman))+` تومان`,1)]),f(`span`,{class:v([`tone`,`tone--${$(e)}`])},_(Q(e)),3),a(b,{size:16,class:`order-row__chevron`})],40,I))),128)),H.value.length?d(``,!0):(m(),o(`p`,ve,`سفارشی ثبت نشده است.`))],64)):(m(),o(r,{key:4},[i[18]||=f(`h3`,{class:`block-title`},`تعاملات و پیگیری‌ها`,-1),f(`button`,{type:`button`,class:`dashed-btn`,onClick:i[4]||=e=>l(L).push({path:`/meeting-report`,query:{customerId:V.value.id}})},` + ثبت گزارش ملاقات جدید `),f(`div`,ye,[(m(),o(r,null,c(je,e=>f(`button`,{key:e.id,type:`button`,class:v([`meeting-filter`,{"meeting-filter--active":W.value===e.id}]),onClick:t=>W.value=e.id},_(e.label),11,be)),64))]),(m(!0),o(r,null,c(X.value,e=>(m(),o(`article`,{key:e.id,class:`meeting-row`},[f(`div`,{class:v([`meeting-row__icon`,Me(e.type)])},[e.type===`in_person`?(m(),t(ue,{key:0,size:16})):e.type===`call`?(m(),t(me,{key:1,size:16})):e.type===`message`?(m(),t(he,{key:2,size:16})):(m(),t(le,{key:3,size:16}))],2),f(`div`,xe,[f(`strong`,null,_(Oe(e.type)),1),f(`p`,null,_(e.description||e.title),1)]),f(`span`,null,_(e.date),1)]))),128)),X.value.length?d(``,!0):(m(),o(`p`,Se,` گزارشی برای این فیلتر ثبت نشده است. `))],64))]),B.value===`info`?(m(),o(`footer`,Ce,[f(`button`,{type:`button`,class:`cta`,onClick:i[5]||=e=>l(L).push(`/categories`)},[a(ae,{size:20,color:`#fff`}),i[19]||=ee(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):G.value?(m(),o(`div`,we,[a(fe,{variant:`detail`})])):(m(),o(`div`,Te,[f(`p`,null,_(K.value||`مشتری یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-4afb1b74`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/CustomerDetailView-D3yYgQ2K.js b/dist/assets/CustomerDetailView-D3yYgQ2K.js deleted file mode 100644 index 24a6b2b..0000000 --- a/dist/assets/CustomerDetailView-D3yYgQ2K.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,Ct as n,E as r,F as ee,G as i,I as a,L as te,M as o,N as ne,O as s,Y as c,_ as re,bt as l,ft as u,g as ie,j as d,k as f,n as p,q as m,tt as h,w as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{o as y}from"./format-BHJptHdF.js";import{C as ae,c as oe,o as b}from"./index-BQQA5ZX-.js";import{r as se,t as ce}from"./constants-DXXK14Zz.js";import{t as le}from"./IconEditPen-CUhGotGH.js";import{t as ue}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as de}from"./PageHeader-WFa4BbgN.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{t as pe}from"./crm-DPw1h61_.js";import{t as me}from"./IconPhone-Bb9nUWE1.js";import{t as he}from"./IconMail-B6_IInpi.js";var ge={key:0,class:`page customer-page`},_e={class:`page__scroll page__scroll--with-nav customer-scroll`},x={key:0,class:`profile-row`},S={class:`name-row`},C={dir:`ltr`},w={key:1,class:`profile-banner`},T={class:`profile-banner__top`},E={dir:`ltr`},D={class:`profile-banner__stats`},O={class:`tabs`},k=[`onClick`],A={class:`stats`},j={class:`stats__grid`},M={class:`agent-card__avatar`},N={class:`section-head`},P=[`onClick`,`onKeydown`],F={key:0,class:`empty-inline`},I=[`onClick`,`onKeydown`],ve={key:0,class:`empty-inline`},ye={class:`meeting-filters`},be=[`onClick`],xe={class:`meeting-row__body`},Se={key:0,class:`empty-inline`},Ce={key:0,class:`cta-bar`},we={key:1,class:`page empty`},Te={key:2,class:`page empty`},L=p(te({__name:`CustomerDetailView`,setup(te){let p=ie(),L=re(),Ee=pe(),R=oe(),z=s(()=>String(p.query.id??``)),B=s(()=>String(p.query.tab??`info`)),V=u(null),H=u([]),U=u([]),W=u(`all`),G=u(!0),K=u(null),De=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارش‌ها`},{id:`reports`,label:`گزارش‌ها و پیگیری‌ها`}];async function q(){if(!z.value){V.value=null,G.value=!1;return}G.value=!0,K.value=null;try{let e=await Ee.loadCustomerDetail(z.value);V.value=e.customer,H.value=e.orders,U.value=e.meetings}catch(e){V.value=null,K.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{G.value=!1}}i(q),e(z,q);function J(e){L.replace({path:`/customer`,query:{id:z.value,tab:e}})}function Oe(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Y=s(()=>V.value?.agentName||R.fullName||`واسطه`),ke=s(()=>V.value?.agentCode||R.user?.agentCode||`—`),Ae=s(()=>Y.value.charAt(0)),je=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],X=s(()=>W.value===`all`?U.value:U.value.filter(e=>e.type===W.value));function Me(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function Z(e){e&&L.push({path:`/order`,query:{id:e}})}function Q(e){let t=e.statusLabel;return ce[t]||e.statusLabel}function $(e){let t=se[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}return(e,i)=>V.value?(m(),o(`div`,ge,[a(de,{title:B.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[1]||=e=>l(L).push(`/customers`)},ne({_:2},[B.value===`info`?{name:`trailing`,fn:h(()=>[f(`button`,{type:`button`,class:`edit-btn`,onClick:i[0]||=e=>l(L).back()},`ویرایش`)]),key:`0`}:void 0]),1032,[`title`]),f(`div`,_e,[B.value===`reports`?(m(),o(`section`,w,[f(`div`,T,[f(`div`,{class:`avatar avatar--lg`,style:n({background:V.value.avatarColor})},_(V.value.avatarLetter),5),f(`div`,null,[f(`h2`,null,_(V.value.name),1),f(`p`,null,_(V.value.contactName),1),f(`p`,E,_(V.value.phone),1)]),i[7]||=f(`span`,{class:`badge badge--light`},`مشتری فعال`,-1)]),f(`div`,D,[f(`div`,null,[i[8]||=f(`span`,null,`سطح مشتری`,-1),f(`strong`,null,_(V.value.levelLabel),1)]),f(`div`,null,[i[9]||=f(`span`,null,`تاریخ اولین خرید`,-1),f(`strong`,null,_(V.value.firstPurchaseDate),1)]),f(`div`,null,[i[10]||=f(`span`,null,`تعداد سفارش`,-1),f(`strong`,null,_(l(y)(V.value.orderCount))+` سفارش`,1)])])])):(m(),o(`section`,x,[f(`div`,{class:`avatar`,style:n({background:V.value.avatarColor})},_(V.value.avatarLetter),5),f(`div`,null,[f(`div`,S,[f(`h2`,null,_(V.value.name),1),i[6]||=f(`span`,{class:`badge`},`فعال`,-1)]),f(`p`,C,_(V.value.phone),1)])])),f(`div`,O,[(m(),o(r,null,c(De,e=>f(`button`,{key:e.id,type:`button`,class:v([`tab`,{"tab--active":B.value===e.id}]),onClick:t=>J(e.id)},_(e.label),11,k)),64))]),B.value===`info`?(m(),o(r,{key:2},[f(`section`,A,[i[16]||=f(`h3`,null,`اطلاعات خرید`,-1),f(`div`,j,[f(`div`,null,[i[11]||=f(`span`,null,`تعداد سفارش`,-1),f(`strong`,null,_(l(y)(V.value.orderCount)),1)]),f(`div`,null,[i[12]||=f(`span`,null,`مجموع خرید`,-1),f(`strong`,null,_(l(y)(V.value.totalPurchaseToman)),1),i[13]||=f(`em`,null,`تومان`,-1)]),f(`div`,null,[i[14]||=f(`span`,null,`میانگین هر سفارش`,-1),f(`strong`,null,_(l(y)(V.value.averageOrderToman)),1),i[15]||=f(`em`,null,`تومان`,-1)])])]),f(`button`,{type:`button`,class:`agent-card`,onClick:i[2]||=e=>l(L).push(`/profile`)},[f(`div`,M,_(Ae.value),1),f(`div`,null,[f(`strong`,null,_(Y.value),1),f(`p`,null,`کد واسطه: `+_(ke.value),1)]),a(b,{size:18})]),f(`section`,null,[f(`div`,N,[i[17]||=f(`h3`,null,`آخرین سفارش‌ها`,-1),f(`button`,{type:`button`,class:`link`,onClick:i[3]||=e=>J(`orders`)},`مشاهده همه`)]),(m(!0),o(r,null,c(H.value,e=>(m(),o(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:g(t=>Z(e.id),[`enter`])},[f(`div`,null,[f(`strong`,null,_(e.title),1),f(`p`,null,_(l(y)(e.amountToman))+` تومان`,1)]),f(`span`,{class:v([`tone`,`tone--${$(e)}`])},_(Q(e)),3),a(b,{size:16,class:`order-row__chevron`})],40,P))),128)),H.value.length?d(``,!0):(m(),o(`p`,F,`سفارشی ثبت نشده است.`))])],64)):B.value===`orders`?(m(),o(r,{key:3},[(m(!0),o(r,null,c(H.value,e=>(m(),o(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:g(t=>Z(e.id),[`enter`])},[f(`div`,null,[f(`strong`,null,_(e.title),1),f(`p`,null,_(e.date)+` — `+_(l(y)(e.amountToman))+` تومان`,1)]),f(`span`,{class:v([`tone`,`tone--${$(e)}`])},_(Q(e)),3),a(b,{size:16,class:`order-row__chevron`})],40,I))),128)),H.value.length?d(``,!0):(m(),o(`p`,ve,`سفارشی ثبت نشده است.`))],64)):(m(),o(r,{key:4},[i[18]||=f(`h3`,{class:`block-title`},`تعاملات و پیگیری‌ها`,-1),f(`button`,{type:`button`,class:`dashed-btn`,onClick:i[4]||=e=>l(L).push({path:`/meeting-report`,query:{customerId:V.value.id}})},` + ثبت گزارش ملاقات جدید `),f(`div`,ye,[(m(),o(r,null,c(je,e=>f(`button`,{key:e.id,type:`button`,class:v([`meeting-filter`,{"meeting-filter--active":W.value===e.id}]),onClick:t=>W.value=e.id},_(e.label),11,be)),64))]),(m(!0),o(r,null,c(X.value,e=>(m(),o(`article`,{key:e.id,class:`meeting-row`},[f(`div`,{class:v([`meeting-row__icon`,Me(e.type)])},[e.type===`in_person`?(m(),t(ue,{key:0,size:16})):e.type===`call`?(m(),t(me,{key:1,size:16})):e.type===`message`?(m(),t(he,{key:2,size:16})):(m(),t(le,{key:3,size:16}))],2),f(`div`,xe,[f(`strong`,null,_(Oe(e.type)),1),f(`p`,null,_(e.description||e.title),1)]),f(`span`,null,_(e.date),1)]))),128)),X.value.length?d(``,!0):(m(),o(`p`,Se,` گزارشی برای این فیلتر ثبت نشده است. `))],64))]),B.value===`info`?(m(),o(`footer`,Ce,[f(`button`,{type:`button`,class:`cta`,onClick:i[5]||=e=>l(L).push(`/categories`)},[a(ae,{size:20,color:`#fff`}),i[19]||=ee(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):G.value?(m(),o(`div`,we,[a(fe,{variant:`detail`})])):(m(),o(`div`,Te,[f(`p`,null,_(K.value||`مشتری یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-4afb1b74`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-CGAWB-ZQ.js b/dist/assets/CustomersView-BPHESniR.js similarity index 95% rename from dist/assets/CustomersView-CGAWB-ZQ.js rename to dist/assets/CustomersView-BPHESniR.js index 8d9bf23..ba09e53 100644 --- a/dist/assets/CustomersView-CGAWB-ZQ.js +++ b/dist/assets/CustomersView-BPHESniR.js @@ -1 +1 @@ -import{$ as e,A as t,Ct as n,E as r,G as i,I as a,L as o,M as s,O as c,Y as l,_ as u,bt as d,ft as f,g as p,j as m,k as h,n as g,q as _,tt as v,wt as y,xt as b}from"./BasicIcon-CjTTsi6o.js";import{o as x}from"./format-BHJptHdF.js";import{o as S,v as C,x as ee}from"./index-BQQA5ZX-.js";import{t as te}from"./IconFilter-lDKrtGms.js";import{t as w}from"./PageHeader-WFa4BbgN.js";import{t as T}from"./SearchField-Ao52FWA8.js";import{t as E}from"./PageSkeleton-CyATkHE1.js";import{t as D}from"./crm-DPw1h61_.js";var O={class:`page customers-page`},k={class:`page__scroll page__scroll--with-nav customers-scroll`},A={class:`toolbar`},j={class:`summary-card`},M={class:`summary-card__icon`,"aria-hidden":`true`},N={class:`summary-card__cols`},P={class:`tabs`,role:`tablist`},F=[`aria-selected`,`onClick`],I={class:`tab__text`},L={key:1},R=[`onClick`],ne={class:`customer-card__body`},z={class:`customer-card__top`},B={dir:`ltr`},V=g(o({__name:`CustomersView`,setup(o){let g=p(),V=u(),H=D(),U=f(String(g.query.q??``)),W=c(()=>String(g.query.status??`all`)),G=f([]),K=f(!0),q=f(null),J=c(()=>G.value),Y=c(()=>G.value.filter(e=>e.status===`active`).length),X=c(()=>G.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),Z=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function Q(){K.value=!0,q.value=null;try{G.value=await H.loadCustomers({q:U.value||void 0,status:W.value===`all`?void 0:W.value})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,G.value=[]}finally{K.value=!1}}i(Q),e([W,U],Q);function $(e){V.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...U.value?{q:U.value}:{}}})}function re(e){U.value=e,V.replace({path:`/customers`,query:{...W.value===`all`?{}:{status:W.value},...e?{q:e}:{}}})}function ie(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function ae(){V.push(`/customers/new`)}function oe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(W.value);$(e[(t<0?0:t+1)%e.length]??`all`)}return(e,i)=>(_(),s(`div`,O,[a(w,{title:`مشتریان من`,"show-back":``,centered:``,onBack:i[0]||=e=>d(V).back()},{trailing:v(()=>[h(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:ae},[a(C,{size:22})])]),_:1}),h(`div`,k,[h(`div`,A,[a(T,{"model-value":U.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":re},null,8,[`model-value`]),h(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:oe},[a(te,{size:18})])]),h(`section`,j,[h(`div`,M,[a(ee,{size:22,color:`#fff`})]),h(`div`,N,[h(`div`,null,[i[1]||=h(`span`,null,`تعداد مشتری فعال`,-1),h(`strong`,null,y(d(x)(Y.value)),1)]),i[4]||=h(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),h(`div`,null,[i[2]||=h(`span`,null,`مجموع خرید (ریال)`,-1),h(`strong`,null,y(d(x)(X.value)),1),i[3]||=h(`em`,null,`تومان`,-1)])])]),h(`div`,P,[(_(),s(r,null,l(Z,e=>h(`button`,{key:e.id,type:`button`,role:`tab`,class:b([`tab`,{"tab--active":W.value===e.id}]),"aria-selected":W.value===e.id,onClick:t=>$(e.id)},[h(`span`,I,y(e.label),1)],10,F)),64))]),K.value?(_(),t(E,{key:0,variant:`list`})):q.value?(_(),s(`p`,L,y(q.value),1)):m(``,!0),(_(!0),s(r,null,l(J.value,e=>(_(),s(`button`,{key:e.id,type:`button`,class:`customer-card`,onClick:t=>d(V).push({path:`/customer`,query:{id:e.id}})},[h(`div`,{class:`customer-card__avatar`,style:n({background:e.avatarColor})},y(e.avatarLetter),5),h(`div`,ne,[h(`div`,z,[h(`strong`,null,y(e.name),1),h(`span`,{class:b([`status`,e.status===`active`?`status--ok`:`status--muted`])},y(ie(e.status)),3)]),h(`p`,B,y(e.phone),1),h(`p`,null,`مجموع خرید: `+y(d(x)(e.totalPurchaseToman))+` تومان`,1)]),a(S,{size:18,class:`chevron`})],8,R))),128)),i[5]||=h(`section`,{class:`promo`},[h(`div`,null,[h(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),h(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)])]))}}),[[`__scopeId`,`data-v-d0b58aa9`]]);export{V as default}; \ No newline at end of file +import{$ as e,A as t,Ct as n,E as r,G as i,I as a,L as o,M as s,O as c,Y as l,_ as u,bt as d,ft as f,g as p,j as m,k as h,n as g,q as _,tt as v,wt as y,xt as b}from"./BasicIcon-CjTTsi6o.js";import{o as x}from"./format-BHJptHdF.js";import{o as S,v as C,x as ee}from"./index-D3Z8WOeX.js";import{t as te}from"./IconFilter-lDKrtGms.js";import{t as w}from"./PageHeader-B47bvmJV.js";import{t as T}from"./SearchField-Ao52FWA8.js";import{t as E}from"./PageSkeleton-CyATkHE1.js";import{t as D}from"./crm-l0KpZ2AN.js";var O={class:`page customers-page`},k={class:`page__scroll page__scroll--with-nav customers-scroll`},A={class:`toolbar`},j={class:`summary-card`},M={class:`summary-card__icon`,"aria-hidden":`true`},N={class:`summary-card__cols`},P={class:`tabs`,role:`tablist`},F=[`aria-selected`,`onClick`],I={class:`tab__text`},L={key:1},R=[`onClick`],ne={class:`customer-card__body`},z={class:`customer-card__top`},B={dir:`ltr`},V=g(o({__name:`CustomersView`,setup(o){let g=p(),V=u(),H=D(),U=f(String(g.query.q??``)),W=c(()=>String(g.query.status??`all`)),G=f([]),K=f(!0),q=f(null),J=c(()=>G.value),Y=c(()=>G.value.filter(e=>e.status===`active`).length),X=c(()=>G.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),Z=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function Q(){K.value=!0,q.value=null;try{G.value=await H.loadCustomers({q:U.value||void 0,status:W.value===`all`?void 0:W.value})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,G.value=[]}finally{K.value=!1}}i(Q),e([W,U],Q);function $(e){V.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...U.value?{q:U.value}:{}}})}function re(e){U.value=e,V.replace({path:`/customers`,query:{...W.value===`all`?{}:{status:W.value},...e?{q:e}:{}}})}function ie(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function ae(){V.push(`/customers/new`)}function oe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(W.value);$(e[(t<0?0:t+1)%e.length]??`all`)}return(e,i)=>(_(),s(`div`,O,[a(w,{title:`مشتریان من`,"show-back":``,centered:``,onBack:i[0]||=e=>d(V).back()},{trailing:v(()=>[h(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:ae},[a(C,{size:22})])]),_:1}),h(`div`,k,[h(`div`,A,[a(T,{"model-value":U.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":re},null,8,[`model-value`]),h(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:oe},[a(te,{size:18})])]),h(`section`,j,[h(`div`,M,[a(ee,{size:22,color:`#fff`})]),h(`div`,N,[h(`div`,null,[i[1]||=h(`span`,null,`تعداد مشتری فعال`,-1),h(`strong`,null,y(d(x)(Y.value)),1)]),i[4]||=h(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),h(`div`,null,[i[2]||=h(`span`,null,`مجموع خرید (ریال)`,-1),h(`strong`,null,y(d(x)(X.value)),1),i[3]||=h(`em`,null,`تومان`,-1)])])]),h(`div`,P,[(_(),s(r,null,l(Z,e=>h(`button`,{key:e.id,type:`button`,role:`tab`,class:b([`tab`,{"tab--active":W.value===e.id}]),"aria-selected":W.value===e.id,onClick:t=>$(e.id)},[h(`span`,I,y(e.label),1)],10,F)),64))]),K.value?(_(),t(E,{key:0,variant:`list`})):q.value?(_(),s(`p`,L,y(q.value),1)):m(``,!0),(_(!0),s(r,null,l(J.value,e=>(_(),s(`button`,{key:e.id,type:`button`,class:`customer-card`,onClick:t=>d(V).push({path:`/customer`,query:{id:e.id}})},[h(`div`,{class:`customer-card__avatar`,style:n({background:e.avatarColor})},y(e.avatarLetter),5),h(`div`,ne,[h(`div`,z,[h(`strong`,null,y(e.name),1),h(`span`,{class:b([`status`,e.status===`active`?`status--ok`:`status--muted`])},y(ie(e.status)),3)]),h(`p`,B,y(e.phone),1),h(`p`,null,`مجموع خرید: `+y(d(x)(e.totalPurchaseToman))+` تومان`,1)]),a(S,{size:18,class:`chevron`})],8,R))),128)),i[5]||=h(`section`,{class:`promo`},[h(`div`,null,[h(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),h(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)])]))}}),[[`__scopeId`,`data-v-d0b58aa9`]]);export{V as default}; \ No newline at end of file diff --git a/dist/assets/FavoritesView-C2rc7aQK.js b/dist/assets/FavoritesView-CTWGW3n4.js similarity index 85% rename from dist/assets/FavoritesView-C2rc7aQK.js rename to dist/assets/FavoritesView-CTWGW3n4.js index 8330a54..82dbffd 100644 --- a/dist/assets/FavoritesView-C2rc7aQK.js +++ b/dist/assets/FavoritesView-CTWGW3n4.js @@ -1 +1 @@ -import{A as e,E as t,G as n,I as r,L as i,M as a,T as o,Y as s,_ as c,bt as l,ft as u,j as d,k as f,n as p,q as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{l as g,o as _}from"./index-BQQA5ZX-.js";import{t as v}from"./PageHeader-WFa4BbgN.js";import{t as y}from"./PageSkeleton-CyATkHE1.js";import{t as b}from"./crm-DPw1h61_.js";import{t as x}from"./IconHeart-BmvFB3Xr.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav body`},w={key:1},T={key:2,class:`empty`},E=[`onClick`],D={class:`row__body`},O=[`onClick`],k=p(i({__name:`FavoritesView`,setup(i){let p=c(),k=g(),A=b(),j=u([]),M=u(!0),N=u(null);n(async()=>{M.value=!0;try{await k.hydrate();let e=await A.loadBrowseProducts(),t=new Set(k.ids);j.value=e.filter(e=>t.has(e.id))}catch(e){N.value=e instanceof Error?e.message:`بارگذاری علاقه‌مندی‌ها ناموفق بود.`}finally{M.value=!1}});async function P(e){await k.toggle(e),j.value=j.value.filter(t=>t.id!==e)}return(n,i)=>(m(),a(`div`,S,[r(v,{title:`علاقه‌مندی‌ها`,"show-back":``,centered:``,onBack:i[0]||=e=>l(p).back()}),f(`div`,C,[M.value?(m(),e(y,{key:0,variant:`grid`})):N.value?(m(),a(`p`,w,h(N.value),1)):j.value.length?d(``,!0):(m(),a(`p`,T,`هنوز محصولی ذخیره نکرده‌اید.`)),(m(!0),a(t,null,s(j.value,e=>(m(),a(`article`,{key:e.id,class:`row`,onClick:t=>l(p).push({path:`/product`,query:{id:e.id}})},[f(`div`,D,[f(`strong`,null,h(e.name),1),f(`span`,null,`کد `+h(e.code),1)]),f(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از نشان‌شده‌ها`,onClick:o(t=>P(e.id),[`stop`])},[r(x,{size:18,filled:``,color:`#0a353c`})],8,O),r(_,{size:16,color:`#9aa3a0`})],8,E))),128))])]))}}),[[`__scopeId`,`data-v-8e70f9c9`]]);export{k as default}; \ No newline at end of file +import{A as e,E as t,G as n,I as r,L as i,M as a,T as o,Y as s,_ as c,bt as l,ft as u,j as d,k as f,n as p,q as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{l as g,o as _}from"./index-D3Z8WOeX.js";import{t as v}from"./PageHeader-B47bvmJV.js";import{t as y}from"./PageSkeleton-CyATkHE1.js";import{t as b}from"./crm-l0KpZ2AN.js";import{t as x}from"./IconHeart-BmvFB3Xr.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav body`},w={key:1},T={key:2,class:`empty`},E=[`onClick`],D={class:`row__body`},O=[`onClick`],k=p(i({__name:`FavoritesView`,setup(i){let p=c(),k=g(),A=b(),j=u([]),M=u(!0),N=u(null);n(async()=>{M.value=!0;try{await k.hydrate();let e=await A.loadBrowseProducts(),t=new Set(k.ids);j.value=e.filter(e=>t.has(e.id))}catch(e){N.value=e instanceof Error?e.message:`بارگذاری علاقه‌مندی‌ها ناموفق بود.`}finally{M.value=!1}});async function P(e){await k.toggle(e),j.value=j.value.filter(t=>t.id!==e)}return(n,i)=>(m(),a(`div`,S,[r(v,{title:`علاقه‌مندی‌ها`,"show-back":``,centered:``,onBack:i[0]||=e=>l(p).back()}),f(`div`,C,[M.value?(m(),e(y,{key:0,variant:`grid`})):N.value?(m(),a(`p`,w,h(N.value),1)):j.value.length?d(``,!0):(m(),a(`p`,T,`هنوز محصولی ذخیره نکرده‌اید.`)),(m(!0),a(t,null,s(j.value,e=>(m(),a(`article`,{key:e.id,class:`row`,onClick:t=>l(p).push({path:`/product`,query:{id:e.id}})},[f(`div`,D,[f(`strong`,null,h(e.name),1),f(`span`,null,`کد `+h(e.code),1)]),f(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از نشان‌شده‌ها`,onClick:o(t=>P(e.id),[`stop`])},[r(x,{size:18,filled:``,color:`#0a353c`})],8,O),r(_,{size:16,color:`#9aa3a0`})],8,E))),128))])]))}}),[[`__scopeId`,`data-v-8e70f9c9`]]);export{k as default}; \ No newline at end of file diff --git a/dist/assets/HomeView-CIO-bcHQ.js b/dist/assets/HomeView-IjELxlp4.js similarity index 97% rename from dist/assets/HomeView-CIO-bcHQ.js rename to dist/assets/HomeView-IjELxlp4.js index 6126933..25c8218 100644 --- a/dist/assets/HomeView-CIO-bcHQ.js +++ b/dist/assets/HomeView-IjELxlp4.js @@ -1 +1 @@ -import{A as e,Ct as t,E as n,F as r,G as ee,I as i,K as a,L as o,M as s,O as c,P as l,Q as te,T as ne,Y as u,_ as re,bt as d,ft as f,j as p,k as m,n as h,q as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{o as ie}from"./format-BHJptHdF.js";import{b as y,c as ae,i as oe,l as se,o as ce,r as le,s as b,x}from"./index-BQQA5ZX-.js";import{t as ue}from"./IconChevronBack-B10eZjCQ.js";import{t as S}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as de}from"./IconDiamond-Yhg3u2_R.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{n as pe,r as me,t as he}from"./crm-DPw1h61_.js";import{t as ge}from"./useGoBack-D3aJ73Q-.js";import{t as _e}from"./IconHeart-BmvFB3Xr.js";var C=[`width`,`height`],ve=o({__name:`IconMedal`,props:{size:{default:44}},setup(e){return(t,n)=>(g(),s(`svg`,{class:`icon-medal`,width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[...n[0]||=[l(``,5)]],8,C))}}),w={class:`page home-page`},T={class:`home-header`},E={class:`home-header__user`},D={class:`home-header__hello`},O={class:`home-header__actions`},k={class:`page__scroll page__scroll--with-nav home-scroll`},A={key:0,class:`home-error`},j=[`aria-label`],M={class:`hero-banner__content`},N={class:`hero-banner__title`},P={key:0},F={key:0,class:`hero-banner__dots`,role:`tablist`,"aria-label":`بنرها`},ye=[`aria-label`,`aria-selected`,`onClick`],be={class:`quick-grid`,"aria-label":`دسترسی سریع`},xe=[`onClick`],Se={class:`quick-card__icon`,"aria-hidden":`true`},Ce={class:`quick-card__label`},we={class:`level-card`,"aria-label":`سطح عضویت`},Te={class:`level-card__top`},Ee={class:`level-card__identity`},De={class:`level-card__text`},Oe={class:`level-card__name`},ke={class:`level-card__next`},Ae={class:`level-card__progress`},je=[`aria-valuenow`],Me={class:`level-card__points`},I={class:`section`},Ne={class:`section__head`},Pe={class:`product-row`},Fe=[`onClick`],Ie={key:0,class:`product-card__badge`},Le={class:`product-card__body`},Re={class:`product-card__name`},ze={class:`product-card__sub`},Be=[`aria-label`,`aria-pressed`,`onClick`],L=h(o({__name:`HomeView`,setup(o){let l=re(),{goBack:h}=ge(`/`),C=ae(),L=he(),R=se(),z=f(!0),B=f(null),V=f([]),H=f(null),U=f(null),Ve=[{id:`qa-club`,label:`باشگاه مشتریان`,to:`/profile`,icon:x},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,icon:S},{id:`qa-new`,label:`محصولات جدید`,to:`/products`,icon:de},{id:`qa-swatch`,label:`درخواست کالیته`,to:`/catalog-request`,icon:y}],He=[{id:`qa-customers`,label:`مشتریان من`,to:`/customers`,icon:x},{id:`qa-reminders`,label:`یادآورها`,to:`/reminders`,icon:b},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,icon:S},{id:`qa-swatch`,label:`درخواست کالیته`,to:`/catalog-request`,icon:y}],Ue=c(()=>C.isAgent?He:Ve),W={id:`fallback`,slot:`home_hero`,title:`کالکشن پاییز و زمستان`,subtitle:`جدیدترین پارچه‌ها`,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:``},G=f([W]),K=f(0),q,J=c(()=>G.value[K.value]??W),We=c(()=>{let e=J.value.imageUrl;if(e)return{"--hero-image":`url("${e}")`}});function Y(){X(),!(G.value.length<2)&&(q=window.setInterval(()=>{K.value=(K.value+1)%G.value.length},5e3))}function X(){q&&window.clearInterval(q),q=void 0}function Ge(e){K.value=e,Y()}let Z=c(()=>C.user?.firstName||`کاربر`),Ke=c(()=>C.user?.lastName||``),Q=c(()=>{if(U.value)return U.value;let e=C.user;return{label:e?.levelLabel||`برنزی`,nextLabel:e?.nextLevelLabel||`نقره‌ای`,pointsRemaining:e?.pointsToNext??0,progressPercent:e?.levelProgress??0}});a(X),ee(async()=>{z.value=!0,B.value=null;try{let[e,t]=await Promise.all([L.loadBrowseProducts(),me(`home_hero`).catch(()=>[]),R.hydrate()]);if(t.length&&(G.value=t),Y(),V.value=e.filter(e=>e.isNew).slice(0,6),V.value.length||(V.value=e.slice(0,6)),C.isAgent)try{let e=await pe();U.value={label:e.levelLabel,nextLabel:e.nextLevelLabel,pointsRemaining:e.pointsToNext,progressPercent:e.levelProgress}}catch{}}catch(e){B.value=e instanceof Error?e.message:`بارگذاری خانه ناموفق بود.`}finally{z.value=!1}});function $(e){if(/^https?:\/\//i.test(e)){window.location.assign(e);return}l.push(e)}function qe(){$(J.value.ctaLink.trim()||`/categories`)}async function Je(e){H.value=null;try{await R.toggle(e)}catch(e){H.value=e instanceof Error?e.message:`ذخیره علاقه‌مندی ناموفق بود.`}}return(ee,a)=>(g(),s(`div`,w,[m(`header`,T,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:a[0]||=(...e)=>d(h)&&d(h)(...e)},[i(ue,{size:20})]),m(`div`,E,[i(le,{class:`home-header__avatar`,src:d(C).user?.avatarUrl,initials:Z.value.charAt(0),size:44},null,8,[`src`,`initials`]),m(`div`,null,[m(`p`,D,` سلام، `+_(Z.value)+` `+_(Ke.value),1),a[4]||=m(`p`,{class:`home-header__welcome`},`خوش آمدید`,-1)])]),m(`div`,O,[i(oe,{variant:`inline`}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:a[1]||=e=>$(`/profile/notifications`)},[i(b,{size:20})])])]),m(`div`,k,[B.value?(g(),s(`p`,A,_(B.value),1)):z.value?(g(),e(fe,{key:1,variant:`home`})):(g(),s(n,{key:2},[m(`section`,{class:`hero-banner`,"aria-label":J.value.title,style:t(We.value)},[m(`div`,M,[m(`h2`,N,[r(_(J.value.title)+` `,1),J.value.subtitle?(g(),s(`span`,P,_(J.value.subtitle),1)):p(``,!0)]),J.value.ctaLabel?(g(),s(`button`,{key:0,type:`button`,class:`hero-banner__cta`,onClick:qe},_(J.value.ctaLabel),1)):p(``,!0)]),G.value.length>1?(g(),s(`div`,F,[(g(!0),s(n,null,u(G.value,(e,t)=>(g(),s(`button`,{key:e.id,type:`button`,class:v([`dot`,{"dot--active":t===K.value}]),"aria-label":e.title,"aria-selected":t===K.value,onClick:e=>Ge(t)},null,10,ye))),128))])):p(``,!0)],12,j),m(`section`,be,[(g(!0),s(n,null,u(Ue.value,t=>(g(),s(`button`,{key:t.id,type:`button`,class:`quick-card`,onClick:e=>$(t.to)},[m(`span`,Se,[(g(),e(te(t.icon),{size:20}))]),m(`span`,Ce,_(t.label),1)],8,xe))),128))]),m(`section`,we,[m(`div`,Te,[m(`div`,Ee,[i(ve,{size:48}),m(`div`,De,[a[5]||=m(`span`,{class:`level-card__eyebrow`},`سطح شما`,-1),m(`strong`,Oe,_(Q.value.label),1),m(`span`,ke,`تا سطح `+_(Q.value.nextLabel),1)])]),m(`button`,{type:`button`,class:`level-card__details`,onClick:a[2]||=e=>$(`/profile`)},` جزئیات سطح `)]),m(`div`,Ae,[m(`div`,{class:`level-card__bar`,role:`progressbar`,"aria-valuenow":Q.value.progressPercent,"aria-valuemin":`0`,"aria-valuemax":`100`},[m(`span`,{class:`level-card__bar-fill`,style:t({width:`${Q.value.progressPercent}%`})},null,4)],8,je),m(`span`,Me,_(d(ie)(Q.value.pointsRemaining))+` امتیاز دیگر `,1)])]),m(`section`,I,[m(`div`,Ne,[a[7]||=m(`h3`,{class:`section__title`},`جدیدترین محصولات`,-1),m(`button`,{type:`button`,class:`section__link`,onClick:a[3]||=e=>$(`/products`)},[a[6]||=r(` مشاهده همه `,-1),i(ce,{size:14})])]),m(`div`,Pe,[(g(!0),s(n,null,u(V.value,(e,n)=>(g(),s(`article`,{key:e.id,class:`product-card`,onClick:t=>$(`/product?id=${e.id}`)},[m(`div`,{class:v([`product-card__image`,`product-card__image--${n%3}`]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},[e.isNew?(g(),s(`span`,Ie,`جدید`)):p(``,!0)],6),m(`div`,Le,[m(`strong`,Re,_(e.name),1),m(`span`,ze,_(e.subtitle),1),m(`button`,{type:`button`,class:v([`product-card__fav`,{"product-card__fav--on":d(R).isFavorite(e.id)}]),"aria-label":d(R).isFavorite(e.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":d(R).isFavorite(e.id),onClick:ne(t=>Je(e.id),[`stop`])},[i(_e,{size:16,filled:d(R).isFavorite(e.id),color:d(R).isFavorite(e.id)?`#0a353c`:`#b0b7c0`},null,8,[`filled`,`color`])],10,Be)])],8,Fe))),128))])])],64))])]))}}),[[`__scopeId`,`data-v-d4c90ca0`]]);export{L as default}; \ No newline at end of file +import{A as e,Ct as t,E as n,F as r,G as ee,I as i,K as a,L as o,M as s,O as c,P as l,Q as te,T as ne,Y as u,_ as re,bt as d,ft as f,j as p,k as m,n as h,q as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{o as ie}from"./format-BHJptHdF.js";import{b as y,c as ae,i as oe,l as se,o as ce,r as le,s as b,x}from"./index-D3Z8WOeX.js";import{t as ue}from"./IconChevronBack-B10eZjCQ.js";import{t as S}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as de}from"./IconDiamond-Yhg3u2_R.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{n as pe,r as me,t as he}from"./crm-l0KpZ2AN.js";import{t as ge}from"./useGoBack-D3aJ73Q-.js";import{t as _e}from"./IconHeart-BmvFB3Xr.js";var C=[`width`,`height`],ve=o({__name:`IconMedal`,props:{size:{default:44}},setup(e){return(t,n)=>(g(),s(`svg`,{class:`icon-medal`,width:e.size,height:e.size,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[...n[0]||=[l(``,5)]],8,C))}}),w={class:`page home-page`},T={class:`home-header`},E={class:`home-header__user`},D={class:`home-header__hello`},O={class:`home-header__actions`},k={class:`page__scroll page__scroll--with-nav home-scroll`},A={key:0,class:`home-error`},j=[`aria-label`],M={class:`hero-banner__content`},N={class:`hero-banner__title`},P={key:0},F={key:0,class:`hero-banner__dots`,role:`tablist`,"aria-label":`بنرها`},ye=[`aria-label`,`aria-selected`,`onClick`],be={class:`quick-grid`,"aria-label":`دسترسی سریع`},xe=[`onClick`],Se={class:`quick-card__icon`,"aria-hidden":`true`},Ce={class:`quick-card__label`},we={class:`level-card`,"aria-label":`سطح عضویت`},Te={class:`level-card__top`},Ee={class:`level-card__identity`},De={class:`level-card__text`},Oe={class:`level-card__name`},ke={class:`level-card__next`},Ae={class:`level-card__progress`},je=[`aria-valuenow`],Me={class:`level-card__points`},I={class:`section`},Ne={class:`section__head`},Pe={class:`product-row`},Fe=[`onClick`],Ie={key:0,class:`product-card__badge`},Le={class:`product-card__body`},Re={class:`product-card__name`},ze={class:`product-card__sub`},Be=[`aria-label`,`aria-pressed`,`onClick`],L=h(o({__name:`HomeView`,setup(o){let l=re(),{goBack:h}=ge(`/`),C=ae(),L=he(),R=se(),z=f(!0),B=f(null),V=f([]),H=f(null),U=f(null),Ve=[{id:`qa-club`,label:`باشگاه مشتریان`,to:`/profile`,icon:x},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,icon:S},{id:`qa-new`,label:`محصولات جدید`,to:`/products`,icon:de},{id:`qa-swatch`,label:`درخواست کالیته`,to:`/catalog-request`,icon:y}],He=[{id:`qa-customers`,label:`مشتریان من`,to:`/customers`,icon:x},{id:`qa-reminders`,label:`یادآورها`,to:`/reminders`,icon:b},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,icon:S},{id:`qa-swatch`,label:`درخواست کالیته`,to:`/catalog-request`,icon:y}],Ue=c(()=>C.isAgent?He:Ve),W={id:`fallback`,slot:`home_hero`,title:`کالکشن پاییز و زمستان`,subtitle:`جدیدترین پارچه‌ها`,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:``},G=f([W]),K=f(0),q,J=c(()=>G.value[K.value]??W),We=c(()=>{let e=J.value.imageUrl;if(e)return{"--hero-image":`url("${e}")`}});function Y(){X(),!(G.value.length<2)&&(q=window.setInterval(()=>{K.value=(K.value+1)%G.value.length},5e3))}function X(){q&&window.clearInterval(q),q=void 0}function Ge(e){K.value=e,Y()}let Z=c(()=>C.user?.firstName||`کاربر`),Ke=c(()=>C.user?.lastName||``),Q=c(()=>{if(U.value)return U.value;let e=C.user;return{label:e?.levelLabel||`برنزی`,nextLabel:e?.nextLevelLabel||`نقره‌ای`,pointsRemaining:e?.pointsToNext??0,progressPercent:e?.levelProgress??0}});a(X),ee(async()=>{z.value=!0,B.value=null;try{let[e,t]=await Promise.all([L.loadBrowseProducts(),me(`home_hero`).catch(()=>[]),R.hydrate()]);if(t.length&&(G.value=t),Y(),V.value=e.filter(e=>e.isNew).slice(0,6),V.value.length||(V.value=e.slice(0,6)),C.isAgent)try{let e=await pe();U.value={label:e.levelLabel,nextLabel:e.nextLevelLabel,pointsRemaining:e.pointsToNext,progressPercent:e.levelProgress}}catch{}}catch(e){B.value=e instanceof Error?e.message:`بارگذاری خانه ناموفق بود.`}finally{z.value=!1}});function $(e){if(/^https?:\/\//i.test(e)){window.location.assign(e);return}l.push(e)}function qe(){$(J.value.ctaLink.trim()||`/categories`)}async function Je(e){H.value=null;try{await R.toggle(e)}catch(e){H.value=e instanceof Error?e.message:`ذخیره علاقه‌مندی ناموفق بود.`}}return(ee,a)=>(g(),s(`div`,w,[m(`header`,T,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:a[0]||=(...e)=>d(h)&&d(h)(...e)},[i(ue,{size:20})]),m(`div`,E,[i(le,{class:`home-header__avatar`,src:d(C).user?.avatarUrl,initials:Z.value.charAt(0),size:44},null,8,[`src`,`initials`]),m(`div`,null,[m(`p`,D,` سلام، `+_(Z.value)+` `+_(Ke.value),1),a[4]||=m(`p`,{class:`home-header__welcome`},`خوش آمدید`,-1)])]),m(`div`,O,[i(oe,{variant:`inline`}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:a[1]||=e=>$(`/profile/notifications`)},[i(b,{size:20})])])]),m(`div`,k,[B.value?(g(),s(`p`,A,_(B.value),1)):z.value?(g(),e(fe,{key:1,variant:`home`})):(g(),s(n,{key:2},[m(`section`,{class:`hero-banner`,"aria-label":J.value.title,style:t(We.value)},[m(`div`,M,[m(`h2`,N,[r(_(J.value.title)+` `,1),J.value.subtitle?(g(),s(`span`,P,_(J.value.subtitle),1)):p(``,!0)]),J.value.ctaLabel?(g(),s(`button`,{key:0,type:`button`,class:`hero-banner__cta`,onClick:qe},_(J.value.ctaLabel),1)):p(``,!0)]),G.value.length>1?(g(),s(`div`,F,[(g(!0),s(n,null,u(G.value,(e,t)=>(g(),s(`button`,{key:e.id,type:`button`,class:v([`dot`,{"dot--active":t===K.value}]),"aria-label":e.title,"aria-selected":t===K.value,onClick:e=>Ge(t)},null,10,ye))),128))])):p(``,!0)],12,j),m(`section`,be,[(g(!0),s(n,null,u(Ue.value,t=>(g(),s(`button`,{key:t.id,type:`button`,class:`quick-card`,onClick:e=>$(t.to)},[m(`span`,Se,[(g(),e(te(t.icon),{size:20}))]),m(`span`,Ce,_(t.label),1)],8,xe))),128))]),m(`section`,we,[m(`div`,Te,[m(`div`,Ee,[i(ve,{size:48}),m(`div`,De,[a[5]||=m(`span`,{class:`level-card__eyebrow`},`سطح شما`,-1),m(`strong`,Oe,_(Q.value.label),1),m(`span`,ke,`تا سطح `+_(Q.value.nextLabel),1)])]),m(`button`,{type:`button`,class:`level-card__details`,onClick:a[2]||=e=>$(`/profile`)},` جزئیات سطح `)]),m(`div`,Ae,[m(`div`,{class:`level-card__bar`,role:`progressbar`,"aria-valuenow":Q.value.progressPercent,"aria-valuemin":`0`,"aria-valuemax":`100`},[m(`span`,{class:`level-card__bar-fill`,style:t({width:`${Q.value.progressPercent}%`})},null,4)],8,je),m(`span`,Me,_(d(ie)(Q.value.pointsRemaining))+` امتیاز دیگر `,1)])]),m(`section`,I,[m(`div`,Ne,[a[7]||=m(`h3`,{class:`section__title`},`جدیدترین محصولات`,-1),m(`button`,{type:`button`,class:`section__link`,onClick:a[3]||=e=>$(`/products`)},[a[6]||=r(` مشاهده همه `,-1),i(ce,{size:14})])]),m(`div`,Pe,[(g(!0),s(n,null,u(V.value,(e,n)=>(g(),s(`article`,{key:e.id,class:`product-card`,onClick:t=>$(`/product?id=${e.id}`)},[m(`div`,{class:v([`product-card__image`,`product-card__image--${n%3}`]),style:t(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},[e.isNew?(g(),s(`span`,Ie,`جدید`)):p(``,!0)],6),m(`div`,Le,[m(`strong`,Re,_(e.name),1),m(`span`,ze,_(e.subtitle),1),m(`button`,{type:`button`,class:v([`product-card__fav`,{"product-card__fav--on":d(R).isFavorite(e.id)}]),"aria-label":d(R).isFavorite(e.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":d(R).isFavorite(e.id),onClick:ne(t=>Je(e.id),[`stop`])},[i(_e,{size:16,filled:d(R).isFavorite(e.id),color:d(R).isFavorite(e.id)?`#0a353c`:`#b0b7c0`},null,8,[`filled`,`color`])],10,Be)])],8,Fe))),128))])])],64))])]))}}),[[`__scopeId`,`data-v-d4c90ca0`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/IconMail-B6_IInpi.js b/dist/assets/IconMail-B6_IInpi.js deleted file mode 100644 index c1807c1..0000000 --- a/dist/assets/IconMail-B6_IInpi.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,L as t,q as n,t as r}from"./BasicIcon-CjTTsi6o.js";var i=t({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(i,a)=>(n(),e(r,{icon:`vuesax-linear:sms`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}});export{i as t}; \ No newline at end of file diff --git a/dist/assets/IconPhone-Bb9nUWE1.js b/dist/assets/IconMail-xKb9uNIK.js similarity index 53% rename from dist/assets/IconPhone-Bb9nUWE1.js rename to dist/assets/IconMail-xKb9uNIK.js index eb87392..372c1e6 100644 --- a/dist/assets/IconPhone-Bb9nUWE1.js +++ b/dist/assets/IconMail-xKb9uNIK.js @@ -1 +1 @@ -import{A as e,L as t,q as n,t as r}from"./BasicIcon-CjTTsi6o.js";var i=t({__name:`IconPhone`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(i,a)=>(n(),e(r,{icon:`vuesax-linear:call`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}});export{i as t}; \ No newline at end of file +import{A as e,L as t,q as n,t as r}from"./BasicIcon-CjTTsi6o.js";var i=t({__name:`IconPhone`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(i,a)=>(n(),e(r,{icon:`vuesax-linear:call`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),a=t({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(i,a)=>(n(),e(r,{icon:`vuesax-linear:sms`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}});export{i as n,a as t}; \ No newline at end of file diff --git a/dist/assets/LoginView-CDVvsO1k.js b/dist/assets/LoginView-CDVvsO1k.js deleted file mode 100644 index eba7bef..0000000 --- a/dist/assets/LoginView-CDVvsO1k.js +++ /dev/null @@ -1 +0,0 @@ -import{F as e,I as t,L as n,M as r,O as i,T as a,Z as o,_ as s,bt as c,ft as l,k as u,q as d,tt as f}from"./BasicIcon-CjTTsi6o.js";import{c as p,u as m}from"./format-BHJptHdF.js";import{a as h}from"./validation-BD7oi-2I.js";import{c as g,i as _,n as v}from"./index-BQQA5ZX-.js";import{t as y}from"./BaseInput-oWA7d1_u.js";import{t as b}from"./FormErrorBanner-B8THF9oG.js";import{n as x,r as S,t as C}from"./formErrors-DglFjYkZ.js";var w={class:`page page-shell auth-page`},T={class:`page__scroll flex flex-col justify-center py-6`},E={class:`mt-6 w-full max-w-[var(--form-max-width)] text-center`},D={class:`m-0 text-sm text-muted`},O=n({__name:`LoginView`,setup(n){let O=s(),k=g(),A=l(``),j=l({}),M=l(``),N=i(()=>A.value?m(A.value):``);function P(e){return e?h(e)?``:`شماره موبایل معتبر نیست. (مثال: ۰۹۱۲۱۲۳۴۵۶۷)`:`شماره موبایل را وارد کنید.`}function F(){j.value=x(j.value,`phone`),S(j.value)||(M.value=``)}function I(e){A.value=p(e),F()}function L(){if(!A.value)return;let e=P(A.value);e&&(j.value={...j.value,phone:e})}async function R(){j.value={},M.value=``;let e=p(A.value);A.value=e;let t=P(e);if(t){j.value={phone:t},M.value=C;return}let n=await k.requestOtp(e,{isRegister:!1});n.success?O.push({name:`otp`,query:{phone:e,mode:`login`}}):M.value=n.message??`خطا در ارسال کد تأیید.`}return(n,i)=>{let s=o(`RouterLink`);return d(),r(`div`,w,[t(_),u(`div`,T,[i[3]||=u(`div`,{class:`auth-header`},[u(`div`,{class:`text-5xl mb-3`},`🧵`),u(`h1`,{class:`page-title`},`ورود به سامانه`),u(`p`,{class:`page-subtitle`},`سامانه سفارش عمده پارچه`)],-1),u(`form`,{class:`card`,onSubmit:a(R,[`prevent`])},[t(b,{message:M.value},null,8,[`message`]),t(y,{"model-value":N.value,label:`شماره موبایل`,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,dir:`ltr`,align:`center`,maxlength:`11`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:j.value.phone,hint:`کد تأیید به این شماره ارسال می‌شود`,"onUpdate:modelValue":I,onBlur:L},null,8,[`model-value`,`error`]),t(v,{block:``,type:`submit`,loading:c(k).loading},{default:f(()=>[...i[0]||=[e(`دریافت کد تأیید`,-1)]]),_:1},8,[`loading`])],32),u(`div`,E,[u(`p`,D,[i[2]||=e(` حساب کاربری ندارید؟ `,-1),t(s,{to:`/register`,class:`ms-1 font-bold text-primary no-underline hover:underline`},{default:f(()=>[...i[1]||=[e(` ثبت نام کنید `,-1)]]),_:1})])])])])}}});export{O as default}; \ No newline at end of file diff --git a/dist/assets/LoginView-DoB0zrip.js b/dist/assets/LoginView-DoB0zrip.js new file mode 100644 index 0000000..bca4558 --- /dev/null +++ b/dist/assets/LoginView-DoB0zrip.js @@ -0,0 +1 @@ +import{F as e,I as t,L as n,M as r,O as i,T as a,Z as o,_ as s,bt as c,ft as l,k as u,q as d,tt as f}from"./BasicIcon-CjTTsi6o.js";import{c as p,u as m}from"./format-BHJptHdF.js";import{a as h}from"./validation-BD7oi-2I.js";import{c as g,i as _,n as v}from"./index-D3Z8WOeX.js";import{t as y}from"./BaseInput-oWA7d1_u.js";import{t as b}from"./FormErrorBanner-B8THF9oG.js";import{n as x,r as S,t as C}from"./formErrors-DglFjYkZ.js";var w={class:`page auth-page`},T={class:`auth-top`},E={class:`page__scroll auth-body`},D={class:`auth-switch`},O=n({__name:`LoginView`,setup(n){let O=s(),k=g(),A=l(``),j=l({}),M=l(``),N=i(()=>A.value?m(A.value):``);function P(e){return e?h(e)?``:`شماره موبایل معتبر نیست. (مثال: ۰۹۱۲۱۲۳۴۵۶۷)`:`شماره موبایل را وارد کنید.`}function F(){j.value=x(j.value,`phone`),S(j.value)||(M.value=``)}function I(e){A.value=p(e),F()}function L(){if(!A.value)return;let e=P(A.value);e&&(j.value={...j.value,phone:e})}async function R(){j.value={},M.value=``;let e=p(A.value);A.value=e;let t=P(e);if(t){j.value={phone:t},M.value=C;return}let n=await k.requestOtp(e,{isRegister:!1});n.success?O.push({name:`otp`,query:{phone:e,mode:`login`}}):M.value=n.message??`خطا در ارسال کد تأیید.`}return(n,i)=>{let s=o(`RouterLink`);return d(),r(`div`,w,[u(`header`,T,[i[0]||=u(`span`,{"aria-hidden":`true`},null,-1),i[1]||=u(`h1`,{class:`auth-top__title`},`ورود`,-1),t(_,{variant:`inline`})]),u(`div`,E,[i[5]||=u(`p`,{class:`auth-lead`},`برای سفارش پارچه، شماره موبایل خود را وارد کنید.`,-1),u(`form`,{class:`card`,onSubmit:a(R,[`prevent`])},[t(b,{message:M.value},null,8,[`message`]),t(y,{"model-value":N.value,label:`شماره موبایل`,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,dir:`ltr`,align:`center`,maxlength:`11`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:j.value.phone,hint:`کد تأیید به این شماره ارسال می‌شود`,"onUpdate:modelValue":I,onBlur:L},null,8,[`model-value`,`error`]),t(v,{block:``,type:`submit`,loading:c(k).loading},{default:f(()=>[...i[2]||=[e(`دریافت کد تأیید`,-1)]]),_:1},8,[`loading`])],32),u(`p`,D,[i[4]||=e(` حساب کاربری ندارید؟ `,-1),t(s,{to:`/register`},{default:f(()=>[...i[3]||=[e(`ثبت‌نام کنید`,-1)]]),_:1})])])])}}});export{O as default}; \ No newline at end of file diff --git a/dist/assets/MeetingReportView-45Gem8ho.js b/dist/assets/MeetingReportView-45Gem8ho.js deleted file mode 100644 index c999491..0000000 --- a/dist/assets/MeetingReportView-45Gem8ho.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,Ct as t,E as n,G as ee,I as r,L as i,M as a,O as te,S as o,Y as ne,_ as re,bt as ie,ft as s,g as ae,j as c,k as l,n as u,nt as d,q as f,tt as oe,wt as p,xt as m}from"./BasicIcon-CjTTsi6o.js";import{t as se}from"./IconCheckCircleOutline-DMQwnwv8.js";import{t as ce}from"./IconEditPen-CUhGotGH.js";import{t as le}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as ue}from"./PageHeader-WFa4BbgN.js";import{t as de}from"./PageSkeleton-CyATkHE1.js";import{t as fe}from"./crm-DPw1h61_.js";import{t as h}from"./IconPhone-Bb9nUWE1.js";import{t as g}from"./IconMail-B6_IInpi.js";var _={class:`page meeting-page`},v=[`disabled`],pe={class:`page__scroll meeting-scroll`},me={key:1,class:`form-error`},he={key:2,class:`customer-card`},y={dir:`ltr`},b={class:`type-grid`},x=[`onClick`],S={class:`two-cols`},C={class:`field`},w={class:`field`},T={class:`field`},E={class:`field`},D={class:`reminder-box`},O={class:`reminder-box__head`},k=[`aria-pressed`],A={class:`field`},j={class:`two-cols`},M={class:`field`},N={class:`field`},ge={class:`field`},P={class:`footer`},F=[`disabled`],I=u(i({__name:`MeetingReportView`,setup(i){let u=ae(),I=re(),L=fe(),R=te(()=>String(u.query.customerId??``)),z=s(null),B=s(!0),V=s(!1),H=s(null),U=s(`in_person`),W=s(``),G=s(``),K=s(``),q=s(``),J=s(!0),Y=s(``),X=s(``),Z=s(``),Q=s(``),_e=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];ee(async()=>{if(!R.value){B.value=!1,H.value=`مشتری مشخص نشده است.`;return}try{let e=await L.loadCustomerDetail(R.value);z.value=e.customer}catch(e){H.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{B.value=!1}});async function $(){if(!R.value||!K.value.trim()||!W.value.trim()){H.value=`موضوع و تاریخ الزامی است.`;return}V.value=!0,H.value=null;try{await L.submitMeeting({customerId:R.value,type:U.value,title:K.value.trim(),subject:K.value.trim(),content:q.value.trim()||void 0,description:q.value.trim()||void 0,date:W.value.trim(),time:G.value.trim()||void 0,createReminder:J.value,reminderTitle:J.value?Y.value.trim()||K.value.trim():void 0,reminderDate:J.value?X.value.trim()||W.value.trim():void 0,reminderTime:J.value?Z.value.trim()||G.value.trim()||`10:00`:void 0,reminderNote:J.value&&Q.value.trim()||void 0}),I.push({path:`/customer`,query:{id:R.value,tab:`reports`}})}catch(e){H.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{V.value=!1}}return(ee,i)=>(f(),a(`div`,_,[r(ue,{title:`ثبت گزارش ملاقات`,"show-back":``,centered:``,onBack:i[0]||=e=>ie(I).back()},{trailing:oe(()=>[l(`button`,{type:`button`,class:`submit-icon-btn`,"aria-label":`ثبت گزارش`,disabled:V.value,onClick:$},[r(se,{size:22})],8,v)]),_:1}),l(`div`,pe,[B.value?(f(),e(de,{key:0,variant:`form`})):H.value?(f(),a(`p`,me,p(H.value),1)):c(``,!0),z.value?(f(),a(`section`,he,[l(`div`,{class:`avatar`,style:t({background:z.value.avatarColor})},p(z.value.avatarLetter),5),l(`div`,null,[l(`strong`,null,p(z.value.name),1),l(`p`,null,p(z.value.contactName),1),l(`p`,y,p(z.value.phone),1)])])):c(``,!0),l(`section`,null,[i[10]||=l(`h3`,null,`نوع تعامل`,-1),l(`div`,b,[(f(),a(n,null,ne(_e,t=>l(`button`,{key:t.id,type:`button`,class:m([`type-btn`,{"type-btn--active":U.value===t.id}]),onClick:e=>U.value=t.id},[t.icon===`clipboard`?(f(),e(le,{key:0,size:22})):t.icon===`phone`?(f(),e(h,{key:1,size:22})):t.icon===`mail`?(f(),e(g,{key:2,size:22})):(f(),e(ce,{key:3,size:22})),l(`span`,null,p(t.label),1)],10,x)),64))])]),l(`section`,null,[i[13]||=l(`h3`,null,`تاریخ و زمان`,-1),l(`div`,S,[l(`label`,C,[i[11]||=l(`span`,null,`تاریخ`,-1),d(l(`input`,{"onUpdate:modelValue":i[1]||=e=>W.value=e,type:`text`},null,512),[[o,W.value]])]),l(`label`,w,[i[12]||=l(`span`,null,`ساعت`,-1),d(l(`input`,{"onUpdate:modelValue":i[2]||=e=>G.value=e,type:`text`},null,512),[[o,G.value]])])])]),l(`label`,T,[i[14]||=l(`span`,null,`موضوع گزارش`,-1),d(l(`input`,{"onUpdate:modelValue":i[3]||=e=>K.value=e,type:`text`},null,512),[[o,K.value]])]),l(`label`,E,[i[15]||=l(`span`,null,`محتوای گزارش`,-1),d(l(`textarea`,{"onUpdate:modelValue":i[4]||=e=>q.value=e,rows:`5`,maxlength:`1000`},null,512),[[o,q.value]]),l(`em`,null,p(q.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),i[22]||=l(`section`,null,[l(`h3`,null,`تصاویر و فایل‌ها`),l(`div`,{class:`files`},[l(`div`,{class:`file-thumb`}),l(`div`,{class:`file-thumb`}),l(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),l(`section`,D,[l(`div`,O,[i[17]||=l(`h3`,null,`یادآور`,-1),l(`button`,{type:`button`,class:m([`toggle`,{"toggle--on":J.value}]),"aria-pressed":J.value,onClick:i[5]||=e=>J.value=!J.value},[...i[16]||=[l(`span`,null,null,-1)]],10,k)]),J.value?(f(),a(n,{key:0},[l(`label`,A,[i[18]||=l(`span`,null,`عنوان یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[6]||=e=>Y.value=e,type:`text`},null,512),[[o,Y.value]])]),l(`div`,j,[l(`label`,M,[i[19]||=l(`span`,null,`تاریخ یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[7]||=e=>X.value=e,type:`text`},null,512),[[o,X.value]])]),l(`label`,N,[i[20]||=l(`span`,null,`ساعت یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[8]||=e=>Z.value=e,type:`text`},null,512),[[o,Z.value]])])]),l(`label`,ge,[i[21]||=l(`span`,null,`یادداشت یادآور (اختیاری)`,-1),d(l(`input`,{"onUpdate:modelValue":i[9]||=e=>Q.value=e,type:`text`},null,512),[[o,Q.value]])])],64)):c(``,!0)])]),l(`footer`,P,[l(`button`,{type:`button`,class:`submit`,disabled:V.value,onClick:$},p(V.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,F)])]))}}),[[`__scopeId`,`data-v-2708a25b`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/MeetingReportView-BmE6DYAq.js b/dist/assets/MeetingReportView-BmE6DYAq.js new file mode 100644 index 0000000..7d704bf --- /dev/null +++ b/dist/assets/MeetingReportView-BmE6DYAq.js @@ -0,0 +1 @@ +import{A as e,Ct as t,E as n,G as ee,I as r,L as i,M as a,O as te,S as o,Y as ne,_ as re,bt as ie,ft as s,g as ae,j as c,k as l,n as u,nt as d,q as f,tt as oe,wt as p,xt as m}from"./BasicIcon-CjTTsi6o.js";import{t as se}from"./IconCheckCircleOutline-DMQwnwv8.js";import{t as ce}from"./IconEditPen-CUhGotGH.js";import{t as le}from"./IconClipboardEmpty-CrdSnG5c.js";import{t as ue}from"./PageHeader-B47bvmJV.js";import{t as de}from"./PageSkeleton-CyATkHE1.js";import{t as fe}from"./crm-l0KpZ2AN.js";import{n as h,t as g}from"./IconMail-xKb9uNIK.js";var _={class:`page meeting-page`},v=[`disabled`],pe={class:`page__scroll meeting-scroll`},me={key:1,class:`form-error`},he={key:2,class:`customer-card`},y={dir:`ltr`},b={class:`type-grid`},x=[`onClick`],S={class:`two-cols`},C={class:`field`},w={class:`field`},T={class:`field`},E={class:`field`},D={class:`reminder-box`},O={class:`reminder-box__head`},k=[`aria-pressed`],A={class:`field`},j={class:`two-cols`},M={class:`field`},N={class:`field`},ge={class:`field`},P={class:`footer`},F=[`disabled`],I=u(i({__name:`MeetingReportView`,setup(i){let u=ae(),I=re(),L=fe(),R=te(()=>String(u.query.customerId??``)),z=s(null),B=s(!0),V=s(!1),H=s(null),U=s(`in_person`),W=s(``),G=s(``),K=s(``),q=s(``),J=s(!0),Y=s(``),X=s(``),Z=s(``),Q=s(``),_e=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];ee(async()=>{if(!R.value){B.value=!1,H.value=`مشتری مشخص نشده است.`;return}try{let e=await L.loadCustomerDetail(R.value);z.value=e.customer}catch(e){H.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{B.value=!1}});async function $(){if(!R.value||!K.value.trim()||!W.value.trim()){H.value=`موضوع و تاریخ الزامی است.`;return}V.value=!0,H.value=null;try{await L.submitMeeting({customerId:R.value,type:U.value,title:K.value.trim(),subject:K.value.trim(),content:q.value.trim()||void 0,description:q.value.trim()||void 0,date:W.value.trim(),time:G.value.trim()||void 0,createReminder:J.value,reminderTitle:J.value?Y.value.trim()||K.value.trim():void 0,reminderDate:J.value?X.value.trim()||W.value.trim():void 0,reminderTime:J.value?Z.value.trim()||G.value.trim()||`10:00`:void 0,reminderNote:J.value&&Q.value.trim()||void 0}),I.push({path:`/customer`,query:{id:R.value,tab:`reports`}})}catch(e){H.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{V.value=!1}}return(ee,i)=>(f(),a(`div`,_,[r(ue,{title:`ثبت گزارش ملاقات`,"show-back":``,centered:``,onBack:i[0]||=e=>ie(I).back()},{trailing:oe(()=>[l(`button`,{type:`button`,class:`submit-icon-btn`,"aria-label":`ثبت گزارش`,disabled:V.value,onClick:$},[r(se,{size:22})],8,v)]),_:1}),l(`div`,pe,[B.value?(f(),e(de,{key:0,variant:`form`})):H.value?(f(),a(`p`,me,p(H.value),1)):c(``,!0),z.value?(f(),a(`section`,he,[l(`div`,{class:`avatar`,style:t({background:z.value.avatarColor})},p(z.value.avatarLetter),5),l(`div`,null,[l(`strong`,null,p(z.value.name),1),l(`p`,null,p(z.value.contactName),1),l(`p`,y,p(z.value.phone),1)])])):c(``,!0),l(`section`,null,[i[10]||=l(`h3`,null,`نوع تعامل`,-1),l(`div`,b,[(f(),a(n,null,ne(_e,t=>l(`button`,{key:t.id,type:`button`,class:m([`type-btn`,{"type-btn--active":U.value===t.id}]),onClick:e=>U.value=t.id},[t.icon===`clipboard`?(f(),e(le,{key:0,size:22})):t.icon===`phone`?(f(),e(h,{key:1,size:22})):t.icon===`mail`?(f(),e(g,{key:2,size:22})):(f(),e(ce,{key:3,size:22})),l(`span`,null,p(t.label),1)],10,x)),64))])]),l(`section`,null,[i[13]||=l(`h3`,null,`تاریخ و زمان`,-1),l(`div`,S,[l(`label`,C,[i[11]||=l(`span`,null,`تاریخ`,-1),d(l(`input`,{"onUpdate:modelValue":i[1]||=e=>W.value=e,type:`text`},null,512),[[o,W.value]])]),l(`label`,w,[i[12]||=l(`span`,null,`ساعت`,-1),d(l(`input`,{"onUpdate:modelValue":i[2]||=e=>G.value=e,type:`text`},null,512),[[o,G.value]])])])]),l(`label`,T,[i[14]||=l(`span`,null,`موضوع گزارش`,-1),d(l(`input`,{"onUpdate:modelValue":i[3]||=e=>K.value=e,type:`text`},null,512),[[o,K.value]])]),l(`label`,E,[i[15]||=l(`span`,null,`محتوای گزارش`,-1),d(l(`textarea`,{"onUpdate:modelValue":i[4]||=e=>q.value=e,rows:`5`,maxlength:`1000`},null,512),[[o,q.value]]),l(`em`,null,p(q.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),i[22]||=l(`section`,null,[l(`h3`,null,`تصاویر و فایل‌ها`),l(`div`,{class:`files`},[l(`div`,{class:`file-thumb`}),l(`div`,{class:`file-thumb`}),l(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),l(`section`,D,[l(`div`,O,[i[17]||=l(`h3`,null,`یادآور`,-1),l(`button`,{type:`button`,class:m([`toggle`,{"toggle--on":J.value}]),"aria-pressed":J.value,onClick:i[5]||=e=>J.value=!J.value},[...i[16]||=[l(`span`,null,null,-1)]],10,k)]),J.value?(f(),a(n,{key:0},[l(`label`,A,[i[18]||=l(`span`,null,`عنوان یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[6]||=e=>Y.value=e,type:`text`},null,512),[[o,Y.value]])]),l(`div`,j,[l(`label`,M,[i[19]||=l(`span`,null,`تاریخ یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[7]||=e=>X.value=e,type:`text`},null,512),[[o,X.value]])]),l(`label`,N,[i[20]||=l(`span`,null,`ساعت یادآور`,-1),d(l(`input`,{"onUpdate:modelValue":i[8]||=e=>Z.value=e,type:`text`},null,512),[[o,Z.value]])])]),l(`label`,ge,[i[21]||=l(`span`,null,`یادداشت یادآور (اختیاری)`,-1),d(l(`input`,{"onUpdate:modelValue":i[9]||=e=>Q.value=e,type:`text`},null,512),[[o,Q.value]])])],64)):c(``,!0)])]),l(`footer`,P,[l(`button`,{type:`button`,class:`submit`,disabled:V.value,onClick:$},p(V.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,F)])]))}}),[[`__scopeId`,`data-v-2708a25b`]]);export{I as default}; \ No newline at end of file diff --git a/dist/assets/OrderDetailView-D9semEqd.js b/dist/assets/OrderDetailView-DT5bw4I-.js similarity index 99% rename from dist/assets/OrderDetailView-D9semEqd.js rename to dist/assets/OrderDetailView-DT5bw4I-.js index 2c847b6..d8adfeb 100644 --- a/dist/assets/OrderDetailView-D9semEqd.js +++ b/dist/assets/OrderDetailView-DT5bw4I-.js @@ -1 +1 @@ -import{$ as e,A as t,C as n,D as r,E as i,F as a,I as o,L as s,M as c,O as l,T as ee,Y as u,_ as te,bt as d,ft as f,g as ne,j as p,k as m,n as h,nt as g,q as _,t as v,tt as y,wt as b,x as re,xt as x}from"./BasicIcon-CjTTsi6o.js";import{t as ie}from"./dist-D9CyXEdG.js";import{a as ae,i as S,l as oe,n as C,o as w,r as T,u as E}from"./format-BHJptHdF.js";import{n as se,t as ce}from"./validation-BD7oi-2I.js";import{_ as le,h as ue,n as D,o as O}from"./index-BQQA5ZX-.js";import{n as de}from"./constants-DXXK14Zz.js";import{t as k}from"./IconChevronBack-B10eZjCQ.js";import{t as fe}from"./BaseInput-oWA7d1_u.js";import{t as pe}from"./FormErrorBanner-B8THF9oG.js";import{n as A,r as j,t as me}from"./formErrors-DglFjYkZ.js";import{n as he,t as M}from"./orderInvoice-B0L1Aeuk.js";import{n as ge,t as _e}from"./PersianDateInput-C60QImoe.js";var N={submitted:0,awaiting_review:1,pricing:2,needs_correction:1,awaiting_settlement:3,awaiting_settlement_fix:3,cash_in_progress:4,cash_invoice_issued:4,awaiting_cash_payment:4,cash_payment_submitted:4,check_in_progress:4,awaiting_cash_confirmation:5,awaiting_check_review:5,check_needs_fix:5,check_rejected:5,checks_approved:6,cash_confirmed:6,final_approved:7,preparing:8,ready_to_ship:9,shipped:10,delivered:11,expired:3,cancelled:0,rejected:1},P={submitted:{variant:`waiting`,title:`پیش‌سفارش ثبت شد`,description:`سفارش شما برای بررسی و قیمت‌گذاری به مدیریت ارسال شد. پس از صدور فاکتور می‌توانید روش تسویه (نقد یا چک) را انتخاب کنید.`},awaiting_review:{variant:`waiting`,title:`در انتظار بررسی مدیریت`,description:`پیش‌سفارش شما در صف بررسی است. پس از قیمت‌گذاری و صدور فاکتور، از طریق همین صفحه برای انتخاب تسویه مطلع می‌شوید.`},pricing:{variant:`waiting`,title:`در حال قیمت‌گذاری`,description:`مدیریت در حال تعیین مبلغ نهایی فاکتور است. تا قبل از صدور فاکتور امکان ثبت چک یا پرداخت وجود ندارد.`},awaiting_settlement:{variant:`info`,title:`فاکتور آماده است`,description:`مبلغ فاکتور مشخص شده. لطفاً روش تسویه را انتخاب کنید و مسیر پرداخت را ادامه دهید.`},awaiting_settlement_fix:{variant:`info`,title:`نیاز به اصلاح تسویه`,description:`لطفاً روش تسویه یا اطلاعات پرداخت را اصلاح کنید.`},cash_invoice_issued:{variant:`info`,title:`فاکتور نقدی صادر شد`,description:`مبلغ را به حساب‌های اعلام‌شده واریز و رسید پرداخت را ثبت کنید.`},awaiting_cash_payment:{variant:`info`,title:`در انتظار پرداخت نقدی`,description:`لطفاً مبلغ فاکتور را واریز و رسید پرداخت را ثبت کنید.`},cash_payment_submitted:{variant:`waiting`,title:`رسید ثبت شد`,description:`رسید پرداخت شما دریافت شد و در صف بررسی مدیریت است.`},awaiting_cash_confirmation:{variant:`waiting`,title:`در انتظار تأیید پرداخت`,description:`رسید پرداخت در حال بررسی است. نتیجه به‌زودی اعلام می‌شود.`},awaiting_check_review:{variant:`waiting`,title:`در حال بررسی چک‌ها`,description:`چک‌های ثبت‌شده در حال بررسی هستند. نتیجه بررسی به‌زودی اعلام می‌شود.`},checks_approved:{variant:`success`,title:`چک‌ها تأیید شده`,description:`چک‌های شما تأیید شد. سفارش در انتظار تأیید نهایی مدیریت است و پس از آن وارد آماده‌سازی می‌شود.`},cash_confirmed:{variant:`success`,title:`پرداخت تأیید شد`,description:`رسید پرداخت شما تأیید شد و سفارش وارد مراحل بعدی می‌شود.`},final_approved:{variant:`success`,title:`تأیید نهایی`,description:`سفارش شما تأیید نهایی شد و آماده آماده‌سازی است.`},preparing:{variant:`info`,title:`در حال آماده‌سازی`,description:`سفارش شما در انبار در حال آماده‌سازی است.`},ready_to_ship:{variant:`info`,title:`آماده ارسال`,description:`سفارش آماده ارسال است و به‌زودی تحویل باربری می‌شود.`},shipped:{variant:`info`,title:`ارسال شده`,description:`سفارش ارسال شده است. جزئیات بارنامه را می‌توانید مشاهده کنید.`},delivered:{variant:`success`,title:`تحویل شده`,description:`سفارش با موفقیت تحویل داده شد.`},expired:{variant:`waiting`,title:`فاکتور منقضی شده`,description:`مهلت پرداخت این فاکتور به پایان رسیده است. برای ادامه با پشتیبانی یا مدیریت هماهنگ کنید.`}};function F(e){return e===`cash`?{payment:`ثبت رسید پرداخت`,review:`بررسی پرداخت نقدی`,approved:`پرداخت تأیید شده`}:e===`check`?{payment:`ثبت چک`,review:`در حال بررسی چک‌ها`,approved:`چک‌ها تأیید شده`}:{payment:`ثبت پرداخت / چک`,review:`بررسی پرداخت / چک`,approved:`تأیید پرداخت`}}function I(e){let t=F(e.settlementType);return de.map(e=>e.status===`check_in_progress`?{...e,label:t.payment}:e.status===`awaiting_check_review`?{...e,label:t.review}:e.status===`checks_approved`?{...e,label:t.approved}:e)}function L(e){return N[e]??0}function ve(e){return P[e]??null}var R={awaiting_settlement:[`awaiting_settlement`,`awaiting_settlement_fix`],check_in_progress:[`check_in_progress`,`cash_in_progress`,`cash_invoice_issued`,`awaiting_cash_payment`,`cash_payment_submitted`],awaiting_check_review:[`awaiting_check_review`,`awaiting_cash_confirmation`,`check_needs_fix`,`check_rejected`],checks_approved:[`checks_approved`,`cash_confirmed`],pricing:[`pricing`]};function z(e,t){if(t===`submitted`)return e.createdAt;let n=R[t]??[t];return[...e.statusHistory].reverse().find(e=>n.includes(e.toStatus))?.changedAt??null}function ye(e){return e===`shipped`?`مشاهده جزئیات و بارنامه`:[`checks_approved`,`cash_confirmed`,`delivered`,`final_approved`].includes(e)?`مشاهده جزئیات`:`مشاهده جزئیات سفارش`}var B={class:`tracking-timeline`},V={class:`tracking-timeline__marker-wrap`},H={class:`tracking-timeline__marker`},U={key:0,class:`tracking-timeline__check`},W={class:`tracking-timeline__label`},G={key:0,class:`tracking-timeline__time`},be=h(s({__name:`OrderTrackingTimeline`,props:{order:{}},setup(e){let t=e,n=l(()=>I(t.order)),r=l(()=>L(t.order.status));function a(e){return e(_(),c(`div`,B,[(_(!0),c(i,null,u(n.value,(e,n)=>(_(),c(`div`,{key:e.status,class:x([`tracking-timeline__item`,`tracking-timeline__item--${a(n)}`])},[m(`div`,V,[t[0]||=m(`div`,{class:`tracking-timeline__line`,"aria-hidden":`true`},null,-1),m(`div`,H,[a(n)===`done`?(_(),c(`span`,U,`✓`)):p(``,!0)])]),m(`div`,{class:x([`tracking-timeline__content`,{"tracking-timeline__content--current":a(n)===`current`}])},[m(`strong`,W,b(e.label),1),o(e.status)?(_(),c(`span`,G,b(o(e.status)),1)):p(``,!0)],2)],2))),128))]))}}),[[`__scopeId`,`data-v-603b6d66`]]),K={class:`status-hero__icon`,"aria-hidden":`true`},q={class:`status-hero__copy`},J={class:`status-hero__title`},xe={key:0,class:`status-hero__desc`},Se=h(s({__name:`OrderStatusHero`,props:{config:{}},setup(e){let t={waiting:`vuesax-linear:timer-1`,success:`vuesax-linear:tick-circle`,info:`vuesax-linear:info-circle`,none:`vuesax-linear:info-circle`};return(n,r)=>e.config.variant===`none`?p(``,!0):(_(),c(`div`,{key:0,class:x([`status-hero`,`status-hero--${e.config.variant}`])},[m(`div`,K,[o(v,{icon:t[e.config.variant],size:28,"stroke-width":1.5},null,8,[`icon`])]),m(`div`,q,[m(`h2`,J,b(e.config.title),1),e.config.description?(_(),c(`p`,xe,b(e.config.description),1)):p(``,!0)])],2))}}),[[`__scopeId`,`data-v-896684d9`]]),Ce={class:`tracking-summary`},Y={class:`tracking-summary__row`},X={class:`tracking-summary__row`},Z={class:`tracking-summary__row`},Q={class:`tracking-summary__row`},we={key:0,class:`tracking-summary__row`},Te={key:1,class:`tracking-summary__row`},Ee=h(s({__name:`OrderTrackingSummary`,props:{order:{}},setup(e){let t=e,n=l(()=>t.order.checks?.reduce((e,t)=>e+t.amount,0)??0);function r(e){return e?e===`cash`?`تسویه نقدی`:`تسویه چکی`:`در انتظار انتخاب مشتری`}return(t,a)=>(_(),c(`div`,Ce,[m(`div`,Y,[a[0]||=m(`span`,null,`مبلغ فاکتور`,-1),m(`strong`,null,b(e.order.finalAmount?d(w)(e.order.finalAmount):`در انتظار قیمت‌گذاری`),1)]),m(`div`,X,[a[1]||=m(`span`,null,`نوع تسویه`,-1),m(`strong`,null,b(r(e.order.settlementType)),1)]),e.order.settlementType===`check`&&e.order.checks?.length?(_(),c(i,{key:0},[m(`div`,Z,[a[2]||=m(`span`,null,`تعداد چک‌ها`,-1),m(`strong`,null,b(d(E)(String(e.order.checks.length)))+` فقره`,1)]),m(`div`,Q,[a[3]||=m(`span`,null,`مجموع مبلغ چک‌ها`,-1),m(`strong`,null,b(d(C)(n.value)),1)]),e.order.checkRassDays==null?p(``,!0):(_(),c(`div`,we,[a[4]||=m(`span`,null,`رأس چک (تقریبی)`,-1),m(`strong`,null,b(d(E)(String(e.order.checkRassDays)))+` روز`,1)]))],64)):p(``,!0),e.order.settlementType===`cash`&&e.order.cashReceipt?(_(),c(`div`,Te,[a[5]||=m(`span`,null,`مبلغ واریزی`,-1),m(`strong`,null,b(d(C)(e.order.cashReceipt.amount)),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-b22cc5d6`]]),De={key:0,class:`order-detail-page`},Oe={class:`order-detail-page__nav mobile-only`},ke={class:`order-detail-page__nav-center`},Ae={class:`order-detail-page__title`},je={key:0,class:`order-detail-page__order-id`},Me={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},Ne={class:`desktop-page__head desktop-only order-detail-page__desktop-head`},Pe={class:`desktop-page__subtitle`},Fe={class:`order-detail-page__body`},Ie={key:0,class:`order-info-card mobile-only`},Le={class:`order-info-card__head`},Re={class:`order-info-card__number`},ze={class:`order-info-card__row`},Be={class:`order-info-card__value order-info-card__value--accent`},Ve={class:`order-info-card__row`},He={class:`order-info-card__value order-info-card__value--accent`},Ue={class:`order-info-card__row`},We={class:`order-info-card__value order-info-card__value--accent`},Ge={class:`order-info-card__row order-info-card__row--last`},Ke={class:`order-info-card__amount`},qe={key:1,class:`order-next-action`},Je={key:2,class:`order-detail-page__tracking`},Ye={class:`order-detail-page__tracking-hero`},Xe={class:`tracking-card tracking-card--hero`},Ze={class:`order-detail-page__tracking-main`},Qe={key:0,class:`order-next-action`},$e={class:`tracking-card tracking-collapse`},et=[`aria-expanded`],tt={class:`tracking-collapse__body`},nt={class:`tracking-collapse__section tracking-collapse__section--flush`},rt={class:`tracking-card tracking-collapse`},it=[`aria-expanded`],at={class:`tracking-collapse__body`},ot={class:`tracking-collapse__section`},st={class:`item-row__meta`},ct={class:`item-row item-row--summary`},lt={key:0,class:`tracking-alert`},ut={class:`tracking-collapse__section`},dt={dir:`ltr`,class:`bank-row__meta`},ft={dir:`ltr`,class:`bank-row__meta`},pt={key:2,class:`tracking-collapse__section`},mt={class:`detail-row`},ht={class:`detail-row`},gt={class:`tracking-collapse__section`},_t={class:`rass-display`},vt={key:0,class:`rass-date`},yt={class:`detail-row`},bt={class:`detail-row`},xt=[`src`],St={key:0,class:`order-detail-page__footer mobile-only`},Ct={class:`receipt-modal card`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`receipt-modal-title`},wt={class:`receipt-modal__header`},Tt={class:`receipt-modal__body`},Et={class:`form-group`},Dt=[`value`],Ot={key:0,class:`input-error-text`},kt={class:`form-group`},At=[`src`],jt={key:1,class:`upload-box__placeholder`},Mt={key:0,class:`input-error-text`},Nt={key:1,class:`page empty-state`},$=h(s({__name:`OrderDetailView`,setup(s){let h=ne(),v=te(),E=ue(),de=ie(`(min-width: 768px)`),N=l(()=>h.params.id),P=l(()=>E.getOrderById(N.value)),F=f(h.query.track===`1`||h.query.receipt===`1`),I=f(!1),L=f(!0),R=f(h.query.receipt===`1`),z=f(``),B=f(``),V=f(``),H=f(``),U=f(``),W=f(``),G=f({}),K=f(``);e([P,()=>h.query.receipt],([e])=>{let t=h.query.receipt===`1`;if(t&&M(e)){I.value=!0,R.value=!0;return}if(t&&e&&!M(e)){I.value=!1;let{receipt:e,...t}=h.query;v.replace({query:{...t,track:`1`}})}},{immediate:!0}),e(de,e=>{e&&(F.value=!0,L.value=!0,R.value=!0,h.query.track!==`1`&&h.query.receipt!==`1`&&v.replace({query:{...h.query,track:`1`}}))},{immediate:!0}),e(z,()=>{G.value=A(G.value,`receiptAmount`),j(G.value)||(K.value=``)}),e(B,()=>{G.value=A(G.value,`receiptDate`),j(G.value)||(K.value=``)}),e(H,()=>{G.value=A(G.value,`trackingNumber`),j(G.value)||(K.value=``)}),e(U,()=>{G.value=A(G.value,`destinationAccountId`),j(G.value)||(K.value=``)});let q=f([]);e(()=>P.value?.id,async e=>{if(!e||!P.value){q.value=[];return}try{q.value=await E.getBankAccountsForOrder(P.value)}catch{q.value=[]}},{immediate:!0}),e(()=>N.value,async e=>{if(e&&!E.getOrderById(e))try{await E.fetchOrder(e)}catch{}},{immediate:!0});let J=l(()=>P.value?ve(P.value.status):null),xe=l(()=>P.value?ye(P.value.status):`مشاهده جزئیات سفارش`);function Ce(e){return e?e===`cash`?`تسویه نقدی`:`تسویه چکی`:`در انتظار انتخاب مشتری`}let Y=l(()=>{let e=P.value;if(!e)return null;let t=he(e);switch(e.status){case`awaiting_settlement`:case`awaiting_settlement_fix`:return t?{label:`انتخاب روش تسویه`,to:`/orders/${e.id}/settlement`}:null;case`check_in_progress`:return t?{label:`ثبت چک‌ها`,to:`/orders/${e.id}/check-mode`}:null;case`check_needs_fix`:case`check_rejected`:return t?{label:`اصلاح چک‌ها`,to:`/orders/${e.id}/check-list`}:null;case`awaiting_cash_payment`:case`cash_invoice_issued`:return t?{label:`ثبت رسید پرداخت`,receipt:!0}:null;default:return null}});function X(){if(!M(P.value)){K.value=`در وضعیت فعلی سفارش امکان ثبت رسید وجود ندارد`;return}F.value=!0,R.value=!0,I.value=!0}function Z(){let e=Y.value;if(e){if(e.receipt){X();return}e.to&&v.push(e.to)}}function Q(){F.value=!0,R.value=!1,v.replace({query:{track:`1`}})}function we(){R.value=!R.value}function Te(){L.value=!L.value}async function $(e){let t=e.target.files?.[0];if(!t)return;let n=se(t);if(!n.valid){G.value={...G.value,receiptImage:n.message??`خطا`};return}G.value=A(G.value,`receiptImage`),W.value=await ce(t)}async function Pt(){if(!P.value)return;if(G.value={},K.value=``,!M(P.value)){K.value=`در وضعیت فعلی سفارش امکان ثبت رسید وجود ندارد`;return}let e=oe(z.value),t={};if(e||(t.receiptAmount=`مبلغ واریزی الزامی است.`),B.value||(t.receiptDate=`تاریخ واریز الزامی است.`),H.value.trim()||(t.trackingNumber=`شماره پیگیری الزامی است.`),U.value||(t.destinationAccountId=`حساب مقصد را انتخاب کنید.`),j(t)){G.value=t,K.value=me;return}try{await E.submitCashReceipt(P.value.id,{amount:e,transferDate:B.value,transferTime:V.value||`12:00`,trackingNumber:H.value,destinationAccountId:U.value,receiptImage:W.value||void 0}),I.value=!1,G.value={},K.value=``}catch(e){K.value=e instanceof Error?e.message:`ثبت رسید ناموفق بود.`}}return(e,s)=>P.value?(_(),c(`div`,De,[m(`header`,Oe,[m(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:s[0]||=e=>d(v).push(`/orders`)},[o(k,{size:20})]),m(`div`,ke,[m(`h1`,Ae,b(F.value?`پیگیری سفارش`:`جزئیات سفارش`),1),F.value?(_(),c(`p`,je,b(P.value.orderNumber),1)):p(``,!0)]),m(`button`,Me,[o(k,{size:18,class:`nav-btn__flip`})])]),m(`header`,Ne,[m(`button`,{type:`button`,class:`order-detail-back`,onClick:s[1]||=e=>d(v).push(`/orders`)},[o(k,{size:18}),s[10]||=a(` بازگشت به سفارش‌ها `,-1)]),s[11]||=m(`h1`,{class:`desktop-page__title`},`پیگیری سفارش`,-1),m(`p`,Pe,b(P.value.orderNumber)+` · `+b(P.value.companyName),1)]),m(`div`,Fe,[F.value?p(``,!0):(_(),c(`div`,Ie,[m(`div`,Le,[s[12]||=m(`span`,{class:`order-info-card__label`},`شماره سفارش`,-1),m(`strong`,Re,b(P.value.orderNumber),1)]),m(`div`,ze,[s[13]||=m(`span`,{class:`order-info-card__key`},`شرکت`,-1),m(`span`,Be,b(P.value.companyName),1)]),m(`div`,Ve,[s[14]||=m(`span`,{class:`order-info-card__key`},`تاریخ ثبت`,-1),m(`span`,He,b(d(S)(P.value.createdAt)),1)]),m(`div`,Ue,[s[15]||=m(`span`,{class:`order-info-card__key`},`نوع تسویه`,-1),m(`span`,We,b(Ce(P.value.settlementType)),1)]),m(`div`,Ge,[s[16]||=m(`span`,{class:`order-info-card__key`},`مبلغ فاکتور`,-1),m(`strong`,Ke,b(P.value.finalAmount?d(w)(P.value.finalAmount):`پس از قیمت‌گذاری مدیریت`),1)])])),Y.value&&!F.value?(_(),c(`div`,qe,[s[17]||=m(`span`,{class:`order-next-action__text`},`برای ادامه سفارش، این مرحله باقی مانده است.`,-1),o(D,{class:`order-next-action__btn`,onClick:Z},{default:y(()=>[a(b(Y.value.label),1)]),_:1})])):p(``,!0),F.value?(_(),c(`div`,Je,[m(`section`,Ye,[m(`div`,Xe,[J.value?(_(),t(Se,{key:0,config:J.value},null,8,[`config`])):p(``,!0),o(Ee,{order:P.value},null,8,[`order`])])]),m(`section`,Ze,[Y.value?(_(),c(`div`,Qe,[s[18]||=m(`span`,{class:`order-next-action__text`},`برای ادامه سفارش، این مرحله باقی مانده است.`,-1),o(D,{class:`order-next-action__btn`,onClick:Z},{default:y(()=>[a(b(Y.value.label),1)]),_:1})])):p(``,!0),m(`div`,$e,[m(`button`,{type:`button`,class:`tracking-collapse__trigger`,"aria-expanded":L.value,onClick:Te},[s[19]||=m(`span`,null,`پیگیری وضعیت`,-1),o(O,{size:18,class:x([`tracking-collapse__chevron`,{"tracking-collapse__chevron--open":L.value}]),"aria-hidden":`true`},null,8,[`class`])],8,et),g(m(`div`,tt,[m(`div`,nt,[o(be,{order:P.value},null,8,[`order`])])],512),[[n,L.value]])]),m(`div`,rt,[m(`button`,{type:`button`,class:`tracking-collapse__trigger`,"aria-expanded":R.value,onClick:we},[m(`span`,null,b(xe.value),1),o(O,{size:18,class:x([`tracking-collapse__chevron`,{"tracking-collapse__chevron--open":R.value}]),"aria-hidden":`true`},null,8,[`class`])],8,it),g(m(`div`,at,[m(`div`,ot,[s[21]||=m(`h3`,{class:`tracking-card__title`},`اقلام سفارش`,-1),(_(!0),c(i,null,u(P.value.items,e=>(_(),c(`div`,{key:e.id,class:`item-row`},[m(`div`,null,[m(`strong`,null,b(e.productName),1),m(`p`,st,`کالیته `+b(e.catalogCode)+` · `+b(e.color),1)]),m(`span`,null,b(d(ae)(e.requestedMeterage)),1)]))),128)),m(`div`,ct,[s[20]||=m(`span`,null,`مجموع متراژ`,-1),m(`strong`,null,b(d(ae)(P.value.totalMeterage)),1)])]),P.value.settlementType===`cash`?(_(),c(i,{key:0},[P.value.cashInvoiceExpiresAt?(_(),c(`div`,lt,` اعتبار فاکتور: `+b(d(S)(P.value.cashInvoiceExpiresAt)),1)):p(``,!0),m(`div`,ut,[s[22]||=m(`h3`,{class:`tracking-card__title`},`حساب‌های بانکی`,-1),(_(!0),c(i,null,u(q.value,e=>(_(),c(`div`,{key:e.id,class:`bank-row`},[m(`strong`,null,b(e.bankName),1),m(`p`,dt,b(e.cardNumber),1),m(`p`,ft,b(e.iban),1)]))),128))]),Y.value?.receipt?(_(),t(D,{key:1,block:``,onClick:X},{default:y(()=>[a(b(P.value.cashReceipt?`ثبت رسید جدید`:`ثبت رسید پرداخت`),1)]),_:1})):p(``,!0),P.value.cashReceipt?(_(),c(`div`,pt,[s[25]||=m(`h3`,{class:`tracking-card__title`},`رسید ثبت‌شده`,-1),m(`div`,mt,[s[23]||=m(`span`,null,`مبلغ`,-1),m(`span`,null,b(d(C)(P.value.cashReceipt.amount)),1)]),m(`div`,ht,[s[24]||=m(`span`,null,`شماره پیگیری`,-1),m(`span`,null,b(P.value.cashReceipt.trackingNumber),1)])])):p(``,!0)],64)):p(``,!0),P.value.settlementType===`check`&&P.value.checks?(_(),c(i,{key:1},[m(`div`,gt,[s[26]||=m(`h3`,{class:`tracking-card__title`},`رأس چک‌ها`,-1),m(`div`,_t,b(P.value.checkRassDays)+` روز`,1),P.value.checkRassDate?(_(),c(`p`,vt,` تاریخ رأس: `+b(d(T)(P.value.checkRassDate)),1)):p(``,!0)]),(_(!0),c(i,null,u(P.value.checks,(e,t)=>(_(),c(`div`,{key:e.id,class:`tracking-collapse__section`},[m(`strong`,null,`چک `+b(t+1),1),m(`div`,yt,[s[27]||=m(`span`,null,`مبلغ`,-1),m(`span`,null,b(d(C)(e.amount)),1)]),m(`div`,bt,[s[28]||=m(`span`,null,`سررسید`,-1),m(`span`,null,b(d(T)(e.dueDate))+` (`+b(d(le)(e.dueDate))+` روز)`,1)]),e.frontImage?(_(),c(`img`,{key:0,src:e.frontImage,class:`check-img`,alt:`چک`},null,8,xt)):p(``,!0)]))),128))],64)):p(``,!0)],512),[[n,R.value]])])])])):p(``,!0)]),F.value?p(``,!0):(_(),c(`div`,St,[o(D,{block:``,onClick:Q},{default:y(()=>[...s[29]||=[a(`مشاهده جزئیات و پیگیری`,-1)]]),_:1})])),(_(),t(r,{to:`body`},[I.value?(_(),c(`div`,{key:0,class:`receipt-modal-overlay`,onClick:s[8]||=ee(e=>I.value=!1,[`self`])},[m(`div`,Ct,[m(`header`,wt,[s[30]||=m(`h3`,{id:`receipt-modal-title`,class:`receipt-modal__title`},`ثبت رسید پرداخت`,-1),m(`button`,{type:`button`,class:`receipt-modal__close`,"aria-label":`بستن`,onClick:s[2]||=e=>I.value=!1},` × `)]),m(`div`,Tt,[o(pe,{message:K.value},null,8,[`message`]),o(ge,{modelValue:z.value,"onUpdate:modelValue":s[3]||=e=>z.value=e,label:`مبلغ واریزی`,error:G.value.receiptAmount},null,8,[`modelValue`,`error`]),o(_e,{modelValue:B.value,"onUpdate:modelValue":s[4]||=e=>B.value=e,label:`تاریخ واریز`,error:G.value.receiptDate},null,8,[`modelValue`,`error`]),o(fe,{modelValue:V.value,"onUpdate:modelValue":s[5]||=e=>V.value=e,label:`ساعت واریز`,type:`time`},null,8,[`modelValue`]),o(fe,{modelValue:H.value,"onUpdate:modelValue":s[6]||=e=>H.value=e,label:`شماره پیگیری`,inputmode:`numeric`,dir:`ltr`,error:G.value.trackingNumber},null,8,[`modelValue`,`error`]),m(`div`,Et,[s[32]||=m(`label`,{class:`form-label`},`حساب مقصد`,-1),g(m(`select`,{"onUpdate:modelValue":s[7]||=e=>U.value=e,class:x([`select-input`,{"select-input--error":G.value.destinationAccountId}])},[s[31]||=m(`option`,{value:``},`انتخاب کنید`,-1),(_(!0),c(i,null,u(q.value,e=>(_(),c(`option`,{key:e.id,value:e.id},b(e.bankName)+` - `+b(e.cardNumber),9,Dt))),128))],2),[[re,U.value]]),G.value.destinationAccountId?(_(),c(`p`,Ot,b(G.value.destinationAccountId),1)):p(``,!0)]),m(`div`,kt,[s[33]||=m(`label`,{class:`form-label`},`تصویر رسید`,-1),m(`label`,{class:x([`upload-box`,{"upload-box--error":G.value.receiptImage}])},[m(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:$},null,32),W.value?(_(),c(`img`,{key:0,src:W.value,class:`upload-box__preview`,alt:`تصویر رسید`},null,8,At)):(_(),c(`span`,jt,`انتخاب تصویر رسید`))],2),G.value.receiptImage?(_(),c(`p`,Mt,b(G.value.receiptImage),1)):p(``,!0)]),o(D,{block:``,class:`mt-4`,onClick:Pt},{default:y(()=>[...s[34]||=[a(`ثبت رسید`,-1)]]),_:1})])])])):p(``,!0)]))])):(_(),c(`div`,Nt,[s[36]||=m(`p`,null,`سفارش یافت نشد`,-1),o(D,{onClick:s[9]||=e=>d(v).push(`/orders`)},{default:y(()=>[...s[35]||=[a(`بازگشت`,-1)]]),_:1})]))}}),[[`__scopeId`,`data-v-7d9d2f9d`]]);export{$ as default}; \ No newline at end of file +import{$ as e,A as t,C as n,D as r,E as i,F as a,I as o,L as s,M as c,O as l,T as ee,Y as u,_ as te,bt as d,ft as f,g as ne,j as p,k as m,n as h,nt as g,q as _,t as v,tt as y,wt as b,x as re,xt as x}from"./BasicIcon-CjTTsi6o.js";import{n as ie}from"./dist-DLhmLSgX.js";import{a as ae,i as S,l as oe,n as C,o as w,r as T,u as E}from"./format-BHJptHdF.js";import{n as se,t as ce}from"./validation-BD7oi-2I.js";import{_ as le,h as ue,n as D,o as O}from"./index-D3Z8WOeX.js";import{n as de}from"./constants-DXXK14Zz.js";import{t as k}from"./IconChevronBack-B10eZjCQ.js";import{t as fe}from"./BaseInput-oWA7d1_u.js";import{t as pe}from"./FormErrorBanner-B8THF9oG.js";import{n as A,r as j,t as me}from"./formErrors-DglFjYkZ.js";import{n as he,t as M}from"./orderInvoice-B0L1Aeuk.js";import{n as ge,t as _e}from"./PersianDateInput-C60QImoe.js";var N={submitted:0,awaiting_review:1,pricing:2,needs_correction:1,awaiting_settlement:3,awaiting_settlement_fix:3,cash_in_progress:4,cash_invoice_issued:4,awaiting_cash_payment:4,cash_payment_submitted:4,check_in_progress:4,awaiting_cash_confirmation:5,awaiting_check_review:5,check_needs_fix:5,check_rejected:5,checks_approved:6,cash_confirmed:6,final_approved:7,preparing:8,ready_to_ship:9,shipped:10,delivered:11,expired:3,cancelled:0,rejected:1},P={submitted:{variant:`waiting`,title:`پیش‌سفارش ثبت شد`,description:`سفارش شما برای بررسی و قیمت‌گذاری به مدیریت ارسال شد. پس از صدور فاکتور می‌توانید روش تسویه (نقد یا چک) را انتخاب کنید.`},awaiting_review:{variant:`waiting`,title:`در انتظار بررسی مدیریت`,description:`پیش‌سفارش شما در صف بررسی است. پس از قیمت‌گذاری و صدور فاکتور، از طریق همین صفحه برای انتخاب تسویه مطلع می‌شوید.`},pricing:{variant:`waiting`,title:`در حال قیمت‌گذاری`,description:`مدیریت در حال تعیین مبلغ نهایی فاکتور است. تا قبل از صدور فاکتور امکان ثبت چک یا پرداخت وجود ندارد.`},awaiting_settlement:{variant:`info`,title:`فاکتور آماده است`,description:`مبلغ فاکتور مشخص شده. لطفاً روش تسویه را انتخاب کنید و مسیر پرداخت را ادامه دهید.`},awaiting_settlement_fix:{variant:`info`,title:`نیاز به اصلاح تسویه`,description:`لطفاً روش تسویه یا اطلاعات پرداخت را اصلاح کنید.`},cash_invoice_issued:{variant:`info`,title:`فاکتور نقدی صادر شد`,description:`مبلغ را به حساب‌های اعلام‌شده واریز و رسید پرداخت را ثبت کنید.`},awaiting_cash_payment:{variant:`info`,title:`در انتظار پرداخت نقدی`,description:`لطفاً مبلغ فاکتور را واریز و رسید پرداخت را ثبت کنید.`},cash_payment_submitted:{variant:`waiting`,title:`رسید ثبت شد`,description:`رسید پرداخت شما دریافت شد و در صف بررسی مدیریت است.`},awaiting_cash_confirmation:{variant:`waiting`,title:`در انتظار تأیید پرداخت`,description:`رسید پرداخت در حال بررسی است. نتیجه به‌زودی اعلام می‌شود.`},awaiting_check_review:{variant:`waiting`,title:`در حال بررسی چک‌ها`,description:`چک‌های ثبت‌شده در حال بررسی هستند. نتیجه بررسی به‌زودی اعلام می‌شود.`},checks_approved:{variant:`success`,title:`چک‌ها تأیید شده`,description:`چک‌های شما تأیید شد. سفارش در انتظار تأیید نهایی مدیریت است و پس از آن وارد آماده‌سازی می‌شود.`},cash_confirmed:{variant:`success`,title:`پرداخت تأیید شد`,description:`رسید پرداخت شما تأیید شد و سفارش وارد مراحل بعدی می‌شود.`},final_approved:{variant:`success`,title:`تأیید نهایی`,description:`سفارش شما تأیید نهایی شد و آماده آماده‌سازی است.`},preparing:{variant:`info`,title:`در حال آماده‌سازی`,description:`سفارش شما در انبار در حال آماده‌سازی است.`},ready_to_ship:{variant:`info`,title:`آماده ارسال`,description:`سفارش آماده ارسال است و به‌زودی تحویل باربری می‌شود.`},shipped:{variant:`info`,title:`ارسال شده`,description:`سفارش ارسال شده است. جزئیات بارنامه را می‌توانید مشاهده کنید.`},delivered:{variant:`success`,title:`تحویل شده`,description:`سفارش با موفقیت تحویل داده شد.`},expired:{variant:`waiting`,title:`فاکتور منقضی شده`,description:`مهلت پرداخت این فاکتور به پایان رسیده است. برای ادامه با پشتیبانی یا مدیریت هماهنگ کنید.`}};function F(e){return e===`cash`?{payment:`ثبت رسید پرداخت`,review:`بررسی پرداخت نقدی`,approved:`پرداخت تأیید شده`}:e===`check`?{payment:`ثبت چک`,review:`در حال بررسی چک‌ها`,approved:`چک‌ها تأیید شده`}:{payment:`ثبت پرداخت / چک`,review:`بررسی پرداخت / چک`,approved:`تأیید پرداخت`}}function I(e){let t=F(e.settlementType);return de.map(e=>e.status===`check_in_progress`?{...e,label:t.payment}:e.status===`awaiting_check_review`?{...e,label:t.review}:e.status===`checks_approved`?{...e,label:t.approved}:e)}function L(e){return N[e]??0}function ve(e){return P[e]??null}var R={awaiting_settlement:[`awaiting_settlement`,`awaiting_settlement_fix`],check_in_progress:[`check_in_progress`,`cash_in_progress`,`cash_invoice_issued`,`awaiting_cash_payment`,`cash_payment_submitted`],awaiting_check_review:[`awaiting_check_review`,`awaiting_cash_confirmation`,`check_needs_fix`,`check_rejected`],checks_approved:[`checks_approved`,`cash_confirmed`],pricing:[`pricing`]};function z(e,t){if(t===`submitted`)return e.createdAt;let n=R[t]??[t];return[...e.statusHistory].reverse().find(e=>n.includes(e.toStatus))?.changedAt??null}function ye(e){return e===`shipped`?`مشاهده جزئیات و بارنامه`:[`checks_approved`,`cash_confirmed`,`delivered`,`final_approved`].includes(e)?`مشاهده جزئیات`:`مشاهده جزئیات سفارش`}var B={class:`tracking-timeline`},V={class:`tracking-timeline__marker-wrap`},H={class:`tracking-timeline__marker`},U={key:0,class:`tracking-timeline__check`},W={class:`tracking-timeline__label`},G={key:0,class:`tracking-timeline__time`},be=h(s({__name:`OrderTrackingTimeline`,props:{order:{}},setup(e){let t=e,n=l(()=>I(t.order)),r=l(()=>L(t.order.status));function a(e){return e(_(),c(`div`,B,[(_(!0),c(i,null,u(n.value,(e,n)=>(_(),c(`div`,{key:e.status,class:x([`tracking-timeline__item`,`tracking-timeline__item--${a(n)}`])},[m(`div`,V,[t[0]||=m(`div`,{class:`tracking-timeline__line`,"aria-hidden":`true`},null,-1),m(`div`,H,[a(n)===`done`?(_(),c(`span`,U,`✓`)):p(``,!0)])]),m(`div`,{class:x([`tracking-timeline__content`,{"tracking-timeline__content--current":a(n)===`current`}])},[m(`strong`,W,b(e.label),1),o(e.status)?(_(),c(`span`,G,b(o(e.status)),1)):p(``,!0)],2)],2))),128))]))}}),[[`__scopeId`,`data-v-603b6d66`]]),K={class:`status-hero__icon`,"aria-hidden":`true`},q={class:`status-hero__copy`},J={class:`status-hero__title`},xe={key:0,class:`status-hero__desc`},Se=h(s({__name:`OrderStatusHero`,props:{config:{}},setup(e){let t={waiting:`vuesax-linear:timer-1`,success:`vuesax-linear:tick-circle`,info:`vuesax-linear:info-circle`,none:`vuesax-linear:info-circle`};return(n,r)=>e.config.variant===`none`?p(``,!0):(_(),c(`div`,{key:0,class:x([`status-hero`,`status-hero--${e.config.variant}`])},[m(`div`,K,[o(v,{icon:t[e.config.variant],size:28,"stroke-width":1.5},null,8,[`icon`])]),m(`div`,q,[m(`h2`,J,b(e.config.title),1),e.config.description?(_(),c(`p`,xe,b(e.config.description),1)):p(``,!0)])],2))}}),[[`__scopeId`,`data-v-896684d9`]]),Ce={class:`tracking-summary`},Y={class:`tracking-summary__row`},X={class:`tracking-summary__row`},Z={class:`tracking-summary__row`},Q={class:`tracking-summary__row`},we={key:0,class:`tracking-summary__row`},Te={key:1,class:`tracking-summary__row`},Ee=h(s({__name:`OrderTrackingSummary`,props:{order:{}},setup(e){let t=e,n=l(()=>t.order.checks?.reduce((e,t)=>e+t.amount,0)??0);function r(e){return e?e===`cash`?`تسویه نقدی`:`تسویه چکی`:`در انتظار انتخاب مشتری`}return(t,a)=>(_(),c(`div`,Ce,[m(`div`,Y,[a[0]||=m(`span`,null,`مبلغ فاکتور`,-1),m(`strong`,null,b(e.order.finalAmount?d(w)(e.order.finalAmount):`در انتظار قیمت‌گذاری`),1)]),m(`div`,X,[a[1]||=m(`span`,null,`نوع تسویه`,-1),m(`strong`,null,b(r(e.order.settlementType)),1)]),e.order.settlementType===`check`&&e.order.checks?.length?(_(),c(i,{key:0},[m(`div`,Z,[a[2]||=m(`span`,null,`تعداد چک‌ها`,-1),m(`strong`,null,b(d(E)(String(e.order.checks.length)))+` فقره`,1)]),m(`div`,Q,[a[3]||=m(`span`,null,`مجموع مبلغ چک‌ها`,-1),m(`strong`,null,b(d(C)(n.value)),1)]),e.order.checkRassDays==null?p(``,!0):(_(),c(`div`,we,[a[4]||=m(`span`,null,`رأس چک (تقریبی)`,-1),m(`strong`,null,b(d(E)(String(e.order.checkRassDays)))+` روز`,1)]))],64)):p(``,!0),e.order.settlementType===`cash`&&e.order.cashReceipt?(_(),c(`div`,Te,[a[5]||=m(`span`,null,`مبلغ واریزی`,-1),m(`strong`,null,b(d(C)(e.order.cashReceipt.amount)),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-b22cc5d6`]]),De={key:0,class:`order-detail-page`},Oe={class:`order-detail-page__nav mobile-only`},ke={class:`order-detail-page__nav-center`},Ae={class:`order-detail-page__title`},je={key:0,class:`order-detail-page__order-id`},Me={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},Ne={class:`desktop-page__head desktop-only order-detail-page__desktop-head`},Pe={class:`desktop-page__subtitle`},Fe={class:`order-detail-page__body`},Ie={key:0,class:`order-info-card mobile-only`},Le={class:`order-info-card__head`},Re={class:`order-info-card__number`},ze={class:`order-info-card__row`},Be={class:`order-info-card__value order-info-card__value--accent`},Ve={class:`order-info-card__row`},He={class:`order-info-card__value order-info-card__value--accent`},Ue={class:`order-info-card__row`},We={class:`order-info-card__value order-info-card__value--accent`},Ge={class:`order-info-card__row order-info-card__row--last`},Ke={class:`order-info-card__amount`},qe={key:1,class:`order-next-action`},Je={key:2,class:`order-detail-page__tracking`},Ye={class:`order-detail-page__tracking-hero`},Xe={class:`tracking-card tracking-card--hero`},Ze={class:`order-detail-page__tracking-main`},Qe={key:0,class:`order-next-action`},$e={class:`tracking-card tracking-collapse`},et=[`aria-expanded`],tt={class:`tracking-collapse__body`},nt={class:`tracking-collapse__section tracking-collapse__section--flush`},rt={class:`tracking-card tracking-collapse`},it=[`aria-expanded`],at={class:`tracking-collapse__body`},ot={class:`tracking-collapse__section`},st={class:`item-row__meta`},ct={class:`item-row item-row--summary`},lt={key:0,class:`tracking-alert`},ut={class:`tracking-collapse__section`},dt={dir:`ltr`,class:`bank-row__meta`},ft={dir:`ltr`,class:`bank-row__meta`},pt={key:2,class:`tracking-collapse__section`},mt={class:`detail-row`},ht={class:`detail-row`},gt={class:`tracking-collapse__section`},_t={class:`rass-display`},vt={key:0,class:`rass-date`},yt={class:`detail-row`},bt={class:`detail-row`},xt=[`src`],St={key:0,class:`order-detail-page__footer mobile-only`},Ct={class:`receipt-modal card`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`receipt-modal-title`},wt={class:`receipt-modal__header`},Tt={class:`receipt-modal__body`},Et={class:`form-group`},Dt=[`value`],Ot={key:0,class:`input-error-text`},kt={class:`form-group`},At=[`src`],jt={key:1,class:`upload-box__placeholder`},Mt={key:0,class:`input-error-text`},Nt={key:1,class:`page empty-state`},$=h(s({__name:`OrderDetailView`,setup(s){let h=ne(),v=te(),E=ue(),de=ie(`(min-width: 768px)`),N=l(()=>h.params.id),P=l(()=>E.getOrderById(N.value)),F=f(h.query.track===`1`||h.query.receipt===`1`),I=f(!1),L=f(!0),R=f(h.query.receipt===`1`),z=f(``),B=f(``),V=f(``),H=f(``),U=f(``),W=f(``),G=f({}),K=f(``);e([P,()=>h.query.receipt],([e])=>{let t=h.query.receipt===`1`;if(t&&M(e)){I.value=!0,R.value=!0;return}if(t&&e&&!M(e)){I.value=!1;let{receipt:e,...t}=h.query;v.replace({query:{...t,track:`1`}})}},{immediate:!0}),e(de,e=>{e&&(F.value=!0,L.value=!0,R.value=!0,h.query.track!==`1`&&h.query.receipt!==`1`&&v.replace({query:{...h.query,track:`1`}}))},{immediate:!0}),e(z,()=>{G.value=A(G.value,`receiptAmount`),j(G.value)||(K.value=``)}),e(B,()=>{G.value=A(G.value,`receiptDate`),j(G.value)||(K.value=``)}),e(H,()=>{G.value=A(G.value,`trackingNumber`),j(G.value)||(K.value=``)}),e(U,()=>{G.value=A(G.value,`destinationAccountId`),j(G.value)||(K.value=``)});let q=f([]);e(()=>P.value?.id,async e=>{if(!e||!P.value){q.value=[];return}try{q.value=await E.getBankAccountsForOrder(P.value)}catch{q.value=[]}},{immediate:!0}),e(()=>N.value,async e=>{if(e&&!E.getOrderById(e))try{await E.fetchOrder(e)}catch{}},{immediate:!0});let J=l(()=>P.value?ve(P.value.status):null),xe=l(()=>P.value?ye(P.value.status):`مشاهده جزئیات سفارش`);function Ce(e){return e?e===`cash`?`تسویه نقدی`:`تسویه چکی`:`در انتظار انتخاب مشتری`}let Y=l(()=>{let e=P.value;if(!e)return null;let t=he(e);switch(e.status){case`awaiting_settlement`:case`awaiting_settlement_fix`:return t?{label:`انتخاب روش تسویه`,to:`/orders/${e.id}/settlement`}:null;case`check_in_progress`:return t?{label:`ثبت چک‌ها`,to:`/orders/${e.id}/check-mode`}:null;case`check_needs_fix`:case`check_rejected`:return t?{label:`اصلاح چک‌ها`,to:`/orders/${e.id}/check-list`}:null;case`awaiting_cash_payment`:case`cash_invoice_issued`:return t?{label:`ثبت رسید پرداخت`,receipt:!0}:null;default:return null}});function X(){if(!M(P.value)){K.value=`در وضعیت فعلی سفارش امکان ثبت رسید وجود ندارد`;return}F.value=!0,R.value=!0,I.value=!0}function Z(){let e=Y.value;if(e){if(e.receipt){X();return}e.to&&v.push(e.to)}}function Q(){F.value=!0,R.value=!1,v.replace({query:{track:`1`}})}function we(){R.value=!R.value}function Te(){L.value=!L.value}async function $(e){let t=e.target.files?.[0];if(!t)return;let n=se(t);if(!n.valid){G.value={...G.value,receiptImage:n.message??`خطا`};return}G.value=A(G.value,`receiptImage`),W.value=await ce(t)}async function Pt(){if(!P.value)return;if(G.value={},K.value=``,!M(P.value)){K.value=`در وضعیت فعلی سفارش امکان ثبت رسید وجود ندارد`;return}let e=oe(z.value),t={};if(e||(t.receiptAmount=`مبلغ واریزی الزامی است.`),B.value||(t.receiptDate=`تاریخ واریز الزامی است.`),H.value.trim()||(t.trackingNumber=`شماره پیگیری الزامی است.`),U.value||(t.destinationAccountId=`حساب مقصد را انتخاب کنید.`),j(t)){G.value=t,K.value=me;return}try{await E.submitCashReceipt(P.value.id,{amount:e,transferDate:B.value,transferTime:V.value||`12:00`,trackingNumber:H.value,destinationAccountId:U.value,receiptImage:W.value||void 0}),I.value=!1,G.value={},K.value=``}catch(e){K.value=e instanceof Error?e.message:`ثبت رسید ناموفق بود.`}}return(e,s)=>P.value?(_(),c(`div`,De,[m(`header`,Oe,[m(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:s[0]||=e=>d(v).push(`/orders`)},[o(k,{size:20})]),m(`div`,ke,[m(`h1`,Ae,b(F.value?`پیگیری سفارش`:`جزئیات سفارش`),1),F.value?(_(),c(`p`,je,b(P.value.orderNumber),1)):p(``,!0)]),m(`button`,Me,[o(k,{size:18,class:`nav-btn__flip`})])]),m(`header`,Ne,[m(`button`,{type:`button`,class:`order-detail-back`,onClick:s[1]||=e=>d(v).push(`/orders`)},[o(k,{size:18}),s[10]||=a(` بازگشت به سفارش‌ها `,-1)]),s[11]||=m(`h1`,{class:`desktop-page__title`},`پیگیری سفارش`,-1),m(`p`,Pe,b(P.value.orderNumber)+` · `+b(P.value.companyName),1)]),m(`div`,Fe,[F.value?p(``,!0):(_(),c(`div`,Ie,[m(`div`,Le,[s[12]||=m(`span`,{class:`order-info-card__label`},`شماره سفارش`,-1),m(`strong`,Re,b(P.value.orderNumber),1)]),m(`div`,ze,[s[13]||=m(`span`,{class:`order-info-card__key`},`شرکت`,-1),m(`span`,Be,b(P.value.companyName),1)]),m(`div`,Ve,[s[14]||=m(`span`,{class:`order-info-card__key`},`تاریخ ثبت`,-1),m(`span`,He,b(d(S)(P.value.createdAt)),1)]),m(`div`,Ue,[s[15]||=m(`span`,{class:`order-info-card__key`},`نوع تسویه`,-1),m(`span`,We,b(Ce(P.value.settlementType)),1)]),m(`div`,Ge,[s[16]||=m(`span`,{class:`order-info-card__key`},`مبلغ فاکتور`,-1),m(`strong`,Ke,b(P.value.finalAmount?d(w)(P.value.finalAmount):`پس از قیمت‌گذاری مدیریت`),1)])])),Y.value&&!F.value?(_(),c(`div`,qe,[s[17]||=m(`span`,{class:`order-next-action__text`},`برای ادامه سفارش، این مرحله باقی مانده است.`,-1),o(D,{class:`order-next-action__btn`,onClick:Z},{default:y(()=>[a(b(Y.value.label),1)]),_:1})])):p(``,!0),F.value?(_(),c(`div`,Je,[m(`section`,Ye,[m(`div`,Xe,[J.value?(_(),t(Se,{key:0,config:J.value},null,8,[`config`])):p(``,!0),o(Ee,{order:P.value},null,8,[`order`])])]),m(`section`,Ze,[Y.value?(_(),c(`div`,Qe,[s[18]||=m(`span`,{class:`order-next-action__text`},`برای ادامه سفارش، این مرحله باقی مانده است.`,-1),o(D,{class:`order-next-action__btn`,onClick:Z},{default:y(()=>[a(b(Y.value.label),1)]),_:1})])):p(``,!0),m(`div`,$e,[m(`button`,{type:`button`,class:`tracking-collapse__trigger`,"aria-expanded":L.value,onClick:Te},[s[19]||=m(`span`,null,`پیگیری وضعیت`,-1),o(O,{size:18,class:x([`tracking-collapse__chevron`,{"tracking-collapse__chevron--open":L.value}]),"aria-hidden":`true`},null,8,[`class`])],8,et),g(m(`div`,tt,[m(`div`,nt,[o(be,{order:P.value},null,8,[`order`])])],512),[[n,L.value]])]),m(`div`,rt,[m(`button`,{type:`button`,class:`tracking-collapse__trigger`,"aria-expanded":R.value,onClick:we},[m(`span`,null,b(xe.value),1),o(O,{size:18,class:x([`tracking-collapse__chevron`,{"tracking-collapse__chevron--open":R.value}]),"aria-hidden":`true`},null,8,[`class`])],8,it),g(m(`div`,at,[m(`div`,ot,[s[21]||=m(`h3`,{class:`tracking-card__title`},`اقلام سفارش`,-1),(_(!0),c(i,null,u(P.value.items,e=>(_(),c(`div`,{key:e.id,class:`item-row`},[m(`div`,null,[m(`strong`,null,b(e.productName),1),m(`p`,st,`کالیته `+b(e.catalogCode)+` · `+b(e.color),1)]),m(`span`,null,b(d(ae)(e.requestedMeterage)),1)]))),128)),m(`div`,ct,[s[20]||=m(`span`,null,`مجموع متراژ`,-1),m(`strong`,null,b(d(ae)(P.value.totalMeterage)),1)])]),P.value.settlementType===`cash`?(_(),c(i,{key:0},[P.value.cashInvoiceExpiresAt?(_(),c(`div`,lt,` اعتبار فاکتور: `+b(d(S)(P.value.cashInvoiceExpiresAt)),1)):p(``,!0),m(`div`,ut,[s[22]||=m(`h3`,{class:`tracking-card__title`},`حساب‌های بانکی`,-1),(_(!0),c(i,null,u(q.value,e=>(_(),c(`div`,{key:e.id,class:`bank-row`},[m(`strong`,null,b(e.bankName),1),m(`p`,dt,b(e.cardNumber),1),m(`p`,ft,b(e.iban),1)]))),128))]),Y.value?.receipt?(_(),t(D,{key:1,block:``,onClick:X},{default:y(()=>[a(b(P.value.cashReceipt?`ثبت رسید جدید`:`ثبت رسید پرداخت`),1)]),_:1})):p(``,!0),P.value.cashReceipt?(_(),c(`div`,pt,[s[25]||=m(`h3`,{class:`tracking-card__title`},`رسید ثبت‌شده`,-1),m(`div`,mt,[s[23]||=m(`span`,null,`مبلغ`,-1),m(`span`,null,b(d(C)(P.value.cashReceipt.amount)),1)]),m(`div`,ht,[s[24]||=m(`span`,null,`شماره پیگیری`,-1),m(`span`,null,b(P.value.cashReceipt.trackingNumber),1)])])):p(``,!0)],64)):p(``,!0),P.value.settlementType===`check`&&P.value.checks?(_(),c(i,{key:1},[m(`div`,gt,[s[26]||=m(`h3`,{class:`tracking-card__title`},`رأس چک‌ها`,-1),m(`div`,_t,b(P.value.checkRassDays)+` روز`,1),P.value.checkRassDate?(_(),c(`p`,vt,` تاریخ رأس: `+b(d(T)(P.value.checkRassDate)),1)):p(``,!0)]),(_(!0),c(i,null,u(P.value.checks,(e,t)=>(_(),c(`div`,{key:e.id,class:`tracking-collapse__section`},[m(`strong`,null,`چک `+b(t+1),1),m(`div`,yt,[s[27]||=m(`span`,null,`مبلغ`,-1),m(`span`,null,b(d(C)(e.amount)),1)]),m(`div`,bt,[s[28]||=m(`span`,null,`سررسید`,-1),m(`span`,null,b(d(T)(e.dueDate))+` (`+b(d(le)(e.dueDate))+` روز)`,1)]),e.frontImage?(_(),c(`img`,{key:0,src:e.frontImage,class:`check-img`,alt:`چک`},null,8,xt)):p(``,!0)]))),128))],64)):p(``,!0)],512),[[n,R.value]])])])])):p(``,!0)]),F.value?p(``,!0):(_(),c(`div`,St,[o(D,{block:``,onClick:Q},{default:y(()=>[...s[29]||=[a(`مشاهده جزئیات و پیگیری`,-1)]]),_:1})])),(_(),t(r,{to:`body`},[I.value?(_(),c(`div`,{key:0,class:`receipt-modal-overlay`,onClick:s[8]||=ee(e=>I.value=!1,[`self`])},[m(`div`,Ct,[m(`header`,wt,[s[30]||=m(`h3`,{id:`receipt-modal-title`,class:`receipt-modal__title`},`ثبت رسید پرداخت`,-1),m(`button`,{type:`button`,class:`receipt-modal__close`,"aria-label":`بستن`,onClick:s[2]||=e=>I.value=!1},` × `)]),m(`div`,Tt,[o(pe,{message:K.value},null,8,[`message`]),o(ge,{modelValue:z.value,"onUpdate:modelValue":s[3]||=e=>z.value=e,label:`مبلغ واریزی`,error:G.value.receiptAmount},null,8,[`modelValue`,`error`]),o(_e,{modelValue:B.value,"onUpdate:modelValue":s[4]||=e=>B.value=e,label:`تاریخ واریز`,error:G.value.receiptDate},null,8,[`modelValue`,`error`]),o(fe,{modelValue:V.value,"onUpdate:modelValue":s[5]||=e=>V.value=e,label:`ساعت واریز`,type:`time`},null,8,[`modelValue`]),o(fe,{modelValue:H.value,"onUpdate:modelValue":s[6]||=e=>H.value=e,label:`شماره پیگیری`,inputmode:`numeric`,dir:`ltr`,error:G.value.trackingNumber},null,8,[`modelValue`,`error`]),m(`div`,Et,[s[32]||=m(`label`,{class:`form-label`},`حساب مقصد`,-1),g(m(`select`,{"onUpdate:modelValue":s[7]||=e=>U.value=e,class:x([`select-input`,{"select-input--error":G.value.destinationAccountId}])},[s[31]||=m(`option`,{value:``},`انتخاب کنید`,-1),(_(!0),c(i,null,u(q.value,e=>(_(),c(`option`,{key:e.id,value:e.id},b(e.bankName)+` - `+b(e.cardNumber),9,Dt))),128))],2),[[re,U.value]]),G.value.destinationAccountId?(_(),c(`p`,Ot,b(G.value.destinationAccountId),1)):p(``,!0)]),m(`div`,kt,[s[33]||=m(`label`,{class:`form-label`},`تصویر رسید`,-1),m(`label`,{class:x([`upload-box`,{"upload-box--error":G.value.receiptImage}])},[m(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:$},null,32),W.value?(_(),c(`img`,{key:0,src:W.value,class:`upload-box__preview`,alt:`تصویر رسید`},null,8,At)):(_(),c(`span`,jt,`انتخاب تصویر رسید`))],2),G.value.receiptImage?(_(),c(`p`,Mt,b(G.value.receiptImage),1)):p(``,!0)]),o(D,{block:``,class:`mt-4`,onClick:Pt},{default:y(()=>[...s[34]||=[a(`ثبت رسید`,-1)]]),_:1})])])])):p(``,!0)]))])):(_(),c(`div`,Nt,[s[36]||=m(`p`,null,`سفارش یافت نشد`,-1),o(D,{onClick:s[9]||=e=>d(v).push(`/orders`)},{default:y(()=>[...s[35]||=[a(`بازگشت`,-1)]]),_:1})]))}}),[[`__scopeId`,`data-v-7d9d2f9d`]]);export{$ as default}; \ No newline at end of file diff --git a/dist/assets/OrderSuccessView-BXGugRjf.js b/dist/assets/OrderSuccessView-Bmz2L5sQ.js similarity index 93% rename from dist/assets/OrderSuccessView-BXGugRjf.js rename to dist/assets/OrderSuccessView-Bmz2L5sQ.js index fe488ce..1bcadbb 100644 --- a/dist/assets/OrderSuccessView-BXGugRjf.js +++ b/dist/assets/OrderSuccessView-Bmz2L5sQ.js @@ -1 +1 @@ -import{F as e,I as t,L as n,M as r,O as i,_ as a,bt as o,g as s,j as c,k as l,n as u,q as d,tt as f,wt as p}from"./BasicIcon-CjTTsi6o.js";import{a as m}from"./format-BHJptHdF.js";import{h,n as g}from"./index-BQQA5ZX-.js";import{t as _}from"./PageHeader-WFa4BbgN.js";import{t as v}from"./useGoBack-D3aJ73Q-.js";var y={class:`page success-page`},b={class:`page__scroll success-page__scroll`},x={key:0,class:`card mb-4`},S={class:`info-row`},C={class:`info-row`},w={class:`info-row`},T=u(n({__name:`OrderSuccessView`,setup(n){let u=s(),T=a(),{goBack:E}=v(`/orders`),D=h(),O=i(()=>D.getOrderById(u.params.id));return(n,i)=>(d(),r(`div`,y,[t(_,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:o(E)},null,8,[`onBack`]),l(`div`,b,[i[8]||=l(`div`,{class:`success-icon`},`✓`,-1),i[9]||=l(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),i[10]||=l(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(d(),r(`div`,x,[l(`div`,S,[i[2]||=l(`span`,null,`شماره سفارش:`,-1),l(`strong`,null,p(O.value.orderNumber),1)]),l(`div`,C,[i[3]||=l(`span`,null,`شرکت:`,-1),l(`span`,null,p(O.value.companyName),1)]),l(`div`,w,[i[4]||=l(`span`,null,`متراژ:`,-1),l(`span`,null,p(o(m)(O.value.totalMeterage)),1)]),i[5]||=l(`div`,{class:`info-row`},[l(`span`,null,`وضعیت:`),l(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):c(``,!0),t(g,{block:``,onClick:i[0]||=e=>o(T).replace(`/orders/${O.value?.id}`)},{default:f(()=>[...i[6]||=[e(` مشاهده جزئیات سفارش `,-1)]]),_:1}),t(g,{block:``,variant:`outline`,class:`mt-2`,onClick:i[1]||=e=>o(T).replace(`/`)},{default:f(()=>[...i[7]||=[e(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-3d172af9`]]);export{T as default}; \ No newline at end of file +import{F as e,I as t,L as n,M as r,O as i,_ as a,bt as o,g as s,j as c,k as l,n as u,q as d,tt as f,wt as p}from"./BasicIcon-CjTTsi6o.js";import{a as m}from"./format-BHJptHdF.js";import{h,n as g}from"./index-D3Z8WOeX.js";import{t as _}from"./PageHeader-B47bvmJV.js";import{t as v}from"./useGoBack-D3aJ73Q-.js";var y={class:`page success-page`},b={class:`page__scroll success-page__scroll`},x={key:0,class:`card mb-4`},S={class:`info-row`},C={class:`info-row`},w={class:`info-row`},T=u(n({__name:`OrderSuccessView`,setup(n){let u=s(),T=a(),{goBack:E}=v(`/orders`),D=h(),O=i(()=>D.getOrderById(u.params.id));return(n,i)=>(d(),r(`div`,y,[t(_,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:o(E)},null,8,[`onBack`]),l(`div`,b,[i[8]||=l(`div`,{class:`success-icon`},`✓`,-1),i[9]||=l(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),i[10]||=l(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(d(),r(`div`,x,[l(`div`,S,[i[2]||=l(`span`,null,`شماره سفارش:`,-1),l(`strong`,null,p(O.value.orderNumber),1)]),l(`div`,C,[i[3]||=l(`span`,null,`شرکت:`,-1),l(`span`,null,p(O.value.companyName),1)]),l(`div`,w,[i[4]||=l(`span`,null,`متراژ:`,-1),l(`span`,null,p(o(m)(O.value.totalMeterage)),1)]),i[5]||=l(`div`,{class:`info-row`},[l(`span`,null,`وضعیت:`),l(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):c(``,!0),t(g,{block:``,onClick:i[0]||=e=>o(T).replace(`/orders/${O.value?.id}`)},{default:f(()=>[...i[6]||=[e(` مشاهده جزئیات سفارش `,-1)]]),_:1}),t(g,{block:``,variant:`outline`,class:`mt-2`,onClick:i[1]||=e=>o(T).replace(`/`)},{default:f(()=>[...i[7]||=[e(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-3d172af9`]]);export{T as default}; \ No newline at end of file diff --git a/dist/assets/OrdersView-CFbUKVTf.css b/dist/assets/OrdersView-CDVkfDcz.css similarity index 96% rename from dist/assets/OrdersView-CFbUKVTf.css rename to dist/assets/OrdersView-CDVkfDcz.css index 5f20c5d..4cec3be 100644 --- a/dist/assets/OrdersView-CFbUKVTf.css +++ b/dist/assets/OrdersView-CDVkfDcz.css @@ -1 +1 @@ -.filter-tabs[data-v-4cd20e9b]{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-tabs--equal[data-v-4cd20e9b]{gap:6px;padding-bottom:0;overflow:visible}.filter-tabs[data-v-4cd20e9b]::-webkit-scrollbar{display:none}.filter-tab[data-v-4cd20e9b]{background:var(--color-tab-inactive-bg);height:36px;color:var(--color-tab-inactive-text);cursor:pointer;border:1px solid #0000;border-radius:999px;flex-shrink:0;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s}.filter-tabs--equal .filter-tab[data-v-4cd20e9b]{border-radius:10px;flex:1;min-width:0;height:38px;padding:0 6px;font-size:.8125rem;font-weight:500}.filter-tab.active[data-v-4cd20e9b]{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.filter-tabs--equal .filter-tab.active[data-v-4cd20e9b]{font-weight:600}.filter-tab[data-v-4cd20e9b]:not(.active):hover{border-color:var(--color-border);color:var(--color-text)}.badge[data-v-5e1be8f4]{white-space:nowrap;border-radius:10px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-warning[data-v-5e1be8f4]{background:var(--color-warning-light);color:var(--color-warning)}.badge-success[data-v-5e1be8f4]{background:var(--color-success-light);color:var(--color-success)}.badge-info[data-v-5e1be8f4]{background:var(--color-info-light);color:var(--color-info)}.badge-purple[data-v-5e1be8f4]{background:var(--color-purple-light);color:var(--color-purple)}.badge-danger[data-v-5e1be8f4]{background:var(--color-danger-light);color:var(--color-danger)}.badge-neutral[data-v-5e1be8f4]{background:var(--color-summary-bg);color:var(--color-text-muted)}.orders-mobile-page[data-v-de30513b]{background:var(--color-bg);color:var(--color-text);height:100%;max-height:100%;padding:12px 0 0}.orders-mobile-page__nav[data-v-de30513b]{padding-inline:var(--page-padding);color:var(--color-text);flex-shrink:0;grid-template-columns:40px 1fr auto;align-items:center;margin-bottom:16px;display:grid}.orders-mobile-page__title[data-v-de30513b]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-de30513b]{width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-mobile-page__tabs[data-v-de30513b]{padding-inline:var(--page-padding);flex-shrink:0;margin-bottom:12px}.orders-mobile-page__scroll[data-v-de30513b]{min-height:0;padding-inline:var(--page-padding);flex:1;padding-bottom:24px;overflow-y:auto}.orders-mobile-page__list[data-v-de30513b]{flex-direction:column;gap:12px;display:flex}.order-card[data-v-de30513b]{border:1px solid var(--color-border);background:var(--color-elevated);width:100%;box-shadow:var(--shadow-card);color:var(--color-text);text-align:right;cursor:pointer;border-radius:16px;padding:16px;display:flex}.order-card__content[data-v-de30513b]{flex-direction:column;flex:1;align-items:flex-start;display:flex}.order-card__label[data-v-de30513b]{color:var(--color-text-muted);font-size:.75rem}.order-card__number[data-v-de30513b]{color:var(--color-text);margin-bottom:6px;font-size:.9375rem;font-weight:700}.order-card__company[data-v-de30513b]{color:var(--color-text);margin:0 0 6px;font-size:.875rem;font-weight:600}.order-card__amount[data-v-de30513b]{color:var(--color-text);margin:0 0 10px;font-size:.875rem;font-weight:700}.order-card__badge[data-v-de30513b]{margin-top:auto}.order-card__icon[data-v-de30513b]{border-radius:50%;justify-content:center;align-self:center;align-items:center;width:56px;height:56px;margin-right:14px;display:flex}.order-card__icon--par[data-v-de30513b]{background:var(--color-primary-soft);color:var(--color-primary)}.order-card__icon--fam-baft[data-v-de30513b]{background:var(--color-brand-warm);color:var(--color-brand-warm-text)}.order-card__icon--success[data-v-de30513b]{background:var(--color-success-soft);color:var(--color-success)}.orders-mobile-pagination[data-v-de30513b]{flex-direction:column;align-items:center;gap:10px;margin:16px 0 0;padding:0;display:flex}.orders-mobile-pagination__summary[data-v-de30513b]{color:var(--color-text-muted);margin:0;font-size:.8125rem}.orders-mobile-pagination__controls[data-v-de30513b]{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.orders-mobile-pagination__arrow[data-v-de30513b],.orders-mobile-pagination__page[data-v-de30513b]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);width:36px;height:36px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.8125rem;display:inline-flex}.orders-mobile-pagination__arrow[data-v-de30513b]:disabled{opacity:.4;cursor:not-allowed}.orders-mobile-pagination__arrow--prev[data-v-de30513b]{transform:scaleX(-1)}.orders-mobile-pagination__arrow--next[data-v-de30513b]{transform:none}.orders-mobile-pagination__page--active[data-v-de30513b]{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.orders-mobile-pagination__ellipsis[data-v-de30513b]{text-align:center;min-width:20px;color:var(--color-text-muted)}.orders-view[data-v-6dc7c1a5]{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.orders-view[data-v-6dc7c1a5] .orders-mobile-page{flex:1;min-height:0}.orders-view__success[data-v-6dc7c1a5]{margin:0 var(--page-padding) 12px;border-radius:var(--radius-sm);background:var(--color-success-soft);border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent);color:var(--color-success);padding:12px 14px;font-size:.875rem;font-weight:500;line-height:1.5} +.filter-tabs[data-v-4cd20e9b]{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-tabs--equal[data-v-4cd20e9b]{gap:6px;padding-bottom:0;overflow:visible}.filter-tabs[data-v-4cd20e9b]::-webkit-scrollbar{display:none}.filter-tab[data-v-4cd20e9b]{background:var(--color-tab-inactive-bg);height:36px;color:var(--color-tab-inactive-text);cursor:pointer;border:1px solid #0000;border-radius:999px;flex-shrink:0;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s}.filter-tabs--equal .filter-tab[data-v-4cd20e9b]{border-radius:10px;flex:1;min-width:0;height:38px;padding:0 6px;font-size:.8125rem;font-weight:500}.filter-tab.active[data-v-4cd20e9b]{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.filter-tabs--equal .filter-tab.active[data-v-4cd20e9b]{font-weight:600}.filter-tab[data-v-4cd20e9b]:not(.active):hover{border-color:var(--color-border);color:var(--color-text)}.badge[data-v-5e1be8f4]{white-space:nowrap;border-radius:10px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-warning[data-v-5e1be8f4]{background:var(--color-warning-light);color:var(--color-warning)}.badge-success[data-v-5e1be8f4]{background:var(--color-success-light);color:var(--color-success)}.badge-info[data-v-5e1be8f4]{background:var(--color-info-light);color:var(--color-info)}.badge-purple[data-v-5e1be8f4]{background:var(--color-purple-light);color:var(--color-purple)}.badge-danger[data-v-5e1be8f4]{background:var(--color-danger-light);color:var(--color-danger)}.badge-neutral[data-v-5e1be8f4]{background:var(--color-summary-bg);color:var(--color-text-muted)}.orders-mobile-page[data-v-de30513b]{background:var(--color-bg);color:var(--color-text);height:100%;max-height:100%;padding:12px 0 0}.orders-mobile-page__nav[data-v-de30513b]{padding-inline:var(--page-padding);color:var(--color-text);flex-shrink:0;grid-template-columns:40px 1fr auto;align-items:center;margin-bottom:16px;display:grid}.orders-mobile-page__title[data-v-de30513b]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-de30513b]{width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-mobile-page__tabs[data-v-de30513b]{padding-inline:var(--page-padding);flex-shrink:0;margin-bottom:12px}.orders-mobile-page__scroll[data-v-de30513b]{min-height:0;padding-inline:var(--page-padding);flex:1;padding-bottom:24px;overflow-y:auto}.orders-mobile-page__list[data-v-de30513b]{flex-direction:column;gap:12px;display:flex}.order-card[data-v-de30513b]{border:1px solid var(--color-border);background:var(--color-elevated);width:100%;box-shadow:var(--shadow-card);color:var(--color-text);text-align:right;cursor:pointer;border-radius:16px;padding:16px;display:flex}.order-card__content[data-v-de30513b]{flex-direction:column;flex:1;align-items:flex-start;display:flex}.order-card__label[data-v-de30513b]{color:var(--color-text-muted);font-size:.75rem}.order-card__number[data-v-de30513b]{color:var(--color-text);margin-bottom:6px;font-size:.9375rem;font-weight:700}.order-card__company[data-v-de30513b]{color:var(--color-text);margin:0 0 6px;font-size:.875rem;font-weight:600}.order-card__amount[data-v-de30513b]{color:var(--color-text);margin:0 0 10px;font-size:.875rem;font-weight:700}.order-card__badge[data-v-de30513b]{margin-top:auto}.order-card__icon[data-v-de30513b]{border-radius:50%;justify-content:center;align-self:center;align-items:center;width:56px;height:56px;margin-right:14px;display:flex}.order-card__icon--par[data-v-de30513b]{background:var(--color-primary-soft);color:var(--color-primary)}.order-card__icon--fam-baft[data-v-de30513b]{background:var(--color-brand-warm);color:var(--color-brand-warm-text)}.order-card__icon--success[data-v-de30513b]{background:var(--color-success-soft);color:var(--color-success)}.orders-mobile-pagination[data-v-de30513b]{flex-direction:column;align-items:center;gap:10px;margin:16px 0 0;padding:0;display:flex}.orders-mobile-pagination__summary[data-v-de30513b]{color:var(--color-text-muted);margin:0;font-size:.8125rem}.orders-mobile-pagination__controls[data-v-de30513b]{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.orders-mobile-pagination__arrow[data-v-de30513b],.orders-mobile-pagination__page[data-v-de30513b]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-elevated);width:36px;height:36px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.8125rem;display:inline-flex}.orders-mobile-pagination__arrow[data-v-de30513b]:disabled{opacity:.4;cursor:not-allowed}.orders-mobile-pagination__arrow--prev[data-v-de30513b]{transform:scaleX(-1)}.orders-mobile-pagination__arrow--next[data-v-de30513b]{transform:none}.orders-mobile-pagination__page--active[data-v-de30513b]{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.orders-mobile-pagination__ellipsis[data-v-de30513b]{text-align:center;min-width:20px;color:var(--color-text-muted)}.orders-view[data-v-66049c15]{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.orders-view[data-v-66049c15] .orders-mobile-page{flex:1;min-height:0}.orders-view__success[data-v-66049c15]{margin:0 var(--page-padding) 12px;border-radius:var(--radius-sm);background:var(--color-success-soft);border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent);color:var(--color-success);padding:12px 14px;font-size:.875rem;font-weight:500;line-height:1.5} diff --git a/dist/assets/OrdersView-DfeWZZpC.js b/dist/assets/OrdersView-MV4lb2oK.js similarity index 97% rename from dist/assets/OrdersView-DfeWZZpC.js rename to dist/assets/OrdersView-MV4lb2oK.js index e1acf62..8f1b005 100644 --- a/dist/assets/OrdersView-DfeWZZpC.js +++ b/dist/assets/OrdersView-MV4lb2oK.js @@ -1 +1 @@ -import{$ as e,A as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,X as l,Y as u,_ as d,bt as f,ft as p,g as m,j as h,k as g,n as _,q as v,t as y,tt as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{i as C,n as w,o as T,u as E}from"./format-BHJptHdF.js";import{t as D}from"./catalog-Dd554brK.js";import{S as O,c as k,h as A,i as j,n as M,o as N}from"./index-BQQA5ZX-.js";import{t as P}from"./EmptyState-BpC5eqVE.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconChevronBack-B10eZjCQ.js";import{n as R,t as z}from"./IconFamBaftLogo-DC-RbvIL.js";import{t as B}from"./IconCheckCircleOutline-DMQwnwv8.js";import{t as V}from"./IconFilter-lDKrtGms.js";import{t as H}from"./IconMoreVertical-CoEoZgQs.js";var U=[`awaiting_review`,`awaiting_check_review`],W=[`submitted`,`pricing`,`check_in_progress`,`awaiting_cash_confirmation`,`preparing`,`ready_to_ship`,`needs_correction`,`awaiting_settlement_fix`,`cash_in_progress`,`awaiting_cash_payment`,`cash_payment_submitted`,`check_needs_fix`,`awaiting_settlement`,`cash_invoice_issued`],G=[`shipped`],K=[`delivered`,`final_approved`,`checks_approved`,`cash_confirmed`],q=[`cancelled`,`rejected`,`expired`,`check_rejected`],ee=[...U,...W,...G];function te(e,t){switch(t){case`review`:return U.includes(e);case`in_progress`:return W.includes(e);case`shipped`:return G.includes(e);case`delivered`:return K.includes(e);case`cancelled`:return q.includes(e);default:return!0}}function ne(e,t){return t===`active`?ee.includes(e):t===`done`?K.includes(e):t!==`cancelled`||q.includes(e)}var J=5,Y=5;function X(){let t=d(),n=m(),r=A(),a=k(),o=D(),s=p(1),l=p(1),u=p(``);i(async()=>{await Promise.all([r.hydrate(),o.loadCompanies()])}),e(()=>n.query.submitted,e=>{let r=Number(e);if(!Number.isFinite(r)||r<1){u.value=``;return}u.value=r===1?`پیش‌سفارش با موفقیت ثبت شد.`:`${E(String(r))} پیش‌سفارش (برای شرکت‌های مختلف) ثبت شد.`;let{submitted:i,...a}=n.query;t.replace({query:a})},{immediate:!0});let f=c({get:()=>t.currentRoute.value.query.tab??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,tab:e}})}),h=c({get:()=>t.currentRoute.value.query.filter??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,filter:e===`all`?void 0:e}})}),g=c(()=>t.currentRoute.value.query.q??``),_=c(()=>a.user?r.userOrders(a.user.id):[]),v=c(()=>({total:_.value.length,review:_.value.filter(e=>U.includes(e.status)).length,inProgress:_.value.filter(e=>W.includes(e.status)).length,done:_.value.filter(e=>K.includes(e.status)).length}));function y(e,t){if(!t.trim())return!0;let n=t.trim().toLowerCase();return e.orderNumber.toLowerCase().includes(n)||e.companyName.toLowerCase().includes(n)}let b=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>ne(e.status,f.value))),x=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>te(e.status,h.value))),S=c(()=>{let e=(s.value-1)*J;return x.value.slice(e,e+J)}),C=c(()=>Math.max(1,Math.ceil(x.value.length/J))),w=c(()=>x.value.length===0?{start:0,end:0}:{start:(s.value-1)*J+1,end:Math.min(s.value*J,x.value.length)}),T=c(()=>{let e=C.value,t=s.value;if(e<=7)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t1&&n.push(e),n}),O=c(()=>Math.max(1,Math.ceil(b.value.length/Y))),j=c(()=>{let e=(l.value-1)*Y;return b.value.slice(e,e+Y)}),M=c(()=>b.value.length===0?{start:0,end:0}:{start:(l.value-1)*Y+1,end:Math.min(l.value*Y,b.value.length)}),N=c(()=>{let e=O.value,t=l.value;if(e<=5)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t1&&n.push(e),n});e([x,h,g],()=>{s.value=1}),e([b,f,g],()=>{l.value=1});function P(e){return o.getCompany(e.companyId)?.slug??`par`}function F(e){return K.includes(e.status)?`success`:P(e)===`fam-baft`?`fam-baft`:`par`}function I(e){t.push(`/orders/${e}`)}function L(e){e<1||e>C.value||(s.value=e)}function R(e){e<1||e>O.value||(l.value=e)}function z(e){h.value=h.value===e&&e!==`all`?`all`:e}function B(e){h.value=e}return{tab:f,desktopFilter:h,searchQuery:g,stats:v,filteredOrdersMobile:b,filteredOrdersDesktop:x,paginatedOrders:S,paginatedOrdersMobile:j,totalPages:C,mobileTotalPages:O,paginationRange:w,mobilePaginationRange:M,visiblePages:T,mobileVisiblePages:N,currentPage:s,mobilePage:l,companySlug:P,iconVariant:F,submitSuccessMessage:u,goToOrder:I,setPage:L,setMobilePage:R,setDesktopFilter:z,viewStatFilter:B}}var Z=[`aria-selected`,`onClick`],re=_(o({__name:`FilterTabs`,props:{modelValue:{},tabs:{},equal:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(t,r)=>(v(),s(`div`,{class:S([`filter-tabs`,{"filter-tabs--equal":e.equal}]),role:`tablist`},[(v(!0),s(n,null,u(e.tabs,n=>(v(),s(`button`,{key:n.id,type:`button`,role:`tab`,class:S([`filter-tab`,{active:e.modelValue===n.id}]),"aria-selected":e.modelValue===n.id,onClick:e=>t.$emit(`update:modelValue`,n.id)},x(n.label),11,Z))),128))],2))}}),[[`__scopeId`,`data-v-4cd20e9b`]]),ie=_(o({__name:`BaseBadge`,props:{variant:{}},setup(e){return(t,n)=>(v(),s(`span`,{class:S([`badge`,`badge-${e.variant??`neutral`}`])},[l(t.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-5e1be8f4`]]),Q=o({__name:`StatusBadge`,props:{status:{}},setup(e){let n=e,i=c(()=>I[n.status]??n.status),a=c(()=>F[n.status]??`neutral`);return(e,n)=>(v(),t(ie,{variant:a.value},{default:b(()=>[r(x(i.value),1)]),_:1},8,[`variant`]))}}),ae={class:`page orders-mobile-page`},oe={class:`orders-mobile-page__nav`},se={class:`page__scroll page__scroll--with-nav orders-mobile-page__scroll`},ce={key:0,class:`orders-mobile-page__list`},le=[`onClick`],ue={class:`order-card__content`},de={class:`order-card__number`},fe={class:`order-card__company`},pe={key:0,class:`order-card__amount`},me={key:2,class:`orders-mobile-pagination`},he={class:`orders-mobile-pagination__summary`},ge={class:`orders-mobile-pagination__controls`},_e=[`disabled`],ve={key:0,class:`orders-mobile-pagination__ellipsis`},ye=[`onClick`],be=[`disabled`],xe=_(o({__name:`MobileOrdersPage`,props:{tab:{},tabs:{},orders:{},totalCount:{},currentPage:{},totalPages:{},paginationRange:{},visiblePages:{},companySlug:{type:Function},iconVariant:{type:Function}},emits:[`update:tab`,`select`,`back`,`set-page`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,ae,[g(`header`,oe,[g(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:c[0]||=e=>o(`back`)},[a(L,{size:20})]),c[5]||=g(`h1`,{class:`orders-mobile-page__title`},`سفارش‌ها`,-1),a(j,{variant:`inline`})]),a(re,{"model-value":e.tab,tabs:e.tabs,equal:``,class:`orders-mobile-page__tabs`,"onUpdate:modelValue":c[1]||=e=>o(`update:tab`,e)},null,8,[`model-value`,`tabs`]),g(`div`,se,[e.orders.length>0?(v(),s(`div`,ce,[(v(!0),s(n,null,u(e.orders,n=>(v(),s(`button`,{key:n.id,type:`button`,class:`order-card`,onClick:e=>o(`select`,n.id)},[g(`div`,ue,[c[6]||=g(`span`,{class:`order-card__label`},`سفارش شماره`,-1),g(`strong`,de,x(n.orderNumber),1),g(`p`,fe,x(n.companyName),1),n.finalAmount?(v(),s(`p`,pe,x(f(w)(n.finalAmount)),1)):h(``,!0),a(Q,{status:n.status,class:`order-card__badge`},null,8,[`status`])]),g(`span`,{class:S([`order-card__icon`,`order-card__icon--${e.iconVariant(n)}`])},[e.companySlug(n)===`fam-baft`?(v(),t(z,{key:0,size:36})):(v(),t(R,{key:1,size:36}))],2)],8,le))),128))])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکرده‌اید`},{default:b(()=>[a(M,{onClick:c[2]||=e=>o(`back`)},{default:b(()=>[...c[7]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1})),e.totalCount>0?(v(),s(`div`,me,[g(`p`,he,x(f(E)(String(e.paginationRange.start)))+`– `+x(f(E)(String(e.paginationRange.end)))+` از `+x(f(T)(e.totalCount)),1),g(`div`,ge,[g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[3]||=t=>o(`set-page`,e.currentPage-1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--prev`})],8,_e),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,ve,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-mobile-pagination__page`,{"orders-mobile-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`set-page`,t)},x(f(E)(String(t))),11,ye))],64))),128)),g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[4]||=t=>o(`set-page`,e.currentPage+1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--next`})],8,be)])])):h(``,!0)])]))}}),[[`__scopeId`,`data-v-de30513b`]]),Se=o({__name:`IconHourglass`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:timer-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ce=o({__name:`IconProgressClock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:clock`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),we={class:`desktop-page orders-desktop-page`},Te={class:`orders-stats desktop-grid-4`},Ee={class:`orders-stat-card`},De={class:`orders-stat-card__head`},Oe={class:`orders-stat-card__icon orders-stat-card__icon--total`,"aria-hidden":`true`},ke={class:`orders-stat-card__value`},Ae={class:`orders-stat-card`},je={class:`orders-stat-card__head`},Me={class:`orders-stat-card__icon orders-stat-card__icon--review`,"aria-hidden":`true`},Ne={class:`orders-stat-card__value`},Pe={class:`orders-stat-card`},Fe={class:`orders-stat-card__head`},Ie={class:`orders-stat-card__icon orders-stat-card__icon--active`,"aria-hidden":`true`},Le={class:`orders-stat-card__value`},Re={class:`orders-stat-card`},ze={class:`orders-stat-card__head`},Be={class:`orders-stat-card__icon orders-stat-card__icon--done`,"aria-hidden":`true`},Ve={class:`orders-stat-card__value`},He={class:`desktop-toolbar`},Ue={class:`desktop-toolbar__actions`},We={type:`button`,class:`orders-toolbar__filter-btn`},Ge={class:`orders-toolbar__pills`,role:`tablist`,"aria-label":`فیلتر وضعیت`},Ke=[`aria-selected`,`onClick`],qe={key:0,class:`desktop-table-wrap`},Je={class:`desktop-table-scroll`},Ye={class:`desktop-table orders-table`},Xe={class:`orders-table__number`},Ze={class:`orders-table__amount`},Qe={class:`orders-table__date`},$e={class:`orders-table__actions`},et=[`onClick`],tt={type:`button`,class:`orders-table__menu`,"aria-label":`گزینه‌های بیشتر`},$={class:`orders-pagination`},nt={class:`orders-pagination__summary`},rt={class:`orders-pagination__controls`},it=[`disabled`],at={key:0,class:`orders-pagination__ellipsis`},ot=[`onClick`],st=[`disabled`],ct=o({__name:`DesktopOrdersPage`,props:{stats:{},desktopFilter:{},desktopFilterTabs:{},filteredOrders:{},paginatedOrders:{},paginationRange:{},visiblePages:{},currentPage:{},totalPages:{}},emits:[`viewStatFilter`,`setDesktopFilter`,`select`,`setPage`,`newOrder`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,we,[c[14]||=g(`header`,{class:`desktop-page__head`},[g(`h1`,{class:`desktop-page__title`},`سفارش‌ها`),g(`p`,{class:`desktop-page__subtitle`},`مدیریت و پیگیری سفارش‌های ثبت شده`)],-1),g(`div`,Te,[g(`article`,Ee,[g(`div`,De,[c[7]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--total`},`همه سفارش‌ها`,-1),g(`span`,Oe,[a(O,{size:20})])]),g(`strong`,ke,x(f(T)(e.stats.total)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[0]||=e=>o(`viewStatFilter`,`all`)},` مشاهده همه `)]),g(`article`,Ae,[g(`div`,je,[c[8]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--review`},`در انتظار بررسی`,-1),g(`span`,Me,[a(Se,{size:20})])]),g(`strong`,Ne,x(f(T)(e.stats.review)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[1]||=e=>o(`viewStatFilter`,`review`)},` مشاهده همه `)]),g(`article`,Pe,[g(`div`,Fe,[c[9]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--active`},`در حال انجام`,-1),g(`span`,Ie,[a(Ce,{size:20})])]),g(`strong`,Le,x(f(T)(e.stats.inProgress)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[2]||=e=>o(`viewStatFilter`,`in_progress`)},` مشاهده همه `)]),g(`article`,Re,[g(`div`,ze,[c[10]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--done`},`تکمیل شده`,-1),g(`span`,Be,[a(B,{size:20})])]),g(`strong`,Ve,x(f(T)(e.stats.done)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[3]||=e=>o(`viewStatFilter`,`delivered`)},` مشاهده همه `)])]),g(`div`,He,[g(`div`,Ue,[g(`button`,We,[a(V,{size:18}),c[11]||=r(` فیلترها `,-1)])]),g(`div`,Ge,[(v(!0),s(n,null,u(e.desktopFilterTabs,t=>(v(),s(`button`,{key:t.id,type:`button`,role:`tab`,class:S([`orders-filter-pill`,{"orders-filter-pill--active":e.desktopFilter===t.id}]),"aria-selected":e.desktopFilter===t.id,onClick:e=>o(`setDesktopFilter`,t.id)},x(t.label),11,Ke))),128))])]),e.filteredOrders.length>0?(v(),s(`div`,qe,[g(`div`,Je,[g(`table`,Ye,[c[12]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{scope:`col`},`شماره سفارش`),g(`th`,{scope:`col`},`شرکت`),g(`th`,{scope:`col`},`مبلغ فاکتور (تومان)`),g(`th`,{scope:`col`},`وضعیت`),g(`th`,{scope:`col`},`تاریخ ثبت`),g(`th`,{scope:`col`},`عملیات`)])],-1),g(`tbody`,null,[(v(!0),s(n,null,u(e.paginatedOrders,e=>(v(),s(`tr`,{key:e.id},[g(`td`,Xe,x(e.orderNumber),1),g(`td`,null,x(e.companyName),1),g(`td`,Ze,x(e.finalAmount?f(T)(e.finalAmount):`—`),1),g(`td`,null,[a(Q,{status:e.status},null,8,[`status`])]),g(`td`,Qe,x(f(C)(e.createdAt)),1),g(`td`,null,[g(`div`,$e,[g(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>o(`select`,e.id)},` مشاهده `,8,et),g(`button`,tt,[a(H,{size:18})])])])]))),128))])])]),g(`div`,$,[g(`span`,nt,` نمایش `+x(f(T)(e.paginationRange.start))+` تا `+x(f(T)(e.paginationRange.end))+` از `+x(f(T)(e.filteredOrders.length))+` سفارش `,1),g(`div`,rt,[g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[4]||=t=>o(`setPage`,e.currentPage-1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--prev`})],8,it),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,at,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-pagination__page`,{"orders-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`setPage`,t)},x(f(T)(t)),11,ot))],64))),128)),g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[5]||=t=>o(`setPage`,e.currentPage+1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--next`})],8,st)])])])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکرده‌اید`},{default:b(()=>[a(M,{onClick:c[6]||=e=>o(`newOrder`)},{default:b(()=>[...c[13]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1}))]))}}),lt={class:`orders-view`},ut={key:0,class:`orders-view__success`,role:`status`},dt=_(o({__name:`OrdersView`,setup(e){let t=d(),{tab:n,desktopFilter:r,stats:i,filteredOrdersMobile:o,filteredOrdersDesktop:c,paginatedOrders:l,paginatedOrdersMobile:u,totalPages:p,mobileTotalPages:m,paginationRange:g,mobilePaginationRange:_,visiblePages:y,mobileVisiblePages:b,currentPage:S,mobilePage:C,companySlug:w,iconVariant:T,submitSuccessMessage:E,goToOrder:D,setPage:O,setMobilePage:k,setDesktopFilter:A,viewStatFilter:j}=X(),M=[{id:`all`,label:`همه`},{id:`active`,label:`در جریان`},{id:`done`,label:`تکمیل شده`},{id:`cancelled`,label:`لغو شده`}],N=[{id:`review`,label:`در انتظار بررسی`},{id:`in_progress`,label:`در حال انجام`},{id:`shipped`,label:`ارسال شده`},{id:`delivered`,label:`تحویل شده`},{id:`cancelled`,label:`لغو شده`}];return(e,d)=>(v(),s(`div`,lt,[f(E)?(v(),s(`p`,ut,x(f(E)),1)):h(``,!0),a(xe,{class:`mobile-only`,tab:f(n),tabs:M,orders:f(u),"total-count":f(o).length,"current-page":f(C),"total-pages":f(m),"pagination-range":f(_),"visible-pages":f(b),"company-slug":f(w),"icon-variant":f(T),"onUpdate:tab":d[0]||=e=>n.value=e,onSelect:f(D),onBack:d[1]||=e=>f(t).push(`/`),onSetPage:f(k)},null,8,[`tab`,`orders`,`total-count`,`current-page`,`total-pages`,`pagination-range`,`visible-pages`,`company-slug`,`icon-variant`,`onSelect`,`onSetPage`]),a(ct,{class:`desktop-only`,stats:f(i),"desktop-filter":f(r),"desktop-filter-tabs":N,"filtered-orders":f(c),"paginated-orders":f(l),"pagination-range":f(g),"visible-pages":f(y),"current-page":f(S),"total-pages":f(p),onViewStatFilter:f(j),onSetDesktopFilter:f(A),onSelect:f(D),onSetPage:f(O),onNewOrder:d[2]||=e=>f(t).push(`/companies`)},null,8,[`stats`,`desktop-filter`,`filtered-orders`,`paginated-orders`,`pagination-range`,`visible-pages`,`current-page`,`total-pages`,`onViewStatFilter`,`onSetDesktopFilter`,`onSelect`,`onSetPage`])]))}}),[[`__scopeId`,`data-v-6dc7c1a5`]]);export{dt as default}; \ No newline at end of file +import{$ as e,A as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,X as l,Y as u,_ as d,bt as f,ft as p,g as m,j as h,k as g,n as _,q as v,t as y,tt as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{i as C,n as w,o as T,u as E}from"./format-BHJptHdF.js";import{t as D}from"./catalog-Dd554brK.js";import{S as O,c as k,h as A,i as j,n as M,o as N}from"./index-D3Z8WOeX.js";import{t as P}from"./EmptyState-BpC5eqVE.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconChevronBack-B10eZjCQ.js";import{n as R,t as z}from"./IconFamBaftLogo-DC-RbvIL.js";import{t as B}from"./IconCheckCircleOutline-DMQwnwv8.js";import{t as V}from"./IconFilter-lDKrtGms.js";import{t as H}from"./IconMoreVertical-CoEoZgQs.js";var U=[`awaiting_review`,`awaiting_check_review`],W=[`submitted`,`pricing`,`check_in_progress`,`awaiting_cash_confirmation`,`preparing`,`ready_to_ship`,`needs_correction`,`awaiting_settlement_fix`,`cash_in_progress`,`awaiting_cash_payment`,`cash_payment_submitted`,`check_needs_fix`,`awaiting_settlement`,`cash_invoice_issued`],G=[`shipped`],K=[`delivered`,`final_approved`,`checks_approved`,`cash_confirmed`],q=[`cancelled`,`rejected`,`expired`,`check_rejected`],ee=[...U,...W,...G];function te(e,t){switch(t){case`review`:return U.includes(e);case`in_progress`:return W.includes(e);case`shipped`:return G.includes(e);case`delivered`:return K.includes(e);case`cancelled`:return q.includes(e);default:return!0}}function ne(e,t){return t===`active`?ee.includes(e):t===`done`?K.includes(e):t!==`cancelled`||q.includes(e)}var J=5,Y=5;function X(){let t=d(),n=m(),r=A(),a=k(),o=D(),s=p(1),l=p(1),u=p(``);i(async()=>{await Promise.all([r.hydrate(),o.loadCompanies()])}),e(()=>n.query.submitted,e=>{let r=Number(e);if(!Number.isFinite(r)||r<1){u.value=``;return}u.value=r===1?`پیش‌سفارش با موفقیت ثبت شد.`:`${E(String(r))} پیش‌سفارش (برای شرکت‌های مختلف) ثبت شد.`;let{submitted:i,...a}=n.query;t.replace({query:a})},{immediate:!0});let f=c({get:()=>t.currentRoute.value.query.tab??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,tab:e}})}),h=c({get:()=>t.currentRoute.value.query.filter??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,filter:e===`all`?void 0:e}})}),g=c(()=>t.currentRoute.value.query.q??``),_=c(()=>a.user?r.userOrders(a.user.id):[]),v=c(()=>({total:_.value.length,review:_.value.filter(e=>U.includes(e.status)).length,inProgress:_.value.filter(e=>W.includes(e.status)).length,done:_.value.filter(e=>K.includes(e.status)).length}));function y(e,t){if(!t.trim())return!0;let n=t.trim().toLowerCase();return e.orderNumber.toLowerCase().includes(n)||e.companyName.toLowerCase().includes(n)}let b=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>ne(e.status,f.value))),x=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>te(e.status,h.value))),S=c(()=>{let e=(s.value-1)*J;return x.value.slice(e,e+J)}),C=c(()=>Math.max(1,Math.ceil(x.value.length/J))),w=c(()=>x.value.length===0?{start:0,end:0}:{start:(s.value-1)*J+1,end:Math.min(s.value*J,x.value.length)}),T=c(()=>{let e=C.value,t=s.value;if(e<=7)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t1&&n.push(e),n}),O=c(()=>Math.max(1,Math.ceil(b.value.length/Y))),j=c(()=>{let e=(l.value-1)*Y;return b.value.slice(e,e+Y)}),M=c(()=>b.value.length===0?{start:0,end:0}:{start:(l.value-1)*Y+1,end:Math.min(l.value*Y,b.value.length)}),N=c(()=>{let e=O.value,t=l.value;if(e<=5)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t1&&n.push(e),n});e([x,h,g],()=>{s.value=1}),e([b,f,g],()=>{l.value=1});function P(e){return o.getCompany(e.companyId)?.slug??`par`}function F(e){return K.includes(e.status)?`success`:P(e)===`fam-baft`?`fam-baft`:`par`}function I(e){t.push(`/orders/${e}`)}function L(e){e<1||e>C.value||(s.value=e)}function R(e){e<1||e>O.value||(l.value=e)}function z(e){h.value=h.value===e&&e!==`all`?`all`:e}function B(e){h.value=e}return{tab:f,desktopFilter:h,searchQuery:g,stats:v,filteredOrdersMobile:b,filteredOrdersDesktop:x,paginatedOrders:S,paginatedOrdersMobile:j,totalPages:C,mobileTotalPages:O,paginationRange:w,mobilePaginationRange:M,visiblePages:T,mobileVisiblePages:N,currentPage:s,mobilePage:l,companySlug:P,iconVariant:F,submitSuccessMessage:u,goToOrder:I,setPage:L,setMobilePage:R,setDesktopFilter:z,viewStatFilter:B}}var Z=[`aria-selected`,`onClick`],re=_(o({__name:`FilterTabs`,props:{modelValue:{},tabs:{},equal:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(t,r)=>(v(),s(`div`,{class:S([`filter-tabs`,{"filter-tabs--equal":e.equal}]),role:`tablist`},[(v(!0),s(n,null,u(e.tabs,n=>(v(),s(`button`,{key:n.id,type:`button`,role:`tab`,class:S([`filter-tab`,{active:e.modelValue===n.id}]),"aria-selected":e.modelValue===n.id,onClick:e=>t.$emit(`update:modelValue`,n.id)},x(n.label),11,Z))),128))],2))}}),[[`__scopeId`,`data-v-4cd20e9b`]]),ie=_(o({__name:`BaseBadge`,props:{variant:{}},setup(e){return(t,n)=>(v(),s(`span`,{class:S([`badge`,`badge-${e.variant??`neutral`}`])},[l(t.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-5e1be8f4`]]),Q=o({__name:`StatusBadge`,props:{status:{}},setup(e){let n=e,i=c(()=>I[n.status]??n.status),a=c(()=>F[n.status]??`neutral`);return(e,n)=>(v(),t(ie,{variant:a.value},{default:b(()=>[r(x(i.value),1)]),_:1},8,[`variant`]))}}),ae={class:`page orders-mobile-page`},oe={class:`orders-mobile-page__nav`},se={class:`page__scroll page__scroll--with-nav orders-mobile-page__scroll`},ce={key:0,class:`orders-mobile-page__list`},le=[`onClick`],ue={class:`order-card__content`},de={class:`order-card__number`},fe={class:`order-card__company`},pe={key:0,class:`order-card__amount`},me={key:2,class:`orders-mobile-pagination`},he={class:`orders-mobile-pagination__summary`},ge={class:`orders-mobile-pagination__controls`},_e=[`disabled`],ve={key:0,class:`orders-mobile-pagination__ellipsis`},ye=[`onClick`],be=[`disabled`],xe=_(o({__name:`MobileOrdersPage`,props:{tab:{},tabs:{},orders:{},totalCount:{},currentPage:{},totalPages:{},paginationRange:{},visiblePages:{},companySlug:{type:Function},iconVariant:{type:Function}},emits:[`update:tab`,`select`,`back`,`set-page`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,ae,[g(`header`,oe,[g(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:c[0]||=e=>o(`back`)},[a(L,{size:20})]),c[5]||=g(`h1`,{class:`orders-mobile-page__title`},`سفارش‌ها`,-1),a(j,{variant:`inline`})]),a(re,{"model-value":e.tab,tabs:e.tabs,equal:``,class:`orders-mobile-page__tabs`,"onUpdate:modelValue":c[1]||=e=>o(`update:tab`,e)},null,8,[`model-value`,`tabs`]),g(`div`,se,[e.orders.length>0?(v(),s(`div`,ce,[(v(!0),s(n,null,u(e.orders,n=>(v(),s(`button`,{key:n.id,type:`button`,class:`order-card`,onClick:e=>o(`select`,n.id)},[g(`div`,ue,[c[6]||=g(`span`,{class:`order-card__label`},`سفارش شماره`,-1),g(`strong`,de,x(n.orderNumber),1),g(`p`,fe,x(n.companyName),1),n.finalAmount?(v(),s(`p`,pe,x(f(w)(n.finalAmount)),1)):h(``,!0),a(Q,{status:n.status,class:`order-card__badge`},null,8,[`status`])]),g(`span`,{class:S([`order-card__icon`,`order-card__icon--${e.iconVariant(n)}`])},[e.companySlug(n)===`fam-baft`?(v(),t(z,{key:0,size:36})):(v(),t(R,{key:1,size:36}))],2)],8,le))),128))])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکرده‌اید`},{default:b(()=>[a(M,{onClick:c[2]||=e=>o(`back`)},{default:b(()=>[...c[7]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1})),e.totalCount>0?(v(),s(`div`,me,[g(`p`,he,x(f(E)(String(e.paginationRange.start)))+`– `+x(f(E)(String(e.paginationRange.end)))+` از `+x(f(T)(e.totalCount)),1),g(`div`,ge,[g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[3]||=t=>o(`set-page`,e.currentPage-1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--prev`})],8,_e),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,ve,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-mobile-pagination__page`,{"orders-mobile-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`set-page`,t)},x(f(E)(String(t))),11,ye))],64))),128)),g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[4]||=t=>o(`set-page`,e.currentPage+1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--next`})],8,be)])])):h(``,!0)])]))}}),[[`__scopeId`,`data-v-de30513b`]]),Se=o({__name:`IconHourglass`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:timer-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ce=o({__name:`IconProgressClock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:clock`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),we={class:`desktop-page orders-desktop-page`},Te={class:`orders-stats desktop-grid-4`},Ee={class:`orders-stat-card`},De={class:`orders-stat-card__head`},Oe={class:`orders-stat-card__icon orders-stat-card__icon--total`,"aria-hidden":`true`},ke={class:`orders-stat-card__value`},Ae={class:`orders-stat-card`},je={class:`orders-stat-card__head`},Me={class:`orders-stat-card__icon orders-stat-card__icon--review`,"aria-hidden":`true`},Ne={class:`orders-stat-card__value`},Pe={class:`orders-stat-card`},Fe={class:`orders-stat-card__head`},Ie={class:`orders-stat-card__icon orders-stat-card__icon--active`,"aria-hidden":`true`},Le={class:`orders-stat-card__value`},Re={class:`orders-stat-card`},ze={class:`orders-stat-card__head`},Be={class:`orders-stat-card__icon orders-stat-card__icon--done`,"aria-hidden":`true`},Ve={class:`orders-stat-card__value`},He={class:`desktop-toolbar`},Ue={class:`desktop-toolbar__actions`},We={type:`button`,class:`orders-toolbar__filter-btn`},Ge={class:`orders-toolbar__pills`,role:`tablist`,"aria-label":`فیلتر وضعیت`},Ke=[`aria-selected`,`onClick`],qe={key:0,class:`desktop-table-wrap`},Je={class:`desktop-table-scroll`},Ye={class:`desktop-table orders-table`},Xe={class:`orders-table__number`},Ze={class:`orders-table__amount`},Qe={class:`orders-table__date`},$e={class:`orders-table__actions`},et=[`onClick`],tt={type:`button`,class:`orders-table__menu`,"aria-label":`گزینه‌های بیشتر`},$={class:`orders-pagination`},nt={class:`orders-pagination__summary`},rt={class:`orders-pagination__controls`},it=[`disabled`],at={key:0,class:`orders-pagination__ellipsis`},ot=[`onClick`],st=[`disabled`],ct=o({__name:`DesktopOrdersPage`,props:{stats:{},desktopFilter:{},desktopFilterTabs:{},filteredOrders:{},paginatedOrders:{},paginationRange:{},visiblePages:{},currentPage:{},totalPages:{}},emits:[`viewStatFilter`,`setDesktopFilter`,`select`,`setPage`,`newOrder`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,we,[c[14]||=g(`header`,{class:`desktop-page__head`},[g(`h1`,{class:`desktop-page__title`},`سفارش‌ها`),g(`p`,{class:`desktop-page__subtitle`},`مدیریت و پیگیری سفارش‌های ثبت شده`)],-1),g(`div`,Te,[g(`article`,Ee,[g(`div`,De,[c[7]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--total`},`همه سفارش‌ها`,-1),g(`span`,Oe,[a(O,{size:20})])]),g(`strong`,ke,x(f(T)(e.stats.total)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[0]||=e=>o(`viewStatFilter`,`all`)},` مشاهده همه `)]),g(`article`,Ae,[g(`div`,je,[c[8]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--review`},`در انتظار بررسی`,-1),g(`span`,Me,[a(Se,{size:20})])]),g(`strong`,Ne,x(f(T)(e.stats.review)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[1]||=e=>o(`viewStatFilter`,`review`)},` مشاهده همه `)]),g(`article`,Pe,[g(`div`,Fe,[c[9]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--active`},`در حال انجام`,-1),g(`span`,Ie,[a(Ce,{size:20})])]),g(`strong`,Le,x(f(T)(e.stats.inProgress)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[2]||=e=>o(`viewStatFilter`,`in_progress`)},` مشاهده همه `)]),g(`article`,Re,[g(`div`,ze,[c[10]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--done`},`تکمیل شده`,-1),g(`span`,Be,[a(B,{size:20})])]),g(`strong`,Ve,x(f(T)(e.stats.done)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[3]||=e=>o(`viewStatFilter`,`delivered`)},` مشاهده همه `)])]),g(`div`,He,[g(`div`,Ue,[g(`button`,We,[a(V,{size:18}),c[11]||=r(` فیلترها `,-1)])]),g(`div`,Ge,[(v(!0),s(n,null,u(e.desktopFilterTabs,t=>(v(),s(`button`,{key:t.id,type:`button`,role:`tab`,class:S([`orders-filter-pill`,{"orders-filter-pill--active":e.desktopFilter===t.id}]),"aria-selected":e.desktopFilter===t.id,onClick:e=>o(`setDesktopFilter`,t.id)},x(t.label),11,Ke))),128))])]),e.filteredOrders.length>0?(v(),s(`div`,qe,[g(`div`,Je,[g(`table`,Ye,[c[12]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{scope:`col`},`شماره سفارش`),g(`th`,{scope:`col`},`شرکت`),g(`th`,{scope:`col`},`مبلغ فاکتور (تومان)`),g(`th`,{scope:`col`},`وضعیت`),g(`th`,{scope:`col`},`تاریخ ثبت`),g(`th`,{scope:`col`},`عملیات`)])],-1),g(`tbody`,null,[(v(!0),s(n,null,u(e.paginatedOrders,e=>(v(),s(`tr`,{key:e.id},[g(`td`,Xe,x(e.orderNumber),1),g(`td`,null,x(e.companyName),1),g(`td`,Ze,x(e.finalAmount?f(T)(e.finalAmount):`—`),1),g(`td`,null,[a(Q,{status:e.status},null,8,[`status`])]),g(`td`,Qe,x(f(C)(e.createdAt)),1),g(`td`,null,[g(`div`,$e,[g(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>o(`select`,e.id)},` مشاهده `,8,et),g(`button`,tt,[a(H,{size:18})])])])]))),128))])])]),g(`div`,$,[g(`span`,nt,` نمایش `+x(f(T)(e.paginationRange.start))+` تا `+x(f(T)(e.paginationRange.end))+` از `+x(f(T)(e.filteredOrders.length))+` سفارش `,1),g(`div`,rt,[g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[4]||=t=>o(`setPage`,e.currentPage-1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--prev`})],8,it),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,at,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-pagination__page`,{"orders-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`setPage`,t)},x(f(T)(t)),11,ot))],64))),128)),g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[5]||=t=>o(`setPage`,e.currentPage+1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--next`})],8,st)])])])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکرده‌اید`},{default:b(()=>[a(M,{onClick:c[6]||=e=>o(`newOrder`)},{default:b(()=>[...c[13]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1}))]))}}),lt={class:`orders-view`},ut={key:0,class:`orders-view__success`,role:`status`},dt=_(o({__name:`OrdersView`,setup(e){let t=d(),{tab:n,desktopFilter:r,stats:i,filteredOrdersMobile:o,filteredOrdersDesktop:c,paginatedOrders:l,paginatedOrdersMobile:u,totalPages:p,mobileTotalPages:m,paginationRange:g,mobilePaginationRange:_,visiblePages:y,mobileVisiblePages:b,currentPage:S,mobilePage:C,companySlug:w,iconVariant:T,submitSuccessMessage:E,goToOrder:D,setPage:O,setMobilePage:k,setDesktopFilter:A,viewStatFilter:j}=X(),M=[{id:`all`,label:`همه`},{id:`active`,label:`در جریان`},{id:`done`,label:`تکمیل شده`},{id:`cancelled`,label:`لغو شده`}],N=[{id:`review`,label:`در انتظار بررسی`},{id:`in_progress`,label:`در حال انجام`},{id:`shipped`,label:`ارسال شده`},{id:`delivered`,label:`تحویل شده`},{id:`cancelled`,label:`لغو شده`}];return(e,d)=>(v(),s(`div`,lt,[f(E)?(v(),s(`p`,ut,x(f(E)),1)):h(``,!0),a(xe,{class:`mobile-only`,tab:f(n),tabs:M,orders:f(u),"total-count":f(o).length,"current-page":f(C),"total-pages":f(m),"pagination-range":f(_),"visible-pages":f(b),"company-slug":f(w),"icon-variant":f(T),"onUpdate:tab":d[0]||=e=>n.value=e,onSelect:f(D),onBack:d[1]||=e=>f(t).push(`/`),onSetPage:f(k)},null,8,[`tab`,`orders`,`total-count`,`current-page`,`total-pages`,`pagination-range`,`visible-pages`,`company-slug`,`icon-variant`,`onSelect`,`onSetPage`]),a(ct,{class:`desktop-only`,stats:f(i),"desktop-filter":f(r),"desktop-filter-tabs":N,"filtered-orders":f(c),"paginated-orders":f(l),"pagination-range":f(g),"visible-pages":f(y),"current-page":f(S),"total-pages":f(p),onViewStatFilter:f(j),onSetDesktopFilter:f(A),onSelect:f(D),onSetPage:f(O),onNewOrder:d[2]||=e=>f(t).push(`/categories`)},null,8,[`stats`,`desktop-filter`,`filtered-orders`,`paginated-orders`,`pagination-range`,`visible-pages`,`current-page`,`total-pages`,`onViewStatFilter`,`onSetDesktopFilter`,`onSelect`,`onSetPage`])]))}}),[[`__scopeId`,`data-v-66049c15`]]);export{dt as default}; \ No newline at end of file diff --git a/dist/assets/OtpView-BZD-cGQw.css b/dist/assets/OtpView-BZD-cGQw.css deleted file mode 100644 index 7174b4d..0000000 --- a/dist/assets/OtpView-BZD-cGQw.css +++ /dev/null @@ -1 +0,0 @@ -.otp-row[data-v-07a29845]{gap:clamp(.25rem,1.8vw,.625rem)}.otp-box[data-v-07a29845]{aspect-ratio:48/52;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:0;min-width:0;max-width:48px;height:auto;color:var(--color-text);text-align:center;caret-color:var(--color-primary);flex:1 1 0;padding:0;font-size:clamp(.95rem,4.2vw,1.25rem);font-weight:600;transition:border-color .15s}.otp-box[data-v-07a29845]:focus{border-color:var(--color-primary);outline:none}.otp-box--error[data-v-07a29845]{border-color:var(--color-danger)}.input-error-text[data-v-07a29845]{color:var(--color-danger);margin:4px 0 0;font-size:.8125rem}.auth-back[data-v-07a29845]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;padding:0;display:grid;position:fixed;inset-inline-start:16px} diff --git a/dist/assets/OtpView-C7wkSKLl.js b/dist/assets/OtpView-C7wkSKLl.js deleted file mode 100644 index 6f7dd2d..0000000 --- a/dist/assets/OtpView-C7wkSKLl.js +++ /dev/null @@ -1 +0,0 @@ -import{E as e,F as t,G as n,I as r,L as i,M as a,O as o,T as s,U as c,Y as l,_ as u,bt as d,ft as f,g as ee,j as te,k as p,n as m,q as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{i as y}from"./dist-D9CyXEdG.js";import{c as b,t as x,u as S}from"./format-BHJptHdF.js";import{c as ne,f as re,i as ie,n as C}from"./index-BQQA5ZX-.js";import{t as ae}from"./IconChevronBack-B10eZjCQ.js";import{t as w}from"./FormErrorBanner-B8THF9oG.js";import{n as T,r as E,t as D}from"./formErrors-DglFjYkZ.js";import{t as O}from"./IconEditPen-CUhGotGH.js";var k={class:`page page-shell auth-page`},oe={class:`page__scroll flex flex-col justify-center py-6`},se={class:`auth-header`},ce={class:`page-subtitle`},A={class:`form-group`},j={class:`otp-row flex w-full max-w-full justify-center ltr`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},M=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],N={key:0,class:`input-error-text`},P={class:`ltr tabular-nums`,dir:`ltr`},F=4,I=60,L=m(i({__name:`OtpView`,setup(i){let m=ee(),L=u(),R=ne(),z=o(()=>{let e=m.query.phone,t=Array.isArray(e)?e[0]:e;return b(typeof t==`string`?t:``)}),B=o(()=>m.query.mode===`register`),V=f(Array.from({length:F},()=>``)),H=f([]),U=f({}),W=f(``),G=f(I),K=o(()=>V.value.join(``)),q=o(()=>G.value<=0&&!R.loading),le=o(()=>{let e=Math.floor(G.value/60),t=G.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return S(n)}),{pause:ue,resume:de}=y(()=>{if(G.value<=1){G.value=0,ue();return}--G.value},1e3,{immediate:!1});function J(){U.value=T(U.value,`code`),E(U.value)||(W.value=``)}function fe(e,t){H.value[t]=e}function Y(e){let t=Math.max(0,Math.min(3,e));c(()=>H.value[t]?.focus())}function X(){G.value=I,de()}function Z(e,t=0){let n=x(e).slice(0,F-t);if(!n)return t;let r=[...V.value],i=t;for(let e of n){if(i>=F)break;r[i]=e,i+=1}return V.value=r,J(),Math.min(i,3)}function Q(){K.value.length===F&&!R.loading&&$()}function pe(e,t){let n=t.target,r=x(n.value);if(r.length>1){let t=Z(r,e);n.value=V.value[e]??``,Y(t),Q();return}let i=r.slice(-1);V.value[e]=i,n.value=i,J(),i&&e<3?Y(e+1):i&&Q()}function me(e,t){if(t.key===`Backspace`){if(V.value[e]){V.value[e]=``,J();return}e>0&&(V.value[e-1]=``,J(),Y(e-1));return}if(t.key===`ArrowLeft`){t.preventDefault(),Y(e-1);return}t.key===`ArrowRight`&&(t.preventDefault(),Y(e+1))}function he(e,t){t.preventDefault(),Y(Z(t.clipboardData?.getData(`text`)??``,e)),Q()}function ge(e){return e?S(e):``}async function $(){if(R.loading)return;U.value={},W.value=``;let e={};if(K.value.length``),Y(0))}async function _e(){if(!q.value)return;W.value=``,U.value={};let e=B.value?re():null;if(B.value&&!e){W.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبت‌نام را شروع کنید.`;return}let t=await R.requestOtp(z.value,{isRegister:B.value,firstName:e?.firstName,lastName:e?.lastName});t.success?(V.value=Array.from({length:F},()=>``),X(),Y(0)):W.value=t.message??`خطا در ارسال مجدد کد.`}function ve(){L.replace({name:B.value?`register`:`login`})}return n(()=>{if(!z.value){L.replace({name:`login`});return}X(),Y(0)}),(n,i)=>(h(),a(`div`,k,[p(`button`,{type:`button`,class:`auth-back`,"aria-label":`بازگشت`,onClick:i[0]||=e=>d(L).push(B.value?`/register`:`/login`)},[r(ae,{size:20})]),r(ie),p(`div`,oe,[p(`div`,se,[i[1]||=p(`h1`,{class:`page-title`},`تأیید شماره موبایل`,-1),p(`p`,ce,`کد ارسال‌شده به `+_(d(S)(z.value))+` را وارد کنید`,1)]),p(`form`,{class:`card`,onSubmit:s($,[`prevent`])},[r(w,{message:W.value},null,8,[`message`]),p(`div`,A,[p(`div`,j,[(h(!0),a(e,null,l(V.value,(e,t)=>(h(),a(`input`,{id:`otp-${t}`,key:t,ref_for:!0,ref:e=>fe(e,t),class:v([`otp-box`,{"otp-box--error":U.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:ge(e),"aria-label":`رقم ${d(S)(String(t+1))}`,onInput:e=>pe(t,e),onKeydown:e=>me(t,e),onPaste:e=>he(t,e)},null,42,M))),128))]),U.value.code?(h(),a(`p`,N,_(U.value.code),1)):te(``,!0)]),r(C,{block:``,type:`submit`,loading:d(R).loading},{default:g(()=>[...i[2]||=[t(`تأیید و ورود`,-1)]]),_:1},8,[`loading`]),r(C,{block:``,variant:`outline`,type:`button`,class:`mt-2`,disabled:!q.value,onClick:_e},{default:g(()=>[q.value?(h(),a(e,{key:0},[t(`ارسال مجدد کد`)],64)):(h(),a(e,{key:1},[t(`ارسال مجدد کد (`+_(le.value)+`)`,1)],64))]),_:1},8,[`disabled`]),p(`button`,{type:`button`,class:`mt-3 mx-auto flex items-center justify-center gap-1.5 border-0 bg-transparent p-0 text-sm text-muted cursor-pointer transition-colors hover:text-text`,onClick:ve},[p(`span`,P,_(d(S)(z.value)),1),i[3]||=p(`span`,null,`ویرایش شماره`,-1),r(O,{size:18,"stroke-width":1.5})])],32)])]))}}),[[`__scopeId`,`data-v-07a29845`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/OtpView-DmhIJ6L4.js b/dist/assets/OtpView-DmhIJ6L4.js new file mode 100644 index 0000000..76d0cce --- /dev/null +++ b/dist/assets/OtpView-DmhIJ6L4.js @@ -0,0 +1 @@ +import{E as e,F as t,G as n,I as r,L as i,M as a,O as o,T as s,U as c,Y as l,_ as u,bt as d,ft as f,g as ee,j as te,k as p,n as m,q as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{a as y}from"./dist-DLhmLSgX.js";import{c as b,t as x,u as S}from"./format-BHJptHdF.js";import{c as ne,f as re,i as ie,n as C}from"./index-D3Z8WOeX.js";import{t as ae}from"./IconChevronBack-B10eZjCQ.js";import{t as w}from"./FormErrorBanner-B8THF9oG.js";import{n as T,r as E,t as D}from"./formErrors-DglFjYkZ.js";import{t as O}from"./IconEditPen-CUhGotGH.js";var k={class:`page auth-page`},oe={class:`auth-top`},se={class:`page__scroll auth-body`},ce={class:`auth-lead`},A={class:`form-group`},j={class:`otp-row flex w-full max-w-full justify-center ltr`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},M=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],N={key:0,class:`input-error-text`},P={class:`ltr tabular-nums`,dir:`ltr`},F=4,I=60,L=m(i({__name:`OtpView`,setup(i){let m=ee(),L=u(),R=ne(),z=o(()=>{let e=m.query.phone,t=Array.isArray(e)?e[0]:e;return b(typeof t==`string`?t:``)}),B=o(()=>m.query.mode===`register`),V=f(Array.from({length:F},()=>``)),H=f([]),U=f({}),W=f(``),G=f(I),K=o(()=>V.value.join(``)),q=o(()=>G.value<=0&&!R.loading),le=o(()=>{let e=Math.floor(G.value/60),t=G.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return S(n)}),{pause:ue,resume:de}=y(()=>{if(G.value<=1){G.value=0,ue();return}--G.value},1e3,{immediate:!1});function J(){U.value=T(U.value,`code`),E(U.value)||(W.value=``)}function fe(e,t){H.value[t]=e}function Y(e){let t=Math.max(0,Math.min(3,e));c(()=>H.value[t]?.focus())}function X(){G.value=I,de()}function Z(e,t=0){let n=x(e).slice(0,F-t);if(!n)return t;let r=[...V.value],i=t;for(let e of n){if(i>=F)break;r[i]=e,i+=1}return V.value=r,J(),Math.min(i,3)}function Q(){K.value.length===F&&!R.loading&&$()}function pe(e,t){let n=t.target,r=x(n.value);if(r.length>1){let t=Z(r,e);n.value=V.value[e]??``,Y(t),Q();return}let i=r.slice(-1);V.value[e]=i,n.value=i,J(),i&&e<3?Y(e+1):i&&Q()}function me(e,t){if(t.key===`Backspace`){if(V.value[e]){V.value[e]=``,J();return}e>0&&(V.value[e-1]=``,J(),Y(e-1));return}if(t.key===`ArrowLeft`){t.preventDefault(),Y(e-1);return}t.key===`ArrowRight`&&(t.preventDefault(),Y(e+1))}function he(e,t){t.preventDefault(),Y(Z(t.clipboardData?.getData(`text`)??``,e)),Q()}function ge(e){return e?S(e):``}async function $(){if(R.loading)return;U.value={},W.value=``;let e={};if(K.value.length``),Y(0))}async function _e(){if(!q.value)return;W.value=``,U.value={};let e=B.value?re():null;if(B.value&&!e){W.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبت‌نام را شروع کنید.`;return}let t=await R.requestOtp(z.value,{isRegister:B.value,firstName:e?.firstName,lastName:e?.lastName});t.success?(V.value=Array.from({length:F},()=>``),X(),Y(0)):W.value=t.message??`خطا در ارسال مجدد کد.`}function ve(){L.replace({name:B.value?`register`:`login`})}return n(()=>{if(!z.value){L.replace({name:`login`});return}X(),Y(0)}),(n,i)=>(h(),a(`div`,k,[p(`header`,oe,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=e=>d(L).push(B.value?`/register`:`/login`)},[r(ae,{size:20})]),i[1]||=p(`h1`,{class:`auth-top__title`},`تأیید موبایل`,-1),r(ie,{variant:`inline`})]),p(`div`,se,[p(`p`,ce,`کد ارسال‌شده به `+_(d(S)(z.value))+` را وارد کنید.`,1),p(`form`,{class:`card`,onSubmit:s($,[`prevent`])},[r(w,{message:W.value},null,8,[`message`]),p(`div`,A,[p(`div`,j,[(h(!0),a(e,null,l(V.value,(e,t)=>(h(),a(`input`,{id:`otp-${t}`,key:t,ref_for:!0,ref:e=>fe(e,t),class:v([`otp-box`,{"otp-box--error":U.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:ge(e),"aria-label":`رقم ${d(S)(String(t+1))}`,onInput:e=>pe(t,e),onKeydown:e=>me(t,e),onPaste:e=>he(t,e)},null,42,M))),128))]),U.value.code?(h(),a(`p`,N,_(U.value.code),1)):te(``,!0)]),r(C,{block:``,type:`submit`,loading:d(R).loading},{default:g(()=>[...i[2]||=[t(`تأیید و ورود`,-1)]]),_:1},8,[`loading`]),r(C,{block:``,variant:`outline`,type:`button`,class:`mt-2`,disabled:!q.value,onClick:_e},{default:g(()=>[q.value?(h(),a(e,{key:0},[t(`ارسال مجدد کد`)],64)):(h(),a(e,{key:1},[t(`ارسال مجدد کد (`+_(le.value)+`)`,1)],64))]),_:1},8,[`disabled`]),p(`button`,{type:`button`,class:`mt-3 mx-auto flex items-center justify-center gap-1.5 border-0 bg-transparent p-0 text-sm text-muted cursor-pointer transition-colors hover:text-text`,onClick:ve},[p(`span`,P,_(d(S)(z.value)),1),i[3]||=p(`span`,null,`ویرایش شماره`,-1),r(O,{size:18,"stroke-width":1.5})])],32)])]))}}),[[`__scopeId`,`data-v-125d5e90`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/OtpView-DxlMUbrO.css b/dist/assets/OtpView-DxlMUbrO.css new file mode 100644 index 0000000..dd9f1d9 --- /dev/null +++ b/dist/assets/OtpView-DxlMUbrO.css @@ -0,0 +1 @@ +.otp-row[data-v-125d5e90]{gap:clamp(.25rem,1.8vw,.625rem)}.otp-box[data-v-125d5e90]{aspect-ratio:48/52;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:0;min-width:0;max-width:48px;height:auto;color:var(--color-text);text-align:center;caret-color:var(--color-primary);flex:1 1 0;padding:0;font-size:clamp(.95rem,4.2vw,1.25rem);font-weight:600;transition:border-color .15s}.otp-box[data-v-125d5e90]:focus{border-color:var(--color-primary);outline:none}.otp-box--error[data-v-125d5e90]{border-color:var(--color-danger)}.input-error-text[data-v-125d5e90]{color:var(--color-danger);margin:4px 0 0;font-size:.8125rem} diff --git a/dist/assets/PageHeader-WFa4BbgN.js b/dist/assets/PageHeader-B47bvmJV.js similarity index 95% rename from dist/assets/PageHeader-WFa4BbgN.js rename to dist/assets/PageHeader-B47bvmJV.js index f61d4af..2f81d52 100644 --- a/dist/assets/PageHeader-WFa4BbgN.js +++ b/dist/assets/PageHeader-B47bvmJV.js @@ -1 +1 @@ -import{E as e,I as t,L as n,M as r,X as i,j as a,k as o,n as s,q as c,wt as l}from"./BasicIcon-CjTTsi6o.js";import{i as u}from"./index-BQQA5ZX-.js";import{t as d}from"./IconChevronBack-B10eZjCQ.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=s(n({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(n){return(s,S)=>n.centered?(c(),r(e,{key:0},[o(`header`,f,[n.showBack?(c(),r(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>s.$emit(`back`)},[t(d,{size:20})])):(c(),r(`span`,p)),o(`h1`,m,l(n.title),1),o(`div`,h,[i(s.$slots,`trailing`,{},void 0,!0),t(u,{variant:`inline`,class:`mobile-only`})])]),n.subtitle?(c(),r(`p`,g,l(n.subtitle),1)):a(``,!0)],64)):(c(),r(`header`,_,[n.showBack?(c(),r(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>s.$emit(`back`)},[t(d,{size:20})])):a(``,!0),o(`div`,v,[o(`h1`,y,l(n.title),1),n.subtitle?(c(),r(`p`,b,l(n.subtitle),1)):a(``,!0)]),o(`div`,x,[i(s.$slots,`trailing`,{},void 0,!0),t(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S as t}; \ No newline at end of file +import{E as e,I as t,L as n,M as r,X as i,j as a,k as o,n as s,q as c,wt as l}from"./BasicIcon-CjTTsi6o.js";import{i as u}from"./index-D3Z8WOeX.js";import{t as d}from"./IconChevronBack-B10eZjCQ.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=s(n({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(n){return(s,S)=>n.centered?(c(),r(e,{key:0},[o(`header`,f,[n.showBack?(c(),r(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>s.$emit(`back`)},[t(d,{size:20})])):(c(),r(`span`,p)),o(`h1`,m,l(n.title),1),o(`div`,h,[i(s.$slots,`trailing`,{},void 0,!0),t(u,{variant:`inline`,class:`mobile-only`})])]),n.subtitle?(c(),r(`p`,g,l(n.subtitle),1)):a(``,!0)],64)):(c(),r(`header`,_,[n.showBack?(c(),r(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>s.$emit(`back`)},[t(d,{size:20})])):a(``,!0),o(`div`,v,[o(`h1`,y,l(n.title),1),n.subtitle?(c(),r(`p`,b,l(n.subtitle),1)):a(``,!0)]),o(`div`,x,[i(s.$slots,`trailing`,{},void 0,!0),t(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S as t}; \ No newline at end of file diff --git a/dist/assets/ProductDetailView-BzC8zwMe.css b/dist/assets/ProductDetailView-BzC8zwMe.css deleted file mode 100644 index 698f117..0000000 --- a/dist/assets/ProductDetailView-BzC8zwMe.css +++ /dev/null @@ -1 +0,0 @@ -.product-detail[data-v-9d82ace3]{background:var(--color-bg);flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-9d82ace3]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-9d82ace3]{gap:4px;display:flex}.icon-btn[data-v-9d82ace3]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-9d82ace3]{flex:1;padding-bottom:120px}.gallery__main[data-v-9d82ace3]{background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px;position:relative}.gallery__count[data-v-9d82ace3]{bottom:12px;color:#fff;background:#0000008c;border-radius:999px;padding:4px 10px;font-size:.75rem;position:absolute;inset-inline-start:12px}.gallery__thumbs[data-v-9d82ace3]{padding:12px var(--page-padding);background:var(--color-surface);gap:8px;display:flex;overflow-x:auto}.thumb[data-v-9d82ace3]{cursor:pointer;border:2px solid #0000;border-radius:10px;flex-shrink:0;width:48px;height:48px}.thumb--active[data-v-9d82ace3]{border-color:#111}.pd-body[data-v-9d82ace3]{padding:16px var(--page-padding) 24px;flex-direction:column;gap:16px;display:flex}.title-row[data-v-9d82ace3]{align-items:center;gap:8px;display:flex}.title-row h1[data-v-9d82ace3]{margin:0;font-size:1.25rem}.new-badge[data-v-9d82ace3]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}.code[data-v-9d82ace3]{color:var(--color-text-muted);margin:-8px 0 0;font-size:.85rem}.specs[data-v-9d82ace3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:10px;padding:12px;font-size:.8rem;display:grid}.spec-cell[data-v-9d82ace3]{flex-direction:column;gap:4px;display:flex}.spec-cell__label[data-v-9d82ace3]{color:var(--color-text-muted);font-size:.75rem}.specs-more[data-v-9d82ace3]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:700}.specs-extra[data-v-9d82ace3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);padding:12px;font-size:.85rem}.specs-extra p[data-v-9d82ace3]{margin:0 0 6px}.section-label[data-v-9d82ace3]{margin:0 0 8px;font-size:.95rem}.section-label span[data-v-9d82ace3]{color:var(--color-text-muted);font-size:.8rem;font-weight:500}.colors[data-v-9d82ace3]{flex-wrap:wrap;gap:10px;display:flex}.color-dot[data-v-9d82ace3]{cursor:pointer;border:2px solid #0000;border-radius:999px;width:28px;height:28px}.color-dot--active[data-v-9d82ace3]{outline:2px solid var(--color-primary);outline-offset:2px}.tags[data-v-9d82ace3]{flex-wrap:wrap;gap:8px;display:flex}.tag[data-v-9d82ace3]{background:var(--color-bg);border-radius:999px;padding:8px 12px;font-size:.8rem}.roll-field[data-v-9d82ace3]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:12px 14px}.roll-stepper[data-v-9d82ace3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:16px;padding:8px 12px;display:inline-flex}.step-btn[data-v-9d82ace3]{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:10px;width:36px;height:36px;font-size:1.2rem}.order-meters[data-v-9d82ace3],.action-msg[data-v-9d82ace3]{color:var(--color-text-muted);margin:8px 0 0;font-size:.85rem}.action-msg[data-v-9d82ace3]{color:var(--color-primary);font-weight:600}.pd-footer[data-v-9d82ace3]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1fr 1.2fr;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-9d82ace3]{flex-direction:column;display:flex}.btn-secondary[data-v-9d82ace3],.btn-primary[data-v-9d82ace3]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-9d82ace3]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-primary[data-v-9d82ace3]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-9d82ace3]:disabled{opacity:.7;cursor:wait}.min-note[data-v-9d82ace3]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.empty[data-v-9d82ace3]{padding:40px var(--page-padding);text-align:center} diff --git a/dist/assets/ProductDetailView-C1qTrEYC.js b/dist/assets/ProductDetailView-C1qTrEYC.js deleted file mode 100644 index 947f649..0000000 --- a/dist/assets/ProductDetailView-C1qTrEYC.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,Ct as t,E as n,F as r,G as i,I as a,L as ee,M as o,O as s,Y as c,_ as te,bt as l,ft as u,g as ne,j as d,k as f,n as p,q as m,wt as h,xt as g}from"./BasicIcon-CjTTsi6o.js";import{a as re,o as _}from"./format-BHJptHdF.js";import{t as ie}from"./catalog-Dd554brK.js";import{C as ae,T as oe,b as se,l as ce}from"./index-BQQA5ZX-.js";import{t as le}from"./IconChevronBack-B10eZjCQ.js";import{t as ue}from"./PageSkeleton-CyATkHE1.js";import{t as de}from"./crm-DPw1h61_.js";import{t as fe}from"./useGoBack-D3aJ73Q-.js";import{t as pe}from"./IconMail-B6_IInpi.js";import{t as me}from"./IconHeart-BmvFB3Xr.js";var he={key:0,class:`page product-detail`},ge={class:`pd-header`},_e={class:`pd-header__actions`},ve=[`aria-label`,`aria-pressed`],ye={class:`page__scroll pd-scroll`},be={class:`gallery`},v={class:`gallery__count`},y={class:`gallery__thumbs`},b=[`onClick`],x={class:`pd-body`},S={class:`title-row`},C={key:0,class:`new-badge`},w={class:`code`},T={class:`specs`},E={class:`spec-cell`},D={class:`spec-cell`},O={class:`spec-cell`},k={class:`spec-cell`},A={key:0,class:`specs-extra`},j={key:0},M={class:`section-label`},N={class:`colors`},xe=[`onClick`],Se={class:`tags`},Ce={key:0,class:`tag`},we={class:`roll-field`},Te={class:`roll-stepper`},Ee={class:`order-meters`},P={key:1,class:`action-msg`},De={class:`pd-footer`},Oe={class:`pd-footer__primary`},ke=[`disabled`],Ae={class:`min-note`},je={key:1,class:`page empty`},Me={key:2,class:`page empty`},F=p(ee({__name:`ProductDetailView`,setup(ee){let p=ne(),F=te(),{goBack:I}=fe(`/products`),Ne=de(),L=ce(),Pe=oe(),R=ie(),z=s(()=>String(p.query.id??``)),B=u(null),V=u(!0),H=u(null),U=u(0),W=u(1),G=u(!1),K=u(null),q=u(!1),J=s(()=>B.value?.rollMeters??50),Y=s(()=>W.value*J.value),X=s(()=>{let e=B.value?.minMeterage;return e&&e>0?e:J.value}),Z=s(()=>Math.max(1,Math.ceil(X.value/J.value)));async function Q(){if(!z.value){B.value=null,V.value=!1;return}V.value=!0,H.value=null,K.value=null;try{await Promise.all([L.hydrate(),R.loadCompanies()]),B.value=await Ne.loadProductById(z.value),U.value=0,W.value=Z.value}catch(e){B.value=null,H.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{V.value=!1}}i(Q),e(z,Q);function Fe(e){if(!e.companyId||!e.catalogId)return null;let t=e.rollMeters||50,n=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:t,r=e.minMeterage&&e.minMeterage>0?e.minMeterage:t;return{id:e.id,companyId:e.companyId,catalogId:e.catalogId,name:e.name,code:e.code,color:e.color||e.colors[U.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function Ie(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}async function Le(){if(!B.value)return;let e=Fe(B.value);if(!e){K.value=`اطلاعات شرکت/کاتالوگ محصول ناقص است.`;return}R.getCompany(e.companyId)||await R.loadCompanies(),G.value=!0,K.value=null;try{let t=Ie(Y.value,e.orderMultiplier,e.minMeterage),n=await Pe.addItem(e,B.value.catalogCode||B.value.code,t);n.success?(K.value=`به سفارش اضافه شد.`,await F.push(`/cart`)):K.value=n.message||`افزودن به سفارش ناموفق بود.`}finally{G.value=!1}}function Re(){B.value&&L.toggle(B.value.id)}function $(e){W.value=Math.max(Z.value,W.value+e)}function ze(){let e=window.location.href;navigator.share?navigator.share({title:B.value?.name,url:e}).catch(()=>void 0):(navigator.clipboard?.writeText(e),K.value=`لینک محصول کپی شد.`)}return(e,i)=>B.value?(m(),o(`div`,he,[f(`header`,ge,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=(...e)=>l(I)&&l(I)(...e)},[a(le,{size:20})]),f(`div`,_e,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":l(L).isFavorite(B.value.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":l(L).isFavorite(B.value.id),onClick:Re},[a(me,{size:20,filled:l(L).isFavorite(B.value.id),color:l(L).isFavorite(B.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,ve),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراک‌گذاری`,onClick:ze},[a(pe,{size:20})])])]),f(`div`,ye,[f(`div`,be,[f(`div`,{class:`gallery__main`,style:t(B.value.imageUrl?{backgroundImage:`url(${B.value.imageUrl})`,backgroundSize:`cover`,backgroundPosition:`center`}:{background:B.value.colors[U.value]||`#6b7280`})},[f(`span`,v,h(l(_)(U.value+1))+`/`+h(l(_)(Math.max(B.value.colors.length,1))),1)],4),f(`div`,y,[(m(!0),o(n,null,c(B.value.colors,(e,n)=>(m(),o(`button`,{key:n,type:`button`,class:g([`thumb`,{"thumb--active":U.value===n}]),style:t({background:e}),onClick:e=>U.value=n},null,14,b))),128))])]),f(`div`,x,[f(`div`,S,[f(`h1`,null,h(B.value.name),1),B.value.isNew?(m(),o(`span`,C,`جدید`)):d(``,!0)]),f(`p`,w,`کد محصول: `+h(B.value.code),1),f(`div`,T,[f(`div`,E,[i[6]||=f(`span`,{class:`spec-cell__label`},`عرض`,-1),f(`strong`,null,h(l(_)(B.value.widthCm))+` سانتی متر`,1)]),f(`div`,D,[i[7]||=f(`span`,{class:`spec-cell__label`},`جنس`,-1),f(`strong`,null,h(B.value.composition||`—`),1)]),f(`div`,O,[i[8]||=f(`span`,{class:`spec-cell__label`},`وزن`,-1),f(`strong`,null,h(B.value.weightGrams?`${l(_)(B.value.weightGrams)} گرم`:`—`),1)]),f(`div`,k,[i[9]||=f(`span`,{class:`spec-cell__label`},`نوع بافت`,-1),f(`strong`,null,h(B.value.weaveType||`—`),1)])]),f(`button`,{type:`button`,class:`specs-more`,onClick:i[1]||=e=>q.value=!q.value},h(q.value?`بستن مشخصات`:`مشاهده همه مشخصات`),1),q.value?(m(),o(`div`,A,[f(`p`,null,`فصل: `+h(B.value.season),1),f(`p`,null,`دسته: `+h(B.value.categoryId),1),B.value.basePrice?(m(),o(`p`,j,`قیمت پایه: `+h(l(_)(B.value.basePrice))+` تومان`,1)):d(``,!0)])):d(``,!0),f(`section`,null,[f(`h2`,M,[i[10]||=r(` رنگ بندی `,-1),f(`span`,null,`(`+h(l(_)(B.value.colors.length))+` رنگ موجود)`,1)]),f(`div`,N,[(m(!0),o(n,null,c(B.value.colors,(e,n)=>(m(),o(`button`,{key:n,type:`button`,class:g([`color-dot`,{"color-dot--active":U.value===n}]),style:t({background:e}),onClick:e=>U.value=n},null,14,xe))),128))])]),f(`section`,null,[i[11]||=f(`h2`,{class:`section-label`},`دسته بندی`,-1),f(`div`,Se,[(m(!0),o(n,null,c(B.value.tags,e=>(m(),o(`span`,{key:e,class:`tag`},h(e),1))),128)),B.value.tags.length?d(``,!0):(m(),o(`span`,Ce,h(B.value.categoryId),1))])]),f(`section`,null,[i[12]||=f(`h2`,{class:`section-label`},`متراژ هر ساقه (طاقه)`,-1),f(`div`,we,h(l(_)(B.value.rollMeters))+` متر`,1)]),f(`section`,null,[i[13]||=f(`h2`,{class:`section-label`},`تعداد طاقه`,-1),f(`div`,Te,[f(`button`,{type:`button`,class:`step-btn`,onClick:i[2]||=e=>$(-1)},`−`),f(`strong`,null,h(l(_)(W.value)),1),f(`button`,{type:`button`,class:`step-btn`,onClick:i[3]||=e=>$(1)},`+`)]),f(`p`,Ee,`جمع متراژ سفارش: `+h(l(_)(Y.value))+` متر`,1)]),K.value?(m(),o(`p`,P,h(K.value),1)):d(``,!0)])]),f(`footer`,De,[f(`button`,{type:`button`,class:`btn-secondary`,onClick:i[4]||=e=>l(F).push({path:`/catalog-request`,query:{productId:B.value.id}})},[a(se,{size:18}),i[14]||=r(` درخواست کالیته `,-1)]),f(`div`,Oe,[f(`button`,{type:`button`,class:`btn-primary`,disabled:G.value,onClick:Le},[a(ae,{size:18,color:`#ffffff`}),r(` `+h(G.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,ke),f(`p`,Ae,`حداقل سفارش: `+h(l(re)(X.value)),1)])])])):V.value?(m(),o(`div`,je,[a(ue,{variant:`detail`})])):(m(),o(`div`,Me,[f(`p`,null,h(H.value||`محصول یافت نشد.`),1),f(`button`,{type:`button`,onClick:i[5]||=e=>l(F).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-9d82ace3`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/ProductDetailView-CtgUNpy9.css b/dist/assets/ProductDetailView-CtgUNpy9.css new file mode 100644 index 0000000..d0136fe --- /dev/null +++ b/dist/assets/ProductDetailView-CtgUNpy9.css @@ -0,0 +1 @@ +.product-detail[data-v-1eb99089]{--pd-card-border:1px solid #eeeef1;--pd-card-shadow:0 1px 2px #1018280a, 0 6px 16px #1018280d;--pd-card-radius:16px;background:#fff;flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-1eb99089]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-1eb99089]{gap:4px;display:flex}.icon-btn[data-v-1eb99089]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-1eb99089]{flex:1;padding-bottom:120px}.gallery__main[data-v-1eb99089]{background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px;position:relative}.gallery__count[data-v-1eb99089]{bottom:12px;color:#fff;background:#0000008c;border-radius:999px;padding:4px 10px;font-size:.75rem;position:absolute;inset-inline-start:12px}.gallery__thumbs[data-v-1eb99089]{margin:12px var(--page-padding) 0;border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;gap:10px;padding:10px;display:flex;overflow-x:auto}.thumb[data-v-1eb99089]{appearance:none;border:var(--pd-card-border);width:52px;height:52px;box-shadow:var(--pd-card-shadow);cursor:pointer;box-sizing:border-box;background:#fff;border-radius:14px;flex-shrink:0;padding:0}.thumb__swatch[data-v-1eb99089]{border-radius:12px;width:100%;height:100%;display:block}.thumb--active[data-v-1eb99089]{border:2px solid #0a353c;padding:3px}.thumb--active .thumb__swatch[data-v-1eb99089]{border-radius:9px}.pd-body[data-v-1eb99089]{padding:16px var(--page-padding) 20px;background:#fff;flex-direction:column;gap:18px;display:flex}.title-row[data-v-1eb99089]{justify-content:flex-start;align-items:center;gap:8px;display:flex}.title-row h1[data-v-1eb99089]{margin:0;font-size:1.2rem;font-weight:700}.new-badge[data-v-1eb99089]{color:#fff;background:#96b49c;border:none;border-radius:10px;justify-content:center;align-items:center;height:26px;padding:0 16px;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.code[data-v-1eb99089]{color:var(--color-text-muted);margin:-10px 0 0;font-size:.82rem}.specs[data-v-1eb99089]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:14px 8px;display:grid}.spec-cell[data-v-1eb99089]{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.spec-icon[data-v-1eb99089]{color:#98a2ad;place-items:center;width:22px;height:22px;display:grid}.spec-icon svg[data-v-1eb99089]{width:22px;height:22px}.spec-cell strong[data-v-1eb99089]{color:var(--color-text);text-overflow:ellipsis;max-width:100%;font-size:.7rem;font-weight:600;line-height:1.4;overflow:hidden}.spec-cell span[data-v-1eb99089]{color:#98a2ad;font-size:.7rem}.specs-more[data-v-1eb99089]{color:#8b939c;cursor:pointer;background:0 0;border:none;align-self:center;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.specs-more__chevron[data-v-1eb99089]{width:12px;height:12px}.specs-more__chevron.is-open[data-v-1eb99089]{transform:rotate(180deg)}.specs-extra[data-v-1eb99089]{color:var(--color-text-muted);background:#f6f7f8;border-radius:12px;padding:12px 14px;font-size:.82rem}.specs-extra p[data-v-1eb99089]{margin:0 0 6px}.specs-extra p[data-v-1eb99089]:last-child{margin:0}.pd-section[data-v-1eb99089]{flex-direction:column;gap:10px;display:flex}.pd-section--boxed[data-v-1eb99089]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;padding:12px 14px}.section-head[data-v-1eb99089]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-head h2[data-v-1eb99089],.section-title[data-v-1eb99089]{margin:0;font-size:.95rem;font-weight:700}.section-head span[data-v-1eb99089]{color:#8b939c;font-size:.78rem}.colors[data-v-1eb99089]{padding:4px 2px;flex-wrap:nowrap;gap:14px;padding-inline-start:20px;display:flex;overflow-x:auto}.color-dot[data-v-1eb99089]{appearance:none;width:22px;height:22px;box-shadow:none;cursor:pointer;box-sizing:border-box;border:1px solid #00000014;border-radius:999px;flex-shrink:0;padding:0}.color-dot--active[data-v-1eb99089]{border-color:#0000;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0a353c}.tags[data-v-1eb99089]{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.tag[data-v-1eb99089],button.tag[data-v-1eb99089]{appearance:none;border:var(--pd-card-border);border-radius:var(--pd-card-radius);color:#6b7280;letter-spacing:0;white-space:nowrap;height:32px;min-height:32px;box-shadow:var(--pd-card-shadow);background:#fff;outline:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8125rem;font-weight:400;line-height:1;display:inline-flex}button.tag[data-v-1eb99089]{cursor:default;font-family:inherit}button.tag--link[data-v-1eb99089]{cursor:pointer}button.tag--link[data-v-1eb99089]:hover{background:#fff}.roll-field[data-v-1eb99089]{color:#6b7280;background:#fff;border:1px solid #eeeef1;border-radius:16px;align-items:center;width:fit-content;max-width:100%;padding:14px 16px;font-size:.9rem;display:inline-flex;box-shadow:0 1px 2px #1018280a,0 6px 16px #1018280d}.pd-footer[data-v-1eb99089]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1.2fr 1fr;align-items:start;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-1eb99089]{flex-direction:column;display:flex}.btn-secondary[data-v-1eb99089],.btn-primary[data-v-1eb99089]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-1eb99089]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-primary[data-v-1eb99089]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-1eb99089]:disabled{opacity:.7;cursor:wait}.min-note[data-v-1eb99089]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.empty[data-v-1eb99089]{padding:40px var(--page-padding);text-align:center} diff --git a/dist/assets/ProductDetailView-DeWz9Sq6.js b/dist/assets/ProductDetailView-DeWz9Sq6.js new file mode 100644 index 0000000..53f260d --- /dev/null +++ b/dist/assets/ProductDetailView-DeWz9Sq6.js @@ -0,0 +1 @@ +import{$ as e,Ct as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,Y as l,_ as ee,bt as u,ft as d,g as te,j as f,k as p,n as m,q as h,wt as g,xt as _}from"./BasicIcon-CjTTsi6o.js";import{o as v}from"./format-BHJptHdF.js";import{t as ne}from"./catalog-Dd554brK.js";import{C as re,T as ie,b as ae,l as oe}from"./index-D3Z8WOeX.js";import{t as se}from"./IconChevronBack-B10eZjCQ.js";import{t as ce}from"./PageSkeleton-CyATkHE1.js";import{a as le,i as ue,t as de}from"./crm-l0KpZ2AN.js";import{t as fe}from"./IconShoppingBag-B7WsCtZ4.js";import{t as pe}from"./useGoBack-D3aJ73Q-.js";import{t as me}from"./IconHeart-BmvFB3Xr.js";var y=[`width`,`height`],b=[`stroke`],x=[`stroke`],S=[`stroke`],he=o({__name:`IconShare`,props:{size:{default:20},color:{default:`#9AA3AF`}},setup(e){return(t,n)=>(h(),s(`svg`,{width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[p(`path`,{d:`M12 3.5v11`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`},null,8,b),p(`path`,{d:`M8.25 7 12 3.25 15.75 7`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,x),p(`path`,{d:`M6.5 11.5v7.25c0 .97.78 1.75 1.75 1.75h7.5c.97 0 1.75-.78 1.75-1.75V11.5`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,S)],8,y))}}),C={key:0,class:`page product-detail`},w={class:`pd-header`},T={class:`pd-header__actions`},E=[`aria-label`,`aria-pressed`],D={class:`page__scroll pd-scroll`},O={class:`gallery`},k={class:`gallery__count`},A={class:`gallery__thumbs`},j=[`onClick`],M={class:`pd-body`},N={class:`title-row`},P={key:0,class:`new-badge`},F={class:`code`},I={class:`specs`},L={class:`spec-cell`},R={class:`spec-cell`},ge={class:`spec-cell`},_e={class:`spec-icon`,"aria-hidden":`true`},ve={class:`spec-cell`},ye={key:0,class:`specs-extra`},be={class:`pd-section pd-section--boxed`},xe={class:`section-head`},Se={class:`colors`},Ce=[`onClick`],we={class:`pd-section`},Te={class:`tags`,role:`list`},Ee=[`onClick`],De={class:`pd-section`},Oe={class:`roll-field`},ke={class:`pd-footer`},Ae={class:`pd-footer__primary`},je=[`disabled`],Me={class:`min-note`},Ne={key:1,class:`page empty`},Pe={key:2,class:`page empty`},z=m(o({__name:`ProductDetailView`,setup(o){let m={suit:`پارچه کت‌شلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},y={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},b=te(),x=ee(),{goBack:S}=pe(`/products`),z=de(),B=oe(),Fe=ie(),Ie=ne(),V=c(()=>String(b.query.id??``)),H=d(null),U=d(!0),W=d(null),G=d(0),K=d(1),q=d(!1),J=d(!1),Y=c(()=>H.value?.rollMeters??50),X=c(()=>K.value*Y.value),Le=c(()=>{let e=H.value?.minMeterage;return e&&e>0?e:Y.value}),Z=c(()=>Math.max(1,Math.ceil(Le.value/Y.value))),Re=c(()=>m[H.value?.categoryId??``]||`—`),Q=c(()=>y[H.value?.season??``]||`—`),ze=c(()=>{let e=H.value;if(!e)return[];let t=[],n=le.some(t=>t.id===e.categoryId)?e.categoryId:``,r=n?m[n]:``;r&&t.push({key:`usage-${n}`,label:r,to:{path:`/products`,query:{categoryId:n}}});let i=ue.some(t=>t.id===e.season)?e.season:``,a=i?y[i]:``;a&&t.push({key:`season-${i}`,label:a,to:{path:`/products`,query:{season:i}}});let o=new Set(t.flatMap(e=>[e.label,e.label.replace(/^پارچه\s*/,``)]));for(let n of e.tags){let e=n.replace(/^پارچه‌?های?\s*/,``).trim();if(!e||o.has(e)||t.some(t=>t.label.includes(e)))continue;let r=n.startsWith(`پارچه`)?n:`پارچه ${e}`;o.add(e),t.push({key:`tag-${n}`,label:r})}return t});async function $(){if(!V.value){H.value=null,U.value=!1;return}U.value=!0,W.value=null;try{await Promise.all([B.hydrate(),Ie.loadCompanies()]),H.value=await z.loadProductById(V.value),G.value=0,K.value=Z.value}catch(e){H.value=null,W.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{U.value=!1}}i($),e(V,$);function Be(e){let t=e.rollMeters||50,n=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:t,r=e.minMeterage&&e.minMeterage>0?e.minMeterage:t;return{id:e.id,companyId:e.companyId||``,catalogId:e.catalogId||``,name:e.name,code:e.code,color:e.color||e.colors[G.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function Ve(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}async function He(){if(!H.value)return;let e=Be(H.value);q.value=!0;try{let t=Ve(X.value,e.orderMultiplier,e.minMeterage);await Fe.addItem(e,H.value.catalogCode||H.value.code,t)}finally{q.value=!1}}function Ue(){H.value&&B.toggle(H.value.id)}function We(){let e=window.location.href;if(navigator.share){navigator.share({title:H.value?.name,url:e}).catch(()=>void 0);return}navigator.clipboard?.writeText(e)}return(e,i)=>H.value?(h(),s(`div`,C,[p(`header`,w,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=(...e)=>u(S)&&u(S)(...e)},[a(se,{size:20})]),p(`div`,T,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":u(B).isFavorite(H.value.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":u(B).isFavorite(H.value.id),onClick:Ue},[a(me,{size:20,filled:u(B).isFavorite(H.value.id),color:u(B).isFavorite(H.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,E),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراک‌گذاری`,onClick:We},[a(he,{size:20})])])]),p(`div`,D,[p(`div`,O,[p(`div`,{class:`gallery__main`,style:t(H.value.imageUrl?{backgroundImage:`url(${H.value.imageUrl})`,backgroundSize:`cover`,backgroundPosition:`center`}:{background:H.value.colors[G.value]||`#6b7280`})},[p(`span`,k,g(u(v)(G.value+1))+`/`+g(u(v)(Math.max(H.value.colors.length,1))),1)],4),p(`div`,A,[(h(!0),s(n,null,l(H.value.colors,(e,n)=>(h(),s(`button`,{key:n,type:`button`,class:_([`thumb`,{"thumb--active":G.value===n}]),onClick:e=>G.value=n},[p(`span`,{class:`thumb__swatch`,style:t({background:e})},null,4)],10,j))),128))])]),p(`div`,M,[p(`div`,N,[p(`h1`,null,g(H.value.name),1),H.value.isNew?(h(),s(`span`,P,`جدید`)):f(``,!0)]),p(`p`,F,`کد محصول: `+g(H.value.code),1),p(`div`,I,[p(`div`,L,[i[4]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`rect`,{x:`4`,y:`8`,width:`16`,height:`8`,rx:`2`})])],-1),i[5]||=p(`span`,null,`عرض`,-1),p(`strong`,null,g(u(v)(H.value.widthCm))+` سانتی‌متر`,1)]),p(`div`,R,[i[6]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`})])],-1),i[7]||=p(`span`,null,`جنس`,-1),p(`strong`,null,g(H.value.composition||`—`),1)]),p(`div`,ge,[p(`span`,_e,[a(fe,{size:22,color:`#98a2ad`})]),i[8]||=p(`span`,null,`وزن`,-1),p(`strong`,null,g(H.value.weightGrams?`${u(v)(H.value.weightGrams)} گرم`:`—`),1)]),p(`div`,ve,[i[9]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`circle`,{cx:`12`,cy:`12`,r:`8`}),p(`path`,{d:`M12 8a6 6 0 0 1 0 8`})])],-1),i[10]||=p(`span`,null,`نوع بافت`,-1),p(`strong`,null,g(H.value.weaveType||`—`),1)])]),p(`button`,{type:`button`,class:`specs-more`,onClick:i[1]||=e=>J.value=!J.value},[r(g(J.value?`بستن مشخصات`:`مشاهده همه مشخصات`)+` `,1),(h(),s(`svg`,{class:_([`specs-more__chevron`,{"is-open":J.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...i[11]||=[p(`path`,{d:`M3 4.5 6 8l3-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`},null,-1)]],2))]),J.value?(h(),s(`div`,ye,[p(`p`,null,`فصل: `+g(Q.value),1),p(`p`,null,`دسته: `+g(Re.value),1),p(`p`,null,`جمع سفارش: `+g(u(v)(X.value))+` متر`,1)])):f(``,!0),p(`section`,be,[p(`div`,xe,[i[12]||=p(`h2`,null,`رنگ‌بندی`,-1),p(`span`,null,`(`+g(u(v)(H.value.colors.length))+` رنگ موجود)`,1)]),p(`div`,Se,[(h(!0),s(n,null,l(H.value.colors,(e,n)=>(h(),s(`button`,{key:n,type:`button`,class:_([`color-dot`,{"color-dot--active":G.value===n}]),style:t({background:e}),onClick:e=>G.value=n},null,14,Ce))),128))])]),p(`section`,we,[i[13]||=p(`h2`,{class:`section-title`},`دسته‌بندی`,-1),p(`div`,Te,[(h(!0),s(n,null,l(ze.value,e=>(h(),s(`button`,{key:e.key,type:`button`,class:_([`tag`,{"tag--link":!!e.to}]),role:`listitem`,onClick:t=>e.to&&u(x).push(e.to)},g(e.label),11,Ee))),128))])]),p(`section`,De,[i[14]||=p(`h2`,{class:`section-title`},`متراژ هر ساقه (طاقه)`,-1),p(`div`,Oe,g(u(v)(H.value.rollMeters))+` متر`,1)])])]),p(`footer`,ke,[p(`div`,Ae,[p(`button`,{type:`button`,class:`btn-primary`,disabled:q.value,onClick:He},[a(re,{size:18,color:`#ffffff`}),r(` `+g(q.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,je),p(`p`,Me,`حداقل سفارش: `+g(u(v)(Z.value))+` طاقه`,1)]),p(`button`,{type:`button`,class:`btn-secondary`,onClick:i[2]||=e=>u(x).push({path:`/catalog-request`,query:{productId:H.value.id}})},[a(ae,{size:18}),i[15]||=r(` درخواست کالیته `,-1)])])])):U.value?(h(),s(`div`,Ne,[a(ce,{variant:`detail`})])):(h(),s(`div`,Pe,[p(`p`,null,g(W.value||`محصول یافت نشد.`),1),p(`button`,{type:`button`,onClick:i[3]||=e=>u(x).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-1eb99089`]]);export{z as default}; \ No newline at end of file diff --git a/dist/assets/ProductListView-CaInObaS.js b/dist/assets/ProductListView-CaInObaS.js deleted file mode 100644 index 0f33481..0000000 --- a/dist/assets/ProductListView-CaInObaS.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,Y as l,_ as u,bt as d,ft as f,g as p,j as m,k as h,n as g,q as _,tt as v,wt as y,xt as b}from"./BasicIcon-CjTTsi6o.js";import{a as x,o as S,u as C}from"./format-BHJptHdF.js";import{t as ee}from"./catalog-Dd554brK.js";import{C as w,T,n as E}from"./index-BQQA5ZX-.js";import{t as D}from"./EmptyState-BpC5eqVE.js";import{t as O}from"./PageHeader-WFa4BbgN.js";function k(){let t=p(),n=u(),r=ee(),a=T(),o=f(!0),s=c(()=>t.params.companyId),l=c(()=>t.params.catalogId),d=c(()=>r.getCatalog(l.value)),m=c(()=>r.getCompany(s.value)),h=f(`all`),g=c(()=>[`all`,...r.getUniqueColors(l.value)]),_={all:`همه`},v=c(()=>r.fetchProducts(l.value,h.value===`all`?void 0:h.value)),y=f({}),b=f({}),x=f(``);async function S(){o.value=!0,r.getCompany(s.value)||await r.loadCompanies(),r.getCatalog(l.value)||await r.loadCatalogs(s.value),await r.loadProducts(l.value),o.value=!1}i(S),e([s,l],S),e(h,async e=>{await r.loadProducts(l.value,e===`all`?void 0:e)});function C(e){return y.value[e]??0}function w(e,t,n){let r=C(e);y.value[e]=Math.max(0,r+t*n)}async function E(e){let t=r.getProduct(e);if(!t||!d.value){b.value={...b.value,[e]:`اطلاعات محصول هنوز آماده نیست. صفحه را تازه کنید.`};return}let n=C(e);if(n<=0){b.value={...b.value,[e]:`متراژ را وارد کنید.`};return}let i=await a.addItem(t,d.value.code,n);i.success?(b.value={...b.value,[e]:``},x.value=`${t.name} به سبد اضافه شد.`,setTimeout(()=>{x.value=``},2e3)):b.value={...b.value,[e]:i.message??`خطا`}}function D(e,t){y.value[e]=Math.max(0,t)}function O(){n.push(`/cart`)}function k(){n.push(`/companies/${s.value}/catalogs`)}return{companyId:s,catalogId:l,catalog:d,company:m,colorFilter:h,colors:g,colorLabels:_,products:v,meterages:y,errors:b,toast:x,loading:o,cartStore:a,adjustMeterage:w,setMeterage:D,addProduct:E,goToCart:O,goBack:k}}var A={class:`cart-meterage-footer__info`},j={class:`cart-meterage-footer__value`},M={class:`cart-meterage-footer__action`},N={class:`cart-meterage-footer__icon-wrap`},P={key:0,class:`cart-meterage-footer__badge`},F=g(o({__name:`CartMeterageFooter`,props:{totalMeterage:{},itemCount:{}},emits:[`click`],setup(e){return(t,n)=>(_(),s(`button`,{type:`button`,class:`cart-meterage-footer`,"aria-label":`مشاهده سبد خرید`,onClick:n[0]||=e=>t.$emit(`click`)},[h(`span`,A,[n[1]||=h(`span`,{class:`cart-meterage-footer__label`},`کل متراژ`,-1),h(`span`,j,y(d(x)(e.totalMeterage)),1)]),h(`span`,M,[n[2]||=h(`span`,{class:`cart-meterage-footer__action-text`},`مشاهده سبد`,-1),h(`span`,N,[a(w,{size:20}),e.itemCount?(_(),s(`span`,P,y(d(C)(String(e.itemCount))),1)):m(``,!0)])])]))}}),[[`__scopeId`,`data-v-d8ea9109`]]),I={class:`page product-mobile-page`},L={class:`color-tabs`},R=[`onClick`],z={class:`page__scroll product-mobile-page__scroll`},B={key:0,class:`product-mobile-list`},V={class:`product-mobile-card__head`},H={class:`product-mobile-card__meta`},U={class:`meterage-input-row`},W=[`onClick`],G=[`value`,`step`,`onInput`],K=[`onClick`],q={key:0,class:`error-text`},J={key:0,class:`toast`},Y={key:1,class:`sticky-footer`},X=g(o({__name:`MobileProductPage`,props:{catalogCode:{},companyName:{},colors:{},colorLabels:{},colorFilter:{},products:{},meterages:{},errors:{},totalMeterage:{},itemCount:{},toast:{}},emits:[`back`,`update:colorFilter`,`adjust`,`setMeterage`,`add`,`cart`],setup(e,{emit:i}){let o=i;return(i,c)=>(_(),s(`div`,I,[a(O,{title:`کالیته ${e.catalogCode}`,subtitle:e.companyName,"show-back":``,centered:``,onBack:c[0]||=e=>o(`back`)},null,8,[`title`,`subtitle`]),h(`div`,L,[(_(!0),s(n,null,l(e.colors,t=>(_(),s(`button`,{key:t,type:`button`,class:b([`color-tab`,{active:e.colorFilter===t}]),onClick:e=>o(`update:colorFilter`,t)},y(e.colorLabels[t]??t),11,R))),128))]),h(`div`,z,[e.products.length>0?(_(),s(`div`,B,[(_(!0),s(n,null,l(e.products,t=>(_(),s(`article`,{key:t.id,class:`product-mobile-card`},[h(`div`,V,[h(`h3`,null,y(t.name),1),h(`span`,null,`کد: `+y(t.code),1)]),h(`p`,H,`حداقل سفارش: `+y(d(x)(t.minMeterage)),1),h(`div`,U,[h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`کاهش`,onClick:e=>o(`adjust`,t.id,-1,t.orderMultiplier)},` − `,8,W),h(`input`,{value:e.meterages[t.id]??``,type:`number`,class:`meterage-input`,step:t.orderMultiplier,min:0,placeholder:`۰`,onInput:e=>o(`setMeterage`,t.id,Number(e.target.value)||0)},null,40,G),h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`افزایش`,onClick:e=>o(`adjust`,t.id,1,t.orderMultiplier)},` + `,8,K)]),a(E,{block:``,onClick:e=>o(`add`,t.id)},{default:v(()=>[...c[2]||=[r(`افزودن`,-1)]]),_:1},8,[`onClick`]),e.errors[t.id]?(_(),s(`p`,q,y(e.errors[t.id]),1)):m(``,!0)]))),128))])):(_(),t(D,{key:1,variant:`products`,message:`برای این کالیته یا رنگ، محصولی ثبت نشده است`}))]),e.toast?(_(),s(`div`,J,y(e.toast),1)):m(``,!0),e.itemCount>0?(_(),s(`div`,Y,[a(F,{"total-meterage":e.totalMeterage,"item-count":e.itemCount,onClick:c[1]||=e=>o(`cart`)},null,8,[`total-meterage`,`item-count`])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-2d9826d0`]]),Z={class:`desktop-page product-desktop-page`},Q={class:`desktop-page__head`},te={class:`desktop-page__title`},ne={class:`desktop-page__subtitle`},re={class:`product-breadcrumbs`,"aria-label":`مسیر`},ie={class:`desktop-two-col`},ae={class:`desktop-two-col__main`},oe={class:`color-tabs`},se=[`onClick`],ce={key:0,class:`product-desktop-grid`},le={class:`product-desktop-card__body`},ue={class:`product-desktop-card__head`},de={class:`product-desktop-card__meta`},fe={class:`meterage-input-row`},pe=[`onClick`],$=[`value`,`step`,`onInput`],me=[`onClick`],he={key:0,class:`error-text`},ge={key:0,class:`desktop-summary-panel`},_e={class:`desktop-summary-panel__row`},ve={class:`desktop-summary-panel__row`},ye={class:`desktop-summary-panel__row`},be={class:`desktop-summary-panel__action`},xe={key:0,class:`product-desktop-toast`},Se=g(o({__name:`DesktopProductPage`,props:{catalogCode:{},companyName:{},companyId:{},colors:{},colorLabels:{},colorFilter:{},products:{},meterages:{},errors:{},itemCount:{},totalMeterage:{},remainingCapacity:{},toast:{}},emits:[`update:colorFilter`,`adjust`,`setMeterage`,`add`,`cart`,`home`,`catalogs`],setup(e,{emit:i}){let o=i;return(i,c)=>(_(),s(`div`,Z,[h(`header`,Q,[h(`h1`,te,`کالیته `+y(e.catalogCode),1),h(`p`,ne,y(e.companyName),1)]),h(`nav`,re,[h(`button`,{type:`button`,onClick:c[0]||=e=>o(`home`)},`سفارش‌گذاری`),c[3]||=h(`span`,{"aria-hidden":`true`},`›`,-1),h(`button`,{type:`button`,onClick:c[1]||=e=>o(`catalogs`)},y(e.companyName),1),c[4]||=h(`span`,{"aria-hidden":`true`},`›`,-1),h(`span`,null,`کالیته `+y(e.catalogCode),1)]),h(`div`,ie,[h(`div`,ae,[h(`div`,oe,[(_(!0),s(n,null,l(e.colors,t=>(_(),s(`button`,{key:t,type:`button`,class:b([`color-tab`,{active:e.colorFilter===t}]),onClick:e=>o(`update:colorFilter`,t)},y(e.colorLabels[t]??t),11,se))),128))]),e.products.length>0?(_(),s(`div`,ce,[(_(!0),s(n,null,l(e.products,t=>(_(),s(`article`,{key:t.id,class:`product-desktop-card`},[c[6]||=h(`div`,{class:`product-desktop-card__preview`,"aria-hidden":`true`},null,-1),h(`div`,le,[h(`div`,ue,[h(`h3`,null,y(t.name),1),h(`span`,null,`کد: `+y(t.code),1)]),h(`p`,de,` حداقل سفارش: `+y(d(x)(t.minMeterage)),1),h(`div`,fe,[h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`کاهش`,onClick:e=>o(`adjust`,t.id,-1,t.orderMultiplier)},` − `,8,pe),h(`input`,{value:e.meterages[t.id]??``,type:`number`,class:`meterage-input`,step:t.orderMultiplier,min:0,placeholder:`۰`,onInput:e=>o(`setMeterage`,t.id,Number(e.target.value)||0)},null,40,$),h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`افزایش`,onClick:e=>o(`adjust`,t.id,1,t.orderMultiplier)},` + `,8,me)]),a(E,{class:`desktop-btn-compact product-desktop-card__add`,onClick:e=>o(`add`,t.id)},{default:v(()=>[a(w,{size:16}),c[5]||=r(` افزودن `,-1)]),_:1},8,[`onClick`]),e.errors[t.id]?(_(),s(`p`,he,y(e.errors[t.id]),1)):m(``,!0)])]))),128))])):(_(),t(D,{key:1,variant:`products`,message:`برای این کالیته یا رنگ، محصولی ثبت نشده است`}))]),e.itemCount>0?(_(),s(`aside`,ge,[c[11]||=h(`h2`,{class:`desktop-summary-panel__title`},`خلاصه سبد`,-1),h(`div`,_e,[c[7]||=h(`span`,null,`تعداد اقلام`,-1),h(`strong`,null,y(d(S)(e.itemCount)),1)]),h(`div`,ve,[c[8]||=h(`span`,null,`کل متراژ`,-1),h(`strong`,null,y(d(x)(e.totalMeterage)),1)]),h(`div`,ye,[c[9]||=h(`span`,null,`باقی‌مانده`,-1),h(`strong`,null,y(d(x)(e.remainingCapacity)),1)]),h(`div`,be,[a(E,{block:``,onClick:c[2]||=e=>o(`cart`)},{default:v(()=>[a(w,{size:18}),c[10]||=r(` مشاهده سبد خرید `,-1)]),_:1})])])):m(``,!0)]),e.toast?(_(),s(`div`,xe,y(e.toast),1)):m(``,!0)]))}}),[[`__scopeId`,`data-v-e9acee69`]]),Ce=o({__name:`ProductListView`,setup(e){let t=u(),{companyId:r,catalog:i,company:o,colorFilter:c,colors:l,colorLabels:f,products:p,meterages:m,errors:h,toast:g,cartStore:v,adjustMeterage:y,setMeterage:b,addProduct:x,goToCart:S,goBack:C}=k();return(e,u)=>(_(),s(n,null,[a(X,{class:`mobile-only`,"catalog-code":d(i)?.code??``,"company-name":d(o)?.name??``,colors:d(l),"color-labels":d(f),"color-filter":d(c),products:d(p),meterages:d(m),errors:d(h),"total-meterage":d(v).totalMeterage,"item-count":d(v).itemCount,toast:d(g),onBack:d(C),"onUpdate:colorFilter":u[0]||=e=>c.value=e,onAdjust:d(y),onSetMeterage:d(b),onAdd:d(x),onCart:d(S)},null,8,[`catalog-code`,`company-name`,`colors`,`color-labels`,`color-filter`,`products`,`meterages`,`errors`,`total-meterage`,`item-count`,`toast`,`onBack`,`onAdjust`,`onSetMeterage`,`onAdd`,`onCart`]),a(Se,{class:`desktop-only`,"catalog-code":d(i)?.code??``,"company-name":d(o)?.name??``,"company-id":d(r),colors:d(l),"color-labels":d(f),"color-filter":d(c),products:d(p),meterages:d(m),errors:d(h),"item-count":d(v).itemCount,"total-meterage":d(v).totalMeterage,"remaining-capacity":d(v).remainingCapacity,toast:d(g),"onUpdate:colorFilter":u[1]||=e=>c.value=e,onAdjust:d(y),onSetMeterage:d(b),onAdd:d(x),onCart:d(S),onHome:u[2]||=e=>d(t).push(`/`),onCatalogs:d(C)},null,8,[`catalog-code`,`company-name`,`company-id`,`colors`,`color-labels`,`color-filter`,`products`,`meterages`,`errors`,`item-count`,`total-meterage`,`remaining-capacity`,`toast`,`onAdjust`,`onSetMeterage`,`onAdd`,`onCart`,`onCatalogs`])],64))}});export{Ce as default}; \ No newline at end of file diff --git a/dist/assets/ProductListView-CxaJtk_s.css b/dist/assets/ProductListView-CxaJtk_s.css deleted file mode 100644 index 90b0e27..0000000 --- a/dist/assets/ProductListView-CxaJtk_s.css +++ /dev/null @@ -1 +0,0 @@ -.cart-meterage-footer[data-v-d8ea9109]{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;width:100%;min-height:56px;box-shadow:var(--shadow-md);cursor:pointer;text-align:start;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;transition:transform .15s,filter .15s;display:flex}.cart-meterage-footer[data-v-d8ea9109]:hover{filter:brightness(1.05)}.cart-meterage-footer[data-v-d8ea9109]:active{transform:scale(.99)}.cart-meterage-footer__info[data-v-d8ea9109]{flex-direction:column;gap:2px;min-width:0;display:flex}.cart-meterage-footer__label[data-v-d8ea9109]{opacity:.85;font-size:.75rem}.cart-meterage-footer__value[data-v-d8ea9109]{font-size:1rem;font-weight:700}.cart-meterage-footer__action[data-v-d8ea9109]{flex-shrink:0;align-items:center;gap:10px;display:flex}.cart-meterage-footer__action-text[data-v-d8ea9109]{font-size:.875rem;font-weight:700}.cart-meterage-footer__icon-wrap[data-v-d8ea9109]{border-radius:var(--radius-sm);background:#ffffff2e;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative}.cart-meterage-footer__badge[data-v-d8ea9109]{top:-4px;background:var(--color-danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;inset-inline-start:-4px}.product-mobile-page[data-v-2d9826d0]{background:var(--color-bg);color:var(--color-text);padding:12px 0 0}.product-mobile-page__scroll[data-v-2d9826d0]{flex-direction:column;flex:1;min-height:0;padding-bottom:96px;display:flex}.color-tabs[data-v-2d9826d0]{gap:8px;margin-bottom:16px;display:flex;overflow-x:auto}.color-tab[data-v-2d9826d0]{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:999px;flex-shrink:0;height:34px;padding:0 16px;font-size:.8125rem}.color-tab.active[data-v-2d9826d0]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.product-mobile-list[data-v-2d9826d0]{flex-direction:column;gap:12px;display:flex}.product-mobile-card[data-v-2d9826d0]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:16px}.product-mobile-card__head[data-v-2d9826d0]{justify-content:space-between;margin-bottom:4px;display:flex}.product-mobile-card__head h3[data-v-2d9826d0]{margin:0;font-size:.9375rem}.product-mobile-card__head span[data-v-2d9826d0]{color:var(--color-text-muted);font-size:.8125rem}.product-mobile-card__meta[data-v-2d9826d0]{color:var(--color-text-muted);margin:0 0 12px;font-size:.8125rem}.meterage-input-row[data-v-2d9826d0]{justify-content:center;align-items:center;gap:8px;margin-bottom:12px;display:flex}.qty-btn[data-v-2d9826d0]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:40px;height:40px;font-size:1.25rem}.meterage-input[data-v-2d9826d0]{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:88px;height:40px}.error-text[data-v-2d9826d0]{color:var(--color-danger);text-align:center;margin:8px 0 0;font-size:.8125rem}.toast[data-v-2d9826d0]{bottom:calc(var(--nav-height) + 72px);background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-sm);z-index:150;box-shadow:var(--shadow-md);white-space:nowrap;max-width:calc(100% - 32px);padding:10px 20px;font-size:.875rem;position:fixed;left:50%;transform:translate(-50%)}.product-breadcrumbs[data-v-e9acee69]{color:var(--color-text-muted);align-items:center;gap:8px;margin-bottom:16px;font-size:.8125rem;display:flex}.product-breadcrumbs button[data-v-e9acee69]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.color-tabs[data-v-e9acee69]{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.color-tab[data-v-e9acee69]{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:999px;height:34px;padding:0 16px;font-size:.8125rem}.color-tab.active[data-v-e9acee69]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.product-desktop-grid[data-v-e9acee69]{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:16px;display:grid}.product-desktop-card[data-v-e9acee69]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}@media (width>=1200px){.product-desktop-card[data-v-e9acee69]{flex-direction:row;align-items:flex-start;gap:14px;max-width:420px}}.product-desktop-card__preview[data-v-e9acee69]{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-border-light), var(--color-border));flex-shrink:0;width:72px;height:72px}.product-desktop-card__body[data-v-e9acee69]{flex-direction:column;flex:1;min-width:0;display:flex}.product-desktop-card__head[data-v-e9acee69]{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 8px;margin-bottom:4px;display:flex}.product-desktop-card__head h3[data-v-e9acee69]{margin:0;font-size:.9375rem;line-height:1.35}.product-desktop-card__head span[data-v-e9acee69]{color:var(--color-text-muted);white-space:nowrap;font-size:.75rem}.product-desktop-card__meta[data-v-e9acee69]{color:var(--color-text-muted);margin:0 0 10px;font-size:.8125rem}.meterage-input-row[data-v-e9acee69]{align-items:center;gap:6px;margin-bottom:10px;display:flex}.qty-btn[data-v-e9acee69]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:32px;height:32px}.meterage-input[data-v-e9acee69]{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:72px;height:32px;font-size:.875rem}.product-desktop-card__add[data-v-e9acee69] .btn{align-items:center;gap:6px;min-height:36px;padding-inline:16px;display:inline-flex}.error-text[data-v-e9acee69]{color:var(--color-danger);margin:6px 0 0;font-size:.75rem}.product-desktop-toast[data-v-e9acee69]{background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-sm);z-index:150;box-shadow:var(--shadow-md);padding:10px 20px;font-size:.875rem;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.desktop-summary-panel__action[data-v-e9acee69] .btn{justify-content:center;align-items:center;gap:8px;display:flex} diff --git a/dist/assets/ProductsView-BuD86fST.js b/dist/assets/ProductsView-BuD86fST.js deleted file mode 100644 index dc89050..0000000 --- a/dist/assets/ProductsView-BuD86fST.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,A as t,Ct as n,E as r,F as i,G as a,I as o,L as s,M as c,O as l,T as u,Y as d,_ as f,bt as p,ft as m,g as h,j as ee,k as g,n as _,q as v,tt as y,wt as b,xt as x}from"./BasicIcon-CjTTsi6o.js";import{l as S,o as C}from"./index-BQQA5ZX-.js";import{t as w}from"./IconFilter-lDKrtGms.js";import{t as te}from"./PageHeader-WFa4BbgN.js";import{t as ne}from"./SearchField-Ao52FWA8.js";import{t as re}from"./PageSkeleton-CyATkHE1.js";import{t as ie}from"./crm-DPw1h61_.js";import{t as ae}from"./IconHeart-BmvFB3Xr.js";var oe={class:`page products-page`},se={class:`page__scroll page__scroll--with-nav products-scroll`},ce={key:0},le={class:`cat-banner`},T={class:`chips`,role:`tablist`,"aria-label":`فصل`},E=[`onClick`],D={class:`list-meta`},O=[`onClick`],k={class:`product-item__body`},A={class:`product-item__head`},j={class:`product-item__title`},M={key:0,class:`new-tag`},N=[`aria-label`,`aria-pressed`,`onClick`],P={class:`product-item__specs`},F={class:`swatches`},I=[`onClick`],L=_(s({__name:`ProductsView`,setup(s){let _=h(),L=f(),R=ie(),z=S(),B=l(()=>String(_.query.categoryId??``)),V=l(()=>String(_.query.season??``)),H=l(()=>String(_.query.q??``)),U=m(String(_.query.q??``)),W=m([]),G=m([]),K=m(!0),q=m(null),J=m(`newest`),Y=l(()=>B.value?R.usageCategories.find(e=>e.id===B.value)?.title??`محصولات`:V.value?G.value.find(e=>e.id===V.value)?.title??`محصولات`:H.value?`جستجو: ${H.value}`:`همه محصولات`),X=l(()=>{let e=H.value.trim().toLowerCase(),t=[...W.value];return e&&(t=t.filter(t=>t.name.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)||(t.composition||``).toLowerCase().includes(e))),J.value===`name`?t.sort((e,t)=>e.name.localeCompare(t.name,`fa`)):t.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||e.name.localeCompare(t.name,`fa`))});function ue(){J.value=J.value===`newest`?`name`:`newest`}function de(e){U.value=e,L.replace({path:`/products`,query:{...B.value?{categoryId:B.value}:{},...V.value?{season:V.value}:{},...e.trim()?{q:e.trim()}:{}}})}async function Z(){K.value=!0,q.value=null;try{if(!R.usageCategories.length||!G.value.length){let e=await R.loadCategories();G.value=e.seasons}W.value=await R.loadBrowseProducts({categoryId:B.value||void 0,season:V.value||void 0})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`,W.value=[]}finally{K.value=!1}}a(async()=>{await z.hydrate(),await Z()}),e([B,V],Z),e(H,e=>{U.value=e});function Q(e){L.replace({path:`/products`,query:{...B.value?{categoryId:B.value}:{},...e?{season:e}:{},...H.value?{q:H.value}:{}}})}function $(e){L.push({path:`/product`,query:{id:e}})}function fe(e){return G.value.find(t=>t.id===e)?.title??e}function pe(e){z.toggle(e)}return(e,a)=>(v(),c(`div`,oe,[o(te,{title:Y.value,"show-back":``,centered:``,onBack:a[1]||=e=>p(L).back()},{trailing:y(()=>[g(`button`,{type:`button`,class:`nav-filter`,"aria-label":`فیلتر`,onClick:a[0]||=e=>p(L).push(`/categories`)},[o(w,{size:18})])]),_:1},8,[`title`]),g(`div`,se,[o(ne,{"model-value":U.value,placeholder:`جستجو نام یا کد محصول...`,"onUpdate:modelValue":de},null,8,[`model-value`]),q.value?(v(),c(`p`,ce,b(q.value),1)):K.value?(v(),t(re,{key:1,variant:`grid`})):(v(),c(r,{key:2},[g(`section`,le,[a[4]||=g(`div`,{class:`cat-banner__icon`,"aria-hidden":`true`},null,-1),g(`div`,null,[g(`h2`,null,b(Y.value),1),a[3]||=g(`p`,null,`شیک، بادوام و رسمی`,-1)])]),g(`div`,T,[g(`button`,{type:`button`,class:x([`chip`,{"chip--active":!V.value}]),onClick:a[2]||=e=>Q(``)},` همه `,2),(v(!0),c(r,null,d(G.value,e=>(v(),c(`button`,{key:e.id,type:`button`,class:x([`chip`,{"chip--active":V.value===e.id}]),onClick:t=>Q(e.id)},b(e.title),11,E))),128))]),g(`div`,D,[g(`span`,null,`تعداد محصولات: `+b(X.value.length.toLocaleString(`fa-IR`)),1),g(`button`,{type:`button`,class:`list-meta__sort`,onClick:ue},` مرتب‌سازی: `+b(J.value===`newest`?`جدیدترین`:`نام`),1)]),(v(!0),c(r,null,d(X.value,e=>(v(),c(`article`,{key:e.id,class:`product-item`,onClick:t=>$(e.id)},[g(`div`,{class:`product-item__image`,style:n(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),g(`div`,k,[g(`div`,A,[g(`div`,j,[g(`strong`,null,b(e.name),1),e.isNew?(v(),c(`span`,M,`جدید`)):ee(``,!0)]),g(`button`,{type:`button`,class:`bookmark`,"aria-label":p(z).isFavorite(e.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":p(z).isFavorite(e.id),onClick:u(t=>pe(e.id),[`stop`])},[o(ae,{size:18,filled:p(z).isFavorite(e.id),color:p(z).isFavorite(e.id)?`#0a353c`:`#9ca3af`},null,8,[`filled`,`color`])],8,N)]),g(`ul`,P,[g(`li`,null,`عرض: `+b(e.widthCm.toLocaleString(`fa-IR`))+` سانتی‌متر`,1),g(`li`,null,`ترکیب: `+b(e.composition||`—`),1),g(`li`,null,`مناسب: `+b(fe(e.season)),1)]),g(`div`,F,[(v(!0),c(r,null,d(e.colors.slice(0,6),(e,t)=>(v(),c(`span`,{key:t,class:`swatch`,style:n({background:e})},null,4))),128))]),g(`button`,{type:`button`,class:`details-link`,onClick:u(t=>$(e.id),[`stop`])},[a[5]||=i(` مشاهده جزئیات `,-1),o(C,{size:14})],8,I)])],8,O))),128))],64))])]))}}),[[`__scopeId`,`data-v-447a90f3`]]);export{L as default}; \ No newline at end of file diff --git a/dist/assets/ProductsView-CHENfFEp.css b/dist/assets/ProductsView-CHENfFEp.css new file mode 100644 index 0000000..12cf0ec --- /dev/null +++ b/dist/assets/ProductsView-CHENfFEp.css @@ -0,0 +1 @@ +.products-page[data-v-9e3c60d6]{background:var(--color-bg);position:relative}.nav-filter[data-v-9e3c60d6]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;display:grid}.products-scroll[data-v-9e3c60d6]{padding:8px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.cat-banner[data-v-9e3c60d6]{border-radius:var(--radius-lg);background:linear-gradient(100deg, rgba(var(--color-primary-rgb), .75), rgba(var(--color-primary-rgb), .35)), #2f3430;color:#fff;align-items:center;gap:12px;min-height:96px;padding:16px;display:flex}.cat-banner__icon[data-v-9e3c60d6]{background:#fff3;border-radius:999px;flex-shrink:0;width:48px;height:48px}.cat-banner h2[data-v-9e3c60d6]{margin:0 0 4px;font-size:1rem}.cat-banner p[data-v-9e3c60d6]{opacity:.9;margin:0;font-size:.8rem}.chips[data-v-9e3c60d6]{gap:8px;display:flex;overflow-x:auto}.chip[data-v-9e3c60d6]{color:var(--color-text);white-space:nowrap;cursor:pointer;background:#ecefee;border:none;border-radius:999px;padding:8px 14px;font-size:.8rem}.chip--active[data-v-9e3c60d6]{background:var(--color-primary);color:#fff}.list-meta[data-v-9e3c60d6]{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.list-meta__sort[data-v-9e3c60d6]{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.product-item[data-v-9e3c60d6]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-9e3c60d6]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-9e3c60d6]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-9e3c60d6]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-9e3c60d6]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-9e3c60d6]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-9e3c60d6]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-9e3c60d6]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-9e3c60d6]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-9e3c60d6]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-9e3c60d6]{border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-9e3c60d6]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex}.empty-list[data-v-9e3c60d6]{text-align:center;color:var(--color-text-muted);margin:12px 0 0} diff --git a/dist/assets/ProductsView-DCtQeVQ0.css b/dist/assets/ProductsView-DCtQeVQ0.css deleted file mode 100644 index 98c1e9c..0000000 --- a/dist/assets/ProductsView-DCtQeVQ0.css +++ /dev/null @@ -1 +0,0 @@ -.products-page[data-v-447a90f3]{background:var(--color-bg);position:relative}.nav-filter[data-v-447a90f3]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;display:grid}.products-scroll[data-v-447a90f3]{padding:8px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.cat-banner[data-v-447a90f3]{border-radius:var(--radius-lg);background:linear-gradient(100deg, rgba(var(--color-primary-rgb), .75), rgba(var(--color-primary-rgb), .35)), #2f3430;color:#fff;align-items:center;gap:12px;min-height:96px;padding:16px;display:flex}.cat-banner__icon[data-v-447a90f3]{background:#fff3;border-radius:999px;flex-shrink:0;width:48px;height:48px}.cat-banner h2[data-v-447a90f3]{margin:0 0 4px;font-size:1rem}.cat-banner p[data-v-447a90f3]{opacity:.9;margin:0;font-size:.8rem}.chips[data-v-447a90f3]{gap:8px;display:flex;overflow-x:auto}.chip[data-v-447a90f3]{color:var(--color-text);white-space:nowrap;cursor:pointer;background:#ecefee;border:none;border-radius:999px;padding:8px 14px;font-size:.8rem}.chip--active[data-v-447a90f3]{background:var(--color-primary);color:#fff}.list-meta[data-v-447a90f3]{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.list-meta__sort[data-v-447a90f3]{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.product-item[data-v-447a90f3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-447a90f3]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-447a90f3]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-447a90f3]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-447a90f3]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-447a90f3]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-447a90f3]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-447a90f3]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-447a90f3]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-447a90f3]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-447a90f3]{border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-447a90f3]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex} diff --git a/dist/assets/ProductsView-DnYpVLnx.js b/dist/assets/ProductsView-DnYpVLnx.js new file mode 100644 index 0000000..e3a5318 --- /dev/null +++ b/dist/assets/ProductsView-DnYpVLnx.js @@ -0,0 +1 @@ +import{$ as e,A as t,Ct as n,E as r,F as i,G as a,I as o,L as s,M as c,O as l,T as u,Y as d,_ as f,bt as p,ft as m,g as h,j as g,k as _,n as v,q as y,tt as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{l as C,o as w}from"./index-D3Z8WOeX.js";import{t as T}from"./IconFilter-lDKrtGms.js";import{t as ee}from"./PageHeader-B47bvmJV.js";import{t as te}from"./SearchField-Ao52FWA8.js";import{t as ne}from"./PageSkeleton-CyATkHE1.js";import{t as re}from"./crm-l0KpZ2AN.js";import{t as ie}from"./IconHeart-BmvFB3Xr.js";var ae={class:`page products-page`},oe={class:`page__scroll page__scroll--with-nav products-scroll`},se={key:1},ce={class:`cat-banner`},le={class:`chips`,role:`tablist`,"aria-label":`فصل`},ue=[`onClick`],de={class:`list-meta`},fe=[`onClick`],pe={class:`product-item__body`},E={class:`product-item__head`},D={class:`product-item__title`},O={key:0,class:`new-tag`},k=[`aria-label`,`aria-pressed`,`onClick`],A={class:`product-item__specs`},j={class:`swatches`},M=[`onClick`],N={key:0,class:`empty-list`},P=v(s({__name:`ProductsView`,setup(s){let v=h(),P=f(),F=re(),I=C(),L=l(()=>String(v.query.categoryId??``)),R=l(()=>String(v.query.catalogId??``)),z=l(()=>String(v.query.companyId??``)),B=l(()=>String(v.query.season??``)),V=l(()=>String(v.query.q??``)),H=m(String(v.query.q??``)),U=m([]),W=m([]),G=m(``),K=m(!0),q=m(null),J=m(`newest`),Y=l(()=>R.value&&G.value?G.value:L.value?F.usageCategories.find(e=>e.id===L.value)?.title??`محصولات`:B.value?W.value.find(e=>e.id===B.value)?.title??`محصولات`:V.value?`جستجو: ${V.value}`:`همه محصولات`),me=l(()=>R.value?`انتخاب محصول از کالیته`:L.value===`suit`?`شیک، بادوام و رسمی`:L.value===`trousers`?`مناسب شلوار و مصارف روزانه`:L.value===`shirt`?`سبک و مناسب پیراهن`:B.value?`فیلتر شده بر اساس فصل`:`مشاهده و ثبت سفارش`),he=l(()=>!L.value&&!R.value),X=l(()=>{let e=V.value.trim().toLowerCase(),t=[...U.value];return e&&(t=t.filter(t=>t.name.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)||(t.composition||``).toLowerCase().includes(e))),J.value===`name`?t.sort((e,t)=>e.name.localeCompare(t.name,`fa`)):t.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||e.name.localeCompare(t.name,`fa`))});function ge(){J.value=J.value===`newest`?`name`:`newest`}function _e(e){H.value=e,P.replace({path:`/products`,query:{...L.value?{categoryId:L.value}:{},...R.value?{catalogId:R.value}:{},...z.value?{companyId:z.value}:{},...B.value?{season:B.value}:{},...e.trim()?{q:e.trim()}:{}}})}async function Z(){K.value=!0,q.value=null;try{if(!F.usageCategories.length||!W.value.length){let e=await F.loadCategories();W.value=e.seasons}U.value=await F.loadBrowseProducts({categoryId:L.value||void 0,season:B.value||void 0,catalogId:R.value||void 0,companyId:z.value||void 0});let e=U.value[0];G.value=e?.catalogName||e?.catalogCode||``}catch(e){q.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`,U.value=[]}finally{K.value=!1}}a(async()=>{await I.hydrate(),await Z()}),e([L,B,R,z],Z),e(V,e=>{H.value=e});function Q(e){P.replace({path:`/products`,query:{...L.value?{categoryId:L.value}:{},...R.value?{catalogId:R.value}:{},...z.value?{companyId:z.value}:{},...e?{season:e}:{},...V.value?{q:V.value}:{}}})}function $(e){P.push({path:`/product`,query:{id:e}})}function ve(e){return W.value.find(t=>t.id===e)?.title??e}function ye(e){I.toggle(e)}return(e,a)=>(y(),c(`div`,ae,[o(ee,{title:Y.value,"show-back":``,centered:``,onBack:a[1]||=e=>p(P).back()},{trailing:b(()=>[_(`button`,{type:`button`,class:`nav-filter`,"aria-label":`فیلتر`,onClick:a[0]||=e=>p(P).push(`/categories`)},[o(T,{size:18})])]),_:1},8,[`title`]),_(`div`,oe,[he.value?(y(),t(te,{key:0,"model-value":H.value,placeholder:`جستجو نام یا کد محصول...`,"onUpdate:modelValue":_e},null,8,[`model-value`])):g(``,!0),q.value?(y(),c(`p`,se,x(q.value),1)):K.value?(y(),t(ne,{key:2,variant:`grid`})):(y(),c(r,{key:3},[_(`section`,ce,[a[3]||=_(`div`,{class:`cat-banner__icon`,"aria-hidden":`true`},null,-1),_(`div`,null,[_(`h2`,null,x(Y.value),1),_(`p`,null,x(me.value),1)])]),_(`div`,le,[_(`button`,{type:`button`,class:S([`chip`,{"chip--active":!B.value}]),onClick:a[2]||=e=>Q(``)},` همه `,2),(y(!0),c(r,null,d(W.value,e=>(y(),c(`button`,{key:e.id,type:`button`,class:S([`chip`,{"chip--active":B.value===e.id}]),onClick:t=>Q(e.id)},x(e.title),11,ue))),128))]),_(`div`,de,[_(`span`,null,`تعداد محصولات: `+x(X.value.length.toLocaleString(`fa-IR`)),1),_(`button`,{type:`button`,class:`list-meta__sort`,onClick:ge},` مرتب‌سازی: `+x(J.value===`newest`?`جدیدترین`:`نام`),1)]),(y(!0),c(r,null,d(X.value,e=>(y(),c(`article`,{key:e.id,class:`product-item`,onClick:t=>$(e.id)},[_(`div`,{class:`product-item__image`,style:n(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),_(`div`,pe,[_(`div`,E,[_(`div`,D,[_(`strong`,null,x(e.name),1),e.isNew?(y(),c(`span`,O,`جدید`)):g(``,!0)]),_(`button`,{type:`button`,class:`bookmark`,"aria-label":p(I).isFavorite(e.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":p(I).isFavorite(e.id),onClick:u(t=>ye(e.id),[`stop`])},[o(ie,{size:18,filled:p(I).isFavorite(e.id),color:p(I).isFavorite(e.id)?`#0a353c`:`#9ca3af`},null,8,[`filled`,`color`])],8,k)]),_(`ul`,A,[_(`li`,null,`عرض: `+x(e.widthCm.toLocaleString(`fa-IR`))+` سانتی‌متر`,1),_(`li`,null,`ترکیب: `+x(e.composition||`—`),1),_(`li`,null,`مناسب: `+x(ve(e.season)),1)]),_(`div`,j,[(y(!0),c(r,null,d(e.colors.slice(0,6),(e,t)=>(y(),c(`span`,{key:t,class:`swatch`,style:n({background:e})},null,4))),128))]),_(`button`,{type:`button`,class:`details-link`,onClick:u(t=>$(e.id),[`stop`])},[a[4]||=i(` مشاهده جزئیات `,-1),o(w,{size:14})],8,M)])],8,fe))),128)),X.value.length?g(``,!0):(y(),c(`p`,N,`محصولی در این دسته یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-9e3c60d6`]]);export{P as default}; \ No newline at end of file diff --git a/dist/assets/ProfileChecksView-OYh1N4NH.js b/dist/assets/ProfileChecksView-DsuXJYJS.js similarity index 67% rename from dist/assets/ProfileChecksView-OYh1N4NH.js rename to dist/assets/ProfileChecksView-DsuXJYJS.js index e2c6066..abd4ea9 100644 --- a/dist/assets/ProfileChecksView-OYh1N4NH.js +++ b/dist/assets/ProfileChecksView-DsuXJYJS.js @@ -1 +1 @@ -import{t as e}from"./CheckListView-C3cvQuGR.js";import{A as t,L as n,q as r}from"./BasicIcon-CjTTsi6o.js";var i=n({__name:`ProfileChecksView`,setup(n){return(n,i)=>(r(),t(e))}});export{i as default}; \ No newline at end of file +import{t as e}from"./CheckListView-RTeRZSX_.js";import{A as t,L as n,q as r}from"./BasicIcon-CjTTsi6o.js";var i=n({__name:`ProfileChecksView`,setup(n){return(n,i)=>(r(),t(e))}});export{i as default}; \ No newline at end of file diff --git a/dist/assets/ProfileDisplayView-BzRM602N.js b/dist/assets/ProfileDisplayView-IR8b7Mze.js similarity index 94% rename from dist/assets/ProfileDisplayView-BzRM602N.js rename to dist/assets/ProfileDisplayView-IR8b7Mze.js index e9a9007..e8aac0f 100644 --- a/dist/assets/ProfileDisplayView-BzRM602N.js +++ b/dist/assets/ProfileDisplayView-IR8b7Mze.js @@ -1 +1 @@ -import{A as e,E as t,F as n,I as r,L as i,M as a,O as o,Y as s,_ as c,bt as l,ft as u,j as d,k as f,n as p,q as m,t as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{a as y}from"./dist-D9CyXEdG.js";import{a as b,c as x,h as S,n as C}from"./index-BQQA5ZX-.js";import{t as w}from"./ProfileSubpageLayout-VuAWanhC.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=p(i({__name:`ProfileDisplayView`,setup(i){let p=c(),B=x(),V=S(),H=b(),U=u(!1),{start:W}=y(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پس‌زمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`هم‌تراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=o(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),p.replace(`/login`)}return(i,o)=>(m(),e(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:g(()=>[f(`div`,T,[f(`nav`,E,[f(`button`,{type:`button`,class:`settings-link`,onClick:o[0]||=e=>l(p).push(`/profile/edit`)},[f(`span`,D,[r(h,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),o[2]||=f(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),r(h,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),f(`button`,{type:`button`,class:`settings-link`,onClick:o[1]||=e=>l(p).push(`/profile/checks`)},[f(`span`,O,[r(h,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),f(`span`,k,[o[3]||=n(` لیست چک‌ها `,-1),K.value?(m(),a(`em`,A,`(`+_(K.value)+`)`,1)):d(``,!0)]),r(h,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),f(`fieldset`,j,[o[4]||=f(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),f(`div`,M,[(m(),a(t,null,s(G,t=>f(`button`,{key:t.value,type:`button`,class:v([`theme-card`,{"theme-card--active":l(H).preference===t.value}]),role:`radio`,"aria-checked":l(H).preference===t.value,onClick:e=>l(H).preference=t.value},[f(`span`,P,[r(h,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,F,[f(`strong`,I,_(t.label),1),f(`span`,L,_(t.description),1)]),f(`span`,R,[l(H).preference===t.value?(m(),e(h,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):d(``,!0)])],10,N)),64))])]),r(C,{block:``,onClick:q},{default:g(()=>[...o[5]||=[n(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(m(),a(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):d(``,!0),f(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-3187a788`]]);export{B as default}; \ No newline at end of file +import{A as e,E as t,F as n,I as r,L as i,M as a,O as o,Y as s,_ as c,bt as l,ft as u,j as d,k as f,n as p,q as m,t as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{o as y}from"./dist-DLhmLSgX.js";import{a as b,c as x,h as S,n as C}from"./index-D3Z8WOeX.js";import{t as w}from"./ProfileSubpageLayout-VuAWanhC.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=p(i({__name:`ProfileDisplayView`,setup(i){let p=c(),B=x(),V=S(),H=b(),U=u(!1),{start:W}=y(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پس‌زمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`هم‌تراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=o(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),p.replace(`/login`)}return(i,o)=>(m(),e(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:g(()=>[f(`div`,T,[f(`nav`,E,[f(`button`,{type:`button`,class:`settings-link`,onClick:o[0]||=e=>l(p).push(`/profile/edit`)},[f(`span`,D,[r(h,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),o[2]||=f(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),r(h,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),f(`button`,{type:`button`,class:`settings-link`,onClick:o[1]||=e=>l(p).push(`/profile/checks`)},[f(`span`,O,[r(h,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),f(`span`,k,[o[3]||=n(` لیست چک‌ها `,-1),K.value?(m(),a(`em`,A,`(`+_(K.value)+`)`,1)):d(``,!0)]),r(h,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),f(`fieldset`,j,[o[4]||=f(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),f(`div`,M,[(m(),a(t,null,s(G,t=>f(`button`,{key:t.value,type:`button`,class:v([`theme-card`,{"theme-card--active":l(H).preference===t.value}]),role:`radio`,"aria-checked":l(H).preference===t.value,onClick:e=>l(H).preference=t.value},[f(`span`,P,[r(h,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,F,[f(`strong`,I,_(t.label),1),f(`span`,L,_(t.description),1)]),f(`span`,R,[l(H).preference===t.value?(m(),e(h,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):d(``,!0)])],10,N)),64))])]),r(C,{block:``,onClick:q},{default:g(()=>[...o[5]||=[n(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(m(),a(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):d(``,!0),f(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-3187a788`]]);export{B as default}; \ No newline at end of file diff --git a/dist/assets/ProfileEditView-COej2ZwG.js b/dist/assets/ProfileEditView-BVfkEMoi.js similarity index 98% rename from dist/assets/ProfileEditView-COej2ZwG.js rename to dist/assets/ProfileEditView-BVfkEMoi.js index 8542822..c9001cf 100644 --- a/dist/assets/ProfileEditView-COej2ZwG.js +++ b/dist/assets/ProfileEditView-BVfkEMoi.js @@ -1 +1 @@ -import{A as e,F as t,I as n,L as r,M as i,O as a,ft as o,j as s,k as c,n as l,q as u,t as d,tt as f,wt as p}from"./BasicIcon-CjTTsi6o.js";import{c as m,n as h,r as g}from"./index-BQQA5ZX-.js";import{t as _}from"./BaseInput-oWA7d1_u.js";import{t as v}from"./FormErrorBanner-B8THF9oG.js";import{n as y,r as b,t as x}from"./formErrors-DglFjYkZ.js";import{t as S}from"./ProfileSubpageLayout-VuAWanhC.js";var C=512,w=.82;async function T(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return D(await E(e))}function E(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function D(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,C/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`,w))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var O={class:`profile-edit`},k={class:`avatar-editor`},A={class:`avatar-editor__actions`},j={class:`avatar-editor__btns`},M=[`disabled`],N=[`disabled`],P={class:`profile-edit__intro`},F={class:`profile-edit__intro-icon`,"aria-hidden":`true`},I={class:`profile-edit__grid`},L={class:`profile-edit__actions`},R={key:0,class:`profile-edit__saved`},z=l(r({__name:`ProfileEditView`,setup(r){let l=m(),C=o(l.user?.firstName??``),w=o(l.user?.lastName??``),E=o(l.user?.nationalId??``),D=o(l.user?.avatarUrl??null),z=o(null),B=o({}),V=o(``),H=o(!1),U=o(!1),W=a(()=>`${C.value.trim().charAt(0)}${w.value.trim().charAt(0)}`||`؟`);function G(e){B.value=y(B.value,e),b(B.value)||(V.value=``)}function K(){z.value?.click()}async function q(e){U.value=!0,V.value=``;try{let t=await l.updateProfile({avatarUrl:e??``});t?D.value=t.avatarUrl??null:D.value=e}catch(e){V.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{U.value=!1}}async function J(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){U.value=!0,V.value=``;try{let e=await T(n);D.value=e,await q(e)}catch(e){V.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,U.value=!1}}}async function Y(){D.value=null,await q(null)}async function X(){B.value={},V.value=``,H.value=!1;let e={};if(C.value.trim()||(e.firstName=`نام الزامی است.`),w.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),E.value&&E.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),b(e)){B.value=e,V.value=x;return}if(!await l.updateProfile({firstName:C.value.trim(),lastName:w.value.trim(),nationalId:E.value||void 0,avatarUrl:D.value??``})){V.value=`ذخیره پروفایل ناموفق بود.`;return}H.value=!0,setTimeout(()=>{H.value=!1},2e3)}return(r,a)=>(u(),e(S,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:f(()=>[n(v,{message:V.value},null,8,[`message`]),c(`div`,O,[c(`div`,k,[n(g,{src:D.value,initials:W.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),c(`div`,A,[a[6]||=c(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),a[7]||=c(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایش‌داده‌شده در پروفایل`,-1),c(`div`,j,[c(`button`,{type:`button`,class:`avatar-btn`,disabled:U.value,onClick:K},p(D.value?`تغییر تصویر`:`افزودن تصویر`),9,M),D.value?(u(),i(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:U.value,onClick:Y},` حذف تصویر `,8,N)):s(``,!0)])]),c(`input`,{ref_key:`fileInput`,ref:z,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:J},null,544)]),c(`div`,P,[c(`span`,F,[n(d,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),a[8]||=c(`div`,{class:`profile-edit__intro-text`},[c(`strong`,null,`مشخصات فردی`),c(`p`,null,`این اطلاعات روی سفارش‌ها و چک‌های ثبت‌شده نمایش داده می‌شود.`)],-1)]),c(`div`,I,[n(_,{modelValue:C.value,"onUpdate:modelValue":[a[0]||=e=>C.value=e,a[1]||=e=>G(`firstName`)],label:`نام`,error:B.value.firstName},null,8,[`modelValue`,`error`]),n(_,{modelValue:w.value,"onUpdate:modelValue":[a[2]||=e=>w.value=e,a[3]||=e=>G(`lastName`)],label:`نام خانوادگی`,error:B.value.lastName},null,8,[`modelValue`,`error`]),n(_,{modelValue:E.value,"onUpdate:modelValue":[a[4]||=e=>E.value=e,a[5]||=e=>G(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:B.value.nationalId},null,8,[`modelValue`,`error`])]),c(`div`,L,[n(h,{class:`profile-edit__save`,onClick:X},{default:f(()=>[...a[9]||=[t(`ذخیره تغییرات`,-1)]]),_:1}),H.value?(u(),i(`p`,R,`ذخیره شد ✓`)):s(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-bd0a4276`]]);export{z as default}; \ No newline at end of file +import{A as e,F as t,I as n,L as r,M as i,O as a,ft as o,j as s,k as c,n as l,q as u,t as d,tt as f,wt as p}from"./BasicIcon-CjTTsi6o.js";import{c as m,n as h,r as g}from"./index-D3Z8WOeX.js";import{t as _}from"./BaseInput-oWA7d1_u.js";import{t as v}from"./FormErrorBanner-B8THF9oG.js";import{n as y,r as b,t as x}from"./formErrors-DglFjYkZ.js";import{t as S}from"./ProfileSubpageLayout-VuAWanhC.js";var C=512,w=.82;async function T(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return D(await E(e))}function E(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function D(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,C/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`,w))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var O={class:`profile-edit`},k={class:`avatar-editor`},A={class:`avatar-editor__actions`},j={class:`avatar-editor__btns`},M=[`disabled`],N=[`disabled`],P={class:`profile-edit__intro`},F={class:`profile-edit__intro-icon`,"aria-hidden":`true`},I={class:`profile-edit__grid`},L={class:`profile-edit__actions`},R={key:0,class:`profile-edit__saved`},z=l(r({__name:`ProfileEditView`,setup(r){let l=m(),C=o(l.user?.firstName??``),w=o(l.user?.lastName??``),E=o(l.user?.nationalId??``),D=o(l.user?.avatarUrl??null),z=o(null),B=o({}),V=o(``),H=o(!1),U=o(!1),W=a(()=>`${C.value.trim().charAt(0)}${w.value.trim().charAt(0)}`||`؟`);function G(e){B.value=y(B.value,e),b(B.value)||(V.value=``)}function K(){z.value?.click()}async function q(e){U.value=!0,V.value=``;try{let t=await l.updateProfile({avatarUrl:e??``});t?D.value=t.avatarUrl??null:D.value=e}catch(e){V.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{U.value=!1}}async function J(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){U.value=!0,V.value=``;try{let e=await T(n);D.value=e,await q(e)}catch(e){V.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,U.value=!1}}}async function Y(){D.value=null,await q(null)}async function X(){B.value={},V.value=``,H.value=!1;let e={};if(C.value.trim()||(e.firstName=`نام الزامی است.`),w.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),E.value&&E.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),b(e)){B.value=e,V.value=x;return}if(!await l.updateProfile({firstName:C.value.trim(),lastName:w.value.trim(),nationalId:E.value||void 0,avatarUrl:D.value??``})){V.value=`ذخیره پروفایل ناموفق بود.`;return}H.value=!0,setTimeout(()=>{H.value=!1},2e3)}return(r,a)=>(u(),e(S,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:f(()=>[n(v,{message:V.value},null,8,[`message`]),c(`div`,O,[c(`div`,k,[n(g,{src:D.value,initials:W.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),c(`div`,A,[a[6]||=c(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),a[7]||=c(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایش‌داده‌شده در پروفایل`,-1),c(`div`,j,[c(`button`,{type:`button`,class:`avatar-btn`,disabled:U.value,onClick:K},p(D.value?`تغییر تصویر`:`افزودن تصویر`),9,M),D.value?(u(),i(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:U.value,onClick:Y},` حذف تصویر `,8,N)):s(``,!0)])]),c(`input`,{ref_key:`fileInput`,ref:z,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:J},null,544)]),c(`div`,P,[c(`span`,F,[n(d,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),a[8]||=c(`div`,{class:`profile-edit__intro-text`},[c(`strong`,null,`مشخصات فردی`),c(`p`,null,`این اطلاعات روی سفارش‌ها و چک‌های ثبت‌شده نمایش داده می‌شود.`)],-1)]),c(`div`,I,[n(_,{modelValue:C.value,"onUpdate:modelValue":[a[0]||=e=>C.value=e,a[1]||=e=>G(`firstName`)],label:`نام`,error:B.value.firstName},null,8,[`modelValue`,`error`]),n(_,{modelValue:w.value,"onUpdate:modelValue":[a[2]||=e=>w.value=e,a[3]||=e=>G(`lastName`)],label:`نام خانوادگی`,error:B.value.lastName},null,8,[`modelValue`,`error`]),n(_,{modelValue:E.value,"onUpdate:modelValue":[a[4]||=e=>E.value=e,a[5]||=e=>G(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:B.value.nationalId},null,8,[`modelValue`,`error`])]),c(`div`,L,[n(h,{class:`profile-edit__save`,onClick:X},{default:f(()=>[...a[9]||=[t(`ذخیره تغییرات`,-1)]]),_:1}),H.value?(u(),i(`p`,R,`ذخیره شد ✓`)):s(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-bd0a4276`]]);export{z as default}; \ No newline at end of file diff --git a/dist/assets/ProfileNotificationsView-D2zRTMKx.js b/dist/assets/ProfileNotificationsView-CAmwFOO5.js similarity index 94% rename from dist/assets/ProfileNotificationsView-D2zRTMKx.js rename to dist/assets/ProfileNotificationsView-CAmwFOO5.js index 00228b6..f26da50 100644 --- a/dist/assets/ProfileNotificationsView-D2zRTMKx.js +++ b/dist/assets/ProfileNotificationsView-CAmwFOO5.js @@ -1 +1 @@ -import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,j as d,k as f,n as p,q as m,t as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-BQQA5ZX-.js";import{t as S}from"./EmptyState-BpC5eqVE.js";import{t as C}from"./ProfileSubpageLayout-VuAWanhC.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خوانده‌نشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=p(a({__name:`ProfileNotificationsView`,setup(a){let p=l(),F=x(),I=s(()=>F.items),L=s(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};r(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&p.push(e.link)}return(r,a)=>(m(),e(C,{title:`اعلان‌ها`,subtitle:`آخرین خبرهای سفارش‌های شما`},{default:g(()=>[I.value.length?(m(),o(`div`,w,[f(`div`,T,[f(`span`,E,_(L.value?`${u(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(m(),e(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:a[0]||=e=>u(F).markAllRead()},{default:g(()=>[...a[2]||=[n(` خواندن همه `,-1)]]),_:1})):d(``,!0)]),(m(!0),o(t,null,c(I.value,e=>(m(),o(`button`,{key:e.id,type:`button`,class:v([`notif-row`,[`notif-row--${e.tone}`,{"notif-row--unread":!e.isRead}]]),onClick:t=>z(e)},[f(`span`,O,[i(h,{icon:R[e.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,k,[f(`span`,A,[f(`strong`,j,_(e.title),1),e.isRead?d(``,!0):(m(),o(`span`,M))]),f(`span`,N,_(e.body),1),f(`span`,P,_(u(y)(e.sentAt)),1)])],10,D))),128))])):(m(),e(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:g(()=>[i(b,{variant:`outline`,onClick:a[1]||=e=>u(p).push(`/orders`)},{default:g(()=>[...a[3]||=[n(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default}; \ No newline at end of file +import{A as e,E as t,F as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,j as d,k as f,n as p,q as m,t as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-D3Z8WOeX.js";import{t as S}from"./EmptyState-BpC5eqVE.js";import{t as C}from"./ProfileSubpageLayout-VuAWanhC.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خوانده‌نشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=p(a({__name:`ProfileNotificationsView`,setup(a){let p=l(),F=x(),I=s(()=>F.items),L=s(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};r(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&p.push(e.link)}return(r,a)=>(m(),e(C,{title:`اعلان‌ها`,subtitle:`آخرین خبرهای سفارش‌های شما`},{default:g(()=>[I.value.length?(m(),o(`div`,w,[f(`div`,T,[f(`span`,E,_(L.value?`${u(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(m(),e(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:a[0]||=e=>u(F).markAllRead()},{default:g(()=>[...a[2]||=[n(` خواندن همه `,-1)]]),_:1})):d(``,!0)]),(m(!0),o(t,null,c(I.value,e=>(m(),o(`button`,{key:e.id,type:`button`,class:v([`notif-row`,[`notif-row--${e.tone}`,{"notif-row--unread":!e.isRead}]]),onClick:t=>z(e)},[f(`span`,O,[i(h,{icon:R[e.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,k,[f(`span`,A,[f(`strong`,j,_(e.title),1),e.isRead?d(``,!0):(m(),o(`span`,M))]),f(`span`,N,_(e.body),1),f(`span`,P,_(u(y)(e.sentAt)),1)])],10,D))),128))])):(m(),e(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:g(()=>[i(b,{variant:`outline`,onClick:a[1]||=e=>u(p).push(`/orders`)},{default:g(()=>[...a[3]||=[n(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default}; \ No newline at end of file diff --git a/dist/assets/ProfileSecurityView-DN6fmUy5.js b/dist/assets/ProfileSecurityView-pOo-7xS0.js similarity index 96% rename from dist/assets/ProfileSecurityView-DN6fmUy5.js rename to dist/assets/ProfileSecurityView-pOo-7xS0.js index 9ef585f..c9ff145 100644 --- a/dist/assets/ProfileSecurityView-DN6fmUy5.js +++ b/dist/assets/ProfileSecurityView-pOo-7xS0.js @@ -1 +1 @@ -import{A as e,F as t,I as n,L as r,M as i,ft as a,j as o,k as s,n as c,q as l,tt as u}from"./BasicIcon-CjTTsi6o.js";import{n as d}from"./index-BQQA5ZX-.js";import{t as f}from"./BaseInput-oWA7d1_u.js";import{t as p}from"./FormErrorBanner-B8THF9oG.js";import{n as m,r as h,t as g}from"./formErrors-DglFjYkZ.js";import{t as _}from"./ProfileSubpageLayout-VuAWanhC.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(r({__name:`ProfileSecurityView`,setup(r){let c=a(``),b=a(``),x=a(``),S=a({}),C=a(``),w=a(!1);function T(e){S.value=m(S.value,e),h(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(c.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),h(e)){S.value=e,C.value=g;return}c.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(r,a)=>(l(),e(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:u(()=>[n(p,{message:C.value},null,8,[`message`]),s(`div`,v,[n(f,{modelValue:c.value,"onUpdate:modelValue":[a[0]||=e=>c.value=e,a[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),n(f,{modelValue:b.value,"onUpdate:modelValue":[a[2]||=e=>b.value=e,a[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),n(f,{modelValue:x.value,"onUpdate:modelValue":[a[4]||=e=>x.value=e,a[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),n(d,{block:``,onClick:E},{default:u(()=>[...a[6]||=[t(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(l(),i(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):o(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default}; \ No newline at end of file +import{A as e,F as t,I as n,L as r,M as i,ft as a,j as o,k as s,n as c,q as l,tt as u}from"./BasicIcon-CjTTsi6o.js";import{n as d}from"./index-D3Z8WOeX.js";import{t as f}from"./BaseInput-oWA7d1_u.js";import{t as p}from"./FormErrorBanner-B8THF9oG.js";import{n as m,r as h,t as g}from"./formErrors-DglFjYkZ.js";import{t as _}from"./ProfileSubpageLayout-VuAWanhC.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(r({__name:`ProfileSecurityView`,setup(r){let c=a(``),b=a(``),x=a(``),S=a({}),C=a(``),w=a(!1);function T(e){S.value=m(S.value,e),h(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(c.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),h(e)){S.value=e,C.value=g;return}c.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(r,a)=>(l(),e(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:u(()=>[n(p,{message:C.value},null,8,[`message`]),s(`div`,v,[n(f,{modelValue:c.value,"onUpdate:modelValue":[a[0]||=e=>c.value=e,a[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),n(f,{modelValue:b.value,"onUpdate:modelValue":[a[2]||=e=>b.value=e,a[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),n(f,{modelValue:x.value,"onUpdate:modelValue":[a[4]||=e=>x.value=e,a[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),n(d,{block:``,onClick:E},{default:u(()=>[...a[6]||=[t(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(l(),i(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):o(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default}; \ No newline at end of file diff --git a/dist/assets/ProfileView-B7uHdDcp.js b/dist/assets/ProfileView-B7uHdDcp.js deleted file mode 100644 index 3831d3f..0000000 --- a/dist/assets/ProfileView-B7uHdDcp.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,Ct as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,P as l,Q as u,Y as d,_ as f,bt as p,ft as m,j as h,k as g,n as _,q as v,t as y,w as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{n as C,o as w,r as T,u as E}from"./format-BHJptHdF.js";import{C as ee,S as D,c as O,h as k,m as A,o as j,r as M,s as te,u as ne,x as N,y as P}from"./index-BQQA5ZX-.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconEditPen-CUhGotGH.js";import{t as R}from"./IconBuilding-BTmZv_WO.js";import{t as z}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as B}from"./PageSkeleton-CyATkHE1.js";import{n as V,t as H}from"./crm-DPw1h61_.js";import{n as U,t as W}from"./IconBolt-DDYT1Qsn.js";import{t as G}from"./IconCash-CCD4LPLC.js";import{t as K}from"./IconCashSettlement-DDfZWnNk.js";import{t as q}from"./IconPhone-Bb9nUWE1.js";import{t as J}from"./IconMail-B6_IInpi.js";var Y=o({__name:`IconSettings`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:setting-2`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),X={class:`page profile-page`},Z={class:`hero`},re={class:`hero__top`},ie=[`aria-label`],ae={class:`level-pill`},oe={class:`page__scroll page__scroll--with-nav profile-scroll`},se={class:`panel`},ce={class:`panel__head`},le={class:`panel__period`},ue={class:`stats`},de={class:`stat-card`},fe={class:`stat-card__text`},pe={class:`stat-card__value`},me={class:`stat-card__icon stat-card__icon--orders`},he={class:`stat-card`},ge={class:`stat-card__text`},_e={class:`stat-card__value`},ve={class:`stat-card__icon stat-card__icon--customers`},ye={class:`stat-card`},be={class:`stat-card__text`},xe={class:`stat-card__value`},Se={class:`stat-card__icon stat-card__icon--profit`},Ce={class:`stat-card`},we={class:`stat-card__text`},Te={class:`stat-card__value`},Ee={class:`stat-card__icon stat-card__icon--sales`},De={class:`loyalty`},Oe={class:`loyalty__row`},ke={class:`loyalty__text`},Ae={class:`loyalty__bar`},je={class:`quick-grid`},Me=[`onClick`],Ne={class:`quick-item__icon`},Pe={class:`orders-box`},Fe={class:`section-head`},Ie=[`onClick`,`onKeydown`],Le={class:`order-row__meta`},Re={class:`order-row__date`},ze={class:`order-row__title`},Be={key:0,class:`order-row__customer`},Ve={class:`price-section`},He={class:`price-card`},Ue={class:`price-card__body`},We={class:`price-card__info`},Ge=_(o({__name:`MobileProfilePage`,setup(o){let u={id:`sample-base-price`,name:`پارچه فاستونی ایتالیایی`,code:`DF-1204`,categoryId:``,season:`all_season`,widthCm:160,composition:``,colors:[`1`,`2`,`3`,`4`,`5`,`6`],tags:[],isNew:!1,rollMeters:0,basePrice:38e4},_=f(),C=O(),E=k(),D=H(),A=ne(),N=m(null),P=m(u),L=m(!1),R=[{label:`ثبت مشتری جدید`,to:`/customers`,icon:`vuesax-linear:add`},{label:`سفارش‌ها`,to:`/orders`,icon:`vuesax-linear:document-text`},{label:`مشتریان من`,to:`/customers`,icon:`vuesax-linear:people`},{label:`گزارش‌ها`,to:`/reminders`,icon:`vuesax-linear:chart-2`},{label:`درخواست کالیته`,to:`/catalog-request`,icon:`vuesax-linear:category`},{label:`قیمت‌گذاری`,to:`/categories`,icon:`vuesax-linear:money-4`}],z=c(()=>[...E.orders].sort((e,t)=>String(t.createdAt).localeCompare(String(e.createdAt))).slice(0,3).map(e=>{let t=F[e.status]??`info`,n=t===`danger`||t===`neutral`?`danger`:t===`success`?`success`:t===`warning`?`warning`:`info`;return{id:e.id,title:`سفارش #${e.orderNumber}`,date:e.createdAt?T(e.createdAt):``,customer:e.companyName||``,statusLabel:I[e.status]||e.status,statusTone:n}})),U=c(()=>C.fullName||`کاربر`),W=c(()=>N.value?.code||C.user?.agentCode||`—`),G=c(()=>N.value?.levelLabel||C.user?.levelLabel||`برنزی`),K=c(()=>N.value?.nextLevelLabel||C.user?.nextLevelLabel||`نقره‌ای`),q=c(()=>N.value?.pointsToNext??C.user?.pointsToNext??0),J=c(()=>N.value?.periodLabel||`۳۰ روز اخیر`),Ge=c(()=>N.value?.customersCount??0),Q=c(()=>N.value?.ordersCount??E.orders.length),Ke=c(()=>N.value?.salesVolumeToman??0),$=c(()=>N.value?.profitToman??0),qe=c(()=>N.value?.levelProgress??C.user?.levelProgress??72),Je=c(()=>A.unreadCount>9?`9+`:String(A.unreadCount)),Ye=c(()=>P.value.basePrice??u.basePrice??0);return i(async()=>{L.value=!0;try{A.hydrate();try{N.value=await V()}catch{N.value=null}try{let e=(await D.loadBrowseProducts())[0];P.value=e?{...u,...e,basePrice:e.basePrice??u.basePrice}:u}catch{P.value=u}E.orders.length||await E.hydrate()}finally{L.value=!1}}),(i,o)=>(v(),s(`div`,X,[g(`header`,Z,[g(`div`,re,[g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`تنظیمات`,onClick:o[0]||=e=>p(_).push(`/profile/display`)},[a(Y,{size:20,color:`#ffffff`})]),o[4]||=g(`h1`,null,`پروفایل من`,-1),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:o[1]||=e=>p(_).push(`/profile/notifications`)},[a(te,{size:20,color:`#ffffff`}),p(A).hasUnread?(v(),s(`span`,{key:0,class:`icon-btn__badge`,"aria-label":`${p(A).unreadCount} اعلان خوانده‌نشده`},x(Je.value),9,ie)):h(``,!0)])]),a(M,{class:`hero__avatar`,src:p(C).user?.avatarUrl,initials:U.value.charAt(0),size:84},null,8,[`src`,`initials`]),g(`h2`,null,x(U.value),1),g(`p`,null,`کد واسطه: `+x(W.value),1),g(`span`,ae,[o[5]||=g(`svg`,{class:`level-pill__crown`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[g(`path`,{fill:`currentColor`,d:`M3.5 17.5h17l-1.2-8.2a1 1 0 0 0-1.5-.7L14 11l-2.5-5.2a1 1 0 0 0-1.8 0L7.2 11 4.2 8.6a1 1 0 0 0-1.5.7L3.5 17.5Zm1.7 1.5h13.6v1.2H5.2V19Z`})],-1),r(` سطح: `+x(G.value),1)])]),g(`div`,oe,[L.value?(v(),e(B,{key:0,variant:`profile`})):(v(),s(n,{key:1},[g(`section`,se,[g(`div`,ce,[o[6]||=g(`h3`,null,`خلاصه عملکرد`,-1),g(`span`,le,[r(x(J.value)+` `,1),a(y,{icon:`vuesax-linear:arrow-down`,size:14,"stroke-width":1.5})])]),g(`div`,ue,[g(`div`,de,[g(`div`,fe,[o[7]||=g(`span`,{class:`stat-card__label`},`سفارش‌ها`,-1),g(`strong`,pe,x(p(w)(Q.value)),1),o[8]||=g(`em`,{class:`stat-card__hint`},`سفارش`,-1)]),g(`span`,me,[a(ee,{size:18})])]),g(`div`,he,[g(`div`,ge,[o[9]||=g(`span`,{class:`stat-card__label`},`مشتریان من`,-1),g(`strong`,_e,x(p(w)(Ge.value)),1),o[10]||=g(`em`,{class:`stat-card__hint`},`مشتری فعال`,-1)]),g(`span`,ve,[a(y,{icon:`vuesax-linear:people`,size:18,"stroke-width":1.5})])]),g(`div`,ye,[g(`div`,be,[o[11]||=g(`span`,{class:`stat-card__label`},`سود شما (ریال)`,-1),g(`strong`,xe,x(p(w)($.value)),1),o[12]||=g(`em`,{class:`stat-card__hint`},`تومان`,-1)]),g(`span`,Se,[a(y,{icon:`vuesax-linear:chart-2`,size:18,"stroke-width":1.5})])]),g(`div`,Ce,[g(`div`,we,[o[13]||=g(`span`,{class:`stat-card__label`},`حجم فروش (ریال)`,-1),g(`strong`,Te,x(p(w)(Ke.value)),1),o[14]||=g(`em`,{class:`stat-card__hint`},`تومان`,-1)]),g(`span`,Ee,[a(y,{icon:`vuesax-linear:wallet`,size:18,"stroke-width":1.5})])])])]),g(`section`,De,[g(`div`,Oe,[o[15]||=l(``,1),g(`p`,ke,` شما در سطح `+x(G.value)+` قرار دارید. تا سطح `+x(K.value)+` فقط `+x(p(w)(q.value))+` تومان فروش دیگر نیاز دارید. `,1)]),g(`div`,Ae,[g(`span`,{style:t({width:`${Math.min(100,Math.max(0,qe.value))}%`})},null,4)])]),g(`section`,null,[o[16]||=g(`h3`,{class:`section-title`},`دسترسی سریع`,-1),g(`div`,je,[(v(),s(n,null,d(R,e=>g(`button`,{key:e.label,type:`button`,class:`quick-item`,onClick:t=>p(_).push(e.to)},[g(`span`,Ne,[a(y,{icon:e.icon,size:22,"stroke-width":1.5},null,8,[`icon`])]),r(` `+x(e.label),1)],8,Me)),64))])]),g(`section`,Pe,[g(`div`,Fe,[o[17]||=g(`h3`,null,`آخرین سفارش‌ها`,-1),g(`button`,{type:`button`,class:`link`,onClick:o[2]||=e=>p(_).push(`/orders`)},`مشاهده همه`)]),(v(!0),s(n,null,d(z.value,e=>(v(),s(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>p(_).push({path:`/order`,query:{id:e.id}}),onKeydown:b(t=>p(_).push({path:`/order`,query:{id:e.id}}),[`enter`])},[g(`div`,Le,[g(`span`,Re,x(e.date),1),g(`strong`,ze,x(e.title),1),e.customer?(v(),s(`p`,Be,`مشتری: `+x(e.customer),1)):h(``,!0)]),g(`span`,{class:S([`tone`,`tone--${e.statusTone}`])},x(e.statusLabel),3),a(j,{size:16,class:`order-row__chevron`})],40,Ie))),128)),g(`button`,{type:`button`,class:`orders-all`,onClick:o[3]||=e=>p(_).push(`/orders`)},` مشاهده همه سفارش‌ها `)]),g(`section`,Ve,[o[18]||=g(`h3`,{class:`section-title`},`قیمت‌های پایه (نمونه)`,-1),g(`div`,He,[g(`div`,Ue,[g(`div`,We,[g(`strong`,null,x(P.value.name),1),g(`p`,null,`کد: `+x(P.value.code),1),g(`p`,null,`عرض: `+x(p(w)(P.value.widthCm))+` سانتی‌متر`,1),g(`p`,null,`رنگ‌ها: `+x(p(w)(P.value.colors.length))+` رنگ`,1)]),g(`div`,{class:`price-card__image`,style:t(P.value.imageUrl?{backgroundImage:`url(${P.value.imageUrl})`}:void 0)},null,4)]),g(`footer`,null,`قیمت پایه به شما: `+x(p(w)(Ye.value))+` تومان / متر`,1)])])],64))])]))}}),[[`__scopeId`,`data-v-622a24b1`]]),Q=o({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:location`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ke=o({__name:`IconVerified`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:verify`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),$=o({__name:`IconLock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:lock`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),qe={class:`desktop-page desktop-profile`},Je={class:`profile-overview`},Ye={class:`profile-overview__identity`},Xe={class:`profile-overview__aside`},Ze={class:`profile-overview__details`},Qe={class:`profile-overview__name-row`},$e={class:`profile-overview__name`},et={class:`profile-overview__verified`,title:`حساب تأیید شده`},tt={class:`profile-overview__meta`},nt={class:`profile-overview__meta-label`},rt={class:`profile-overview__meta`},it={dir:`ltr`},at={class:`profile-overview__meta`},ot={dir:`ltr`},st={class:`profile-overview__stats`},ct={class:`profile-stat`},lt={class:`profile-stat__icon profile-stat__icon--amber`},ut={class:`profile-stat__value profile-stat__value--sm`},dt={class:`profile-stat`},ft={class:`profile-stat__icon profile-stat__icon--green`},pt={class:`profile-stat__value`},mt={class:`profile-stat`},ht={class:`profile-stat__icon profile-stat__icon--blue`},gt={class:`profile-stat__value`},_t={class:`desktop-profile__grid`},vt={class:`profile-panel profile-panel--settings`},yt={class:`profile-panel__title`},bt={class:`profile-settings`,"aria-label":`تنظیمات حساب`},xt=[`onClick`],St={class:`profile-settings__icon`},Ct={class:`profile-settings__body`},wt={class:`profile-settings__label`},Tt={class:`profile-settings__desc`},Et={class:`profile-panel profile-panel--quick`},Dt={class:`profile-panel__title`},Ot={class:`profile-quick-grid`},kt=[`onClick`],At={class:`profile-quick-grid__icon`},jt={class:`profile-quick-grid__label`},Mt={class:`profile-panel profile-panel--company`},Nt={class:`profile-panel__title`},Pt={class:`profile-info-list`},Ft={key:0,class:`profile-badge`},It=_(o({__name:`DesktopProfilePage`,emits:[`logout`],setup(t,{emit:i}){let o=f(),l=O(),m=k(),h=i,_=c(()=>`${l.user?.firstName?.[0]??``}${l.user?.lastName?.[0]??``}`||`؟`),y=c(()=>l.user?.id?m.userOrders(l.user.id).length:0),b=c(()=>l.user?.id?m.userOrders(l.user.id).reduce((e,t)=>e+(t.checks?.length??0),0)+m.draftChecks.length:0),S=c(()=>{let e=l.user;return e?l.isAgent&&e.agentCode?E(e.agentCode):e.nationalId?E(e.nationalId.slice(-6).padStart(6,`0`)):E(e.id?.slice(-6)??`—`):E(`—`)}),ee=c(()=>l.isAgent?`کد واسطه:`:`کد مشتری:`),ne=c(()=>{let e=l.user?.phone??``;return e?`user${e.slice(-4)}@parsbaft.ir`:`—`}),F=c(()=>l.user?.createdAt?T(l.user.createdAt):`—`),I=c(()=>0),B=c(()=>[{label:`نام شرکت`,value:l.fullName||`—`},{label:`شناسه ملی`,value:l.user?.nationalId?E(l.user.nationalId):`—`},{label:`کد اقتصادی`,value:l.user?.nationalId?E(`4${l.user.nationalId.slice(0,10)}`):`—`},{label:`تاریخ عضویت`,value:F.value},{label:`نوع مشتری`,value:l.isAgent?`واسطه`:`مشتری عمده`,badge:!0},{label:`وضعیت حساب`,value:`فعال`,badge:!0}]),V=[{label:`حساب‌های بانکی`,icon:K},{label:`آدرس‌ها`,icon:Q},{label:`حمایت و پشتیبانی`,icon:A,href:`tel:02112345678`},{label:`فاکتورهای من`,icon:D,path:`/orders`}],H=[{id:`profile`,label:`اطلاعات کاربری`,description:`ویرایش نام، موبایل و ایمیل`,icon:N,path:`/profile/edit`},{id:`security`,label:`امنیت حساب`,description:`تغییر رمز عبور و تنظیمات ورود`,icon:$,path:`/profile/security`},{id:`notifications`,label:`اعلان‌ها`,description:`خبرهای فاکتور، چک و ارسال سفارش`,icon:te,path:`/profile/notifications`},{id:`display`,label:`تنظیمات`,description:`نمایش، اطلاعات کاربری و خروج`,icon:z,path:`/profile/display`},{id:`logout`,label:`خروج از حساب`,description:`پایان نشست و ورود مجدد`,icon:$,action:`logout`}];function X(e){e.path?o.push(e.path):e.href&&(window.location.href=e.href)}function Z(e){if(e.action===`logout`){h(`logout`);return}e.path&&o.push(e.path)}return(t,i)=>(v(),s(`div`,qe,[i[11]||=g(`header`,{class:`desktop-profile__head`},[g(`h1`,{class:`desktop-profile__title`},`پروفایل`),g(`p`,{class:`desktop-profile__subtitle`},`مدیریت اطلاعات حساب کاربری و تنظیمات`)],-1),g(`section`,Je,[g(`div`,Ye,[g(`div`,Xe,[a(M,{class:`profile-overview__avatar`,src:p(l).user?.avatarUrl,initials:_.value,size:92},null,8,[`src`,`initials`]),g(`button`,{type:`button`,class:`profile-overview__edit`,onClick:i[0]||=e=>p(o).push(`/profile/edit`)},[a(L,{size:16}),i[3]||=r(` ویرایش اطلاعات `,-1)])]),g(`div`,Ze,[g(`div`,Qe,[g(`h2`,$e,x(p(l).fullName),1),g(`span`,et,[a(Ke,{size:18})])]),g(`p`,tt,[a(U,{size:15,class:`profile-overview__meta-icon`}),g(`span`,nt,x(ee.value),1),g(`span`,null,x(S.value),1)]),g(`p`,rt,[a(q,{size:15,class:`profile-overview__meta-icon`}),g(`span`,it,x(p(l).user?.phone),1)]),g(`p`,at,[a(J,{size:15,class:`profile-overview__meta-icon`}),g(`span`,ot,x(ne.value),1)])])]),g(`div`,st,[g(`article`,ct,[g(`span`,lt,[a(G,{size:20})]),g(`strong`,ut,x(p(C)(I.value)),1),i[4]||=g(`span`,{class:`profile-stat__label`},`موجودی اعتبار`,-1),i[5]||=g(`button`,{type:`button`,class:`profile-stat__link`},`مشاهده جزئیات`,-1)]),g(`article`,dt,[g(`span`,ft,[a(P,{size:20})]),g(`strong`,pt,x(p(w)(b.value)),1),i[6]||=g(`span`,{class:`profile-stat__label`},`چک فعال`,-1),g(`button`,{type:`button`,class:`profile-stat__link`,onClick:i[1]||=e=>p(o).push(`/profile/checks`)},` مشاهده همه `)]),g(`article`,mt,[g(`span`,ht,[a(D,{size:20})]),g(`strong`,gt,x(p(w)(y.value)),1),i[7]||=g(`span`,{class:`profile-stat__label`},`سفارش ثبت‌شده`,-1),g(`button`,{type:`button`,class:`profile-stat__link`,onClick:i[2]||=e=>p(o).push(`/orders`)},` مشاهده همه `)])])]),g(`div`,_t,[g(`section`,vt,[g(`h3`,yt,[a(Y,{size:18}),i[8]||=r(` تنظیمات حساب `,-1)]),g(`nav`,bt,[(v(),s(n,null,d(H,t=>g(`button`,{key:t.id,type:`button`,class:`profile-settings__item`,onClick:e=>Z(t)},[g(`span`,St,[(v(),e(u(t.icon),{size:20}))]),g(`span`,Ct,[g(`strong`,wt,x(t.label),1),g(`span`,Tt,x(t.description),1)]),a(j,{size:16,class:`profile-settings__chevron`,"aria-hidden":`true`})],8,xt)),64))])]),g(`section`,Et,[g(`h3`,Dt,[a(W,{size:18}),i[9]||=r(` دسترسی سریع `,-1)]),g(`div`,Ot,[(v(),s(n,null,d(V,t=>g(`button`,{key:t.label,type:`button`,class:`profile-quick-grid__item`,onClick:e=>X(t)},[g(`span`,At,[(v(),e(u(t.icon),{size:22}))]),g(`span`,jt,x(t.label),1)],8,kt)),64))])]),g(`section`,Mt,[g(`h3`,Nt,[a(R,{size:18}),i[10]||=r(` اطلاعات شرکت `,-1)]),g(`dl`,Pt,[(v(!0),s(n,null,d(B.value,e=>(v(),s(`div`,{key:e.label,class:`profile-info-list__row`},[g(`dt`,null,x(e.label),1),g(`dd`,null,[e.badge?(v(),s(`span`,Ft,x(e.value),1)):(v(),s(n,{key:1},[r(x(e.value),1)],64))])]))),128))])])])]))}}),[[`__scopeId`,`data-v-0481e66d`]]),Lt=o({__name:`ProfileView`,setup(e){let t=f(),r=O();function i(){r.logout(),t.replace(`/login`)}return(e,t)=>(v(),s(n,null,[a(Ge,{class:`mobile-only`}),a(It,{class:`desktop-only`,onLogout:i})],64))}});export{Lt as default}; \ No newline at end of file diff --git a/dist/assets/ProfileView-CLVmMWUZ.css b/dist/assets/ProfileView-CLVmMWUZ.css new file mode 100644 index 0000000..e441b44 --- /dev/null +++ b/dist/assets/ProfileView-CLVmMWUZ.css @@ -0,0 +1 @@ +.profile-page[data-v-cb99d05f]{background:var(--color-primary)}.hero[data-v-cb99d05f]{color:#fff;text-align:center;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);padding:0 0 28px}.hero__pin[data-v-cb99d05f]{z-index:3;padding:12px var(--page-padding) 10px;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);position:sticky;top:0}.hero__top[data-v-cb99d05f]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.hero__top h1[data-v-cb99d05f]{margin:0;font-size:1rem;font-weight:700}.icon-btn[data-v-cb99d05f]{cursor:pointer;color:#fff;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.icon-btn__badge[data-v-cb99d05f]{top:4px;color:#fff;text-align:center;background:#f59e0b;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:16px;position:absolute;inset-inline-start:4px}.hero__avatar[data-v-cb99d05f]{color:#fff;border:3px solid #ffffff59;margin:0 auto}.hero__meta[data-v-cb99d05f]{padding:10px var(--page-padding) 0}.hero h2[data-v-cb99d05f]{margin:0;font-size:1.2rem;font-weight:700}.hero p[data-v-cb99d05f]{opacity:.88;margin:6px 0 12px;font-size:.85rem}.level-pill[data-v-cb99d05f]{border:1px solid var(--color-level-gold);background:color-mix(in srgb, var(--color-level-gold) 16%, transparent);color:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.8125rem;display:inline-flex}.level-pill__crown[data-v-cb99d05f]{width:14px;height:14px;color:var(--color-level-gold)}.profile-scroll[data-v-cb99d05f]{background:0 0;flex:1;min-height:0;padding:0}.profile-sheet[data-v-cb99d05f]{z-index:1;padding:20px var(--page-padding) 24px;background:var(--color-bg);border-radius:24px 24px 0 0;flex-direction:column;gap:18px;margin-top:-20px;display:flex;position:relative;box-shadow:0 -4px 16px #0000000f}.profile-sheet[data-v-cb99d05f]>*{flex-shrink:0}.panel__head[data-v-cb99d05f],.section-head[data-v-cb99d05f]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel__head h3[data-v-cb99d05f],.section-head h3[data-v-cb99d05f],.section-title[data-v-cb99d05f]{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.section-title[data-v-cb99d05f]{margin-bottom:12px}.panel__period[data-v-cb99d05f]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.8rem;display:inline-flex}.link[data-v-cb99d05f]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.8rem;font-weight:600}.stats[data-v-cb99d05f]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-card[data-v-cb99d05f]{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:14px;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.stat-card__text[data-v-cb99d05f]{text-align:start;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stat-card__icon[data-v-cb99d05f]{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.stat-card__icon--orders[data-v-cb99d05f],.stat-card__icon--customers[data-v-cb99d05f]{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.stat-card__icon--profit[data-v-cb99d05f]{background:color-mix(in srgb, var(--color-info) 14%, transparent);color:var(--color-info)}.stat-card__icon--sales[data-v-cb99d05f]{background:color-mix(in srgb, var(--color-level-gold) 22%, transparent);color:#b8860b}.stat-card__label[data-v-cb99d05f]{color:var(--color-text-muted);font-size:.75rem}.stat-card__value[data-v-cb99d05f]{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.3}.stat-card__hint[data-v-cb99d05f]{color:var(--color-text-muted);font-size:.7rem;font-style:normal}.loyalty[data-v-cb99d05f]{background:var(--color-primary-soft);border-radius:14px;padding:14px}.loyalty__row[data-v-cb99d05f]{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.loyalty__crown[data-v-cb99d05f]{flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.loyalty__text[data-v-cb99d05f]{color:var(--color-text);text-align:start;margin:0;font-size:.8125rem;line-height:1.75}.loyalty__bar[data-v-cb99d05f]{background:rgba(var(--color-primary-rgb), .15);border-radius:999px;height:8px;overflow:hidden}.loyalty__bar span[data-v-cb99d05f]{background:var(--color-primary);border-radius:inherit;height:100%;display:block}.quick-grid[data-v-cb99d05f]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.quick-item[data-v-cb99d05f]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-height:88px;padding:14px 8px 12px;font-family:inherit;font-size:.72rem;line-height:1.4;display:flex}.quick-item__icon[data-v-cb99d05f]{width:40px;height:40px;color:var(--color-primary);place-items:center;display:grid}.orders-box[data-v-cb99d05f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;flex-shrink:0;padding:4px 0 0;overflow:hidden}.orders-box .section-head[data-v-cb99d05f]{margin:0;padding:12px 14px 10px}.order-row[data-v-cb99d05f]{border:none;border-top:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:0;grid-template-columns:1fr auto 16px;align-items:center;gap:8px;margin:0;padding:12px 14px;display:grid}.orders-all[data-v-cb99d05f]{border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border-radius:0;margin:0;padding:12px 14px;font-size:.875rem;font-weight:600}.order-row__meta[data-v-cb99d05f]{text-align:start;min-width:0}.order-row__date[data-v-cb99d05f]{color:var(--color-text-muted);margin-bottom:2px;font-size:.75rem;display:block}.order-row__title[data-v-cb99d05f]{font-size:.875rem;display:block}.order-row__customer[data-v-cb99d05f]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.order-row__chevron[data-v-cb99d05f]{color:var(--color-text-muted)}.tone[data-v-cb99d05f]{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.7rem}.tone--warning[data-v-cb99d05f]{background:var(--color-warning-light);color:#b45309}.tone--success[data-v-cb99d05f]{background:var(--color-success-light);color:var(--color-success)}.tone--info[data-v-cb99d05f]{background:var(--color-info-light);color:var(--color-info)}.tone--danger[data-v-cb99d05f]{background:var(--color-danger-light);color:var(--color-danger)}.price-section[data-v-cb99d05f]{flex-shrink:0}.price-section .section-title[data-v-cb99d05f]{margin-bottom:10px}.price-card[data-v-cb99d05f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.price-card__body[data-v-cb99d05f]{grid-template-columns:1fr 88px;align-items:start;gap:12px;padding:12px;display:grid}.price-card__image[data-v-cb99d05f]{background:linear-gradient(145deg,#1e3a5f,#111827) 50%/cover;border-radius:12px;min-height:88px}.price-card__info[data-v-cb99d05f]{text-align:start}.price-card__info strong[data-v-cb99d05f]{margin-bottom:4px;font-size:.9rem;display:block}.price-card__info p[data-v-cb99d05f]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.price-card footer[data-v-cb99d05f]{border-top:1px solid var(--color-border);background:var(--color-elevated);text-align:start;padding:10px 12px;font-size:.8rem;font-weight:600}.desktop-profile[data-v-0481e66d]{width:100%;padding-bottom:32px}.desktop-profile__head[data-v-0481e66d]{margin-bottom:20px}.desktop-profile__title[data-v-0481e66d]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-profile__subtitle[data-v-0481e66d]{color:var(--color-text-muted);margin:0;font-size:.875rem}.profile-overview[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;align-items:stretch;gap:0;margin-bottom:16px;padding:22px 24px;display:flex}.profile-overview__identity[data-v-0481e66d]{border-inline-end:1px solid var(--color-border);flex:1.1;align-items:flex-start;gap:18px;padding-inline-end:24px;display:flex}.profile-overview__aside[data-v-0481e66d]{flex-direction:column;flex-shrink:0;align-items:center;gap:12px;display:flex}.profile-overview__avatar[data-v-0481e66d]{background:var(--color-primary);color:var(--color-surface)}.profile-overview__edit[data-v-0481e66d]{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);min-width:132px;color:var(--color-primary);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .15s;display:inline-flex}.profile-overview__edit[data-v-0481e66d]:hover{background:var(--color-primary-soft)}.profile-overview__details[data-v-0481e66d]{flex:1;min-width:0;padding-top:6px}.profile-overview__name-row[data-v-0481e66d]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.profile-overview__name[data-v-0481e66d]{color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.profile-overview__verified[data-v-0481e66d]{color:var(--color-success);flex-shrink:0;display:flex}.profile-overview__meta[data-v-0481e66d]{color:var(--color-text-muted);align-items:center;gap:8px;margin:0 0 8px;font-size:.8125rem;display:flex}.profile-overview__meta-icon[data-v-0481e66d]{color:var(--color-text-muted);flex-shrink:0}.profile-overview__meta-label[data-v-0481e66d]{color:var(--color-text);font-weight:600}.profile-overview__stats[data-v-0481e66d]{direction:ltr;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.profile-stat[data-v-0481e66d]{text-align:center;border-inline-start:1px solid var(--color-border);direction:rtl;flex-direction:column;justify-content:center;align-items:center;padding:12px 14px;display:flex}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.profile-stat__icon[data-v-0481e66d]{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:10px;display:flex}.profile-stat__icon--blue[data-v-0481e66d]{background:var(--color-primary-soft);color:var(--color-primary)}.profile-stat__icon--green[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success)}.profile-stat__icon--amber[data-v-0481e66d]{background:var(--color-warning-light);color:var(--color-warning)}.profile-stat__value[data-v-0481e66d]{color:var(--color-text);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:1.375rem;font-weight:700;line-height:1.2}.profile-stat__value--sm[data-v-0481e66d]{font-size:.875rem;line-height:1.45}.profile-stat__label[data-v-0481e66d]{color:var(--color-text-muted);margin-bottom:8px;font-size:.75rem}.profile-stat__link[data-v-0481e66d]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.75rem;font-weight:600}.profile-stat__link[data-v-0481e66d]:hover{text-underline-offset:2px;text-decoration:underline}.desktop-profile__grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.profile-panel[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;padding:18px 18px 16px}.profile-panel__title[data-v-0481e66d]{border-bottom:1px solid var(--color-border);color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;padding-bottom:12px;font-size:.9375rem;font-weight:700;display:flex}.profile-panel__title svg[data-v-0481e66d]{color:var(--color-primary);flex-shrink:0}.profile-info-list[data-v-0481e66d]{margin:0}.profile-info-list__row[data-v-0481e66d]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;font-size:.8125rem;display:flex}.profile-info-list__row[data-v-0481e66d]:last-child{border-bottom:none}.profile-info-list__row dt[data-v-0481e66d]{color:var(--color-text-muted);font-weight:500}.profile-info-list__row dd[data-v-0481e66d]{color:var(--color-text);text-align:left;margin:0;font-weight:600}.profile-badge[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success);border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.profile-quick-grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.profile-quick-grid__item[data-v-0481e66d]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);cursor:pointer;direction:rtl;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:108px;padding:16px 10px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.profile-quick-grid__item[data-v-0481e66d]:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.profile-quick-grid__icon[data-v-0481e66d]{background:var(--color-surface);width:42px;height:42px;color:var(--color-primary);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:center;align-items:center;display:flex}.profile-quick-grid__label[data-v-0481e66d]{color:var(--color-text);text-align:center;font-size:.75rem;font-weight:600;line-height:1.35}.profile-settings[data-v-0481e66d]{flex-direction:column;gap:0;display:flex}.profile-settings__item[data-v-0481e66d]{border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:right;background:0 0;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 4px;font-family:inherit;transition:background .15s;display:grid}.profile-settings__item[data-v-0481e66d]:last-child{border-bottom:none}.profile-settings__item[data-v-0481e66d]:hover{background:var(--color-elevated)}.profile-settings__icon[data-v-0481e66d]{background:var(--color-primary-soft);width:38px;height:38px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-settings__body[data-v-0481e66d]{flex-direction:column;gap:3px;min-width:0;display:flex}.profile-settings__label[data-v-0481e66d]{color:var(--color-text);font-size:.8125rem;font-weight:700}.profile-settings__desc[data-v-0481e66d]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.45}.profile-settings__chevron[data-v-0481e66d]{color:#cbd5e1;flex-shrink:0}@media (width<=900px){.profile-overview[data-v-0481e66d]{flex-direction:column}.profile-overview__identity[data-v-0481e66d]{padding-inline-end:0;border-inline-end:none;border-bottom:1px solid var(--color-border);padding-bottom:16px}.profile-overview__stats[data-v-0481e66d]{padding-top:8px}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.desktop-profile__grid[data-v-0481e66d]{grid-template-columns:1fr}} diff --git a/dist/assets/ProfileView-Cfmzm61F.js b/dist/assets/ProfileView-Cfmzm61F.js new file mode 100644 index 0000000..618a8c8 --- /dev/null +++ b/dist/assets/ProfileView-Cfmzm61F.js @@ -0,0 +1 @@ +import{A as e,Ct as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,P as l,Q as u,Y as d,_ as f,bt as p,ft as m,j as h,k as g,n as _,q as v,t as y,w as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{n as C,o as w,r as T,u as E}from"./format-BHJptHdF.js";import{C as ee,S as D,c as O,h as k,m as A,o as j,r as M,s as te,u as ne,x as N,y as P}from"./index-D3Z8WOeX.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconEditPen-CUhGotGH.js";import{t as R}from"./IconBuilding-BTmZv_WO.js";import{t as z}from"./IconLayoutGrid-fpJ_H2ee.js";import{t as B}from"./PageSkeleton-CyATkHE1.js";import{n as V,t as H}from"./crm-l0KpZ2AN.js";import{n as U,t as W}from"./IconBolt-DDYT1Qsn.js";import{t as G}from"./IconCash-CCD4LPLC.js";import{t as K}from"./IconCashSettlement-DDfZWnNk.js";import{n as q,t as J}from"./IconMail-xKb9uNIK.js";var Y=o({__name:`IconSettings`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:setting-2`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),X={class:`page profile-page`},Z={class:`page__scroll page__scroll--with-nav profile-scroll`},re={class:`hero`},ie={class:`hero__pin`},ae={class:`hero__top`},oe=[`aria-label`],se={class:`hero__meta`},ce={class:`level-pill`},le={class:`profile-sheet`},ue={class:`panel`},de={class:`panel__head`},fe={class:`panel__period`},pe={class:`stats`},me={class:`stat-card`},he={class:`stat-card__text`},ge={class:`stat-card__value`},_e={class:`stat-card__icon stat-card__icon--orders`},ve={class:`stat-card`},ye={class:`stat-card__text`},be={class:`stat-card__value`},xe={class:`stat-card__icon stat-card__icon--customers`},Se={class:`stat-card`},Ce={class:`stat-card__text`},we={class:`stat-card__value`},Te={class:`stat-card__icon stat-card__icon--profit`},Ee={class:`stat-card`},De={class:`stat-card__text`},Oe={class:`stat-card__value`},ke={class:`stat-card__icon stat-card__icon--sales`},Ae={class:`loyalty`},je={class:`loyalty__row`},Me={class:`loyalty__text`},Ne={class:`loyalty__bar`},Pe={class:`quick-grid`},Fe=[`onClick`],Ie={class:`quick-item__icon`},Le={class:`orders-box`},Re={class:`section-head`},ze=[`onClick`,`onKeydown`],Be={class:`order-row__meta`},Ve={class:`order-row__date`},He={class:`order-row__title`},Ue={key:0,class:`order-row__customer`},We={class:`price-section`},Ge={class:`price-card`},Ke={class:`price-card__body`},qe={class:`price-card__info`},Je=_(o({__name:`MobileProfilePage`,setup(o){let u={id:`sample-base-price`,name:`پارچه فاستونی ایتالیایی`,code:`DF-1204`,categoryId:``,season:`all_season`,widthCm:160,composition:``,colors:[`1`,`2`,`3`,`4`,`5`,`6`],tags:[],isNew:!1,rollMeters:0,basePrice:38e4},_=f(),C=O(),E=k(),D=H(),A=ne(),N=m(null),P=m(u),L=m(!1),R=[{label:`ثبت مشتری جدید`,to:`/customers`,icon:`vuesax-linear:add`},{label:`سفارش‌ها`,to:`/orders`,icon:`vuesax-linear:document-text`},{label:`مشتریان من`,to:`/customers`,icon:`vuesax-linear:people`},{label:`گزارش‌ها`,to:`/reminders`,icon:`vuesax-linear:chart-2`},{label:`درخواست کالیته`,to:`/catalog-request`,icon:`vuesax-linear:category`},{label:`قیمت‌گذاری`,to:`/categories`,icon:`vuesax-linear:money-4`}],z=c(()=>[...E.orders].sort((e,t)=>String(t.createdAt).localeCompare(String(e.createdAt))).slice(0,3).map(e=>{let t=F[e.status]??`info`,n=t===`danger`||t===`neutral`?`danger`:t===`success`?`success`:t===`warning`?`warning`:`info`;return{id:e.id,title:`سفارش #${e.orderNumber}`,date:e.createdAt?T(e.createdAt):``,customer:e.companyName||``,statusLabel:I[e.status]||e.status,statusTone:n}})),U=c(()=>C.fullName||`کاربر`),W=c(()=>N.value?.code||C.user?.agentCode||`—`),G=c(()=>N.value?.levelLabel||C.user?.levelLabel||`برنزی`),K=c(()=>N.value?.nextLevelLabel||C.user?.nextLevelLabel||`نقره‌ای`),q=c(()=>N.value?.pointsToNext??C.user?.pointsToNext??0),J=c(()=>N.value?.periodLabel||`۳۰ روز اخیر`),Je=c(()=>N.value?.customersCount??0),Q=c(()=>N.value?.ordersCount??E.orders.length),Ye=c(()=>N.value?.salesVolumeToman??0),$=c(()=>N.value?.profitToman??0),Xe=c(()=>N.value?.levelProgress??C.user?.levelProgress??72),Ze=c(()=>A.unreadCount>9?`9+`:String(A.unreadCount)),Qe=c(()=>P.value.basePrice??u.basePrice??0);return i(async()=>{L.value=!0;try{A.hydrate();try{N.value=await V()}catch{N.value=null}try{let e=(await D.loadBrowseProducts())[0];P.value=e?{...u,...e,basePrice:e.basePrice??u.basePrice}:u}catch{P.value=u}E.orders.length||await E.hydrate()}finally{L.value=!1}}),(i,o)=>(v(),s(`div`,X,[g(`div`,Z,[g(`header`,re,[g(`div`,ie,[g(`div`,ae,[g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`تنظیمات`,onClick:o[0]||=e=>p(_).push(`/profile/display`)},[a(Y,{size:20,color:`#ffffff`})]),o[4]||=g(`h1`,null,`پروفایل من`,-1),g(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:o[1]||=e=>p(_).push(`/profile/notifications`)},[a(te,{size:20,color:`#ffffff`}),p(A).hasUnread?(v(),s(`span`,{key:0,class:`icon-btn__badge`,"aria-label":`${p(A).unreadCount} اعلان خوانده‌نشده`},x(Ze.value),9,oe)):h(``,!0)])]),a(M,{class:`hero__avatar`,src:p(C).user?.avatarUrl,initials:U.value.charAt(0),size:84},null,8,[`src`,`initials`])]),g(`div`,se,[g(`h2`,null,x(U.value),1),g(`p`,null,`کد واسطه: `+x(W.value),1),g(`span`,ce,[o[5]||=g(`svg`,{class:`level-pill__crown`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[g(`path`,{fill:`currentColor`,d:`M3.5 17.5h17l-1.2-8.2a1 1 0 0 0-1.5-.7L14 11l-2.5-5.2a1 1 0 0 0-1.8 0L7.2 11 4.2 8.6a1 1 0 0 0-1.5.7L3.5 17.5Zm1.7 1.5h13.6v1.2H5.2V19Z`})],-1),r(` سطح: `+x(G.value),1)])])]),g(`div`,le,[L.value?(v(),e(B,{key:0,variant:`profile`})):(v(),s(n,{key:1},[g(`section`,ue,[g(`div`,de,[o[6]||=g(`h3`,null,`خلاصه عملکرد`,-1),g(`span`,fe,[r(x(J.value)+` `,1),a(y,{icon:`vuesax-linear:arrow-down`,size:14,"stroke-width":1.5})])]),g(`div`,pe,[g(`div`,me,[g(`div`,he,[o[7]||=g(`span`,{class:`stat-card__label`},`سفارش‌ها`,-1),g(`strong`,ge,x(p(w)(Q.value)),1),o[8]||=g(`em`,{class:`stat-card__hint`},`سفارش`,-1)]),g(`span`,_e,[a(ee,{size:18})])]),g(`div`,ve,[g(`div`,ye,[o[9]||=g(`span`,{class:`stat-card__label`},`مشتریان من`,-1),g(`strong`,be,x(p(w)(Je.value)),1),o[10]||=g(`em`,{class:`stat-card__hint`},`مشتری فعال`,-1)]),g(`span`,xe,[a(y,{icon:`vuesax-linear:people`,size:18,"stroke-width":1.5})])]),g(`div`,Se,[g(`div`,Ce,[o[11]||=g(`span`,{class:`stat-card__label`},`سود شما (ریال)`,-1),g(`strong`,we,x(p(w)($.value)),1),o[12]||=g(`em`,{class:`stat-card__hint`},`تومان`,-1)]),g(`span`,Te,[a(y,{icon:`vuesax-linear:chart-2`,size:18,"stroke-width":1.5})])]),g(`div`,Ee,[g(`div`,De,[o[13]||=g(`span`,{class:`stat-card__label`},`حجم فروش (ریال)`,-1),g(`strong`,Oe,x(p(w)(Ye.value)),1),o[14]||=g(`em`,{class:`stat-card__hint`},`تومان`,-1)]),g(`span`,ke,[a(y,{icon:`vuesax-linear:wallet`,size:18,"stroke-width":1.5})])])])]),g(`section`,Ae,[g(`div`,je,[o[15]||=l(``,1),g(`p`,Me,` شما در سطح `+x(G.value)+` قرار دارید. تا سطح `+x(K.value)+` فقط `+x(p(w)(q.value))+` تومان فروش دیگر نیاز دارید. `,1)]),g(`div`,Ne,[g(`span`,{style:t({width:`${Math.min(100,Math.max(0,Xe.value))}%`})},null,4)])]),g(`section`,null,[o[16]||=g(`h3`,{class:`section-title`},`دسترسی سریع`,-1),g(`div`,Pe,[(v(),s(n,null,d(R,e=>g(`button`,{key:e.label,type:`button`,class:`quick-item`,onClick:t=>p(_).push(e.to)},[g(`span`,Ie,[a(y,{icon:e.icon,size:22,"stroke-width":1.5},null,8,[`icon`])]),r(` `+x(e.label),1)],8,Fe)),64))])]),g(`section`,Le,[g(`div`,Re,[o[17]||=g(`h3`,null,`آخرین سفارش‌ها`,-1),g(`button`,{type:`button`,class:`link`,onClick:o[2]||=e=>p(_).push(`/orders`)},`مشاهده همه`)]),(v(!0),s(n,null,d(z.value,e=>(v(),s(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>p(_).push({path:`/order`,query:{id:e.id}}),onKeydown:b(t=>p(_).push({path:`/order`,query:{id:e.id}}),[`enter`])},[g(`div`,Be,[g(`span`,Ve,x(e.date),1),g(`strong`,He,x(e.title),1),e.customer?(v(),s(`p`,Ue,`مشتری: `+x(e.customer),1)):h(``,!0)]),g(`span`,{class:S([`tone`,`tone--${e.statusTone}`])},x(e.statusLabel),3),a(j,{size:16,class:`order-row__chevron`})],40,ze))),128)),g(`button`,{type:`button`,class:`orders-all`,onClick:o[3]||=e=>p(_).push(`/orders`)},` مشاهده همه سفارش‌ها `)]),g(`section`,We,[o[18]||=g(`h3`,{class:`section-title`},`قیمت‌های پایه (نمونه)`,-1),g(`div`,Ge,[g(`div`,Ke,[g(`div`,qe,[g(`strong`,null,x(P.value.name),1),g(`p`,null,`کد: `+x(P.value.code),1),g(`p`,null,`عرض: `+x(p(w)(P.value.widthCm))+` سانتی‌متر`,1),g(`p`,null,`رنگ‌ها: `+x(p(w)(P.value.colors.length))+` رنگ`,1)]),g(`div`,{class:`price-card__image`,style:t(P.value.imageUrl?{backgroundImage:`url(${P.value.imageUrl})`}:void 0)},null,4)]),g(`footer`,null,`قیمت پایه به شما: `+x(p(w)(Qe.value))+` تومان / متر`,1)])])],64))])])]))}}),[[`__scopeId`,`data-v-cb99d05f`]]),Q=o({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:location`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ye=o({__name:`IconVerified`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:verify`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),$=o({__name:`IconLock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(v(),e(y,{icon:`vuesax-linear:lock`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),Xe={class:`desktop-page desktop-profile`},Ze={class:`profile-overview`},Qe={class:`profile-overview__identity`},$e={class:`profile-overview__aside`},et={class:`profile-overview__details`},tt={class:`profile-overview__name-row`},nt={class:`profile-overview__name`},rt={class:`profile-overview__verified`,title:`حساب تأیید شده`},it={class:`profile-overview__meta`},at={class:`profile-overview__meta-label`},ot={class:`profile-overview__meta`},st={dir:`ltr`},ct={class:`profile-overview__meta`},lt={dir:`ltr`},ut={class:`profile-overview__stats`},dt={class:`profile-stat`},ft={class:`profile-stat__icon profile-stat__icon--amber`},pt={class:`profile-stat__value profile-stat__value--sm`},mt={class:`profile-stat`},ht={class:`profile-stat__icon profile-stat__icon--green`},gt={class:`profile-stat__value`},_t={class:`profile-stat`},vt={class:`profile-stat__icon profile-stat__icon--blue`},yt={class:`profile-stat__value`},bt={class:`desktop-profile__grid`},xt={class:`profile-panel profile-panel--settings`},St={class:`profile-panel__title`},Ct={class:`profile-settings`,"aria-label":`تنظیمات حساب`},wt=[`onClick`],Tt={class:`profile-settings__icon`},Et={class:`profile-settings__body`},Dt={class:`profile-settings__label`},Ot={class:`profile-settings__desc`},kt={class:`profile-panel profile-panel--quick`},At={class:`profile-panel__title`},jt={class:`profile-quick-grid`},Mt=[`onClick`],Nt={class:`profile-quick-grid__icon`},Pt={class:`profile-quick-grid__label`},Ft={class:`profile-panel profile-panel--company`},It={class:`profile-panel__title`},Lt={class:`profile-info-list`},Rt={key:0,class:`profile-badge`},zt=_(o({__name:`DesktopProfilePage`,emits:[`logout`],setup(t,{emit:i}){let o=f(),l=O(),m=k(),h=i,_=c(()=>`${l.user?.firstName?.[0]??``}${l.user?.lastName?.[0]??``}`||`؟`),y=c(()=>l.user?.id?m.userOrders(l.user.id).length:0),b=c(()=>l.user?.id?m.userOrders(l.user.id).reduce((e,t)=>e+(t.checks?.length??0),0)+m.draftChecks.length:0),S=c(()=>{let e=l.user;return e?l.isAgent&&e.agentCode?E(e.agentCode):e.nationalId?E(e.nationalId.slice(-6).padStart(6,`0`)):E(e.id?.slice(-6)??`—`):E(`—`)}),ee=c(()=>l.isAgent?`کد واسطه:`:`کد مشتری:`),ne=c(()=>{let e=l.user?.phone??``;return e?`user${e.slice(-4)}@parsbaft.ir`:`—`}),F=c(()=>l.user?.createdAt?T(l.user.createdAt):`—`),I=c(()=>0),B=c(()=>[{label:`نام شرکت`,value:l.fullName||`—`},{label:`شناسه ملی`,value:l.user?.nationalId?E(l.user.nationalId):`—`},{label:`کد اقتصادی`,value:l.user?.nationalId?E(`4${l.user.nationalId.slice(0,10)}`):`—`},{label:`تاریخ عضویت`,value:F.value},{label:`نوع مشتری`,value:l.isAgent?`واسطه`:`مشتری عمده`,badge:!0},{label:`وضعیت حساب`,value:`فعال`,badge:!0}]),V=[{label:`حساب‌های بانکی`,icon:K},{label:`آدرس‌ها`,icon:Q},{label:`حمایت و پشتیبانی`,icon:A,href:`tel:02112345678`},{label:`فاکتورهای من`,icon:D,path:`/orders`}],H=[{id:`profile`,label:`اطلاعات کاربری`,description:`ویرایش نام، موبایل و ایمیل`,icon:N,path:`/profile/edit`},{id:`security`,label:`امنیت حساب`,description:`تغییر رمز عبور و تنظیمات ورود`,icon:$,path:`/profile/security`},{id:`notifications`,label:`اعلان‌ها`,description:`خبرهای فاکتور، چک و ارسال سفارش`,icon:te,path:`/profile/notifications`},{id:`display`,label:`تنظیمات`,description:`نمایش، اطلاعات کاربری و خروج`,icon:z,path:`/profile/display`},{id:`logout`,label:`خروج از حساب`,description:`پایان نشست و ورود مجدد`,icon:$,action:`logout`}];function X(e){e.path?o.push(e.path):e.href&&(window.location.href=e.href)}function Z(e){if(e.action===`logout`){h(`logout`);return}e.path&&o.push(e.path)}return(t,i)=>(v(),s(`div`,Xe,[i[11]||=g(`header`,{class:`desktop-profile__head`},[g(`h1`,{class:`desktop-profile__title`},`پروفایل`),g(`p`,{class:`desktop-profile__subtitle`},`مدیریت اطلاعات حساب کاربری و تنظیمات`)],-1),g(`section`,Ze,[g(`div`,Qe,[g(`div`,$e,[a(M,{class:`profile-overview__avatar`,src:p(l).user?.avatarUrl,initials:_.value,size:92},null,8,[`src`,`initials`]),g(`button`,{type:`button`,class:`profile-overview__edit`,onClick:i[0]||=e=>p(o).push(`/profile/edit`)},[a(L,{size:16}),i[3]||=r(` ویرایش اطلاعات `,-1)])]),g(`div`,et,[g(`div`,tt,[g(`h2`,nt,x(p(l).fullName),1),g(`span`,rt,[a(Ye,{size:18})])]),g(`p`,it,[a(U,{size:15,class:`profile-overview__meta-icon`}),g(`span`,at,x(ee.value),1),g(`span`,null,x(S.value),1)]),g(`p`,ot,[a(q,{size:15,class:`profile-overview__meta-icon`}),g(`span`,st,x(p(l).user?.phone),1)]),g(`p`,ct,[a(J,{size:15,class:`profile-overview__meta-icon`}),g(`span`,lt,x(ne.value),1)])])]),g(`div`,ut,[g(`article`,dt,[g(`span`,ft,[a(G,{size:20})]),g(`strong`,pt,x(p(C)(I.value)),1),i[4]||=g(`span`,{class:`profile-stat__label`},`موجودی اعتبار`,-1),i[5]||=g(`button`,{type:`button`,class:`profile-stat__link`},`مشاهده جزئیات`,-1)]),g(`article`,mt,[g(`span`,ht,[a(P,{size:20})]),g(`strong`,gt,x(p(w)(b.value)),1),i[6]||=g(`span`,{class:`profile-stat__label`},`چک فعال`,-1),g(`button`,{type:`button`,class:`profile-stat__link`,onClick:i[1]||=e=>p(o).push(`/profile/checks`)},` مشاهده همه `)]),g(`article`,_t,[g(`span`,vt,[a(D,{size:20})]),g(`strong`,yt,x(p(w)(y.value)),1),i[7]||=g(`span`,{class:`profile-stat__label`},`سفارش ثبت‌شده`,-1),g(`button`,{type:`button`,class:`profile-stat__link`,onClick:i[2]||=e=>p(o).push(`/orders`)},` مشاهده همه `)])])]),g(`div`,bt,[g(`section`,xt,[g(`h3`,St,[a(Y,{size:18}),i[8]||=r(` تنظیمات حساب `,-1)]),g(`nav`,Ct,[(v(),s(n,null,d(H,t=>g(`button`,{key:t.id,type:`button`,class:`profile-settings__item`,onClick:e=>Z(t)},[g(`span`,Tt,[(v(),e(u(t.icon),{size:20}))]),g(`span`,Et,[g(`strong`,Dt,x(t.label),1),g(`span`,Ot,x(t.description),1)]),a(j,{size:16,class:`profile-settings__chevron`,"aria-hidden":`true`})],8,wt)),64))])]),g(`section`,kt,[g(`h3`,At,[a(W,{size:18}),i[9]||=r(` دسترسی سریع `,-1)]),g(`div`,jt,[(v(),s(n,null,d(V,t=>g(`button`,{key:t.label,type:`button`,class:`profile-quick-grid__item`,onClick:e=>X(t)},[g(`span`,Nt,[(v(),e(u(t.icon),{size:22}))]),g(`span`,Pt,x(t.label),1)],8,Mt)),64))])]),g(`section`,Ft,[g(`h3`,It,[a(R,{size:18}),i[10]||=r(` اطلاعات شرکت `,-1)]),g(`dl`,Lt,[(v(!0),s(n,null,d(B.value,e=>(v(),s(`div`,{key:e.label,class:`profile-info-list__row`},[g(`dt`,null,x(e.label),1),g(`dd`,null,[e.badge?(v(),s(`span`,Rt,x(e.value),1)):(v(),s(n,{key:1},[r(x(e.value),1)],64))])]))),128))])])])]))}}),[[`__scopeId`,`data-v-0481e66d`]]),Bt=o({__name:`ProfileView`,setup(e){let t=f(),r=O();function i(){r.logout(),t.replace(`/login`)}return(e,t)=>(v(),s(n,null,[a(Je,{class:`mobile-only`}),a(zt,{class:`desktop-only`,onLogout:i})],64))}});export{Bt as default}; \ No newline at end of file diff --git a/dist/assets/ProfileView-JVQ3CHCf.css b/dist/assets/ProfileView-JVQ3CHCf.css deleted file mode 100644 index df8e6bf..0000000 --- a/dist/assets/ProfileView-JVQ3CHCf.css +++ /dev/null @@ -1 +0,0 @@ -.profile-page[data-v-622a24b1]{background:var(--color-primary)}.hero[data-v-622a24b1]{background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);color:#fff;padding:12px var(--page-padding) 44px;text-align:center}.hero__top[data-v-622a24b1]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:16px;display:grid}.hero__top h1[data-v-622a24b1]{margin:0;font-size:1rem;font-weight:700}.icon-btn[data-v-622a24b1]{cursor:pointer;color:#fff;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.icon-btn__badge[data-v-622a24b1]{top:4px;color:#fff;text-align:center;background:#f59e0b;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:16px;position:absolute;inset-inline-start:4px}.hero__avatar[data-v-622a24b1]{color:#fff;border:3px solid #ffffff59;margin:0 auto 12px}.hero h2[data-v-622a24b1]{margin:0;font-size:1.2rem;font-weight:700}.hero p[data-v-622a24b1]{opacity:.88;margin:6px 0 12px;font-size:.85rem}.level-pill[data-v-622a24b1]{border:1px solid var(--color-level-gold);background:color-mix(in srgb, var(--color-level-gold) 16%, transparent);color:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.8125rem;display:inline-flex}.level-pill__crown[data-v-622a24b1]{width:14px;height:14px;color:var(--color-level-gold)}.profile-scroll[data-v-622a24b1]{z-index:1;padding:20px var(--page-padding) 24px;background:var(--color-bg);border-radius:24px 24px 0 0;flex-direction:column;gap:18px;margin-top:-24px;display:flex;position:relative;box-shadow:0 -4px 16px #0000000f}.profile-scroll[data-v-622a24b1]>*{flex-shrink:0}.panel__head[data-v-622a24b1],.section-head[data-v-622a24b1]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel__head h3[data-v-622a24b1],.section-head h3[data-v-622a24b1],.section-title[data-v-622a24b1]{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.section-title[data-v-622a24b1]{margin-bottom:12px}.panel__period[data-v-622a24b1]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.8rem;display:inline-flex}.link[data-v-622a24b1]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.8rem;font-weight:600}.stats[data-v-622a24b1]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-card[data-v-622a24b1]{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:14px;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.stat-card__text[data-v-622a24b1]{text-align:start;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stat-card__icon[data-v-622a24b1]{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.stat-card__icon--orders[data-v-622a24b1],.stat-card__icon--customers[data-v-622a24b1]{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.stat-card__icon--profit[data-v-622a24b1]{background:color-mix(in srgb, var(--color-info) 14%, transparent);color:var(--color-info)}.stat-card__icon--sales[data-v-622a24b1]{background:color-mix(in srgb, var(--color-level-gold) 22%, transparent);color:#b8860b}.stat-card__label[data-v-622a24b1]{color:var(--color-text-muted);font-size:.75rem}.stat-card__value[data-v-622a24b1]{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.3}.stat-card__hint[data-v-622a24b1]{color:var(--color-text-muted);font-size:.7rem;font-style:normal}.loyalty[data-v-622a24b1]{background:var(--color-primary-soft);border-radius:14px;padding:14px}.loyalty__row[data-v-622a24b1]{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.loyalty__crown[data-v-622a24b1]{flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.loyalty__text[data-v-622a24b1]{color:var(--color-text);text-align:start;margin:0;font-size:.8125rem;line-height:1.75}.loyalty__bar[data-v-622a24b1]{background:rgba(var(--color-primary-rgb), .15);border-radius:999px;height:8px;overflow:hidden}.loyalty__bar span[data-v-622a24b1]{background:var(--color-primary);border-radius:inherit;height:100%;display:block}.quick-grid[data-v-622a24b1]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.quick-item[data-v-622a24b1]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-height:88px;padding:14px 8px 12px;font-family:inherit;font-size:.72rem;line-height:1.4;display:flex}.quick-item__icon[data-v-622a24b1]{width:40px;height:40px;color:var(--color-primary);place-items:center;display:grid}.orders-box[data-v-622a24b1]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;flex-shrink:0;padding:4px 0 0;overflow:hidden}.orders-box .section-head[data-v-622a24b1]{margin:0;padding:12px 14px 10px}.order-row[data-v-622a24b1]{border:none;border-top:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:0;grid-template-columns:1fr auto 16px;align-items:center;gap:8px;margin:0;padding:12px 14px;display:grid}.orders-all[data-v-622a24b1]{border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border-radius:0;margin:0;padding:12px 14px;font-size:.875rem;font-weight:600}.order-row__meta[data-v-622a24b1]{text-align:start;min-width:0}.order-row__date[data-v-622a24b1]{color:var(--color-text-muted);margin-bottom:2px;font-size:.75rem;display:block}.order-row__title[data-v-622a24b1]{font-size:.875rem;display:block}.order-row__customer[data-v-622a24b1]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.order-row__chevron[data-v-622a24b1]{color:var(--color-text-muted)}.tone[data-v-622a24b1]{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.7rem}.tone--warning[data-v-622a24b1]{background:var(--color-warning-light);color:#b45309}.tone--success[data-v-622a24b1]{background:var(--color-success-light);color:var(--color-success)}.tone--info[data-v-622a24b1]{background:var(--color-info-light);color:var(--color-info)}.tone--danger[data-v-622a24b1]{background:var(--color-danger-light);color:var(--color-danger)}.price-section[data-v-622a24b1]{flex-shrink:0}.price-section .section-title[data-v-622a24b1]{margin-bottom:10px}.price-card[data-v-622a24b1]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.price-card__body[data-v-622a24b1]{grid-template-columns:1fr 88px;align-items:start;gap:12px;padding:12px;display:grid}.price-card__image[data-v-622a24b1]{background:linear-gradient(145deg,#1e3a5f,#111827) 50%/cover;border-radius:12px;min-height:88px}.price-card__info[data-v-622a24b1]{text-align:start}.price-card__info strong[data-v-622a24b1]{margin-bottom:4px;font-size:.9rem;display:block}.price-card__info p[data-v-622a24b1]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.price-card footer[data-v-622a24b1]{border-top:1px solid var(--color-border);background:var(--color-elevated);text-align:start;padding:10px 12px;font-size:.8rem;font-weight:600}.desktop-profile[data-v-0481e66d]{width:100%;padding-bottom:32px}.desktop-profile__head[data-v-0481e66d]{margin-bottom:20px}.desktop-profile__title[data-v-0481e66d]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-profile__subtitle[data-v-0481e66d]{color:var(--color-text-muted);margin:0;font-size:.875rem}.profile-overview[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;align-items:stretch;gap:0;margin-bottom:16px;padding:22px 24px;display:flex}.profile-overview__identity[data-v-0481e66d]{border-inline-end:1px solid var(--color-border);flex:1.1;align-items:flex-start;gap:18px;padding-inline-end:24px;display:flex}.profile-overview__aside[data-v-0481e66d]{flex-direction:column;flex-shrink:0;align-items:center;gap:12px;display:flex}.profile-overview__avatar[data-v-0481e66d]{background:var(--color-primary);color:var(--color-surface)}.profile-overview__edit[data-v-0481e66d]{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);min-width:132px;color:var(--color-primary);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .15s;display:inline-flex}.profile-overview__edit[data-v-0481e66d]:hover{background:var(--color-primary-soft)}.profile-overview__details[data-v-0481e66d]{flex:1;min-width:0;padding-top:6px}.profile-overview__name-row[data-v-0481e66d]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.profile-overview__name[data-v-0481e66d]{color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.profile-overview__verified[data-v-0481e66d]{color:var(--color-success);flex-shrink:0;display:flex}.profile-overview__meta[data-v-0481e66d]{color:var(--color-text-muted);align-items:center;gap:8px;margin:0 0 8px;font-size:.8125rem;display:flex}.profile-overview__meta-icon[data-v-0481e66d]{color:var(--color-text-muted);flex-shrink:0}.profile-overview__meta-label[data-v-0481e66d]{color:var(--color-text);font-weight:600}.profile-overview__stats[data-v-0481e66d]{direction:ltr;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.profile-stat[data-v-0481e66d]{text-align:center;border-inline-start:1px solid var(--color-border);direction:rtl;flex-direction:column;justify-content:center;align-items:center;padding:12px 14px;display:flex}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.profile-stat__icon[data-v-0481e66d]{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:10px;display:flex}.profile-stat__icon--blue[data-v-0481e66d]{background:var(--color-primary-soft);color:var(--color-primary)}.profile-stat__icon--green[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success)}.profile-stat__icon--amber[data-v-0481e66d]{background:var(--color-warning-light);color:var(--color-warning)}.profile-stat__value[data-v-0481e66d]{color:var(--color-text);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:1.375rem;font-weight:700;line-height:1.2}.profile-stat__value--sm[data-v-0481e66d]{font-size:.875rem;line-height:1.45}.profile-stat__label[data-v-0481e66d]{color:var(--color-text-muted);margin-bottom:8px;font-size:.75rem}.profile-stat__link[data-v-0481e66d]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.75rem;font-weight:600}.profile-stat__link[data-v-0481e66d]:hover{text-underline-offset:2px;text-decoration:underline}.desktop-profile__grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.profile-panel[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;padding:18px 18px 16px}.profile-panel__title[data-v-0481e66d]{border-bottom:1px solid var(--color-border);color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;padding-bottom:12px;font-size:.9375rem;font-weight:700;display:flex}.profile-panel__title svg[data-v-0481e66d]{color:var(--color-primary);flex-shrink:0}.profile-info-list[data-v-0481e66d]{margin:0}.profile-info-list__row[data-v-0481e66d]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;font-size:.8125rem;display:flex}.profile-info-list__row[data-v-0481e66d]:last-child{border-bottom:none}.profile-info-list__row dt[data-v-0481e66d]{color:var(--color-text-muted);font-weight:500}.profile-info-list__row dd[data-v-0481e66d]{color:var(--color-text);text-align:left;margin:0;font-weight:600}.profile-badge[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success);border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.profile-quick-grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.profile-quick-grid__item[data-v-0481e66d]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);cursor:pointer;direction:rtl;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:108px;padding:16px 10px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.profile-quick-grid__item[data-v-0481e66d]:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.profile-quick-grid__icon[data-v-0481e66d]{background:var(--color-surface);width:42px;height:42px;color:var(--color-primary);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:center;align-items:center;display:flex}.profile-quick-grid__label[data-v-0481e66d]{color:var(--color-text);text-align:center;font-size:.75rem;font-weight:600;line-height:1.35}.profile-settings[data-v-0481e66d]{flex-direction:column;gap:0;display:flex}.profile-settings__item[data-v-0481e66d]{border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:right;background:0 0;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 4px;font-family:inherit;transition:background .15s;display:grid}.profile-settings__item[data-v-0481e66d]:last-child{border-bottom:none}.profile-settings__item[data-v-0481e66d]:hover{background:var(--color-elevated)}.profile-settings__icon[data-v-0481e66d]{background:var(--color-primary-soft);width:38px;height:38px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-settings__body[data-v-0481e66d]{flex-direction:column;gap:3px;min-width:0;display:flex}.profile-settings__label[data-v-0481e66d]{color:var(--color-text);font-size:.8125rem;font-weight:700}.profile-settings__desc[data-v-0481e66d]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.45}.profile-settings__chevron[data-v-0481e66d]{color:#cbd5e1;flex-shrink:0}@media (width<=900px){.profile-overview[data-v-0481e66d]{flex-direction:column}.profile-overview__identity[data-v-0481e66d]{padding-inline-end:0;border-inline-end:none;border-bottom:1px solid var(--color-border);padding-bottom:16px}.profile-overview__stats[data-v-0481e66d]{padding-top:8px}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.desktop-profile__grid[data-v-0481e66d]{grid-template-columns:1fr}} diff --git a/dist/assets/RegisterView-C6HaqUjx.css b/dist/assets/RegisterView-C6HaqUjx.css new file mode 100644 index 0000000..ad0ad3b --- /dev/null +++ b/dist/assets/RegisterView-C6HaqUjx.css @@ -0,0 +1 @@ +.job-field[data-v-026be359]{flex-direction:column;gap:6px;margin-bottom:14px;display:flex;position:relative}.job-label[data-v-026be359]{color:var(--color-text);font-size:.875rem;font-weight:600}.job-trigger[data-v-026be359]{background:var(--color-surface);width:100%;height:48px;color:var(--color-text);font:inherit;text-align:start;cursor:pointer;border:1px solid #eeeef1;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:.9375rem;display:flex}.job-trigger.is-open[data-v-026be359]{border-color:var(--color-primary)}.job-trigger.is-error[data-v-026be359]{border-color:var(--color-danger)}.job-trigger .is-placeholder[data-v-026be359]{color:var(--color-text-muted)}.job-chevron[data-v-026be359]{color:#9aa3af;flex-shrink:0;width:12px;height:12px;transition:transform .15s}.job-trigger.is-open .job-chevron[data-v-026be359]{transform:rotate(180deg)}.job-menu[data-v-026be359]{inset-inline:0;z-index:20;background:var(--color-surface);border:1px solid #eeeef1;border-radius:14px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);box-shadow:0 8px 24px #10182814}.job-option[data-v-026be359]{width:100%;color:var(--color-text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 12px;font-size:.9rem;display:block}.job-option[data-v-026be359]:hover{background:#f4f6f5}.job-option.is-active[data-v-026be359]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.job-error[data-v-026be359]{color:var(--color-danger);font-size:.75rem;font-weight:500} diff --git a/dist/assets/RegisterView-D4LJxEug.js b/dist/assets/RegisterView-D4LJxEug.js deleted file mode 100644 index 8a25593..0000000 --- a/dist/assets/RegisterView-D4LJxEug.js +++ /dev/null @@ -1 +0,0 @@ -import{E as e,F as t,I as n,L as r,M as i,Y as a,Z as o,_ as s,bt as c,ft as l,j as u,k as d,n as f,nt as p,q as m,tt as h,wt as g,x as _}from"./BasicIcon-CjTTsi6o.js";import{c as v}from"./format-BHJptHdF.js";import{a as y}from"./validation-BD7oi-2I.js";import{c as b,d as x,i as S,n as C,p as w}from"./index-BQQA5ZX-.js";import{t as T}from"./IconChevronBack-B10eZjCQ.js";import{t as E}from"./BaseInput-oWA7d1_u.js";import{t as D}from"./FormErrorBanner-B8THF9oG.js";import{n as O,r as k,t as A}from"./formErrors-DglFjYkZ.js";var j={class:`page page-shell auth-page`},M={class:`page__scroll flex flex-col justify-center py-6`},N={class:`card`},P={class:`job-label`},F=[`aria-invalid`],I=[`value`],L={key:0,class:`job-error`},R={class:`mt-6 w-full max-w-[var(--form-max-width)] text-center`},z={class:`m-0 text-sm text-muted`},B=f(r({__name:`RegisterView`,setup(r){let f=s(),B=b(),V=l(``),H=l(``),U=l(``),W=l(``),G=l({}),K=l(``);function q(e){G.value=O(G.value,e),k(G.value)||(K.value=``)}async function J(){G.value={},K.value=``;let e=v(U.value),t={};if(V.value.trim()||(t.firstName=`نام الزامی است.`),H.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),y(e)||(t.phone=`شماره موبایل معتبر نیست.`),W.value||(t.jobCategory=`دسته‌بندی شغلی الزامی است.`),k(t)){G.value=t,K.value=A;return}let n={firstName:V.value.trim(),lastName:H.value.trim(),jobCategory:W.value};w(n);let r=await B.requestOtp(e,{isRegister:!0,firstName:n.firstName,lastName:n.lastName});r.success?f.push({name:`otp`,query:{phone:e,mode:`register`}}):K.value=r.message??`خطا در ارسال کد تأیید.`}return(r,s)=>{let l=o(`RouterLink`);return m(),i(`div`,j,[d(`button`,{type:`button`,class:`auth-back`,"aria-label":`بازگشت`,onClick:s[0]||=e=>c(f).push(`/login`)},[n(T,{size:20})]),n(S),d(`div`,M,[s[14]||=d(`div`,{class:`auth-header`},[d(`div`,{class:`text-5xl mb-3`},`🧵`),d(`h1`,{class:`page-title`},`ثبت‌نام`),d(`p`,{class:`page-subtitle`},`ایجاد حساب کاربری جدید`)],-1),d(`div`,N,[n(D,{message:K.value},null,8,[`message`]),n(E,{modelValue:V.value,"onUpdate:modelValue":[s[1]||=e=>V.value=e,s[2]||=e=>q(`firstName`)],label:`نام`,placeholder:`نام خود را وارد کنید`,error:G.value.firstName},null,8,[`modelValue`,`error`]),n(E,{modelValue:H.value,"onUpdate:modelValue":[s[3]||=e=>H.value=e,s[4]||=e=>q(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:G.value.lastName},null,8,[`modelValue`,`error`]),n(E,{modelValue:U.value,"onUpdate:modelValue":[s[5]||=e=>U.value=e,s[6]||=e=>q(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:G.value.phone},null,8,[`modelValue`,`error`]),d(`label`,P,[s[10]||=t(` دسته‌بندی شغلی `,-1),p(d(`select`,{"onUpdate:modelValue":s[7]||=e=>W.value=e,class:`job-select`,"aria-invalid":!!G.value.jobCategory,onChange:s[8]||=e=>q(`jobCategory`)},[s[9]||=d(`option`,{disabled:``,value:``},`انتخاب کنید`,-1),(m(!0),i(e,null,a(c(x),e=>(m(),i(`option`,{key:e.id,value:e.id},g(e.label),9,I))),128))],40,F),[[_,W.value]]),G.value.jobCategory?(m(),i(`span`,L,g(G.value.jobCategory),1)):u(``,!0)]),n(C,{block:``,loading:c(B).loading,onClick:J},{default:h(()=>[...s[11]||=[t(`دریافت کد تأیید`,-1)]]),_:1},8,[`loading`])]),d(`div`,R,[d(`p`,z,[s[13]||=t(` قبلاً ثبت‌نام کرده‌اید؟ `,-1),n(l,{to:`/login`,class:`ms-1 font-bold text-primary no-underline hover:underline`},{default:h(()=>[...s[12]||=[t(` وارد شوید `,-1)]]),_:1})])])])])}}}),[[`__scopeId`,`data-v-1534f255`]]);export{B as default}; \ No newline at end of file diff --git a/dist/assets/RegisterView-D731ti8w.css b/dist/assets/RegisterView-D731ti8w.css deleted file mode 100644 index 0b0dfde..0000000 --- a/dist/assets/RegisterView-D731ti8w.css +++ /dev/null @@ -1 +0,0 @@ -.auth-back[data-v-1534f255]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;padding:0;display:grid;position:fixed;inset-inline-start:16px}.job-label[data-v-1534f255]{color:var(--color-text);flex-direction:column;gap:6px;margin-bottom:14px;font-size:.875rem;font-weight:600;display:flex}.job-select[data-v-1534f255]{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:48px;font:inherit;background:var(--color-surface);color:var(--color-text);padding:0 12px}.job-error[data-v-1534f255]{color:var(--color-danger);font-size:.75rem;font-weight:500} diff --git a/dist/assets/RegisterView-F8TAiSXX.js b/dist/assets/RegisterView-F8TAiSXX.js new file mode 100644 index 0000000..98ba222 --- /dev/null +++ b/dist/assets/RegisterView-F8TAiSXX.js @@ -0,0 +1 @@ +import{E as e,F as t,I as n,L as r,M as i,O as a,T as o,Y as s,Z as c,_ as l,bt as u,ft as d,j as f,k as p,n as m,q as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{t as y}from"./dist-DLhmLSgX.js";import{c as b}from"./format-BHJptHdF.js";import{a as x}from"./validation-BD7oi-2I.js";import{c as S,d as C,i as w,n as T,p as E}from"./index-D3Z8WOeX.js";import{t as D}from"./IconChevronBack-B10eZjCQ.js";import{t as O}from"./BaseInput-oWA7d1_u.js";import{t as k}from"./FormErrorBanner-B8THF9oG.js";import{n as A,r as j,t as M}from"./formErrors-DglFjYkZ.js";var N={class:`page auth-page`},P={class:`auth-top`},F={class:`page__scroll auth-body`},I=[`aria-expanded`,`aria-invalid`],L={key:0,class:`job-menu`,role:`listbox`},R=[`aria-selected`,`onClick`],z={key:1,class:`job-error`},B={class:`auth-switch`},V=m(r({__name:`RegisterView`,setup(r){let m=l(),V=S(),H=d(``),U=d(``),W=d(``),G=d(``),K=d(!1),q=d(null),J=d({}),Y=d(``),X=a(()=>C.find(e=>e.id===G.value)?.label??`انتخاب کنید`);y(q,()=>{K.value=!1});function Z(e){G.value=e,K.value=!1,Q(`jobCategory`)}function Q(e){J.value=A(J.value,e),j(J.value)||(Y.value=``)}async function $(){J.value={},Y.value=``;let e=b(W.value),t={};if(H.value.trim()||(t.firstName=`نام الزامی است.`),U.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),x(e)||(t.phone=`شماره موبایل معتبر نیست.`),G.value||(t.jobCategory=`دسته‌بندی شغلی الزامی است.`),j(t)){J.value=t,Y.value=M;return}let n={firstName:H.value.trim(),lastName:U.value.trim(),jobCategory:G.value};E(n);let r=await V.requestOtp(e,{isRegister:!0,firstName:n.firstName,lastName:n.lastName});r.success?m.push({name:`otp`,query:{phone:e,mode:`register`}}):Y.value=r.message??`خطا در ارسال کد تأیید.`}return(r,a)=>{let l=c(`RouterLink`);return h(),i(`div`,N,[p(`header`,P,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:a[0]||=e=>u(m).push(`/login`)},[n(D,{size:20})]),a[8]||=p(`h1`,{class:`auth-top__title`},`ثبت‌نام`,-1),n(w,{variant:`inline`})]),p(`div`,F,[a[14]||=p(`p`,{class:`auth-lead`},`نام، موبایل و شغل خود را وارد کنید تا حساب ساخته شود.`,-1),p(`form`,{class:`card`,onSubmit:o($,[`prevent`])},[n(k,{message:Y.value},null,8,[`message`]),n(O,{modelValue:H.value,"onUpdate:modelValue":[a[1]||=e=>H.value=e,a[2]||=e=>Q(`firstName`)],label:`نام`,placeholder:`نام خود را وارد کنید`,error:J.value.firstName},null,8,[`modelValue`,`error`]),n(O,{modelValue:U.value,"onUpdate:modelValue":[a[3]||=e=>U.value=e,a[4]||=e=>Q(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:J.value.lastName},null,8,[`modelValue`,`error`]),n(O,{modelValue:W.value,"onUpdate:modelValue":[a[5]||=e=>W.value=e,a[6]||=e=>Q(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:J.value.phone},null,8,[`modelValue`,`error`]),p(`div`,{ref_key:`jobRoot`,ref:q,class:`job-field`},[a[10]||=p(`span`,{id:`job-label`,class:`job-label`},`دسته‌بندی شغلی`,-1),p(`button`,{type:`button`,class:v([`job-trigger`,{"is-open":K.value,"is-error":J.value.jobCategory}]),"aria-labelledby":`job-label`,"aria-haspopup":`listbox`,"aria-expanded":K.value,"aria-invalid":!!J.value.jobCategory,onClick:a[7]||=e=>K.value=!K.value},[p(`span`,{class:v({"is-placeholder":!G.value})},_(X.value),3),a[9]||=p(`svg`,{class:`job-chevron`,viewBox:`0 0 12 12`,"aria-hidden":`true`},[p(`path`,{d:`M2.5 4.5 6 8l3.5-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)],10,I),K.value?(h(),i(`ul`,L,[(h(!0),i(e,null,s(u(C),e=>(h(),i(`li`,{key:e.id},[p(`button`,{type:`button`,role:`option`,class:v([`job-option`,{"is-active":G.value===e.id}]),"aria-selected":G.value===e.id,onClick:t=>Z(e.id)},_(e.label),11,R)]))),128))])):f(``,!0),J.value.jobCategory?(h(),i(`span`,z,_(J.value.jobCategory),1)):f(``,!0)],512),n(T,{block:``,type:`submit`,loading:u(V).loading},{default:g(()=>[...a[11]||=[t(`دریافت کد تأیید`,-1)]]),_:1},8,[`loading`])],32),p(`p`,B,[a[13]||=t(` قبلاً ثبت‌نام کرده‌اید؟ `,-1),n(l,{to:`/login`},{default:g(()=>[...a[12]||=[t(`وارد شوید`,-1)]]),_:1})])])])}}}),[[`__scopeId`,`data-v-026be359`]]);export{V as default}; \ No newline at end of file diff --git a/dist/assets/ReminderDetailView-BtTy21io.js b/dist/assets/ReminderDetailView-Bz1lWWpY.js similarity index 97% rename from dist/assets/ReminderDetailView-BtTy21io.js rename to dist/assets/ReminderDetailView-Bz1lWWpY.js index adcd570..6473b69 100644 --- a/dist/assets/ReminderDetailView-BtTy21io.js +++ b/dist/assets/ReminderDetailView-Bz1lWWpY.js @@ -1 +1 @@ -import{$ as e,Ct as t,E as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,ft as d,g as f,j as p,k as m,n as h,q as g,wt as _}from"./BasicIcon-CjTTsi6o.js";import{c as v}from"./index-BQQA5ZX-.js";import{t as ee}from"./PageHeader-WFa4BbgN.js";import{t as y}from"./PageSkeleton-CyATkHE1.js";import{t as b}from"./crm-DPw1h61_.js";var x={key:0,class:`page reminder-detail`},S={class:`page__scroll detail-scroll`},C={key:0,class:`form-error`},w={class:`layout`},T={class:`panel`},E={class:`field`},D={class:`field`},O={class:`customer-line`},k={class:`field`},A={class:`field`},j={class:`field`},M={class:`actions`},N=[`disabled`],P={class:`panel`},F={class:`panel chart-panel`},I={class:`bars`},L={class:`stats-grid`},R={key:1,class:`page empty`},z={key:2,class:`page empty`},B=h(a({__name:`ReminderDetailView`,setup(a){let h=f(),B=l(),V=b(),H=v(),U=s(()=>String(h.query.id??``)),W=d(null),G=d(null),K=d([]),q=d(!0),J=d(!1),Y=d(null);async function X(){if(!U.value){W.value=null,q.value=!1;return}q.value=!0,Y.value=null;try{let e=await V.loadReminderDetail(U.value);W.value=e.reminder,G.value=e.customer,K.value=e.history}catch(e){W.value=null,Y.value=e instanceof Error?e.message:`یادآور یافت نشد.`}finally{q.value=!1}}r(X),e(U,X);function Z(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}async function Q(){if(!(!W.value||W.value.completed)){J.value=!0,Y.value=null;try{await V.markReminderComplete(W.value.id),W.value={...W.value,completed:!0},B.push(`/reminders?filter=today`)}catch(e){Y.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}finally{J.value=!1}}}let te=s(()=>H.fullName||`واسطه`),$=s(()=>{let e=K.value;return{total:e.length,inPerson:e.filter(e=>e.type===`in_person`).length,call:e.filter(e=>e.type===`call`).length,other:e.filter(e=>e.type===`message`||e.type===`note`).length}}),ne=s(()=>{let e=Array.from({length:6},()=>({a:0,b:0,c:0}));K.value.forEach((t,n)=>{let r=e[n%6];r&&(t.type===`in_person`?r.a+=1:t.type===`call`?r.b+=1:r.c+=1)});let t=Math.max(1,...e.map(e=>e.a+e.b+e.c));return e.map(e=>({a:`${e.a/t*100}%`,b:`${e.b/t*100}%`,c:`${e.c/t*100}%`}))});return(e,r)=>W.value&&G.value?(g(),o(`div`,x,[i(ee,{title:`جزئیات یادآور`,"show-back":``,centered:``,onBack:r[0]||=e=>u(B).back()}),m(`div`,S,[Y.value?(g(),o(`p`,C,_(Y.value),1)):p(``,!0),m(`div`,w,[m(`section`,T,[r[8]||=m(`h2`,null,`جزئیات یادآور`,-1),m(`div`,E,[r[3]||=m(`span`,null,`عنوان`,-1),m(`strong`,null,_(W.value.title)+` — `+_(W.value.description),1)]),m(`div`,D,[r[4]||=m(`span`,null,`مشتری`,-1),m(`div`,O,[m(`div`,{class:`avatar`,style:t({background:G.value.avatarColor})},_(G.value.avatarLetter),5),m(`div`,null,[m(`strong`,null,_(G.value.name),1),m(`p`,null,_(G.value.contactName),1)])])]),m(`div`,k,[r[5]||=m(`span`,null,`فروشنده حامل حضوری`,-1),m(`strong`,null,_(te.value),1)]),m(`div`,A,[r[6]||=m(`span`,null,`تاریخ و زمان`,-1),m(`strong`,null,_(W.value.date)+` — `+_(W.value.time),1)]),m(`div`,j,[r[7]||=m(`span`,null,`یادداشت`,-1),m(`strong`,null,_(W.value.note||`—`),1)]),m(`div`,M,[m(`button`,{type:`button`,class:`btn-outline`,onClick:r[1]||=e=>u(B).back()},`ویرایش`),m(`button`,{type:`button`,class:`btn-primary`,disabled:J.value||W.value.completed,onClick:Q},_(W.value.completed?`تکمیل‌شده`:J.value?`...`:`تکمیل شد`),9,N)])]),m(`section`,P,[r[9]||=m(`h2`,null,`تاریخچه تعاملات`,-1),(g(!0),o(n,null,c(K.value,e=>(g(),o(`article`,{key:e.id,class:`history-row`},[m(`div`,null,[m(`strong`,null,_(Z(e.type)),1),m(`p`,null,_(e.description),1)]),m(`span`,null,_(e.date),1)]))),128)),m(`button`,{type:`button`,class:`see-all`,onClick:r[2]||=e=>u(B).push({path:`/customer`,query:{id:G.value.id,tab:`reports`}})},` مشاهده همه `)]),m(`section`,F,[r[14]||=m(`div`,{class:`chart-panel__head`},[m(`h2`,null,`نمودار فعالیت`),m(`span`,null,`تعاملات ثبت‌شده`)],-1),m(`div`,I,[(g(!0),o(n,null,c(ne.value,(e,n)=>(g(),o(`div`,{key:n,class:`bar`},[e.c===`0%`?p(``,!0):(g(),o(`span`,{key:0,class:`seg seg--c`,style:t({height:e.c})},null,4)),e.b===`0%`?p(``,!0):(g(),o(`span`,{key:1,class:`seg seg--b`,style:t({height:e.b})},null,4)),e.a===`0%`?p(``,!0):(g(),o(`span`,{key:2,class:`seg seg--a`,style:t({height:e.a})},null,4))]))),128))]),m(`div`,L,[m(`div`,null,[r[10]||=m(`span`,null,`کل تعاملات`,-1),m(`strong`,null,_($.value.total.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[11]||=m(`span`,null,`ملاقات حضوری`,-1),m(`strong`,null,_($.value.inPerson.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[12]||=m(`span`,null,`تماس تلفنی`,-1),m(`strong`,null,_($.value.call.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[13]||=m(`span`,null,`یادداشت و پیام`,-1),m(`strong`,null,_($.value.other.toLocaleString(`fa-IR`))+` مورد`,1)])])])])])])):q.value?(g(),o(`div`,R,[i(y,{variant:`detail`})])):(g(),o(`div`,z,[m(`p`,null,_(Y.value||`یادآور یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-9fc8e0f1`]]);export{B as default}; \ No newline at end of file +import{$ as e,Ct as t,E as n,G as r,I as i,L as a,M as o,O as s,Y as c,_ as l,bt as u,ft as d,g as f,j as p,k as m,n as h,q as g,wt as _}from"./BasicIcon-CjTTsi6o.js";import{c as v}from"./index-D3Z8WOeX.js";import{t as ee}from"./PageHeader-B47bvmJV.js";import{t as y}from"./PageSkeleton-CyATkHE1.js";import{t as b}from"./crm-l0KpZ2AN.js";var x={key:0,class:`page reminder-detail`},S={class:`page__scroll detail-scroll`},C={key:0,class:`form-error`},w={class:`layout`},T={class:`panel`},E={class:`field`},D={class:`field`},O={class:`customer-line`},k={class:`field`},A={class:`field`},j={class:`field`},M={class:`actions`},N=[`disabled`],P={class:`panel`},F={class:`panel chart-panel`},I={class:`bars`},L={class:`stats-grid`},R={key:1,class:`page empty`},z={key:2,class:`page empty`},B=h(a({__name:`ReminderDetailView`,setup(a){let h=f(),B=l(),V=b(),H=v(),U=s(()=>String(h.query.id??``)),W=d(null),G=d(null),K=d([]),q=d(!0),J=d(!1),Y=d(null);async function X(){if(!U.value){W.value=null,q.value=!1;return}q.value=!0,Y.value=null;try{let e=await V.loadReminderDetail(U.value);W.value=e.reminder,G.value=e.customer,K.value=e.history}catch(e){W.value=null,Y.value=e instanceof Error?e.message:`یادآور یافت نشد.`}finally{q.value=!1}}r(X),e(U,X);function Z(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}async function Q(){if(!(!W.value||W.value.completed)){J.value=!0,Y.value=null;try{await V.markReminderComplete(W.value.id),W.value={...W.value,completed:!0},B.push(`/reminders?filter=today`)}catch(e){Y.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}finally{J.value=!1}}}let te=s(()=>H.fullName||`واسطه`),$=s(()=>{let e=K.value;return{total:e.length,inPerson:e.filter(e=>e.type===`in_person`).length,call:e.filter(e=>e.type===`call`).length,other:e.filter(e=>e.type===`message`||e.type===`note`).length}}),ne=s(()=>{let e=Array.from({length:6},()=>({a:0,b:0,c:0}));K.value.forEach((t,n)=>{let r=e[n%6];r&&(t.type===`in_person`?r.a+=1:t.type===`call`?r.b+=1:r.c+=1)});let t=Math.max(1,...e.map(e=>e.a+e.b+e.c));return e.map(e=>({a:`${e.a/t*100}%`,b:`${e.b/t*100}%`,c:`${e.c/t*100}%`}))});return(e,r)=>W.value&&G.value?(g(),o(`div`,x,[i(ee,{title:`جزئیات یادآور`,"show-back":``,centered:``,onBack:r[0]||=e=>u(B).back()}),m(`div`,S,[Y.value?(g(),o(`p`,C,_(Y.value),1)):p(``,!0),m(`div`,w,[m(`section`,T,[r[8]||=m(`h2`,null,`جزئیات یادآور`,-1),m(`div`,E,[r[3]||=m(`span`,null,`عنوان`,-1),m(`strong`,null,_(W.value.title)+` — `+_(W.value.description),1)]),m(`div`,D,[r[4]||=m(`span`,null,`مشتری`,-1),m(`div`,O,[m(`div`,{class:`avatar`,style:t({background:G.value.avatarColor})},_(G.value.avatarLetter),5),m(`div`,null,[m(`strong`,null,_(G.value.name),1),m(`p`,null,_(G.value.contactName),1)])])]),m(`div`,k,[r[5]||=m(`span`,null,`فروشنده حامل حضوری`,-1),m(`strong`,null,_(te.value),1)]),m(`div`,A,[r[6]||=m(`span`,null,`تاریخ و زمان`,-1),m(`strong`,null,_(W.value.date)+` — `+_(W.value.time),1)]),m(`div`,j,[r[7]||=m(`span`,null,`یادداشت`,-1),m(`strong`,null,_(W.value.note||`—`),1)]),m(`div`,M,[m(`button`,{type:`button`,class:`btn-outline`,onClick:r[1]||=e=>u(B).back()},`ویرایش`),m(`button`,{type:`button`,class:`btn-primary`,disabled:J.value||W.value.completed,onClick:Q},_(W.value.completed?`تکمیل‌شده`:J.value?`...`:`تکمیل شد`),9,N)])]),m(`section`,P,[r[9]||=m(`h2`,null,`تاریخچه تعاملات`,-1),(g(!0),o(n,null,c(K.value,e=>(g(),o(`article`,{key:e.id,class:`history-row`},[m(`div`,null,[m(`strong`,null,_(Z(e.type)),1),m(`p`,null,_(e.description),1)]),m(`span`,null,_(e.date),1)]))),128)),m(`button`,{type:`button`,class:`see-all`,onClick:r[2]||=e=>u(B).push({path:`/customer`,query:{id:G.value.id,tab:`reports`}})},` مشاهده همه `)]),m(`section`,F,[r[14]||=m(`div`,{class:`chart-panel__head`},[m(`h2`,null,`نمودار فعالیت`),m(`span`,null,`تعاملات ثبت‌شده`)],-1),m(`div`,I,[(g(!0),o(n,null,c(ne.value,(e,n)=>(g(),o(`div`,{key:n,class:`bar`},[e.c===`0%`?p(``,!0):(g(),o(`span`,{key:0,class:`seg seg--c`,style:t({height:e.c})},null,4)),e.b===`0%`?p(``,!0):(g(),o(`span`,{key:1,class:`seg seg--b`,style:t({height:e.b})},null,4)),e.a===`0%`?p(``,!0):(g(),o(`span`,{key:2,class:`seg seg--a`,style:t({height:e.a})},null,4))]))),128))]),m(`div`,L,[m(`div`,null,[r[10]||=m(`span`,null,`کل تعاملات`,-1),m(`strong`,null,_($.value.total.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[11]||=m(`span`,null,`ملاقات حضوری`,-1),m(`strong`,null,_($.value.inPerson.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[12]||=m(`span`,null,`تماس تلفنی`,-1),m(`strong`,null,_($.value.call.toLocaleString(`fa-IR`))+` مورد`,1)]),m(`div`,null,[r[13]||=m(`span`,null,`یادداشت و پیام`,-1),m(`strong`,null,_($.value.other.toLocaleString(`fa-IR`))+` مورد`,1)])])])])])])):q.value?(g(),o(`div`,R,[i(y,{variant:`detail`})])):(g(),o(`div`,z,[m(`p`,null,_(Y.value||`یادآور یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-9fc8e0f1`]]);export{B as default}; \ No newline at end of file diff --git a/dist/assets/RemindersView-BnrwuAXg.js b/dist/assets/RemindersView-CHMuTLoj.js similarity index 98% rename from dist/assets/RemindersView-BnrwuAXg.js rename to dist/assets/RemindersView-CHMuTLoj.js index da93ea4..19f97d9 100644 --- a/dist/assets/RemindersView-BnrwuAXg.js +++ b/dist/assets/RemindersView-CHMuTLoj.js @@ -1 +1 @@ -import{$ as e,A as ee,Ct as te,E as t,F as n,G as r,I as i,L as ne,M as a,O as o,S as s,T as re,Y as c,_ as ie,bt as l,ft as u,g as ae,j as d,k as f,n as p,nt as m,q as h,wt as g,x as oe,xt as _}from"./BasicIcon-CjTTsi6o.js";import{o as v}from"./format-BHJptHdF.js";import{i as se,s as ce,v as le}from"./index-BQQA5ZX-.js";import{t as ue}from"./IconChevronBack-B10eZjCQ.js";import{t as de}from"./IconMoreVertical-CoEoZgQs.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{t as pe}from"./crm-DPw1h61_.js";import{t as me}from"./useGoBack-D3aJ73Q-.js";var he={class:`page reminders-page`},ge={class:`top`},_e={class:`top__actions`},y={class:`page__scroll page__scroll--with-nav reminders-scroll`},b={class:`filters`},x=[`onClick`],S={key:0,class:`count-badge`},C={key:1},w={key:2,class:`create-panel`},T={key:0,class:`create-error`},E=[`value`],D={class:`create-row`},O={class:`create-actions`},k=[`disabled`],A={key:3,class:`summary`},j={class:`summary__head`},M={class:`summary__label`},N={class:`summary__count`},P=[`onClick`],F={class:`time`},I=[`onClick`],ve={class:`reminder-card__body`},L={class:`reminder-card__top`},ye={class:`customer`},be={class:`contact`},xe={class:`desc`},R=p(ne({__name:`RemindersView`,setup(ne){let p=ae(),R=ie(),{goBack:z}=me(`/`),B=pe(),V=o(()=>String(p.query.filter??`today`)),H=u([]),U=u([]),W=u(!0),G=u(null),K=u(!1),q=u(!1),J=u({customerId:``,title:``,date:``,time:`10:00`,note:``}),Se=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],Y=o(()=>H.value.filter(e=>!e.completed)),X=o(()=>H.value.filter(e=>e.completed)),Ce=o(()=>Y.value.length),Z=o(()=>X.value.length);async function Q(){W.value=!0,G.value=null;try{H.value=await B.loadReminders(V.value)}catch(e){G.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,H.value=[]}finally{W.value=!1}}r(Q),e(V,Q);function $(e){R.replace({path:`/reminders`,query:{filter:e}})}async function we(e){try{await B.markReminderComplete(e),await Q()}catch(e){G.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}}function Te(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}function Ee(e){return e===`in_person`?`tag--green`:e===`call`?`tag--blue`:`tag--purple`}let De=o(()=>V.value===`today`?`پیگیری‌های امروز`:V.value===`week`?`پیگیری‌های هفته آینده`:V.value===`past`?`پیگیری‌های گذشته`:`پیگیری‌های باز`);async function Oe(){K.value=!0,G.value=null;try{if(U.value=await B.loadCustomers(),!J.value.customerId&&U.value[0]&&(J.value.customerId=U.value[0].id),!J.value.date){let e=new Date;J.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function ke(){if(!J.value.customerId||!J.value.title.trim()||!J.value.date||!J.value.time){G.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}q.value=!0,G.value=null;try{await B.createReminder({customerId:J.value.customerId,title:J.value.title.trim(),date:J.value.date,time:J.value.time,note:J.value.note.trim()||void 0,description:J.value.note.trim()||void 0}),K.value=!1,J.value.title=``,J.value.note=``,await Q()}catch(e){G.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{q.value=!1}}return(e,r)=>(h(),a(`div`,he,[f(`header`,ge,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:r[0]||=(...e)=>l(z)&&l(z)(...e)},[i(ue,{size:20})]),r[9]||=f(`h1`,null,`یادآورها`,-1),f(`div`,_e,[i(se,{variant:`inline`}),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:r[1]||=e=>l(R).push(`/profile/notifications`)},[i(ce,{size:18})])])]),f(`div`,y,[f(`div`,b,[(h(),a(t,null,c(Se,e=>f(`button`,{key:e.id,type:`button`,class:_([`filter`,{"filter--active":V.value===e.id}]),onClick:ee=>$(e.id)},[n(g(e.label)+` `,1),e.id===`past`&&Z.value?(h(),a(`span`,S,g(Z.value.toLocaleString(`fa-IR`)),1)):d(``,!0)],10,x)),64))]),W.value?(h(),ee(fe,{key:0,variant:`list`})):G.value&&!K.value?(h(),a(`p`,C,g(G.value),1)):d(``,!0),K.value?(h(),a(`section`,w,[r[16]||=f(`h3`,null,`یادآور جدید`,-1),G.value?(h(),a(`p`,T,g(G.value),1)):d(``,!0),f(`label`,null,[r[11]||=n(` مشتری `,-1),m(f(`select`,{"onUpdate:modelValue":r[2]||=e=>J.value.customerId=e},[r[10]||=f(`option`,{disabled:``,value:``},`انتخاب مشتری`,-1),(h(!0),a(t,null,c(U.value,e=>(h(),a(`option`,{key:e.id,value:e.id},g(e.name||e.contactName),9,E))),128))],512),[[oe,J.value.customerId]])]),f(`label`,null,[r[12]||=n(` عنوان `,-1),m(f(`input`,{"onUpdate:modelValue":r[3]||=e=>J.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[s,J.value.title]])]),f(`div`,D,[f(`label`,null,[r[13]||=n(` تاریخ `,-1),m(f(`input`,{"onUpdate:modelValue":r[4]||=e=>J.value.date=e,type:`date`},null,512),[[s,J.value.date]])]),f(`label`,null,[r[14]||=n(` ساعت `,-1),m(f(`input`,{"onUpdate:modelValue":r[5]||=e=>J.value.time=e,type:`time`},null,512),[[s,J.value.time]])])]),f(`label`,null,[r[15]||=n(` یادداشت `,-1),m(f(`textarea`,{"onUpdate:modelValue":r[6]||=e=>J.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[s,J.value.note]])]),f(`div`,O,[f(`button`,{type:`button`,class:`btn-cancel`,onClick:r[7]||=e=>K.value=!1},`انصراف`),f(`button`,{type:`button`,class:`btn-save`,disabled:q.value,onClick:ke},g(q.value?`در حال ثبت...`:`ثبت یادآور`),9,k)])])):!W.value&&!G.value?(h(),a(`section`,A,[f(`div`,j,[f(`span`,M,g(De.value),1)]),f(`div`,N,[f(`strong`,null,g(l(v)(Ce.value)),1),r[17]||=f(`span`,null,`مورد`,-1)]),r[18]||=f(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)])):d(``,!0),(h(!0),a(t,null,c(Y.value,e=>(h(),a(`article`,{key:e.id,class:`reminder-card`,onClick:ee=>l(R).push({path:`/reminder`,query:{id:e.id}})},[f(`span`,F,g(e.time),1),f(`button`,{type:`button`,class:`check`,"aria-label":`تکمیل`,onClick:re(ee=>we(e.id),[`stop`])},null,8,I),f(`div`,ve,[f(`div`,L,[f(`strong`,null,g(e.title),1),i(de,{size:16})]),f(`span`,{class:_([`tag`,Ee(e.interactionType)])},g(Te(e.interactionType)),3),f(`p`,ye,g(e.customerName),1),f(`p`,be,g(e.contactName),1),f(`p`,xe,g(e.description),1)]),f(`div`,{class:`avatar`,style:te({background:e.avatarColor})},g(e.avatarLetter),5)],8,P))),128)),f(`button`,{type:`button`,class:`completed-bar`,onClick:r[8]||=e=>$(`past`)},[r[19]||=n(` یادآورهای تکمیل‌شده `,-1),f(`span`,null,g(l(v)(X.value.length)),1)]),f(`button`,{type:`button`,class:`new-btn`,onClick:Oe},[i(le,{size:20,color:`#fff`}),r[20]||=n(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-89857cb4`]]);export{R as default}; \ No newline at end of file +import{$ as e,A as ee,Ct as te,E as t,F as n,G as r,I as i,L as ne,M as a,O as o,S as s,T as re,Y as c,_ as ie,bt as l,ft as u,g as ae,j as d,k as f,n as p,nt as m,q as h,wt as g,x as oe,xt as _}from"./BasicIcon-CjTTsi6o.js";import{o as v}from"./format-BHJptHdF.js";import{i as se,s as ce,v as le}from"./index-D3Z8WOeX.js";import{t as ue}from"./IconChevronBack-B10eZjCQ.js";import{t as de}from"./IconMoreVertical-CoEoZgQs.js";import{t as fe}from"./PageSkeleton-CyATkHE1.js";import{t as pe}from"./crm-l0KpZ2AN.js";import{t as me}from"./useGoBack-D3aJ73Q-.js";var he={class:`page reminders-page`},ge={class:`top`},_e={class:`top__actions`},y={class:`page__scroll page__scroll--with-nav reminders-scroll`},b={class:`filters`},x=[`onClick`],S={key:0,class:`count-badge`},C={key:1},w={key:2,class:`create-panel`},T={key:0,class:`create-error`},E=[`value`],D={class:`create-row`},O={class:`create-actions`},k=[`disabled`],A={key:3,class:`summary`},j={class:`summary__head`},M={class:`summary__label`},N={class:`summary__count`},P=[`onClick`],F={class:`time`},I=[`onClick`],ve={class:`reminder-card__body`},L={class:`reminder-card__top`},ye={class:`customer`},be={class:`contact`},xe={class:`desc`},R=p(ne({__name:`RemindersView`,setup(ne){let p=ae(),R=ie(),{goBack:z}=me(`/`),B=pe(),V=o(()=>String(p.query.filter??`today`)),H=u([]),U=u([]),W=u(!0),G=u(null),K=u(!1),q=u(!1),J=u({customerId:``,title:``,date:``,time:`10:00`,note:``}),Se=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],Y=o(()=>H.value.filter(e=>!e.completed)),X=o(()=>H.value.filter(e=>e.completed)),Ce=o(()=>Y.value.length),Z=o(()=>X.value.length);async function Q(){W.value=!0,G.value=null;try{H.value=await B.loadReminders(V.value)}catch(e){G.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,H.value=[]}finally{W.value=!1}}r(Q),e(V,Q);function $(e){R.replace({path:`/reminders`,query:{filter:e}})}async function we(e){try{await B.markReminderComplete(e),await Q()}catch(e){G.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}}function Te(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}function Ee(e){return e===`in_person`?`tag--green`:e===`call`?`tag--blue`:`tag--purple`}let De=o(()=>V.value===`today`?`پیگیری‌های امروز`:V.value===`week`?`پیگیری‌های هفته آینده`:V.value===`past`?`پیگیری‌های گذشته`:`پیگیری‌های باز`);async function Oe(){K.value=!0,G.value=null;try{if(U.value=await B.loadCustomers(),!J.value.customerId&&U.value[0]&&(J.value.customerId=U.value[0].id),!J.value.date){let e=new Date;J.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function ke(){if(!J.value.customerId||!J.value.title.trim()||!J.value.date||!J.value.time){G.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}q.value=!0,G.value=null;try{await B.createReminder({customerId:J.value.customerId,title:J.value.title.trim(),date:J.value.date,time:J.value.time,note:J.value.note.trim()||void 0,description:J.value.note.trim()||void 0}),K.value=!1,J.value.title=``,J.value.note=``,await Q()}catch(e){G.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{q.value=!1}}return(e,r)=>(h(),a(`div`,he,[f(`header`,ge,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:r[0]||=(...e)=>l(z)&&l(z)(...e)},[i(ue,{size:20})]),r[9]||=f(`h1`,null,`یادآورها`,-1),f(`div`,_e,[i(se,{variant:`inline`}),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:r[1]||=e=>l(R).push(`/profile/notifications`)},[i(ce,{size:18})])])]),f(`div`,y,[f(`div`,b,[(h(),a(t,null,c(Se,e=>f(`button`,{key:e.id,type:`button`,class:_([`filter`,{"filter--active":V.value===e.id}]),onClick:ee=>$(e.id)},[n(g(e.label)+` `,1),e.id===`past`&&Z.value?(h(),a(`span`,S,g(Z.value.toLocaleString(`fa-IR`)),1)):d(``,!0)],10,x)),64))]),W.value?(h(),ee(fe,{key:0,variant:`list`})):G.value&&!K.value?(h(),a(`p`,C,g(G.value),1)):d(``,!0),K.value?(h(),a(`section`,w,[r[16]||=f(`h3`,null,`یادآور جدید`,-1),G.value?(h(),a(`p`,T,g(G.value),1)):d(``,!0),f(`label`,null,[r[11]||=n(` مشتری `,-1),m(f(`select`,{"onUpdate:modelValue":r[2]||=e=>J.value.customerId=e},[r[10]||=f(`option`,{disabled:``,value:``},`انتخاب مشتری`,-1),(h(!0),a(t,null,c(U.value,e=>(h(),a(`option`,{key:e.id,value:e.id},g(e.name||e.contactName),9,E))),128))],512),[[oe,J.value.customerId]])]),f(`label`,null,[r[12]||=n(` عنوان `,-1),m(f(`input`,{"onUpdate:modelValue":r[3]||=e=>J.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[s,J.value.title]])]),f(`div`,D,[f(`label`,null,[r[13]||=n(` تاریخ `,-1),m(f(`input`,{"onUpdate:modelValue":r[4]||=e=>J.value.date=e,type:`date`},null,512),[[s,J.value.date]])]),f(`label`,null,[r[14]||=n(` ساعت `,-1),m(f(`input`,{"onUpdate:modelValue":r[5]||=e=>J.value.time=e,type:`time`},null,512),[[s,J.value.time]])])]),f(`label`,null,[r[15]||=n(` یادداشت `,-1),m(f(`textarea`,{"onUpdate:modelValue":r[6]||=e=>J.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[s,J.value.note]])]),f(`div`,O,[f(`button`,{type:`button`,class:`btn-cancel`,onClick:r[7]||=e=>K.value=!1},`انصراف`),f(`button`,{type:`button`,class:`btn-save`,disabled:q.value,onClick:ke},g(q.value?`در حال ثبت...`:`ثبت یادآور`),9,k)])])):!W.value&&!G.value?(h(),a(`section`,A,[f(`div`,j,[f(`span`,M,g(De.value),1)]),f(`div`,N,[f(`strong`,null,g(l(v)(Ce.value)),1),r[17]||=f(`span`,null,`مورد`,-1)]),r[18]||=f(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)])):d(``,!0),(h(!0),a(t,null,c(Y.value,e=>(h(),a(`article`,{key:e.id,class:`reminder-card`,onClick:ee=>l(R).push({path:`/reminder`,query:{id:e.id}})},[f(`span`,F,g(e.time),1),f(`button`,{type:`button`,class:`check`,"aria-label":`تکمیل`,onClick:re(ee=>we(e.id),[`stop`])},null,8,I),f(`div`,ve,[f(`div`,L,[f(`strong`,null,g(e.title),1),i(de,{size:16})]),f(`span`,{class:_([`tag`,Ee(e.interactionType)])},g(Te(e.interactionType)),3),f(`p`,ye,g(e.customerName),1),f(`p`,be,g(e.contactName),1),f(`p`,xe,g(e.description),1)]),f(`div`,{class:`avatar`,style:te({background:e.avatarColor})},g(e.avatarLetter),5)],8,P))),128)),f(`button`,{type:`button`,class:`completed-bar`,onClick:r[8]||=e=>$(`past`)},[r[19]||=n(` یادآورهای تکمیل‌شده `,-1),f(`span`,null,g(l(v)(X.value.length)),1)]),f(`button`,{type:`button`,class:`new-btn`,onClick:Oe},[i(le,{size:20,color:`#fff`}),r[20]||=n(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-89857cb4`]]);export{R as default}; \ No newline at end of file diff --git a/dist/assets/SettlementTypeView-DwhWz5lK.js b/dist/assets/SettlementTypeView-CDwgIUrX.js similarity index 96% rename from dist/assets/SettlementTypeView-DwhWz5lK.js rename to dist/assets/SettlementTypeView-CDwgIUrX.js index 948faee..4ddda79 100644 --- a/dist/assets/SettlementTypeView-DwhWz5lK.js +++ b/dist/assets/SettlementTypeView-CDwgIUrX.js @@ -1 +1 @@ -import{$ as e,E as t,F as n,I as r,L as i,M as a,O as o,_ as s,bt as c,ft as l,j as u,k as d,n as f,q as p,tt as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{n as g}from"./format-BHJptHdF.js";import{h as _,n as v,y}from"./index-BQQA5ZX-.js";import{t as b}from"./FormErrorBanner-B8THF9oG.js";import{t as x}from"./CheckoutStepper-BoOJQ-Nf.js";import{t as S}from"./PageHeader-WFa4BbgN.js";import{n as C}from"./orderInvoice-B0L1Aeuk.js";import{t as w}from"./useRequirePricedOrder-bwpoZWB1.js";import{t as T}from"./IconCashSettlement-DDfZWnNk.js";var E={class:`page settlement-mobile-page mobile-only`},D={class:`page__scroll`},O={key:0,class:`settlement-waiting`},k={class:`settlement-invoice`},A={class:`settlement-invoice__value`},j={key:0,class:`settlement-invoice__meta`},M={class:`settlement-mobile-options`},N=[`disabled`],P={class:`settlement-card__icon settlement-card__icon--cash`},F=[`disabled`],I={class:`settlement-card__icon settlement-card__icon--check`},L={class:`desktop-checkout-shell desktop-only`},R={class:`desktop-page__head`},z={class:`desktop-page__subtitle`},B={key:0,class:`settlement-waiting settlement-waiting--desktop`},V={key:1,class:`desktop-settlement-grid`},H=[`disabled`],U={class:`settlement-card__icon settlement-card__icon--cash`},W=[`disabled`],G={class:`settlement-card__icon settlement-card__icon--check`},K=f(i({__name:`SettlementTypeView`,setup(i){let f=s(),K=_(),{orderId:q,order:J,invoiceReady:Y}=w(),X=l(!1),Z=l(``);e(q,async e=>{e&&!K.getOrderById(e)&&await K.fetchOrder(e)},{immediate:!0});let Q=o(()=>J.value?.finalAmount?g(J.value.finalAmount):`—`);async function $(e){if(X.value||!C(J.value)){Z.value=`تا قبل از قیمت‌گذاری مدیریت، امکان انتخاب روش تسویه وجود ندارد.`;return}X.value=!0,Z.value=``;try{await K.chooseSettlement(q.value,e),e===`cash`?f.replace(`/orders/${q.value}/cash`):(K.startCheckDraft(q.value),f.replace(`/orders/${q.value}/check-mode`))}catch(e){Z.value=e instanceof Error?e.message:`ثبت روش تسویه ناموفق بود.`}finally{X.value=!1}}return(e,i)=>(p(),a(t,null,[d(`div`,E,[r(S,{title:`انتخاب نوع تسویه`,subtitle:`پس از صدور فاکتور، نوع تسویه را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(f).push(`/orders/${c(q)}`)}),d(`div`,D,[r(b,{message:Z.value},null,8,[`message`]),c(Y)?(p(),a(t,{key:1},[d(`div`,k,[i[10]||=d(`span`,{class:`settlement-invoice__label`},`مبلغ فاکتور`,-1),d(`strong`,A,h(Q.value),1),c(J)?(p(),a(`span`,j,`سفارش `+h(c(J).orderNumber),1)):u(``,!0)]),d(`div`,M,[d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:i[2]||=e=>$(`cash`)},[d(`span`,P,[r(T,{size:36})]),i[11]||=d(`h3`,null,`تسویه نقدی`,-1),i[12]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,N),d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:i[3]||=e=>$(`check`)},[d(`span`,I,[r(y,{size:36})]),i[13]||=d(`h3`,null,`تسویه چکی`,-1),i[14]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,F)])],64)):(p(),a(`div`,O,[i[8]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمت‌گذاری`,-1),i[9]||=d(`p`,{class:`settlement-waiting__text`},` پیش‌سفارش ثبت شده است. پس از تعیین قیمت توسط مدیریت و صدور فاکتور، از این صفحه روش تسویه (نقد یا چک) را انتخاب کنید. `,-1),r(v,{block:``,variant:`outline`,onClick:i[1]||=e=>c(f).push(`/orders/${c(q)}`)},{default:m(()=>[...i[7]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])]),d(`div`,L,[r(x,{"current-step":4}),d(`header`,R,[i[15]||=d(`h1`,{class:`desktop-page__title`},`انتخاب نوع تسویه`,-1),d(`p`,z,[c(Y)?(p(),a(t,{key:0},[n(` مبلغ فاکتور `+h(Q.value)+h(c(J)?` · سفارش ${c(J).orderNumber}`:``),1)],64)):(p(),a(t,{key:1},[n(`پس از قیمت‌گذاری مدیریت فعال می‌شود`)],64))])]),r(b,{message:Z.value},null,8,[`message`]),c(Y)?(p(),a(`div`,V,[d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:i[5]||=e=>$(`cash`)},[d(`span`,U,[r(T,{size:40})]),i[19]||=d(`h3`,null,`تسویه نقدی`,-1),i[20]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,H),d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:i[6]||=e=>$(`check`)},[d(`span`,G,[r(y,{size:40})]),i[21]||=d(`h3`,null,`تسویه چکی`,-1),i[22]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,W)])):(p(),a(`div`,B,[i[17]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمت‌گذاری`,-1),i[18]||=d(`p`,{class:`settlement-waiting__text`},` پیش‌سفارش ثبت شده است. پس از صدور فاکتور می‌توانید روش تسویه را انتخاب کنید. `,-1),r(v,{variant:`outline`,onClick:i[4]||=e=>c(f).push(`/orders/${c(q)}`)},{default:m(()=>[...i[16]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])],64))}}),[[`__scopeId`,`data-v-6b697aeb`]]);export{K as default}; \ No newline at end of file +import{$ as e,E as t,F as n,I as r,L as i,M as a,O as o,_ as s,bt as c,ft as l,j as u,k as d,n as f,q as p,tt as m,wt as h}from"./BasicIcon-CjTTsi6o.js";import{n as g}from"./format-BHJptHdF.js";import{h as _,n as v,y}from"./index-D3Z8WOeX.js";import{t as b}from"./FormErrorBanner-B8THF9oG.js";import{t as x}from"./CheckoutStepper-BoOJQ-Nf.js";import{t as S}from"./PageHeader-B47bvmJV.js";import{n as C}from"./orderInvoice-B0L1Aeuk.js";import{t as w}from"./useRequirePricedOrder-a2bgwmwB.js";import{t as T}from"./IconCashSettlement-DDfZWnNk.js";var E={class:`page settlement-mobile-page mobile-only`},D={class:`page__scroll`},O={key:0,class:`settlement-waiting`},k={class:`settlement-invoice`},A={class:`settlement-invoice__value`},j={key:0,class:`settlement-invoice__meta`},M={class:`settlement-mobile-options`},N=[`disabled`],P={class:`settlement-card__icon settlement-card__icon--cash`},F=[`disabled`],I={class:`settlement-card__icon settlement-card__icon--check`},L={class:`desktop-checkout-shell desktop-only`},R={class:`desktop-page__head`},z={class:`desktop-page__subtitle`},B={key:0,class:`settlement-waiting settlement-waiting--desktop`},V={key:1,class:`desktop-settlement-grid`},H=[`disabled`],U={class:`settlement-card__icon settlement-card__icon--cash`},W=[`disabled`],G={class:`settlement-card__icon settlement-card__icon--check`},K=f(i({__name:`SettlementTypeView`,setup(i){let f=s(),K=_(),{orderId:q,order:J,invoiceReady:Y}=w(),X=l(!1),Z=l(``);e(q,async e=>{e&&!K.getOrderById(e)&&await K.fetchOrder(e)},{immediate:!0});let Q=o(()=>J.value?.finalAmount?g(J.value.finalAmount):`—`);async function $(e){if(X.value||!C(J.value)){Z.value=`تا قبل از قیمت‌گذاری مدیریت، امکان انتخاب روش تسویه وجود ندارد.`;return}X.value=!0,Z.value=``;try{await K.chooseSettlement(q.value,e),e===`cash`?f.replace(`/orders/${q.value}/cash`):(K.startCheckDraft(q.value),f.replace(`/orders/${q.value}/check-mode`))}catch(e){Z.value=e instanceof Error?e.message:`ثبت روش تسویه ناموفق بود.`}finally{X.value=!1}}return(e,i)=>(p(),a(t,null,[d(`div`,E,[r(S,{title:`انتخاب نوع تسویه`,subtitle:`پس از صدور فاکتور، نوع تسویه را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(f).push(`/orders/${c(q)}`)}),d(`div`,D,[r(b,{message:Z.value},null,8,[`message`]),c(Y)?(p(),a(t,{key:1},[d(`div`,k,[i[10]||=d(`span`,{class:`settlement-invoice__label`},`مبلغ فاکتور`,-1),d(`strong`,A,h(Q.value),1),c(J)?(p(),a(`span`,j,`سفارش `+h(c(J).orderNumber),1)):u(``,!0)]),d(`div`,M,[d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:i[2]||=e=>$(`cash`)},[d(`span`,P,[r(T,{size:36})]),i[11]||=d(`h3`,null,`تسویه نقدی`,-1),i[12]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,N),d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:i[3]||=e=>$(`check`)},[d(`span`,I,[r(y,{size:36})]),i[13]||=d(`h3`,null,`تسویه چکی`,-1),i[14]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,F)])],64)):(p(),a(`div`,O,[i[8]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمت‌گذاری`,-1),i[9]||=d(`p`,{class:`settlement-waiting__text`},` پیش‌سفارش ثبت شده است. پس از تعیین قیمت توسط مدیریت و صدور فاکتور، از این صفحه روش تسویه (نقد یا چک) را انتخاب کنید. `,-1),r(v,{block:``,variant:`outline`,onClick:i[1]||=e=>c(f).push(`/orders/${c(q)}`)},{default:m(()=>[...i[7]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])]),d(`div`,L,[r(x,{"current-step":4}),d(`header`,R,[i[15]||=d(`h1`,{class:`desktop-page__title`},`انتخاب نوع تسویه`,-1),d(`p`,z,[c(Y)?(p(),a(t,{key:0},[n(` مبلغ فاکتور `+h(Q.value)+h(c(J)?` · سفارش ${c(J).orderNumber}`:``),1)],64)):(p(),a(t,{key:1},[n(`پس از قیمت‌گذاری مدیریت فعال می‌شود`)],64))])]),r(b,{message:Z.value},null,8,[`message`]),c(Y)?(p(),a(`div`,V,[d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:i[5]||=e=>$(`cash`)},[d(`span`,U,[r(T,{size:40})]),i[19]||=d(`h3`,null,`تسویه نقدی`,-1),i[20]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,H),d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:i[6]||=e=>$(`check`)},[d(`span`,G,[r(y,{size:40})]),i[21]||=d(`h3`,null,`تسویه چکی`,-1),i[22]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,W)])):(p(),a(`div`,B,[i[17]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمت‌گذاری`,-1),i[18]||=d(`p`,{class:`settlement-waiting__text`},` پیش‌سفارش ثبت شده است. پس از صدور فاکتور می‌توانید روش تسویه را انتخاب کنید. `,-1),r(v,{variant:`outline`,onClick:i[4]||=e=>c(f).push(`/orders/${c(q)}`)},{default:m(()=>[...i[16]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])],64))}}),[[`__scopeId`,`data-v-6b697aeb`]]);export{K as default}; \ No newline at end of file diff --git a/dist/assets/crm-DPw1h61_.js b/dist/assets/crm-DPw1h61_.js deleted file mode 100644 index 0724773..0000000 --- a/dist/assets/crm-DPw1h61_.js +++ /dev/null @@ -1 +0,0 @@ -import{ft as e}from"./BasicIcon-CjTTsi6o.js";import{n as t,o as n,t as r}from"./http-Bfs7sUUO.js";var i=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,n){try{return await t(e,n)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await t(`/catalog/categories`)}catch{try{return await t(`/products/meta/categories`)}catch{return o()}}}async function u(e){return t(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season}})}async function d(e){return t(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e){return c(`/agent/customers/${e}`)}async function g(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function _(e){return c(`/agent/reminders`,{query:{filter:e}})}async function v(e){return c(`/agent/reminders/${e}`)}async function y(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function b(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function x(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrl||e.imageUrls?.[0],subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0}}var S=n(`crm`,()=>{let n=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function S(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function C(e){let t=await u(e);return d.value=t.map(x),d.value}async function w(e){return x(await t(`/products/${e}`))}async function T(){return i.value=await f(),i.value}async function E(e){return a.value=await p(e),a.value}async function D(e){return await h(e)}async function O(e){return g(e)}async function k(e){return m(e)}async function A(e){return o.value=await _(e),o.value}async function j(e){return v(e)}async function M(e){return y(e,!0)}async function N(e){return b(e)}return{loading:n,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:S,loadBrowseProducts:C,loadProductById:w,loadAgentProfile:T,loadCustomers:E,loadCustomerDetail:D,submitMeeting:O,registerCustomer:k,loadReminders:A,loadReminderDetail:j,markReminderComplete:M,createReminder:N}});export{f as n,d as r,S as t}; \ No newline at end of file diff --git a/dist/assets/crm-l0KpZ2AN.js b/dist/assets/crm-l0KpZ2AN.js new file mode 100644 index 0000000..ea08024 --- /dev/null +++ b/dist/assets/crm-l0KpZ2AN.js @@ -0,0 +1 @@ +import{ft as e}from"./BasicIcon-CjTTsi6o.js";import{n as t,o as n,t as r}from"./http-Bfs7sUUO.js";var i=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,n){try{return await t(e,n)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await t(`/catalog/categories`)}catch{try{return await t(`/products/meta/categories`)}catch{return o()}}}async function u(e){return t(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,catalogId:e?.catalogId,companyId:e?.companyId}})}async function d(e){return t(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e){return c(`/agent/customers/${e}`)}async function g(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function _(e){return c(`/agent/reminders`,{query:{filter:e}})}async function v(e){return c(`/agent/reminders/${e}`)}async function y(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function b(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function x(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrl||e.imageUrls?.[0],subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,catalogName:e.catalogName,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0}}var S=n(`crm`,()=>{let n=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function S(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function C(e){let t=await u(e);return d.value=t.map(x),d.value}async function w(e){return x(await t(`/products/${e}`))}async function T(){return i.value=await f(),i.value}async function E(e){return a.value=await p(e),a.value}async function D(e){return await h(e)}async function O(e){return g(e)}async function k(e){return m(e)}async function A(e){return o.value=await _(e),o.value}async function j(e){return v(e)}async function M(e){return y(e,!0)}async function N(e){return b(e)}return{loading:n,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:S,loadBrowseProducts:C,loadProductById:w,loadAgentProfile:T,loadCustomers:E,loadCustomerDetail:D,submitMeeting:O,registerCustomer:k,loadReminders:A,loadReminderDetail:j,markReminderComplete:M,createReminder:N}});export{i as a,a as i,f as n,d as r,S as t}; \ No newline at end of file diff --git a/dist/assets/dist-D9CyXEdG.js b/dist/assets/dist-D9CyXEdG.js deleted file mode 100644 index 3e06f3c..0000000 --- a/dist/assets/dist-D9CyXEdG.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as e,G as t,H as n,O as r,R as i,U as a,V as o,_t as s,at as c,bt as l,dt as u,et as d,ft as f,ht as p,lt as m,mt as h,rt as g,st as _,yt as v}from"./BasicIcon-CjTTsi6o.js";function y(e,t){return c()?(m(e,t),!0):!1}var b=new WeakMap,x=(...e)=>{let t=e[0],r=i()?.proxy??c();if(r==null&&!o())throw Error(`injectLocal must be called in setup`);return r&&b.has(r)&&t in b.get(r)?b.get(r)[t]:n(...e)},S=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var C=Object.prototype.toString,w=e=>C.call(e)===`[object Object]`,T=()=>{};function E(...e){if(e.length!==1)return s(...e);let t=e[0];return typeof t==`function`?u(g(()=>({get:t,set:T}))):f(t)}function D(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 O=e=>e();function k(e=O,t={}){let{initialState:n=`active`}=t,r=E(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:h(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function A(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function j(e){return Array.isArray(e)?e:[e]}function M(e){return e||i()}function ee(t,n,r={}){let{eventFilter:i=O,...a}=r;return e(t,D(i,n),a)}function N(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=k(r,{initialState:i});return{stop:ee(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function P(e,n=!0,r){M(r)?t(e,r):n?e():a(e)}function F(t,n=1e3,r={}){let{immediate:i=!0,immediateCallback:a=!1}=r,o=null,s=p(!1);function c(){o&&=(clearInterval(o),null)}function l(){s.value=!1,c()}function u(){let e=v(n);e<=0||(s.value=!0,a&&t(),c(),s.value&&(o=setInterval(t,e)))}return i&&S&&u(),(_(n)||typeof n==`function`)&&y(e(n,()=>{s.value&&S&&u()})),y(l),{isActive:h(s),pause:l,resume:u}}function I(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=p(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},v(t))}return r&&(a.value=!0,S&&l()),y(c),{isPending:h(a),start:l,stop:c}}function L(t,n,r){return e(t,n,{...r,immediate:!0})}var R=S?window:void 0;S&&window.document,S&&window.navigator,S&&window.location;function z(e){let t=v(e);return t?.$el??t}function B(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=r(()=>{let t=j(v(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return L(()=>[n.value?.map(e=>z(e))??[R].filter(e=>e!=null),j(v(n.value?e[1]:e[0])),j(l(n.value?e[2]:e[1])),v(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=w(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`})}function V(){let e=p(!1),n=i();return n&&t(()=>{e.value=!0},n),e}function H(e){let t=V();return r(()=>(t.value,!!e()))}var U=Symbol(`vueuse-ssr-width`);function W(){let e=o()?x(U,null):null;return typeof e==`number`?e:void 0}function G(e,t={}){let{window:n=R,ssrWidth:i=W()}=t,a=H(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),o=p(typeof i==`number`),s=p(),c=p(!1);return d(()=>{if(o.value){o.value=!a.value;let t=v(e).split(`,`);c.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=A(n[1])),r&&a&&(a=i<=A(r[1])),t?!a:a});return}a.value&&(s.value=n.matchMedia(v(e)),c.value=s.value.matches)}),B(s,`change`,e=>{c.value=e.matches},{passive:!0}),r(()=>c.value)}var K=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},q=`__vueuse_ssr_handlers__`,J=Y();function Y(){return q in K||(K[q]=K[q]||{}),K[q]}function X(e,t){return J[e]||t}function Z(e){return G(`(prefers-color-scheme: dark)`,e)}function Q(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 te={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()}},$=`vueuse-storage`;function ne(t,n,i,o={}){let{flush:s=`pre`,deep:c=!0,listenToStorageChanges:l=!0,writeDefaults:u=!0,mergeDefaults:d=!1,shallow:m,window:h=R,eventFilter:g,onError:_=e=>{console.error(e)},initOnMounted:y}=o,b=(m?p:f)(typeof n==`function`?n():n),x=r(()=>v(t));if(!i)try{i=X(`getDefaultStorage`,()=>R?.localStorage)()}catch(e){_(e)}if(!i)return b;let S=v(n),C=Q(S),w=o.serializer??te[C],{pause:T,resume:E}=N(b,e=>k(e),{flush:s,deep:c,eventFilter:g});e(x,()=>j(),{flush:s});let D=!1;h&&l&&(i instanceof Storage?B(h,`storage`,e=>{y&&!D||j(e)},{passive:!0}):B(h,$,e=>{y&&!D||M(e)})),y?P(()=>{D=!0,j()}):j();function O(e,t){if(h){let n={key:x.value,oldValue:e,newValue:t,storageArea:i};h.dispatchEvent(i instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent($,{detail:n}))}}function k(e){try{let t=i.getItem(x.value);if(e==null)O(t,null),i.removeItem(x.value);else{let n=w.write(e);t!==n&&(i.setItem(x.value,n),O(t,n))}}catch(e){_(e)}}function A(e){let t=e?e.newValue:i.getItem(x.value);if(t==null)return u&&S!=null&&i.setItem(x.value,w.write(S)),S;if(!e&&d){let e=w.read(t);return typeof d==`function`?d(e,S):C===`object`&&!Array.isArray(e)?{...S,...e}:e}return typeof t==`string`?w.read(t):t}function j(e){if(!(e&&e.storageArea!==i)){if(e&&e.key==null){b.value=S;return}if(!(e&&e.key!==x.value)){T();try{let t=w.write(b.value);(e===void 0||e?.newValue!==t)&&(b.value=A(e))}catch(e){_(e)}finally{e?a(E):E()}}}}function M(e){j(e.detail)}return b}export{I as a,F as i,Z as n,ne as r,G as t}; \ No newline at end of file diff --git a/dist/assets/dist-DLhmLSgX.js b/dist/assets/dist-DLhmLSgX.js new file mode 100644 index 0000000..12270cb --- /dev/null +++ b/dist/assets/dist-DLhmLSgX.js @@ -0,0 +1 @@ +import{$ as e,G as t,H as n,O as r,R as i,U as a,V as o,_t as s,at as c,bt as l,dt as u,et as d,ft as f,ht as p,lt as m,mt as h,rt as g,st as _,yt as v}from"./BasicIcon-CjTTsi6o.js";function y(e,t){return c()?(m(e,t),!0):!1}var b=new WeakMap,x=(...e)=>{let t=e[0],r=i()?.proxy??c();if(r==null&&!o())throw Error(`injectLocal must be called in setup`);return r&&b.has(r)&&t in b.get(r)?b.get(r)[t]:n(...e)},S=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var C=Object.prototype.toString,w=e=>C.call(e)===`[object Object]`,T=()=>{},E=D();function D(){var e,t;return S&&!!((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 O(...e){if(e.length!==1)return s(...e);let t=e[0];return typeof t==`function`?u(g(()=>({get:t,set:T}))):f(t)}function k(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 A=e=>e();function j(e=A,t={}){let{initialState:n=`active`}=t,r=O(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:h(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function M(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function N(e){return Array.isArray(e)?e:[e]}function P(e){return e||i()}function F(t,n,r={}){let{eventFilter:i=A,...a}=r;return e(t,k(i,n),a)}function I(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=j(r,{initialState:i});return{stop:F(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function L(e,n=!0,r){P(r)?t(e,r):n?e():a(e)}function R(t,n=1e3,r={}){let{immediate:i=!0,immediateCallback:a=!1}=r,o=null,s=p(!1);function c(){o&&=(clearInterval(o),null)}function l(){s.value=!1,c()}function u(){let e=v(n);e<=0||(s.value=!0,a&&t(),c(),s.value&&(o=setInterval(t,e)))}return i&&S&&u(),(_(n)||typeof n==`function`)&&y(e(n,()=>{s.value&&S&&u()})),y(l),{isActive:h(s),pause:l,resume:u}}function z(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=p(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},v(t))}return r&&(a.value=!0,S&&l()),y(c),{isPending:h(a),start:l,stop:c}}function B(t,n,r){return e(t,n,{...r,immediate:!0})}var V=S?window:void 0;S&&window.document,S&&window.navigator,S&&window.location;function H(e){let t=v(e);return t?.$el??t}function U(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=r(()=>{let t=N(v(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return B(()=>[n.value?.map(e=>H(e))??[V].filter(e=>e!=null),N(v(n.value?e[1]:e[0])),N(l(n.value?e[2]:e[1])),v(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=w(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 W=!1;function G(e,t,n={}){let{window:r=V,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:T,cancel:T,trigger:T}:T;if(E&&!W){W=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,T,e)),r.document.documentElement.addEventListener(`click`,T,e)}let c=!0,l=e=>v(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=H(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=v(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=v(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=H(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=[U(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),U(r,`pointerdown`,t=>{let n=H(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&U(r,`blur`,n=>{setTimeout(()=>{let i=H(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 K(){let e=p(!1),n=i();return n&&t(()=>{e.value=!0},n),e}function q(e){let t=K();return r(()=>(t.value,!!e()))}var J=Symbol(`vueuse-ssr-width`);function Y(){let e=o()?x(J,null):null;return typeof e==`number`?e:void 0}function X(e,t={}){let{window:n=V,ssrWidth:i=Y()}=t,a=q(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),o=p(typeof i==`number`),s=p(),c=p(!1);return d(()=>{if(o.value){o.value=!a.value;let t=v(e).split(`,`);c.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=M(n[1])),r&&a&&(a=i<=M(r[1])),t?!a:a});return}a.value&&(s.value=n.matchMedia(v(e)),c.value=s.value.matches)}),U(s,`change`,e=>{c.value=e.matches},{passive:!0}),r(()=>c.value)}var Z=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},Q=`__vueuse_ssr_handlers__`,ee=te();function te(){return Q in Z||(Z[Q]=Z[Q]||{}),Z[Q]}function ne(e,t){return ee[e]||t}function re(e){return X(`(prefers-color-scheme: dark)`,e)}function ie(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 ae={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()}},$=`vueuse-storage`;function oe(t,n,i,o={}){let{flush:s=`pre`,deep:c=!0,listenToStorageChanges:l=!0,writeDefaults:u=!0,mergeDefaults:d=!1,shallow:m,window:h=V,eventFilter:g,onError:_=e=>{console.error(e)},initOnMounted:y}=o,b=(m?p:f)(typeof n==`function`?n():n),x=r(()=>v(t));if(!i)try{i=ne(`getDefaultStorage`,()=>V?.localStorage)()}catch(e){_(e)}if(!i)return b;let S=v(n),C=ie(S),w=o.serializer??ae[C],{pause:T,resume:E}=I(b,e=>k(e),{flush:s,deep:c,eventFilter:g});e(x,()=>j(),{flush:s});let D=!1;h&&l&&(i instanceof Storage?U(h,`storage`,e=>{y&&!D||j(e)},{passive:!0}):U(h,$,e=>{y&&!D||M(e)})),y?L(()=>{D=!0,j()}):j();function O(e,t){if(h){let n={key:x.value,oldValue:e,newValue:t,storageArea:i};h.dispatchEvent(i instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent($,{detail:n}))}}function k(e){try{let t=i.getItem(x.value);if(e==null)O(t,null),i.removeItem(x.value);else{let n=w.write(e);t!==n&&(i.setItem(x.value,n),O(t,n))}}catch(e){_(e)}}function A(e){let t=e?e.newValue:i.getItem(x.value);if(t==null)return u&&S!=null&&i.setItem(x.value,w.write(S)),S;if(!e&&d){let e=w.read(t);return typeof d==`function`?d(e,S):C===`object`&&!Array.isArray(e)?{...S,...e}:e}return typeof t==`string`?w.read(t):t}function j(e){if(!(e&&e.storageArea!==i)){if(e&&e.key==null){b.value=S;return}if(!(e&&e.key!==x.value)){T();try{let t=w.write(b.value);(e===void 0||e?.newValue!==t)&&(b.value=A(e))}catch(e){_(e)}finally{e?a(E):E()}}}}function M(e){j(e.detail)}return b}export{R as a,oe as i,X as n,z as o,re as r,G as t}; \ No newline at end of file diff --git a/dist/assets/index-BBP3IozY.css b/dist/assets/index-BBP3IozY.css new file mode 100644 index 0000000..32ba295 --- /dev/null +++ b/dist/assets/index-BBP3IozY.css @@ -0,0 +1 @@ +.bottom-nav[data-v-18a88055]{min-height:var(--nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0));flex-shrink:0;justify-content:space-around;align-items:flex-end;display:flex}@media (width>=768px){.bottom-nav[data-v-18a88055]{display:none}}.nav-item[data-v-18a88055]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;margin:0;padding:4px 2px 2px;transition:color .15s;display:flex;position:relative}.nav-item[data-v-18a88055]:focus,.nav-item[data-v-18a88055]:focus-visible{outline:none}.nav-item.active[data-v-18a88055]{color:var(--color-primary);background:0 0}.nav-item.active .nav-label[data-v-18a88055]{font-weight:700}.nav-item--fab[data-v-18a88055]{color:var(--color-text-muted);justify-content:flex-end}.nav-item--fab.active[data-v-18a88055]{color:var(--color-primary)}.nav-icon[data-v-18a88055]{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:visible}.nav-icon--fab[data-v-18a88055]{background:var(--color-primary);color:#fff;width:52px;height:52px;box-shadow:0 6px 16px rgba(var(--color-primary-rgb), .35);border-radius:999px;margin-top:-28px}.nav-label[data-v-18a88055]{white-space:nowrap;font-size:.6875rem;font-weight:500;line-height:1.2}.nav-label--fab[data-v-18a88055]{font-size:.625rem}.nav-badge[data-v-18a88055]{top:-2px;background:var(--color-danger);color:#fff;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;inset-inline-end:-2px}.desktop-sidebar[data-v-9a74c6bb]{width:var(--sidebar-width);background:var(--color-surface);border-inline-start:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100%;padding:0;display:none;overflow-y:auto}@media (width>=768px){.desktop-sidebar[data-v-9a74c6bb]{display:flex}}.desktop-sidebar__brand[data-v-9a74c6bb]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;border-bottom:none;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:0 20px;display:flex}@media (width>=1200px){.desktop-sidebar__brand[data-v-9a74c6bb]{padding:0 28px}}.desktop-sidebar__logo-mark[data-v-9a74c6bb]{border-radius:var(--radius-sm);background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;font-weight:700;display:flex}.desktop-sidebar__title[data-v-9a74c6bb]{color:var(--color-primary);font-size:1rem;font-weight:700;display:block}.desktop-sidebar__nav[data-v-9a74c6bb]{flex-direction:column;flex:1;gap:4px;padding:12px 12px 0;display:flex}@media (width>=1200px){.desktop-sidebar__nav[data-v-9a74c6bb]{padding:16px 16px 0}}.desktop-sidebar__item[data-v-9a74c6bb]{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--color-text-secondary);text-align:start;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:12px;padding:11px 12px;transition:background .15s,color .15s;display:flex;position:relative}@media (width>=1200px){.desktop-sidebar__item[data-v-9a74c6bb]{padding:11px 14px}}.desktop-sidebar__item[data-v-9a74c6bb]:hover{background:var(--color-elevated);color:var(--color-text)}.desktop-sidebar__item[data-v-9a74c6bb]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.desktop-sidebar__item.active[data-v-9a74c6bb]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.desktop-sidebar__item.active .desktop-sidebar__icon[data-v-9a74c6bb]{color:var(--color-primary)}.desktop-sidebar__icon[data-v-9a74c6bb]{width:22px;height:22px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-sidebar__label[data-v-9a74c6bb]{font-size:.875rem;font-weight:inherit;white-space:nowrap;display:block}.desktop-sidebar__badge[data-v-9a74c6bb]{background:var(--color-danger);color:var(--color-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-inline-start:auto;padding:0 4px;font-size:.6875rem;font-weight:700;display:flex}.desktop-sidebar__support[data-v-9a74c6bb]{background:var(--color-primary-soft);border-radius:var(--radius-lg);flex-direction:column;gap:8px;margin:auto 12px 20px;padding:14px;display:flex}@media (width>=1200px){.desktop-sidebar__support[data-v-9a74c6bb]{margin:auto 16px 24px;padding:16px}}.desktop-sidebar__support-icon[data-v-9a74c6bb]{background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;display:flex}.desktop-sidebar__support-title[data-v-9a74c6bb]{color:var(--color-text);font-size:.875rem;font-weight:700}.desktop-sidebar__support-text[data-v-9a74c6bb]{color:var(--color-text-muted);margin:0;font-size:.6875rem;line-height:1.5}.desktop-sidebar__support-btn[data-v-9a74c6bb]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);text-align:center;margin-top:4px;padding:10px 12px;font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.desktop-sidebar__support-btn[data-v-9a74c6bb]:hover{opacity:.9}.auth-theme-toggle[data-v-3a58cb84]{color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.auth-theme-toggle--floating[data-v-3a58cb84]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;width:40px;height:40px;color:var(--color-text);box-shadow:none;background:0 0;position:fixed;inset-inline-end:16px}.auth-theme-toggle--inline[data-v-3a58cb84]{width:40px;height:40px;color:inherit;flex-shrink:0;position:relative}.auth-theme-toggle[data-v-3a58cb84]:hover{color:var(--color-primary)}.user-avatar[data-v-5c562bf0]{color:inherit;background:#ffffff2e;border-radius:999px;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.user-avatar__img[data-v-5c562bf0]{object-fit:cover;width:100%;height:100%;display:block}.desktop-header[data-v-d90aac23]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;background:var(--color-surface);border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:none}@media (width>=768px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:16px;display:flex}}@media (width>=1200px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:24px}}.desktop-header__spacer[data-v-d90aac23]{flex:1;min-width:0}.desktop-header__actions[data-v-d90aac23]{flex-shrink:0;align-items:center;gap:16px;margin-inline-start:auto;display:flex}.desktop-header__company[data-v-d90aac23]{color:var(--color-text-muted);border-inline-end:1px solid var(--color-border);padding-inline-end:8px;font-size:.8125rem;font-weight:600;display:none}@media (width>=992px){.desktop-header__company[data-v-d90aac23]{display:block}}.desktop-header__icon-btn[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.desktop-header__notif-badge[data-v-d90aac23]{top:4px;background:var(--color-danger);min-width:18px;height:18px;color:var(--color-on-primary,#fff);border:2px solid var(--color-surface);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;inset-inline-end:4px}.desktop-header__user-wrap[data-v-d90aac23]{position:relative}.desktop-header__user[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;align-items:center;gap:10px;padding:6px 12px 6px 8px;font-family:inherit;display:flex}.desktop-header__avatar[data-v-d90aac23]{background:var(--color-primary);color:var(--color-surface)}.desktop-header__user-name[data-v-d90aac23]{color:var(--color-text);font-size:.875rem;font-weight:600;display:none}@media (width>=1200px){.desktop-header__user-name[data-v-d90aac23]{display:block}}.desktop-header__chevron[data-v-d90aac23]{color:var(--color-text-muted);transform:rotate(-90deg)}.desktop-header__menu[data-v-d90aac23]{top:calc(100% + 6px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);z-index:100;padding:6px;position:absolute;inset-inline-end:0}.desktop-header__menu button[data-v-d90aac23]{text-align:start;cursor:pointer;border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:0 0;border:none;padding:10px 12px;font-family:inherit;font-size:.875rem}.desktop-header__menu button[data-v-d90aac23]:hover{background:var(--color-elevated)}.desktop-header__menu-logout[data-v-d90aac23]{color:var(--color-danger)!important}.btn[data-v-3628a8bb]{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn[data-v-3628a8bb]:disabled{opacity:.55;cursor:not-allowed}.btn-block[data-v-3628a8bb]{width:100%}.btn-sm[data-v-3628a8bb]{min-height:36px;padding:0 14px;font-size:.8125rem}.btn-md[data-v-3628a8bb]{min-height:var(--btn-height);padding:0 24px;font-size:.9375rem}.btn-lg[data-v-3628a8bb]{min-height:52px;padding:0 28px;font-size:1rem}.btn-primary[data-v-3628a8bb]{background:var(--color-primary);color:var(--color-surface)}.btn-primary[data-v-3628a8bb]:not(:disabled):hover{background:var(--color-primary-dark)}.btn-secondary[data-v-3628a8bb]{background:var(--color-primary-light);color:var(--color-primary)}.btn-outline[data-v-3628a8bb]{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-danger[data-v-3628a8bb]{background:var(--color-danger);color:var(--color-surface)}.btn-ghost[data-v-3628a8bb]{color:var(--color-text-muted);background:0 0}.btn-spinner[data-v-3628a8bb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-3628a8bb}@keyframes spin-3628a8bb{to{transform:rotate(360deg)}}.confirm-dialog[data-v-2e50e2a7]{padding:20px}.confirm-dialog__title[data-v-2e50e2a7]{margin:0 0 8px;font-size:1.0625rem;font-weight:700}.confirm-dialog__message[data-v-2e50e2a7]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.confirm-dialog__actions[data-v-2e50e2a7]{margin-top:20px}@media (width>=768px){.confirm-dialog__actions[data-v-2e50e2a7]{flex-direction:row;justify-content:flex-end}}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.btn-block{width:100%}.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.grid{display:grid}.inline-grid{display:inline-grid}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.inline,.empty-inline:empty{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-10{height:2.5rem}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.max-w-full{max-width:100%}.min-w-0{min-width:0}.w-10{width:2.5rem}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.b,.border{border-width:1px}.border-0{border-width:0}.border-t{border-top-width:1px}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-full{border-radius:9999px}.bg-\[var\(--color-primary-soft\)\]{background-color:var(--color-primary-soft)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.pt-3{padding-top:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text-muted\)\],.text-muted{color:var(--color-text-muted)}.text-\[var\(--color-text\)\],.hover\:text-text:hover{color:var(--color-text)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline{text-decoration-line:underline}.tab{tab-size:4}.outline{outline-style:solid}.blur{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_UltraLight-hW-WDKY9.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#0a353c;--color-primary-hover:#072a2f;--color-primary-soft:#e8f4f1;--color-primary-dark:#062428;--color-primary-light:#e8f4f1;--color-primary-rgb:10, 53, 60;--color-accent-navy:#1b223c;--color-accent-navy-rgb:27, 34, 60;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f6f8f7;--color-page-background:#f6f8f7;--color-shell-bg:#eef1f0;--color-surface:#fff;--color-border:#e5e9e8;--color-text:#121212;--color-text-primary:#121212;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--color-tab-inactive-bg:#f1f5f9;--color-tab-inactive-text:#64748b;--color-summary-bg:#f1f5f9;--color-elevated:#fff;--color-brand-warm:#f3ece3;--color-brand-warm-text:#1a202c;--color-brand-warm-muted:#718096;--color-level-gold:#c9a227;--color-level-gold-soft:#f7efd6;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 4px 16px #1018280f;--shadow-card:0 1px 2px #1018280a, 0 4px 16px #1018280a;--shadow-frame:0 8px 32px #0f172a1a;--nav-height:64px;--page-padding:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-gap:12px;--content-max-width:1360px;--form-max-width:520px;--auth-form-max-width:440px;--summary-panel-width:320px;--sidebar-width:240px;--sidebar-width-compact:72px;--header-height:70px;--app-shell-breakpoint:768px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-height:48px;--desktop-breakpoint:1200px}html.dark{--color-primary:#5eb8ad;--color-primary-hover:#7ad0c5;--color-primary-soft:#14353a;--color-primary-dark:#7ad0c5;--color-primary-light:#14353a;--color-primary-rgb:94, 184, 173;--color-accent-navy:#9bb0d0;--color-accent-navy-rgb:155, 176, 208;--color-success:#3dd68c;--color-success-light:#123528;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-page-background:#0b0f14;--color-shell-bg:#080b10;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-text:#eef2f8;--color-text-primary:#eef2f8;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--color-tab-inactive-bg:#1a2230;--color-tab-inactive-text:#9aa8bc;--color-summary-bg:#1a2230;--color-brand-warm:#2a241c;--color-brand-warm-text:#f3ebe0;--color-brand-warm-muted:#b9a88d;--color-level-gold:#e0c35a;--color-level-gold-soft:#3a3420;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 8px 24px #00000073;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000059;--shadow-frame:0 12px 40px #00000080}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px;overflow:hidden}body{font-family:var(--font-family);background:var(--color-shell-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5;overflow:hidden}#app{height:100dvh;overflow:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;text-align:right}.page{background:var(--color-bg);min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.page__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.page__scroll--with-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.page-title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700;line-height:1.35}.page-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.card{background:var(--color-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text);padding:16px}.auth-page{background:0 0}.auth-top{padding:8px var(--page-padding);background:var(--color-surface);grid-template-columns:40px 1fr 40px;align-items:center;gap:4px;display:grid}.auth-top__title{text-align:center;color:var(--color-text);margin:0;font-size:1rem;font-weight:700}.auth-top .icon-btn{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;padding:0;display:grid}.auth-body{padding:20px var(--page-padding) 32px;background:0 0;flex-direction:column;gap:16px;display:flex}.auth-lead{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.auth-page .card{width:100%;max-width:var(--auth-form-max-width);box-shadow:none;background:0 0;border:none;margin-inline:auto;padding:0}.auth-switch{width:100%;max-width:var(--auth-form-max-width);text-align:center;color:var(--color-text-muted);margin:0 auto;font-size:.875rem}.auth-switch a{color:var(--color-primary);font-weight:700}.auth-page .input,.auth-page .job-select,.auth-page .otp-box{background:var(--color-surface);border:1px solid #eeeef1;border-radius:12px}.auth-page .btn{border-radius:12px}.card+.card{margin-top:var(--page-gap)}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.875rem;line-height:1.5}.alert-info{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #cbd5e1}.alert-warning{background:var(--color-warning-light);color:#9a3412;border:1px solid #fed7aa}.alert-success{background:var(--color-success-light);color:#155724;border:1px solid #c3e6cb}.alert-danger{background:var(--color-danger-light);color:#991b1b;border:1px solid #fecaca}.form-group{margin-bottom:16px}.form-label{color:var(--color-text);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-hint{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.divider{background:var(--color-border);height:1px;margin:16px 0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-center{text-align:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.flex-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.sticky-footer{bottom:calc(var(--nav-height) + 12px);z-index:50;width:100%;max-width:100%;padding-inline:var(--page-padding);box-sizing:border-box;position:fixed;inset-inline:0}.sticky-footer-inner{max-width:100%}.no-nav .page{padding-bottom:0}.no-nav .sticky-footer{bottom:0}.dialog-overlay{z-index:200;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-overlay .dialog{width:100%;max-width:400px}.dialog-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.desktop-only{display:none!important}.mobile-hidden{display:block}.desktop-hidden{display:none!important}@media (width>=768px){.mobile-only,.mobile-block{display:none!important}.desktop-only{display:block!important}.mobile-hidden{display:none!important}.desktop-hidden{display:block!important}.desktop-only-flex{display:flex!important}.desktop-only-grid{display:grid!important}.page{background:0 0;padding:0}.page__scroll--with-nav{padding-bottom:0}}.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:opacity .22s,transform .22s}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.page-forward-enter-from{opacity:0;transform:translate(-18px)}.page-forward-leave-to{opacity:0;transform:translate(12px)}.page-back-enter-from{opacity:0;transform:translate(18px)}.page-back-leave-to{opacity:0;transform:translate(-12px)}@media (prefers-reduced-motion:reduce){.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:none}}.app-shell{background:var(--color-shell-bg);width:100%;height:100dvh;display:flex;overflow:hidden}.app-layout{flex-direction:row;width:100%;height:100%;min-height:0;display:flex}.app-frame{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-main,.app-main__content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-content{width:100%;min-height:0;max-width:var(--content-max-width);flex-direction:column;flex:1;margin-inline:auto;padding-inline:0;display:flex;position:relative}.page-transition{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.app-shell--with-nav{justify-content:stretch}.app-shell--with-nav .app-frame{max-width:100%;box-shadow:none;border-radius:0;margin:0}@media (width>=768px){.app-shell--with-nav,.app-shell--with-nav .app-frame{background:var(--color-page-background)}.app-shell--with-nav .app-layout{position:relative}.app-shell--with-nav .app-layout:after{content:"";top:var(--header-height);background:var(--color-border);z-index:30;pointer-events:none;height:1px;position:absolute;inset-inline:0}.app-shell--with-nav .app-main__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--with-nav .app-content,.app-shell--with-nav .page-transition{flex:1 0 auto;min-height:min-content;overflow:visible}.app-shell--with-nav .page-transition>*{flex:1 0 auto;height:auto;min-height:min-content;max-height:none;overflow:visible}}.app-shell--no-nav{background:var(--color-page-background);justify-content:center;align-items:center;padding:16px}.app-shell--no-nav .app-layout{max-width:var(--form-max-width);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);overflow:hidden}.app-shell--no-nav .app-frame{max-width:var(--form-max-width);border-radius:var(--radius-lg);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-frame);background:var(--color-surface);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--no-nav .app-main,.app-shell--no-nav .app-main__content,.app-shell--no-nav .app-content,.app-shell--no-nav .page-transition{flex:1 0 auto;height:auto;min-height:min-content;overflow:visible}.app-shell--no-nav .app-content{padding-inline:var(--page-padding)}.app-shell--no-nav .page{background:0 0;min-height:auto;overflow:visible}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 32px))}.app-shell--no-nav.app-shell--wide .app-frame{background:var(--color-bg)}@media (width>=768px){.app-shell--no-nav{padding:24px}.app-shell--no-nav .app-layout,.app-shell--no-nav .app-frame{max-height:calc(100dvh - 48px)}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 48px))}:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}html,body{height:auto;overflow:auto}#app{height:100dvh;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:6px;height:6px;display:block}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.sticky-footer{max-width:min(var(--content-max-width), calc(100% - 2 * var(--page-padding)));bottom:0}.no-nav .sticky-footer{bottom:0}.auth-body{align-items:center;padding-block:32px 48px}.auth-lead,.auth-page .card,.auth-switch{width:100%;max-width:var(--auth-form-max-width)}.company-select-page__list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:20px;display:grid}.company-brand-card{min-height:220px}.catalog-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.product-page__scroll{padding-bottom:88px}.settlement-options,.mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:720px;margin-inline:auto;display:grid}.company-select-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.company-select-page__header{max-width:560px;margin-inline:auto}.catalog-page .page__scroll,.orders-page__scroll,.product-page .product-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cart-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.cart-page__body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:start;gap:16px 20px;display:grid}.cart-page__company{grid-column:1/-1;margin-bottom:0;font-size:.9375rem}.cart-page__scroll{grid-column:1;max-height:none;overflow:visible}.cart-page__footer{box-shadow:var(--shadow-md);border-radius:var(--radius-md);border-top:none;border:1px solid var(--color-border);grid-area:1/2/-1;margin:0;padding:16px;position:sticky;top:16px}.cart-table__head{position:static}.check-list-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.check-list-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.summary-cards{gap:16px}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.rass-panel{max-width:480px;margin-inline:auto}.profile-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.profile-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-menu__item{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.order-detail-page__body{-webkit-overflow-scrolling:touch;width:100%;max-width:none;margin-inline:0;overflow-y:auto}.order-detail-page__footer{width:100%;max-width:none;margin-inline:0}.checkout-page__scroll,.cash-page__scroll,.settlement-page__scroll,.check-mode-page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.cash-page{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cash-page__footer{max-width:var(--form-max-width);width:100%;box-shadow:none;border-top:none;grid-template-columns:1fr 1fr;gap:12px;margin-inline:auto;padding-top:16px;display:grid}.accounts-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bank-card+.bank-card,.cash-page__submit{margin-top:0}.order-info-card{max-width:520px;margin-inline:auto}.profile-edit-page .page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.success-page__scroll{max-width:var(--form-max-width);flex-direction:column;align-items:center;width:100%;margin-inline:auto;display:flex}.dialog-overlay .dialog,.dialog-overlay .card.dialog{width:100%;max-width:480px}.dialog-actions{flex-direction:row;justify-content:flex-end}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1440px){.product-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1920px){:root{--content-max-width:1120px}}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}.page{padding:20px var(--page-padding-tablet) 28px;max-width:var(--content-max-width);background:0 0;flex:1 0 auto;width:100%;min-height:auto;margin-inline:auto;overflow:visible}.page__scroll{flex:none;min-height:auto;overflow:visible}.page__scroll--with-nav{padding-bottom:0}.page-head{margin-bottom:20px}.page-head__title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700}.page-head__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-page__desktop-head{margin-bottom:20px}.orders-page__desktop-title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.orders-page__desktop-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.orders-stat-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:16px 18px 14px;display:flex}.orders-stat-card__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.orders-stat-card__label{font-size:.8125rem;font-weight:600;line-height:1.4}.orders-stat-card__label--total,.orders-stat-card__label--review{color:var(--color-text)}.orders-stat-card__label--active{color:#ea580c}.orders-stat-card__label--done{color:var(--color-success)}.orders-stat-card__value{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0 0 12px;font-size:1.75rem;font-weight:700;line-height:1.15}.orders-stat-card__link{color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin-top:auto;padding:0;font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:underline}.orders-stat-card__link:hover{color:var(--color-primary-hover)}.orders-stat-card__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.orders-stat-card__icon--total,.orders-stat-card__icon--review{background:var(--color-primary-soft);color:var(--color-primary)}.orders-stat-card__icon--active{background:var(--color-warning-light);color:#ea580c}.orders-stat-card__icon--done{background:var(--color-success-soft);color:var(--color-success)}.orders-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.orders-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.orders-toolbar__filter-btn{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;height:40px;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.orders-toolbar__filter-btn:hover{background:var(--color-primary-hover)}.orders-toolbar__pills{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.orders-filter-pill{border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 16px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.orders-filter-pill:hover{color:var(--color-text);border-color:#cbd5e1}.orders-filter-pill--active{background:var(--color-primary-soft);color:var(--color-primary);border-color:#c7d7ff;font-weight:600}.orders-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);overflow:hidden}.orders-table-scroll{overflow-x:auto}.orders-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.875rem}.orders-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 16px;font-size:.8125rem;font-weight:600}.orders-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:16px}.orders-table tr:last-child td{border-bottom:none}.orders-table tbody tr:hover td{background:var(--color-elevated)}.orders-table__number{color:var(--color-text);white-space:nowrap;font-weight:700}.orders-table__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.orders-table__date{color:var(--color-text-muted);white-space:nowrap;font-size:.8125rem}.orders-table__actions{align-items:center;gap:8px;display:flex}.orders-table__action{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);cursor:pointer;white-space:nowrap;padding:7px 16px;font-family:inherit;font-size:.8125rem;font-weight:600}.orders-table__action:hover{background:var(--color-primary-soft);border-color:#c7d7ff}.orders-table__menu{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-table__menu:hover{background:var(--color-elevated);color:var(--color-text)}.orders-pagination{border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-size:.8125rem;display:flex}.orders-pagination__summary{white-space:nowrap}.orders-pagination__controls{align-items:center;gap:4px;display:flex}.orders-pagination__arrow{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:32px;height:32px;color:var(--color-text);justify-content:center;align-items:center;padding:0;display:flex}.orders-pagination__arrow:disabled{opacity:.4;cursor:not-allowed}.orders-pagination__arrow:not(:disabled):hover{border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__arrow-icon--prev{transform:scaleX(-1)}.orders-pagination__arrow-icon--next{transform:none}.orders-pagination__ellipsis{text-align:center;min-width:24px;color:var(--color-text-muted)}.orders-pagination__page{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;min-width:32px;height:32px;color:var(--color-text);padding:0 6px;font-family:inherit;font-size:.8125rem}.orders-pagination__page:hover:not(.orders-pagination__page--active){border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__page--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.product-page__layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__main{min-width:0}.product-page__sidebar{position:sticky;top:16px}.cart-summary-panel{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:20px}.cart-summary-panel__title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.cart-summary-panel__row{justify-content:space-between;align-items:center;padding:8px 0;font-size:.875rem;display:flex}.cart-summary-panel__row span:first-child{color:var(--color-text-muted)}.cart-summary-panel__row strong{color:var(--color-text)}.cart-summary-panel__btn{margin-top:16px}.product-page__scroll{padding-bottom:0}.product-page .sticky-footer{display:none}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cart-page{max-width:var(--content-max-width);padding:20px var(--page-padding-tablet) 28px;background:0 0;margin-inline:auto}.cart-page__desktop-title{margin:0 0 16px;font-size:1.25rem;font-weight:700}.cart-page__body{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:start;gap:20px 24px;display:grid}.cart-page__company{grid-column:1/-1}.order-detail-page{max-width:none;padding:24px var(--page-padding) 32px;background:0 0;height:100%;margin-inline:0;overflow:hidden}.order-detail-back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.company-select-page{max-width:var(--content-max-width);padding:24px var(--page-padding-desktop);background:0 0;margin-inline:auto}.catalog-page{background:0 0}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-page{background:0 0}.profile-hero{border-radius:var(--radius-md);margin-inline:0}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.page{padding:24px var(--page-padding-desktop) 32px}.orders-stats{gap:16px;margin-bottom:24px}.orders-page__desktop-head{margin-bottom:24px}.orders-toolbar{margin-bottom:20px}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.desktop-page{width:100%;min-height:auto;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;background:0 0;flex-direction:column;flex:1 0 auto;margin-inline:auto;display:flex}.desktop-page__head{margin-bottom:20px}.desktop-page__title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-page__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.desktop-two-col{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.desktop-two-col__main{min-width:0}.desktop-summary-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;position:sticky;top:16px}.desktop-summary-panel__title{border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.desktop-summary-panel__row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.desktop-summary-panel__row span:first-child{color:var(--color-text-muted)}.desktop-summary-panel__row strong{color:var(--color-text);font-variant-numeric:tabular-nums}.desktop-summary-panel__action{margin-top:16px}.desktop-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);width:100%;min-width:0;overflow:hidden}.desktop-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.desktop-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.875rem}.desktop-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-size:.8125rem;font-weight:600}.desktop-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:14px 16px}.desktop-table tbody tr:last-child td{border-bottom:none}.desktop-table tbody tr:hover td{background:var(--color-elevated)}.desktop-grid-2{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.desktop-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.desktop-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.desktop-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.desktop-btn-compact{min-width:120px;width:auto!important;padding-inline:20px!important}.desktop-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-form-grid__full{grid-column:1/-1}.desktop-checkout-shell{width:100%;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.desktop-settlement-grid{grid-template-columns:repeat(2,minmax(280px,380px));justify-content:center;gap:20px;max-width:820px;margin-inline:auto;display:grid}.desktop-company-grid{grid-template-columns:repeat(2,minmax(280px,400px));justify-content:center;gap:20px;width:100%;max-width:900px;margin-inline:auto;display:grid}}@media (width>=1200px){.desktop-page,.desktop-checkout-shell{padding:24px var(--page-padding) 32px}.desktop-page__head{margin-bottom:24px}.desktop-two-col:has(>.desktop-summary-panel){grid-template-columns:minmax(0, 1fr) var(--summary-panel-width,320px)}.desktop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.desktop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (width>=1440px){.desktop-grid-3{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/dist/assets/index-BQQA5ZX-.js b/dist/assets/index-BQQA5ZX-.js deleted file mode 100644 index 818e97c..0000000 --- a/dist/assets/index-BQQA5ZX-.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-CDVvsO1k.js","assets/BasicIcon-CjTTsi6o.js","assets/BasicIcon-QF_b9Svq.css","assets/format-BHJptHdF.js","assets/validation-BD7oi-2I.js","assets/BaseInput-oWA7d1_u.js","assets/BaseInput-Dxl7Obd8.css","assets/FormErrorBanner-B8THF9oG.js","assets/FormErrorBanner-Hje8L-00.css","assets/formErrors-DglFjYkZ.js","assets/RegisterView-D4LJxEug.js","assets/IconChevronBack-B10eZjCQ.js","assets/RegisterView-D731ti8w.css","assets/OtpView-C7wkSKLl.js","assets/dist-D9CyXEdG.js","assets/IconEditPen-CUhGotGH.js","assets/OtpView-BZD-cGQw.css","assets/HomeView-CIO-bcHQ.js","assets/IconLayoutGrid-fpJ_H2ee.js","assets/IconDiamond-Yhg3u2_R.js","assets/PageSkeleton-CyATkHE1.js","assets/PageSkeleton-BAjL8n2H.css","assets/crm-DPw1h61_.js","assets/http-Bfs7sUUO.js","assets/useGoBack-D3aJ73Q-.js","assets/IconHeart-BmvFB3Xr.js","assets/HomeView-B1qHsdTP.css","assets/CompanySelectView-liyb-0yE.js","assets/catalog-Dd554brK.js","assets/IconFamBaftLogo-DC-RbvIL.js","assets/IconFamBaftLogo-BaDEschB.css","assets/IconBuilding-BTmZv_WO.js","assets/IconShoppingBag-B7WsCtZ4.js","assets/CompanySelectView-D61_rpsC.css","assets/CategoriesView-BKzeeMB3.js","assets/IconBolt-DDYT1Qsn.js","assets/CategoriesView-CpH_4Bby.css","assets/ProductsView-BuD86fST.js","assets/IconFilter-lDKrtGms.js","assets/PageHeader-WFa4BbgN.js","assets/PageHeader-CDhs0XKF.css","assets/SearchField-Ao52FWA8.js","assets/SearchField-BGmIHecn.css","assets/ProductsView-DCtQeVQ0.css","assets/ProductDetailView-C1qTrEYC.js","assets/IconMail-B6_IInpi.js","assets/ProductDetailView-BzC8zwMe.css","assets/CatalogsHubView-CYqXALDE.js","assets/CatalogsHubView-e5g217zy.css","assets/CatalogRequestView-C8c_kKUC.js","assets/catalogRequests-CmW4jeEs.js","assets/CatalogRequestView-C2TJS6QO.css","assets/CatalogRequestsView-C7r0RQIw.js","assets/CatalogRequestsView-DUzaL-Pf.css","assets/FavoritesView-C2rc7aQK.js","assets/FavoritesView-C_rd5Wxy.css","assets/CustomersView-CGAWB-ZQ.js","assets/CustomersView--6m_fbKL.css","assets/CustomerCreateView-Bs4pjofV.js","assets/CustomerCreateView-xAy0nFXT.css","assets/CustomerDetailView-D3yYgQ2K.js","assets/constants-DXXK14Zz.js","assets/IconClipboardEmpty-CrdSnG5c.js","assets/IconPhone-Bb9nUWE1.js","assets/CustomerDetailView-Baj8nbYX.css","assets/MeetingReportView-45Gem8ho.js","assets/IconCheckCircleOutline-DMQwnwv8.js","assets/MeetingReportView-clcxg22r.css","assets/RemindersView-BnrwuAXg.js","assets/IconMoreVertical-CoEoZgQs.js","assets/RemindersView-DX3323vn.css","assets/ReminderDetailView-BtTy21io.js","assets/ReminderDetailView-CRDCge09.css","assets/CatalogListView-uZQRG5yv.js","assets/EmptyState-BpC5eqVE.js","assets/EmptyState-D6A5GmrP.css","assets/CatalogListView-Bx4Ch_pg.css","assets/ProductListView-CaInObaS.js","assets/ProductListView-CxaJtk_s.css","assets/CartView-Cr4iq0ZB.js","assets/CheckoutStepper-BoOJQ-Nf.js","assets/CheckoutStepper-hqk-kVCz.css","assets/CartView-CZLNxzfD.css","assets/OrdersView-DfeWZZpC.js","assets/OrdersView-CFbUKVTf.css","assets/OrderDetailView-D9semEqd.js","assets/orderInvoice-B0L1Aeuk.js","assets/PersianDateInput-C60QImoe.js","assets/PersianDateInput-MG7uK7zm.css","assets/OrderDetailView-DfQWMJF8.css","assets/OrderSuccessView-BXGugRjf.js","assets/OrderSuccessView-D_odiYNR.css","assets/SettlementTypeView-DwhWz5lK.js","assets/useRequirePricedOrder-bwpoZWB1.js","assets/IconCashSettlement-DDfZWnNk.js","assets/SettlementTypeView-C3wqclvS.css","assets/CashSettlementView-UYDfJFC3.js","assets/CashSettlementView-C8IRazOR.css","assets/CheckModeSelectView-BpHuwbJg.js","assets/CheckModeSelectView-BZlKzxFL.css","assets/CheckFormView-DW5qmSv3.js","assets/IconCash-CCD4LPLC.js","assets/CheckFormView-Cgp6kUZ2.css","assets/CheckListView-C3cvQuGR.js","assets/CheckListView-DDLtEQn_.css","assets/ProfileView-B7uHdDcp.js","assets/ProfileView-JVQ3CHCf.css","assets/ProfileEditView-COej2ZwG.js","assets/ProfileSubpageLayout-VuAWanhC.js","assets/ProfileSubpageLayout-W3vfIprY.css","assets/ProfileEditView-Cqvr3yiG.css","assets/ProfileSecurityView-DN6fmUy5.js","assets/ProfileSecurityView-BjbybMSz.css","assets/ProfileNotificationsView-D2zRTMKx.js","assets/ProfileNotificationsView-CTp2kqLW.css","assets/ProfileDisplayView-BzRM602N.js","assets/ProfileDisplayView-BRRdMHnK.css","assets/ProfileChecksView-OYh1N4NH.js"])))=>i.map(i=>d[i]); -import{$ as e,A as t,B as n,Ct as r,E as i,F as a,G as o,H as s,I as c,J as l,L as u,M as d,O as f,Q as p,T as m,U as h,X as ee,Y as g,_,a as v,b as y,bt as b,c as x,d as S,et as C,f as w,ft as T,g as E,h as te,ht as ne,i as D,j as O,k,l as re,m as ie,n as A,o as j,p as ae,pt as oe,q as M,r as se,s as ce,t as N,tt as P,u as le,ut as ue,v as F,wt as I,xt as L,y as de}from"./BasicIcon-CjTTsi6o.js";import{a as fe,i as pe,n as R,o as z,r as B,s as V,t as H}from"./http-Bfs7sUUO.js";import{i as me,n as he,r as ge}from"./dist-D9CyXEdG.js";import{_ as _e,c as ve,s as ye,t as be,u as xe,v as Se}from"./format-BHJptHdF.js";import{r as Ce}from"./validation-BD7oi-2I.js";import{t as U}from"./catalog-Dd554brK.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 W=typeof document<`u`,we=/#/g,Te=/&/g,Ee=/\//g,De=/=/g,Oe=/\?/g,ke=/\+/g,Ae=/%5B/g,je=/%5D/g,Me=/%5E/g,Ne=/%60/g,Pe=/%7B/g,Fe=/%7C/g,Ie=/%7D/g,Le=/%20/g;function Re(e){return e==null?``:encodeURI(``+e).replace(Fe,`|`).replace(Ae,`[`).replace(je,`]`)}function ze(e){return Re(e).replace(Pe,`{`).replace(Ie,`}`).replace(Me,`^`)}function Be(e){return Re(e).replace(ke,`%2B`).replace(Le,`+`).replace(we,`%23`).replace(Te,`%26`).replace(Ne,"`").replace(Pe,`{`).replace(Ie,`}`).replace(Me,`^`)}function Ve(e){return Be(e).replace(De,`%3D`)}function He(e){return Re(e).replace(we,`%23`).replace(Oe,`%3F`)}function Ue(e){return He(e).replace(Ee,`%2F`)}function We(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Ge=/\/$/,Ke=e=>e.replace(Ge,``);function qe(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=et(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:We(o)}}function Je(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Ye(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Xe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&G(t.matched[r],n.matched[i])&&Ze(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function G(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ze(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Qe(e[n],t[n]))return!1;return!0}function Qe(e,t){return j(e)?$e(e,t):j(t)?$e(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function $e(e,t){return j(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function et(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 K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function tt(e){if(!e)if(W){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Ke(e)}var nt=/^[^#]+#/;function rt(e,t){return e.replace(nt,`#`)+t}function it(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 at=()=>({left:window.scrollX,top:window.scrollY});function ot(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=it(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 st(e,t){return(history.state?history.state.position-t:-1)+e}var ct=new Map;function lt(e,t){ct.set(e,t)}function ut(e){let t=ct.get(e);return ct.delete(e),t}function dt(e){return typeof e==`string`||e&&typeof e==`object`}function ft(e){return typeof e==`string`||typeof e==`symbol`}function pt(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Be(e)):[r&&Be(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function ht(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=j(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function q(){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 J(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(v(4,{from:n,to:t})):e instanceof Error?c(e):dt(e)?c(v(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 gt(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(re(s)){let c=(s.__vccOpts||s)[t];c&&a.push(J(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=ce(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&J(c,n,r,o,e,i)()}))}}return a}function _t(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oG(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>G(e,s))||i.push(s))}return[n,r,i]}var vt=()=>location.protocol+`//`+location.host;function yt(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),Ye(n,``)}return Ye(n,e)+r+i}function bt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=yt(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(D({},e.state,{scroll:at()}),``)}}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 xt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?at():null}}function St(e){let{history:t,location:n}=window,r={value:yt(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:vt()+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,D({},t.state,xt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=D({},i.value,t.state,{forward:e,scroll:at()});a(o.current,o,!0),a(e,D({},xt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ct(e){e=tt(e);let t=St(e),n=bt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=D({location:``,base:e,go:r,createHref:rt.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 wt={type:0,value:``},Tt=/[a-zA-Z0-9_]/;function Et(e){if(!e)return[[]];if(e===`/`)return[[wt]];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 Mt(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Pt={strict:!1,end:!0,sensitive:!1};function Ft(e,t,n){let r=At(Et(e.path),n),i=D(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function It(e,t){let n=[],r=new Map;t=S(Pt,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Rt(e);s.aliasOf=r&&r.record;let l=S(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(Rt(D({},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=Ft(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Bt(d)&&o(e.name)),Wt(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:w}function o(e){if(ft(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=Ht(e,n);n.splice(t,0,e),e.record.name&&!Bt(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 v(1,{location:e});s=i.record.name,a=D(Lt(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Lt(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 v(1,{location:e,currentLocation:t});s=i.record.name,a=D({},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:Vt(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 Lt(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Rt(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:zt(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 zt(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 Bt(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Vt(e){return e.reduce((e,t)=>D(e,t.meta),{})}function Ht(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Mt(e,t[i])<0?r=i:n=i+1}let i=Ut(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ut(e){let t=e;for(;t=t.parent;)if(Wt(t)&&Mt(e,t)===0)return t}function Wt({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Gt(e){let t=s(ie),n=s(ae),r=f(()=>{let n=b(e.to);return t.resolve(n)}),i=f(()=>{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(G.bind(null,i));if(o>-1)return o;let s=Xt(e[t-2]);return t>1&&Xt(i)===s&&a[a.length-1].path!==s?a.findIndex(G.bind(null,e[t-2])):o}),a=f(()=>i.value>-1&&Yt(n.params,r.value.params)),o=f(()=>i.value>-1&&i.value===n.matched.length-1&&Ze(n.params,r.value.params));function c(n={}){if(Jt(n)){let n=t[b(e.replace)?`replace`:`push`](b(e.to)).catch(w);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:f(()=>r.value.href),isActive:a,isExactActive:o,navigate:c}}function Kt(e){return e.length===1?e[0]:e}var qt=u({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:Gt,setup(e,{slots:t}){let r=ue(Gt(e)),{options:i}=s(ie),a=f(()=>({[Zt(e.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[Zt(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=t.default&&Kt(t.default(r));return e.custom?i:n(`a`,{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});function Jt(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 Yt(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(!j(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Xt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Zt=(e,t,n)=>e??t??n,Qt=u({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:r,slots:i}){let a=s(te),o=f(()=>t.route||a.value),c=s(F,0),u=f(()=>{let e=b(c),{matched:t}=o.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),d=f(()=>o.value.matched[u.value]);l(F,f(()=>u.value+1)),l(le,d),l(te,o);let p=T();return e(()=>[p.value,d.value,t.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||!G(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let e=o.value,a=t.name,s=d.value,c=s&&s.components[a];if(!c)return $t(i.default,{Component:c,route:e});let l=s.props[a],u=l?l===!0?e.params:typeof l==`function`?l(e):l:null,f=n(c,D({},u,r,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(s.instances[a]=null)},ref:p}));return $t(i.default,{Component:f,route:e})||f}}});function $t(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var en=Qt;function tn(e){let t=It(e.routes,e),n=e.parseQuery||pt,r=e.stringifyQuery||mt,i=e.history,a=q(),o=q(),s=q(),c=ne(K),l=K;W&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=se.bind(null,e=>``+e),d=se.bind(null,Ue),f=se.bind(null,We);function p(e,n){let r,i;return ft(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 ee(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=D({},a||c.value),typeof e==`string`){let r=qe(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return D(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=D({},e,{path:qe(n,e.path,a.path).path});else{let t=D({},e.params);for(let e in t)t[e]??delete t[e];o=D({},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=Je(r,D({},e,{hash:ze(l),path:s.path})),m=i.createHref(p);return D({fullPath:p,hash:l,query:r===mt?ht(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function y(e){return typeof e==`string`?qe(n,e,c.value.path):D({},e)}function S(e,t){if(l!==e)return v(8,{from:t,to:e})}function C(e){return O(e)}function T(e){return C(D(y(e),{replace:!0}))}function E(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={}),D({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function O(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=E(n,i);if(u)return O(D(y(u),{state:typeof u==`object`?D({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Xe(r,i,n)&&(f=v(16,{to:d,from:i}),fe(i,i,!0,!1)),(f?Promise.resolve(f):A(d,i)).catch(e=>x(e)?x(e,2)?e:de(e):I(e,d,i)).then(e=>{if(e){if(x(e,2))return O(D({replace:s},y(e.to),{state:typeof e.to==`object`?D({},a,e.to.state):a,force:o}),t||d)}else e=ce(d,i,!0,s,a);return M(d,i,e),e})}function k(e,t){let n=S(e,t);return n?Promise.reject(n):Promise.resolve()}function re(e){let t=z.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function A(e,t){let n,[r,i,s]=_t(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(J(r,e,t))});let c=k.bind(null,e,t);return n.push(c),V(n).then(()=>{n=[];for(let r of a.list())n.push(J(r,e,t));return n.push(c),V(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(J(r,e,t))});return n.push(c),V(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(j(r.beforeEnter))for(let i of r.beforeEnter)n.push(J(i,e,t));else n.push(J(r.beforeEnter,e,t));return n.push(c),V(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(s,`beforeRouteEnter`,e,t,re),n.push(c),V(n))).then(()=>{n=[];for(let r of o.list())n.push(J(r,e,t));return n.push(c),V(n)}).catch(e=>x(e,8)?e:Promise.reject(e))}function M(e,t,n){s.list().forEach(r=>re(()=>r(e,t,n)))}function ce(e,t,n,r,a){let o=S(e,t);if(o)return o;let s=t===K,l=W?history.state:{};n&&(r||s?i.replace(e.fullPath,D({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,fe(e,t,n,s),de()}let N;function P(){N||=i.listen((e,t,n)=>{if(!B.listening)return;let r=_(e),a=E(r,B.currentRoute.value);if(a){O(D(a,{replace:!0,force:!0}),r).catch(w);return}l=r;let o=c.value;W&<(st(o.fullPath,n.delta),at()),A(r,o).catch(e=>x(e,12)?e:x(e,2)?(O(D(y(e.to),{force:!0}),r).then(e=>{x(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&i.go(-n.delta,!1),I(e,r,o))).then(e=>{e||=ce(r,o,!1),e&&(n.delta&&!x(e,8)?i.go(-n.delta,!1):n.type===`pop`&&x(e,20)&&i.go(-1,!1)),M(r,o,e)}).catch(w)})}let le=q(),ue=q(),F;function I(e,t,n){de(e);let r=ue.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function L(){return F&&c.value!==K?Promise.resolve():new Promise((e,t)=>{le.add([e,t])})}function de(e){return F||(F=!e,P(),le.list().forEach(([t,n])=>e?n(e):t()),le.reset()),e}function fe(t,n,r,i){let{scrollBehavior:a}=e;if(!W||!a)return Promise.resolve();let o=!r&&ut(st(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return h().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&ot(e)).catch(e=>t===c.value&&I(e,t,n))}let pe=e=>i.go(e),R,z=new Set,B={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:ee,resolve:_,options:e,push:C,replace:T,go:pe,back:()=>pe(-1),forward:()=>pe(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ue.add,isReady:L,install(e){e.component(`RouterLink`,qt),e.component(`RouterView`,en),e.config.globalProperties.$router=B,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>b(c)}),W&&!R&&c.value===K&&(R=!0,C(i.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(ie,B),e.provide(ae,oe(t)),e.provide(te,c);let n=e.unmount;z.add(e),e.unmount=function(){z.delete(e),z.size<1&&(l=K,N&&N(),N=null,c.value=K,R=!1,F=!1),n()}}};function V(e){return e.reduce((e,t)=>e.then(()=>re(t)),Promise.resolve())}return B}var nn=typeof global==`object`&&global&&global.Object===Object&&global,rn=typeof self==`object`&&self&&self.Object===Object&&self,an=(nn||rn||Function(`return this`)()).Symbol,on=Object.prototype,sn=on.hasOwnProperty,cn=on.toString,Y=an?an.toStringTag:void 0;function ln(e){var t=sn.call(e,Y),n=e[Y];try{e[Y]=void 0;var r=!0}catch{}var i=cn.call(e);return r&&(t?e[Y]=n:delete e[Y]),i}var un=Object.prototype.toString;function dn(e){return un.call(e)}var fn=`[object Null]`,pn=`[object Undefined]`,mn=an?an.toStringTag:void 0;function hn(e){return e==null?e===void 0?pn:fn:mn&&mn in Object(e)?ln(e):dn(e)}function gn(e){return typeof e==`object`&&!!e}var _n=`[object Symbol]`;function vn(e){return typeof e==`symbol`||gn(e)&&hn(e)==_n}var yn=/\s/;function bn(e){for(var t=e.length;t--&&yn.test(e.charAt(t)););return t}var xn=/^\s+/;function Sn(e){return e&&e.slice(0,bn(e)+1).replace(xn,``)}function Cn(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var wn=NaN,Tn=/^[-+]0x[0-9a-f]+$/i,En=/^0b[01]+$/i,Dn=/^0o[0-7]+$/i,On=parseInt;function kn(e){if(typeof e==`number`)return e;if(vn(e))return wn;if(Cn(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Cn(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Sn(e);var n=En.test(e);return n||Dn.test(e)?On(e.slice(2),n?2:8):Tn.test(e)?wn:+e}function An(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function jn(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=kn(n),n=n===n?n:0),t!==void 0&&(t=kn(t),t=t===t?t:0),An(kn(e),t,n)}var Mn=5e3;function Nn(){return{id:`local`,companyId:``,companyName:``,items:[]}}function X(){return!1}function Pn(e){return[...new Set(e.map(e=>e.companyName).filter(Boolean))].join(`، `)}function Fn(e,t){return e.items.filter(e=>e.companyId===t).reduce((e,t)=>e+t.meterage,0)}var Z=z(`cart`,()=>{let e=T([Nn()]),t=T(`local`),n=T(null),r=T(!1),i=f(()=>e.value.find(e=>e.id===t.value)??e.value[0]??null),a=f(()=>i.value?.items.reduce((e,t)=>e+t.meterage,0)??0),o=f(()=>i.value?.items.length??0),s=U(),c=f(()=>i.value?.items.length?Pn(i.value.items):``),l=f(()=>{let e=i.value;if(!e?.items.length)return[];let t=new Map;for(let n of e.items){let e=t.get(n.companyId);e?e.meterage+=n.meterage:t.set(n.companyId,{companyName:n.companyName||`شرکت`,meterage:n.meterage})}return[...t.entries()].map(([e,t])=>{let n=s.getCompany(e)?.maxMeteragePerInvoice??Mn;return{companyId:e,companyName:t.companyName,meterage:t.meterage,maxMeterage:n,remaining:Math.max(0,n-t.meterage)}})}),u=f(()=>l.value.length?l.value.reduce((e,t)=>e+t.maxMeterage,0):(n.value?s.getCompany(n.value):null)?.maxMeteragePerInvoice??Mn),d=f(()=>l.value.length?l.value.reduce((e,t)=>e+t.remaining,0):Math.max(0,u.value-a.value)),p=f(()=>l.value.some(e=>e.meterage>=e.maxMeterage));function m(r){let i={id:r.id,companyId:r.companyId||``,companyName:r.companyName||Pn(r.items),items:r.items??[],notes:r.notes};e.value=[i],t.value=i.id,i.companyId&&(n.value=i.companyId)}function h(n){e.value=[{...n,items:n.items.map(e=>({...e}))}],t.value=e.value[0].id}async function ee(){if(!B()){g();return}if(X()){r.value=!1;return}r.value=!0;try{m(await R(`/carts`))}catch{g()}finally{r.value=!1}}function g(){e.value=[Nn()],t.value=e.value[0].id,n.value=null}function _(e){n.value=e.id,i.value&&!i.value.items.length&&(i.value.companyId=e.id,i.value.companyName=e.name)}function v(e){return _(e),i.value??Nn()}function y(e){return e&&_(e),i.value??Nn()}async function b(){if(X())return g(),i.value;try{return m(await R(`/carts`,{method:`DELETE`})),i.value}catch(e){return console.error(e),null}}function x(e,t,r,i){let a=y(i),o=a.items.find(t=>t.productId===e.id),s=[...a.items];if(o){let e=s.findIndex(e=>e.id===o.id);s[e]={...o,meterage:r}}else{let n={id:`local-item-${e.id}-${Date.now()}`,productId:e.id,catalogCode:t,productName:e.name,productCode:e.code,color:e.color,meterage:r,companyId:i.id,companyName:i.name};s.push(n)}return h({id:a.id||`local`,companyId:s[0]?.companyId||i.id,companyName:Pn(s)||i.name,items:s,notes:a.notes}),n.value=i.id,{success:!0}}async function S(e,t,r){let i=s.getCompany(e.companyId);if(!i)return{success:!1,message:`شرکت محصول یافت نشد.`};let a=y(i),o=i.maxMeteragePerInvoice,c=Fn(a,i.id),l=a.items.find(t=>t.productId===e.id),u=l?.meterage??0,d=Ce(r,e,c,o,u);if(!d.valid)return{success:!1,message:d.message};if(X())return x(e,t,r,i);try{let t;return t=l?await R(`/carts/items/${l.id}`,{method:`PATCH`,body:{meterage:r}}):await R(`/carts/items`,{method:`POST`,body:{productId:e.id,meterage:r}}),m(t),n.value=i.id,{success:!0}}catch(e){return{success:!1,message:e instanceof H?e.message:`افزودن به سبد ناموفق بود.`}}}async function C(e,t,n){if(!i.value)return{success:!1,message:`سبد خرید یافت نشد.`};let r=i.value.items.find(t=>t.id===e);if(!r)return{success:!1,message:`آیتم یافت نشد.`};let a=s.getCompany(r.companyId||n.companyId)?.maxMeteragePerInvoice??Mn,o=Fn(i.value,r.companyId),c=Ce(t,n,o,a,r.meterage);if(!c.valid)return{success:!1,message:c.message};if(X()){let n=i.value.items.map(n=>n.id===e?{...n,meterage:t}:n);return h({...i.value,items:n}),{success:!0}}try{return m(await R(`/carts/items/${e}`,{method:`PATCH`,body:{meterage:t}})),{success:!0}}catch(e){return{success:!1,message:e instanceof H?e.message:`به‌روزرسانی متراژ ناموفق بود.`}}}async function w(e){if(X()){if(!i.value)return;let t=i.value.items.filter(t=>t.id!==e);h({...i.value,items:t});return}try{m(await R(`/carts/items/${e}`,{method:`DELETE`}))}catch(e){console.error(e)}}async function E(e){if(X()){if(!i.value)return;h({...i.value,notes:e});return}try{m(await R(`/carts/notes`,{method:`PATCH`,body:{notes:e}}))}catch(e){console.error(e)}}async function te(){if(X()){g();return}try{m(await R(`/carts`,{method:`DELETE`}))}catch{g()}}function ne(){}return{carts:e,activeCartId:t,selectedCompanyId:n,syncing:r,activeCart:i,totalMeterage:a,itemCount:o,companyNamesLabel:c,companySummaries:l,maxMeterage:u,remainingCapacity:d,isFull:p,initCartForCompany:v,selectCompany:_,createNewCartForSameCompany:b,addItem:S,updateItemMeterage:C,removeItem:w,setNotes:E,clearActiveCart:te,ensureActiveCartForCartPage:ne,hydrate:ee,resetLocal:g}}),In=u({__name:`IconHome`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:home`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ln=u({__name:`IconCart`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:bag-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Rn=u({__name:`IconOrders`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:document-text`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zn=u({__name:`IconProfile`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:profile-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Bn=u({__name:`IconCatalog`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:category`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Vn=u({__name:`IconCheckBook`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:card-receive`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Hn=u({__name:`IconPlus`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:add`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Un=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`catalogs`,path:`/catalogs`,label:`کالیته‌ها`,icon:Bn},{name:`order-fab`,path:`/cart`,label:`ثبت سفارش`,icon:Hn},{name:`orders`,path:`/orders`,label:`سفارش‌ها`,icon:Rn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Wn=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`ordering`,path:`/`,label:`سفارش‌گذاری`,icon:Bn,dynamicPath:!0},{name:`cart`,path:`/cart`,label:`سبد خرید`,icon:Ln},{name:`orders`,path:`/orders`,label:`سفارش‌ها`,icon:Rn},{name:`checks`,path:`/profile/checks`,label:`لیست چک‌ها`,icon:Vn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}];function Gn(e){return e?`/companies/${e}/catalogs`:`/companies`}var Kn=[`/catalogs`,`/catalog-request`,`/catalog-requests`,`/categories`,`/products`,`/product`,`/favorites`];function qn(e,t,n){return e===`ordering`?n.startsWith(`/companies/`):e===`home`?n===`/`:e===`catalogs`?Kn.some(e=>n===e||n.startsWith(`${e}/`)):e===`order-fab`?n===`/cart`||n.startsWith(`/cart/`):e===`checks`?n.startsWith(`/profile/checks`):e===`profile`||t===`/profile`?n===`/profile`:t===`/`?n===`/`:n.startsWith(t)}function Jn(e,t){return e.name===`ordering`?Gn(t):e.path}var Yn={class:`bottom-nav`,"aria-label":`ناوبری اصلی`},Xn=[`aria-current`,`aria-label`,`onClick`],Zn={key:0,class:`nav-badge`},Qn={key:0,class:`nav-label`},$n={key:1,class:`nav-label nav-label--fab`},er=A(u({__name:`BottomNav`,setup(e){let n=E(),r=_(),a=Z(),o=f(()=>a.itemCount);function s(e,t){let n=t.currentTarget;if(n instanceof HTMLElement&&n.blur(),e===`/cart`&&a.itemCount===0){r.push(`/companies`);return}r.push(e)}return(e,r)=>(M(),d(`nav`,Yn,[(M(!0),d(i,null,g(b(Un),e=>(M(),d(`button`,{key:e.name,type:`button`,class:L([`nav-item`,{active:b(qn)(e.name,e.path,b(n).path),"nav-item--fab":e.name===`order-fab`}]),"aria-current":b(qn)(e.name,e.path,b(n).path)?`page`:void 0,"aria-label":e.label,onClick:t=>s(e.path,t)},[k(`span`,{class:L([`nav-icon`,{"nav-icon--fab":e.name===`order-fab`}])},[(M(),t(p(e.icon),{size:e.name===`order-fab`?26:22,"stroke-width":e.name===`order-fab`?1.8:1.5,color:e.name===`order-fab`?`#ffffff`:void 0},null,8,[`size`,`stroke-width`,`color`])),e.name===`order-fab`&&o.value>0?(M(),d(`span`,Zn,I(o.value),1)):O(``,!0)],2),e.name===`order-fab`?(M(),d(`span`,$n,I(e.label),1)):(M(),d(`span`,Qn,I(e.label),1))],10,Xn))),128))]))}}),[[`__scopeId`,`data-v-7948964e`]]);function tr(){return{checkCount:0,totalAmount:0,nearestDueDate:null,farthestDueDate:null,rassDays:0,rassDate:null}}function nr(e,t=new Date){if(e.length===0)return tr();let n=new Date(t);n.setHours(0,0,0,0);let r=0,i=0,a=[];for(let t of e){if(!t.dueDate){r+=t.amount;continue}let e=_e(t.dueDate);if(Number.isNaN(e.getTime())){r+=t.amount;continue}e.setHours(0,0,0,0),a.push(e);let o=e.getTime()-n.getTime(),s=Math.max(0,Math.round(o/864e5));r+=t.amount,i+=t.amount*s}let o=r>0?Math.round(i/r):0,s=new Date(n);return s.setDate(s.getDate()+o),a.sort((e,t)=>e.getTime()-t.getTime()),{checkCount:e.length,totalAmount:r,nearestDueDate:a[0]?Se(a[0]):null,farthestDueDate:a.length?Se(a[a.length-1]):null,rassDays:o,rassDate:Se(s)}}function rr(e){let t=new Date;t.setHours(0,0,0,0);let n=_e(e);return Number.isNaN(n.getTime())?0:(n.setHours(0,0,0,0),Math.max(0,Math.round((n.getTime()-t.getTime())/864e5)))}var ir=z(`order`,()=>{let e=T([]),t=T([]),n=T(null),r=T(null),i=T(null),a=T(!1),o=f(()=>t=>[...e.value].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()));function s(t){return e.value.find(e=>e.id===t)}function c(e,a){i.value=e,n.value=`check`,t.value=[],r.value=a??null}function l(e){i.value=e.id,n.value=`check`,r.value=e.checkMode??`full`,t.value=(e.checks??[]).map(e=>({...e}))}function u(){i.value=null,t.value=[],r.value=null,n.value=null}function d(e){r.value=e}function p(e){t.value.push({...e,id:ye()})}function m(e,n){let r=t.value.findIndex(t=>t.id===e);r>=0&&(t.value[r]={...t.value[r],...n})}function h(e){t.value=t.value.filter(t=>t.id!==e)}function ee(e){return nr(t.value,e??new Date)}async function g(){if(!B()){e.value=[];return}a.value=!0;try{e.value=await R(`/orders`)}catch{e.value=[]}finally{a.value=!1}}function _(){e.value=[],u()}function v(t){let n=e.value.findIndex(e=>e.id===t.id);n>=0?e.value[n]=t:e.value.unshift(t)}async function y(e){try{let t=await R(`/orders/${e}`);return v(t),t}catch{return null}}async function b(t){if(!t.items.length)throw Error(`سبد خرید خالی است.`);if(t.id===`local`||t.items.some(e=>e.id.startsWith(`local-item-`)))throw Error(`سبد خرید با سرور همگام نیست. لطفاً دوباره محصولات را به سبد اضافه کنید.`);let n=[...new Set(t.items.map(e=>e.companyId).filter(Boolean))];if(!n.length)throw Error(`شرکت سبد مشخص نیست. سبد را خالی کنید و دوباره اضافه کنید.`);try{let r=await R(`/orders`,{method:`POST`,body:{companyId:n[0],notes:t.notes,items:t.items.map(e=>({productId:e.productId,meterage:Number(e.meterage),notes:e.notes}))}});return e.value.unshift(r),u(),r}catch(e){throw Error(e instanceof H?e.message:`ثبت سفارش ناموفق بود.`)}}async function x(e,t,n){try{let r=await R(`/orders/${e}/settlement`,{method:`POST`,body:{settlementType:t,checkMode:t===`check`?n??`full`:void 0}});return v(r),r}catch(e){throw Error(e instanceof H?e.message:`ثبت روش تسویه ناموفق بود.`)}}async function S(e,t){try{await R(`/orders/${e}/cash-receipt`,{method:`POST`,body:{amount:t.amount,transferDate:t.transferDate,transferTime:t.transferTime,trackingNumber:t.trackingNumber,destinationAccountId:t.destinationAccountId,receiptImage:t.receiptImage,notes:t.notes}});let n=await y(e);if(!n)throw Error(`رسید ثبت شد ولی دریافت سفارش ناموفق بود.`);return n}catch(e){throw Error(e instanceof H?e.message:`ثبت رسید ناموفق بود.`)}}async function C(e,t,n){try{let r=await R(`/orders/${e}/checks`,{method:`PATCH`,body:{checkMode:n,checks:t.map(e=>({amount:e.amount,dueDate:e.dueDate,sayadId:e.sayadId,checkNumber:e.checkNumber,ownerNationalId:e.ownerNationalId,ownerFirstName:e.ownerFirstName,ownerLastName:e.ownerLastName,bankName:e.bankName,branchName:e.branchName,frontImage:e.frontImage,backImage:e.backImage,notes:e.notes,mode:e.mode}))}});return v(r),u(),r}catch(e){throw Error(e instanceof H?e.message:`ثبت چک‌ها ناموفق بود.`)}}async function w(e){let t=[...new Set([e.companyId,...e.items.map(e=>e.companyId).filter(Boolean)].filter(Boolean))],n=U(),r=await Promise.all(t.map(e=>n.loadBankAccounts(e))),i=new Map;for(let e of r)for(let t of e)i.set(t.id,t);return[...i.values()]}async function E(e){return U().loadBankAccounts(e)}return{orders:e,draftChecks:t,draftSettlementType:n,draftCheckMode:r,draftOrderId:i,loading:a,userOrders:o,getOrderById:s,startCheckDraft:c,loadChecksIntoDraft:l,clearCheckDraft:u,setCheckMode:d,addDraftCheck:p,updateDraftCheck:m,removeDraftCheck:h,getDraftRass:ee,submitOrder:b,chooseSettlement:x,submitCashReceipt:S,updateOrderChecks:C,hydrate:g,resetLocal:_,fetchOrder:y,getBankAccountsForOrder:w,getBankAccountsForCompany:E}}),ar=u({__name:`IconHeadset`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:headphone`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),or={class:`desktop-sidebar`,"aria-label":`ناوبری اصلی`},sr={class:`desktop-sidebar__nav`},cr=[`aria-current`,`aria-label`,`title`,`onClick`],lr={class:`desktop-sidebar__icon`},ur={class:`desktop-sidebar__label`},dr={key:0,class:`desktop-sidebar__badge`},fr={key:1,class:`desktop-sidebar__badge`},pr={class:`desktop-sidebar__support`},mr={class:`desktop-sidebar__support-icon`,"aria-hidden":`true`},hr=A(u({__name:`DesktopSidebar`,setup(e){let n=E(),r=_(),a=Z(),o=ir(),s=f(()=>a.itemCount),l=f(()=>o.draftChecks.length),u=f(()=>a.selectedCompanyId||a.activeCart?.companyId||null);function m(e){r.push(Jn(e,u.value))}return(e,r)=>(M(),d(`aside`,or,[r[3]||=k(`div`,{class:`desktop-sidebar__brand`},[k(`span`,{class:`desktop-sidebar__logo-mark`,"aria-hidden":`true`},`پ`),k(`strong`,{class:`desktop-sidebar__title`},`پارس بافت`)],-1),k(`nav`,sr,[(M(!0),d(i,null,g(b(Wn),e=>(M(),d(`button`,{key:e.name,type:`button`,class:L([`desktop-sidebar__item`,{active:b(qn)(e.name,e.path,b(n).path)}]),"aria-current":b(qn)(e.name,e.path,b(n).path)?`page`:void 0,"aria-label":e.label,title:e.label,onClick:t=>m(e)},[k(`span`,lr,[(M(),t(p(e.icon),{size:20}))]),k(`span`,ur,I(e.label),1),e.name===`cart`&&s.value>0?(M(),d(`span`,dr,I(s.value),1)):O(``,!0),e.name===`checks`&&l.value>0?(M(),d(`span`,fr,I(l.value),1)):O(``,!0)],10,cr))),128))]),k(`div`,pr,[k(`span`,mr,[c(ar,{size:22})]),r[0]||=k(`strong`,{class:`desktop-sidebar__support-title`},`پشتیبانی و راهنما`,-1),r[1]||=k(`p`,{class:`desktop-sidebar__support-text`},` در صورت نیاز به راهنمایی یا گزارش مشکل با تیم پشتیبانی تماس بگیرید. `,-1),r[2]||=k(`a`,{href:`tel:02112345678`,class:`desktop-sidebar__support-btn`},`تماس با پشتیبانی`,-1)])]))}}),[[`__scopeId`,`data-v-9a74c6bb`]]),gr=`ft_user`,_r=`ft_pending_otp`;function Q(e){e?localStorage.setItem(gr,JSON.stringify(e)):localStorage.removeItem(gr)}function vr(){try{let e=localStorage.getItem(gr);return e?JSON.parse(e):null}catch{return null}}function yr(){return B()?vr():null}function br(){return!!B()}function xr(e){try{e?sessionStorage.setItem(_r,JSON.stringify(e)):sessionStorage.removeItem(_r)}catch{}}async function Sr(e,t){let n=ve(e);if(!/^09\d{9}$/.test(n))return{success:!1,message:`شماره موبایل معتبر نیست.`};if(t.isRegister&&(!t.firstName?.trim()||!t.lastName?.trim()))return{success:!1,message:`نام و نام خانوادگی الزامی است.`};try{xr({phone:n,isRegister:t.isRegister,firstName:t.firstName,lastName:t.lastName});let e=await R(`/auth/otp/request`,{method:`POST`,auth:!1,body:{phone:n,firstName:t.firstName,lastName:t.lastName,isRegister:t.isRegister}}),r=e.debugCode?` (کد: ${e.debugCode})`:``;return{success:!0,message:`${e.message}${r}`}}catch(e){return{success:!1,message:e instanceof H?e.message:`ارسال کد ناموفق بود.`}}}async function Cr(e,t){let n=ve(e);try{let e=await R(`/auth/otp/verify`,{method:`POST`,auth:!1,body:{phone:n,code:be(t)}});return pe(e.accessToken),Q(e.user),xr(null),{success:!0,message:`ورود موفق.`,user:e.user}}catch(e){return{success:!1,message:e instanceof H?e.message:`تأیید کد ناموفق بود.`}}}function wr(){pe(null),Q(null),xr(null)}async function Tr(){if(!B())return Q(null),null;try{let e=await R(`/auth/me`);return Q(e),e}catch{return vr()}}async function Er(e){try{let t=await R(`/auth/profile`,{method:`PATCH`,body:e});return Q(t),t}catch(t){let n=e.avatarUrl!==void 0&&e.firstName===void 0&&e.lastName===void 0&&e.nationalId===void 0,r=vr();if(!n||!r)throw t;let i={...r};return e.avatarUrl?i.avatarUrl=e.avatarUrl:delete i.avatarUrl,Q(i),i}}var Dr=`ft_pending_register`,Or=[{id:`garment_producer`,label:`تولیدکننده پوشاک عمده`},{id:`atelier`,label:`مزون`},{id:`fabric_wholesaler`,label:`عمده‌فروش پارچه`}];function kr(){try{let e=sessionStorage.getItem(Dr);if(!e)return null;let t=JSON.parse(e);return!t?.firstName?.trim()||!t?.lastName?.trim()?null:{firstName:t.firstName.trim(),lastName:t.lastName.trim(),jobCategory:t.jobCategory}}catch{return null}}function Ar(e){if(e?.firstName?.trim()&&e?.lastName?.trim()){sessionStorage.setItem(Dr,JSON.stringify({firstName:e.firstName.trim(),lastName:e.lastName.trim(),jobCategory:e.jobCategory}));return}sessionStorage.removeItem(Dr)}var jr=z(`notification`,()=>{let e=T([]),t=T(0),n=T(!1),r=f(()=>t.value>0);async function i(){if(!B()){e.value=[],t.value=0;return}n.value=!0;try{e.value=await R(`/notifications`),t.value=e.value.filter(e=>!e.isRead).length}catch{e.value=[],t.value=0}finally{n.value=!1}}async function a(){if(!B()){t.value=0;return}try{let e=await R(`/notifications/unread-count`);t.value=e.count}catch{}}async function o(n){let r=e.value.find(e=>e.id===n);if(!(!r||r.isRead)){r.isRead=!0,t.value=Math.max(0,t.value-1);try{await R(`/notifications/${n}/read`,{method:`PATCH`})}catch{await i()}}}async function s(){if(t.value){e.value=e.value.map(e=>({...e,isRead:!0})),t.value=0;try{await R(`/notifications/read-all`,{method:`PATCH`})}catch{await i()}}}function c(){e.value=[],t.value=0}return{items:e,unreadCount:t,loading:n,hasUnread:r,hydrate:i,refreshUnreadCount:a,markRead:o,markAllRead:s,resetLocal:c}}),Mr=`ft_favorites`;function Nr(){try{let e=localStorage.getItem(Mr);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function Pr(e){localStorage.setItem(Mr,JSON.stringify(e))}var Fr=z(`favorites`,()=>{let e=T(Nr()),t=T(!1),n=T({}),r=f(()=>new Set(e.value));function i(e){return r.value.has(e)}async function a(){try{let t=await R(`/products/favorites/ids`);e.value=t,Pr(t)}catch{e.value=Nr()}finally{t.value=!0}}async function o(t){if(!t||n.value[t])return;n.value={...n.value,[t]:!0};let r=i(t);e.value=r?e.value.filter(e=>e!==t):[...e.value,t],Pr(e.value);try{let n=await R(`/products/${t}/favorite`,{method:`POST`});e.value=n.favorited?[...new Set([...e.value.filter(e=>e!==t),t])]:e.value.filter(e=>e!==t),Pr(e.value)}catch(n){if(!(n instanceof H&&n.status===404))throw e.value=r?[...new Set([...e.value,t])]:e.value.filter(e=>e!==t),Pr(e.value),n}finally{let e={...n.value};delete e[t],n.value=e}}function s(){e.value=[],Pr([]),t.value=!1}return{ids:e,loaded:t,pending:n,isFavorite:i,hydrate:a,toggle:o,resetLocal:s}}),Ir=z(`auth`,()=>{let e=T(yr()),t=T(!1),n=T(null),r=T(kr()),i=f(()=>!!e.value),a=f(()=>e.value?`${e.value.firstName} ${e.value.lastName}`:``),o=f(()=>e.value?.appRole===`agent`),s=f(()=>!!e.value&&e.value.appRole!==`agent`);function c(){n.value=null}function l(){r.value=null,Ar(null)}async function u(e,i){t.value=!0,n.value=null;try{let t=kr();r.value=t;let a=i.firstName?.trim()||t?.firstName,o=i.lastName?.trim()||t?.lastName;i.isRegister&&a&&o&&(r.value={firstName:a,lastName:o},Ar(r.value));let s=await Sr(e,{isRegister:i.isRegister,firstName:a,lastName:o});return s.success||(n.value=s.message),s}finally{t.value=!1}}async function d(r,i){t.value=!0,n.value=null;let a=await Cr(r,i);return t.value=!1,a.success&&a.user?(e.value=a.user,l(),await Promise.all([U().loadCompanies(),Z().hydrate(),ir().hydrate(),jr().hydrate(),Fr().hydrate()])):n.value=a.message,a}function p(){wr(),e.value=null,l(),Z().resetLocal(),ir().resetLocal(),jr().resetLocal(),Fr().resetLocal()}async function m(t){if(!e.value)return null;let n=await Er(t);return n&&(e.value=n),n}async function h(){if(e.value=yr(),!e.value)return;let t=await Tr();e.value=t}return{user:e,loading:t,error:n,isAuthenticated:i,fullName:a,isAgent:o,isCustomerOnly:s,clearError:c,requestOtp:u,confirmOtp:d,logout:p,updateProfile:m,hydrate:h}}),Lr=u({__name:`IconBell`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:notification`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Rr=u({__name:`IconChevronLeft`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(M(),t(N,{icon:`vuesax-linear:arrow-left-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zr=z(`theme`,()=>{let e=ge(`ft_theme`,`system`),t=he(),n=f(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=f(()=>n.value===`dark`);C(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}function a(){let t=[`light`,`dark`,`system`],n=t.indexOf(e.value);e.value=t[(n+1)%t.length]}function o(){e.value=r.value?`light`:`dark`}return{preference:e,resolved:n,isDark:r,setPreference:i,cyclePreference:a,toggleLightDark:o}}),Br=[`aria-label`,`title`],Vr=A(u({__name:`AuthThemeToggle`,props:{variant:{default:`floating`}},setup(e){let t=zr(),{isDark:n}=V(t),r=f(()=>n.value?`vuesax-linear:sun-1`:`vuesax-linear:moon`),i=f(()=>n.value?`تغییر به تم روشن`:`تغییر به تم تاریک`);return(n,a)=>(M(),d(`button`,{type:`button`,class:L([`auth-theme-toggle`,e.variant===`inline`?`auth-theme-toggle--inline`:`auth-theme-toggle--floating`]),"aria-label":i.value,title:i.value,onClick:a[0]||=e=>b(t).toggleLightDark()},[c(N,{icon:r.value,size:18,"stroke-width":1.5},null,8,[`icon`])],10,Br))}}),[[`__scopeId`,`data-v-3a58cb84`]]),Hr=[`src`],Ur={key:1},Wr=A(u({__name:`UserAvatar`,props:{src:{},initials:{},size:{default:72}},setup(e){return(t,n)=>(M(),d(`span`,{class:`user-avatar`,style:r({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${Math.round(e.size*.38)}px`})},[e.src?(M(),d(`img`,{key:0,class:`user-avatar__img`,src:e.src,alt:``},null,8,Hr)):(M(),d(`span`,Ur,I(e.initials),1))],4))}}),[[`__scopeId`,`data-v-5c562bf0`]]),Gr={class:`desktop-header`},Kr={class:`desktop-header__actions`},qr={key:0,class:`desktop-header__company`},Jr=[`aria-label`],Yr={class:`desktop-header__user-wrap`},Xr=[`aria-expanded`],Zr={class:`desktop-header__user-name`},Qr={key:0,class:`desktop-header__menu`},$r=A(u({__name:`DesktopHeader`,setup(e){let t=_(),n=Ir(),r=Z(),i=jr(),a=T(!1),o=f(()=>xe(i.unreadCount>9?`9+`:String(i.unreadCount))),s=f(()=>`${n.user?.firstName?.[0]??``}${n.user?.lastName?.[0]??``}`||`؟`),l=f(()=>r.companyNamesLabel||r.activeCart?.companyName||``);function u(){a.value=!a.value}function p(){a.value=!1,t.push(`/profile`)}function m(){a.value=!1,n.logout(),t.replace(`/login`)}return(e,r)=>(M(),d(`header`,Gr,[r[1]||=k(`div`,{class:`desktop-header__spacer`,"aria-hidden":`true`},null,-1),k(`div`,Kr,[l.value?(M(),d(`span`,qr,I(l.value),1)):O(``,!0),c(Vr,{variant:`inline`}),k(`button`,{type:`button`,class:`desktop-header__icon-btn`,"aria-label":`اعلان‌ها`,onClick:r[0]||=e=>b(t).push(`/profile/notifications`)},[c(Lr,{size:20}),b(i).hasUnread?(M(),d(`span`,{key:0,class:`desktop-header__notif-badge`,"aria-label":`${b(i).unreadCount} اعلان خوانده‌نشده`},I(o.value),9,Jr)):O(``,!0)]),k(`div`,Yr,[k(`button`,{type:`button`,class:`desktop-header__user`,"aria-expanded":a.value,onClick:u},[c(Wr,{class:`desktop-header__avatar`,src:b(n).user?.avatarUrl,initials:s.value,size:32},null,8,[`src`,`initials`]),k(`span`,Zr,I(b(n).fullName),1),c(Rr,{size:16,class:`desktop-header__chevron`})],8,Xr),a.value?(M(),d(`div`,Qr,[k(`button`,{type:`button`,onClick:p},`پروفایل`),k(`button`,{type:`button`,class:`desktop-header__menu-logout`,onClick:m},`خروج`)])):O(``,!0)])])]))}}),[[`__scopeId`,`data-v-d90aac23`]]),ei={class:`app-layout`},ti={class:`app-frame`},ni={class:`app-main`},ri={class:`app-main__content`},ii={class:`app-content`},ai=u({__name:`DefaultLayout`,setup(e){let n=E(),r=f(()=>![`login`,`register`,`otp`,`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`,`order-success`].includes(n.name)&&!n.meta.hideNav),i=f(()=>[`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`].includes(n.name));return(e,n)=>(M(),d(`div`,{class:L([`app-shell`,{"app-shell--no-nav":!r.value,"app-shell--wide":i.value,"app-shell--with-nav":r.value}])},[k(`div`,ei,[r.value?(M(),t(hr,{key:0})):O(``,!0),k(`div`,ti,[r.value?(M(),t($r,{key:0})):O(``,!0),k(`main`,ni,[k(`div`,ri,[k(`div`,ii,[ee(e.$slots,`default`)])])]),r.value?(M(),t(er,{key:1})):O(``,!0)])])],2))}}),oi=[`type`,`disabled`],si={key:0,class:`btn-spinner`},ci=A(u({__name:`BaseButton`,props:{variant:{},size:{},block:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},type:{}},setup(e){return(t,n)=>(M(),d(`button`,{type:e.type??`button`,class:L([`btn`,[`btn-${e.variant??`primary`}`,`btn-${e.size??`md`}`,{"btn-block":e.block}]]),disabled:e.disabled||e.loading},[e.loading?(M(),d(`span`,si)):O(``,!0),ee(t.$slots,`default`,{},void 0,!0)],10,oi))}}),[[`__scopeId`,`data-v-3628a8bb`]]),li=ue({open:!1,title:``,message:``,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`,resolve:null});function ui(){return li}function di(e){return new Promise(t=>{Object.assign(li,{open:!0,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`حذف`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`danger`,resolve:t})})}function fi(e){li.resolve?.(e),li.open=!1,li.resolve=null}var pi={class:`dialog card confirm-dialog`},mi={id:`confirm-dialog-title`,class:`confirm-dialog__title`},hi={class:`confirm-dialog__message`},gi={class:`dialog-actions confirm-dialog__actions`},_i=A(u({__name:`ConfirmDialog`,setup(e){let t=ui();function n(){fi(!1)}function r(){fi(!0)}return(e,i)=>b(t).open?(M(),d(`div`,{key:0,class:`dialog-overlay confirm-dialog-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`confirm-dialog-title`,onClick:m(n,[`self`])},[k(`div`,pi,[k(`h3`,mi,I(b(t).title),1),k(`p`,hi,I(b(t).message),1),k(`div`,gi,[c(ci,{variant:`outline`,onClick:n},{default:P(()=>[a(I(b(t).cancelLabel),1)]),_:1}),c(ci,{variant:b(t).tone===`danger`?`danger`:`primary`,onClick:r},{default:P(()=>[a(I(b(t).confirmLabel),1)]),_:1},8,[`variant`])])])])):O(``,!0)}}),[[`__scopeId`,`data-v-2e50e2a7`]]),vi=u({__name:`App`,setup(e){let n=Ir(),r=Z(),a=ir(),s=U(),l=jr(),u=_(),f=T(`page-fade`);function m(e){return e.split(`/`).filter(Boolean).length}return u.beforeEach((e,t)=>{if(!t.name){f.value=`page-fade`;return}let n=jn(m(e.path)-m(t.path),-1,1);n>0?f.value=`page-forward`:n<0?f.value=`page-back`:f.value=`page-fade`}),o(async()=>{await n.hydrate(),n.isAuthenticated&&await Promise.all([s.loadCompanies(),r.hydrate(),a.hydrate(),l.hydrate()])}),me(()=>{n.isAuthenticated&&l.refreshUnreadCount()},6e4,{immediate:!1}),(e,n)=>(M(),d(i,null,[c(ai,null,{default:P(()=>[c(b(en),null,{default:P(({Component:e,route:n})=>[c(de,{name:f.value,mode:`out-in`},{default:P(()=>[(M(),d(`div`,{key:n.path,class:`page-transition page-shell`},[(M(),t(p(e)))]))]),_:2},1032,[`name`])]),_:1})]),_:1}),c(_i)],64))}}),yi=`modulepreload`,bi=function(e){return`/`+e},xi={},$=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=bi(t,n),t=s(t),t in xi)return;xi[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`:yi,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)})},Si=tn({history:Ct(`/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-CDVvsO1k.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),meta:{guest:!0,hideNav:!0}},{path:`/register`,name:`register`,component:()=>$(()=>import(`./RegisterView-D4LJxEug.js`),__vite__mapDeps([10,1,2,3,4,11,5,6,7,8,9,12])),meta:{guest:!0,hideNav:!0}},{path:`/otp`,name:`otp`,component:()=>$(()=>import(`./OtpView-C7wkSKLl.js`),__vite__mapDeps([13,1,2,14,3,11,7,8,9,15,16])),meta:{guest:!0,hideNav:!0}},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-CIO-bcHQ.js`),__vite__mapDeps([17,1,2,3,11,18,19,20,21,22,23,24,25,26])),meta:{requiresAuth:!0}},{path:`/companies`,name:`companies`,component:()=>$(()=>import(`./CompanySelectView-liyb-0yE.js`),__vite__mapDeps([27,1,2,28,23,11,29,30,31,18,20,21,32,24,33])),meta:{requiresAuth:!0}},{path:`/categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-BKzeeMB3.js`),__vite__mapDeps([34,1,2,11,18,19,20,21,22,23,32,35,24,36])),meta:{requiresAuth:!0}},{path:`/products`,name:`products`,component:()=>$(()=>import(`./ProductsView-BuD86fST.js`),__vite__mapDeps([37,1,2,38,39,11,40,41,42,20,21,22,23,25,43])),meta:{requiresAuth:!0}},{path:`/product`,name:`product`,component:()=>$(()=>import(`./ProductDetailView-C1qTrEYC.js`),__vite__mapDeps([44,1,2,3,28,23,11,20,21,22,24,45,25,46])),meta:{requiresAuth:!0}},{path:`/catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsHubView-CYqXALDE.js`),__vite__mapDeps([47,1,2,28,23,39,11,40,20,21,48])),meta:{requiresAuth:!0}},{path:`/catalog-request`,name:`catalog-request`,component:()=>$(()=>import(`./CatalogRequestView-C8c_kKUC.js`),__vite__mapDeps([49,1,2,3,39,11,40,20,21,22,23,50,51])),meta:{requiresAuth:!0}},{path:`/catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-C7r0RQIw.js`),__vite__mapDeps([52,1,2,3,39,11,40,50,23,53])),meta:{requiresAuth:!0}},{path:`/favorites`,name:`favorites`,component:()=>$(()=>import(`./FavoritesView-C2rc7aQK.js`),__vite__mapDeps([54,1,2,39,11,40,20,21,22,23,25,55])),meta:{requiresAuth:!0}},{path:`/customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-CGAWB-ZQ.js`),__vite__mapDeps([56,1,2,3,38,39,11,40,41,42,20,21,22,23,57])),meta:{requiresAuth:!0}},{path:`/customers/new`,name:`customer-new`,component:()=>$(()=>import(`./CustomerCreateView-Bs4pjofV.js`),__vite__mapDeps([58,1,2,23,3,4,5,6,7,8,9,39,11,40,22,24,59])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/customer`,name:`customer`,component:()=>$(()=>import(`./CustomerDetailView-D3yYgQ2K.js`),__vite__mapDeps([60,1,2,3,61,15,62,39,11,40,20,21,22,23,63,45,64])),meta:{requiresAuth:!0}},{path:`/meeting-report`,name:`meeting-report`,component:()=>$(()=>import(`./MeetingReportView-45Gem8ho.js`),__vite__mapDeps([65,1,2,66,15,62,39,11,40,20,21,22,23,63,45,67])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/reminders`,name:`reminders`,component:()=>$(()=>import(`./RemindersView-BnrwuAXg.js`),__vite__mapDeps([68,1,2,3,11,69,20,21,22,23,24,70])),meta:{requiresAuth:!0}},{path:`/reminder`,name:`reminder`,component:()=>$(()=>import(`./ReminderDetailView-BtTy21io.js`),__vite__mapDeps([71,1,2,39,11,40,20,21,22,23,72])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/companies/:companyId/catalogs`,name:`company-catalogs`,component:()=>$(()=>import(`./CatalogListView-uZQRG5yv.js`),__vite__mapDeps([73,1,2,28,23,74,75,39,11,40,41,42,20,21,76])),meta:{requiresAuth:!0}},{path:`/companies/:companyId/catalogs/:catalogId/products`,name:`company-products`,component:()=>$(()=>import(`./ProductListView-CaInObaS.js`),__vite__mapDeps([77,1,2,3,28,23,74,75,39,11,40,78])),meta:{requiresAuth:!0}},{path:`/cart`,name:`cart`,component:()=>$(()=>import(`./CartView-Cr4iq0ZB.js`),__vite__mapDeps([79,1,2,3,74,75,11,7,8,80,81,31,62,18,19,82])),meta:{requiresAuth:!0}},{path:`/orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-DfeWZZpC.js`),__vite__mapDeps([83,1,2,3,28,23,74,75,61,11,29,30,66,38,69,84])),meta:{requiresAuth:!0}},{path:`/order`,name:`order-query`,redirect:e=>{let t=String(e.query.id??``);return t?{path:`/orders/${t}`}:{name:`orders`}}},{path:`/orders/:id`,name:`order-detail`,component:()=>$(()=>import(`./OrderDetailView-D9semEqd.js`),__vite__mapDeps([85,1,2,14,3,4,61,11,5,6,7,8,9,86,87,88,89])),meta:{requiresAuth:!0}},{path:`/orders/:id/success`,name:`order-success`,component:()=>$(()=>import(`./OrderSuccessView-BXGugRjf.js`),__vite__mapDeps([90,1,2,3,39,11,40,24,91])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/settlement`,name:`settlement`,component:()=>$(()=>import(`./SettlementTypeView-DwhWz5lK.js`),__vite__mapDeps([92,1,2,3,7,8,80,81,39,11,40,86,93,94,95])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/cash`,name:`cash-settlement`,component:()=>$(()=>import(`./CashSettlementView-UYDfJFC3.js`),__vite__mapDeps([96,1,2,3,28,23,39,11,40,93,86,97])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-mode`,name:`check-mode`,component:()=>$(()=>import(`./CheckModeSelectView-BpHuwbJg.js`),__vite__mapDeps([98,1,2,3,15,39,11,40,93,86,99])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-form`,name:`check-form`,component:()=>$(()=>import(`./CheckFormView-DW5qmSv3.js`),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,39,11,40,93,86,87,88,101,102])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-list`,name:`check-list`,component:()=>$(()=>import(`./CheckListView-C3cvQuGR.js`).then(e=>e.n),__vite__mapDeps([103,1,2,3,74,75,11,7,8,93,86,104])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/profile`,name:`profile`,component:()=>$(()=>import(`./ProfileView-B7uHdDcp.js`),__vite__mapDeps([105,1,2,3,61,15,31,18,20,21,22,23,35,101,94,63,45,106])),meta:{requiresAuth:!0}},{path:`/profile/edit`,name:`profile-edit`,component:()=>$(()=>import(`./ProfileEditView-COej2ZwG.js`),__vite__mapDeps([107,1,2,5,6,7,8,9,108,11,109,110])),meta:{requiresAuth:!0}},{path:`/profile/security`,name:`profile-security`,component:()=>$(()=>import(`./ProfileSecurityView-DN6fmUy5.js`),__vite__mapDeps([111,1,2,5,6,7,8,9,108,11,109,112])),meta:{requiresAuth:!0}},{path:`/profile/notifications`,name:`profile-notifications`,component:()=>$(()=>import(`./ProfileNotificationsView-D2zRTMKx.js`),__vite__mapDeps([113,1,2,3,74,75,108,11,109,114])),meta:{requiresAuth:!0}},{path:`/profile/display`,name:`profile-display`,component:()=>$(()=>import(`./ProfileDisplayView-BzRM602N.js`),__vite__mapDeps([115,1,2,14,108,11,109,116])),meta:{requiresAuth:!0}},{path:`/profile/checks`,name:`profile-checks`,component:()=>$(()=>import(`./ProfileChecksView-OYh1N4NH.js`),__vite__mapDeps([117,103,1,2,3,74,75,11,7,8,93,86,104])),meta:{requiresAuth:!0}}],scrollBehavior(){return{top:0}}});Si.beforeEach(e=>{let t=br();return e.meta.requiresAuth&&!t?{name:`login`,query:{redirect:e.fullPath}}:e.meta.guest&&t||e.meta.agentOnly&&vr()?.appRole!==`agent`?{name:`home`}:!0});var Ci=y(vi),wi=fe();Ci.use(wi),Ci.use(Si),zr(wi),Ci.mount(`#app`);export{Ln as C,Rn as S,Z as T,rr as _,zr as a,Bn as b,Ir as c,Or as d,kr as f,nr as g,ir as h,Vr as i,Fr as l,ar as m,ci as n,Rr as o,Ar as p,Wr as r,Lr as s,di as t,jr as u,Hn as v,In as w,zn as x,Vn as y}; \ No newline at end of file diff --git a/dist/assets/index-C8q6a5KX.css b/dist/assets/index-C8q6a5KX.css deleted file mode 100644 index fcedf02..0000000 --- a/dist/assets/index-C8q6a5KX.css +++ /dev/null @@ -1 +0,0 @@ -.bottom-nav[data-v-7948964e]{min-height:var(--nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0));flex-shrink:0;justify-content:space-around;align-items:flex-end;display:flex}@media (width>=768px){.bottom-nav[data-v-7948964e]{display:none}}.nav-item[data-v-7948964e]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;margin:0;padding:4px 2px 2px;transition:color .15s;display:flex;position:relative}.nav-item[data-v-7948964e]:focus,.nav-item[data-v-7948964e]:focus-visible{outline:none}.nav-item.active[data-v-7948964e]{color:var(--color-primary);background:0 0}.nav-item.active .nav-label[data-v-7948964e]{font-weight:700}.nav-item--fab[data-v-7948964e]{color:var(--color-text-muted);justify-content:flex-end}.nav-item--fab.active[data-v-7948964e]{color:var(--color-primary)}.nav-icon[data-v-7948964e]{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:visible}.nav-icon--fab[data-v-7948964e]{background:var(--color-primary);color:#fff;width:52px;height:52px;box-shadow:0 6px 16px rgba(var(--color-primary-rgb), .35);border-radius:999px;margin-top:-28px}.nav-label[data-v-7948964e]{white-space:nowrap;font-size:.6875rem;font-weight:500;line-height:1.2}.nav-label--fab[data-v-7948964e]{font-size:.625rem}.nav-badge[data-v-7948964e]{top:-2px;background:var(--color-danger);color:#fff;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;inset-inline-end:-2px}.desktop-sidebar[data-v-9a74c6bb]{width:var(--sidebar-width);background:var(--color-surface);border-inline-start:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100%;padding:0;display:none;overflow-y:auto}@media (width>=768px){.desktop-sidebar[data-v-9a74c6bb]{display:flex}}.desktop-sidebar__brand[data-v-9a74c6bb]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;border-bottom:none;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:0 20px;display:flex}@media (width>=1200px){.desktop-sidebar__brand[data-v-9a74c6bb]{padding:0 28px}}.desktop-sidebar__logo-mark[data-v-9a74c6bb]{border-radius:var(--radius-sm);background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;font-weight:700;display:flex}.desktop-sidebar__title[data-v-9a74c6bb]{color:var(--color-primary);font-size:1rem;font-weight:700;display:block}.desktop-sidebar__nav[data-v-9a74c6bb]{flex-direction:column;flex:1;gap:4px;padding:12px 12px 0;display:flex}@media (width>=1200px){.desktop-sidebar__nav[data-v-9a74c6bb]{padding:16px 16px 0}}.desktop-sidebar__item[data-v-9a74c6bb]{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--color-text-secondary);text-align:start;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:12px;padding:11px 12px;transition:background .15s,color .15s;display:flex;position:relative}@media (width>=1200px){.desktop-sidebar__item[data-v-9a74c6bb]{padding:11px 14px}}.desktop-sidebar__item[data-v-9a74c6bb]:hover{background:var(--color-elevated);color:var(--color-text)}.desktop-sidebar__item[data-v-9a74c6bb]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.desktop-sidebar__item.active[data-v-9a74c6bb]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.desktop-sidebar__item.active .desktop-sidebar__icon[data-v-9a74c6bb]{color:var(--color-primary)}.desktop-sidebar__icon[data-v-9a74c6bb]{width:22px;height:22px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-sidebar__label[data-v-9a74c6bb]{font-size:.875rem;font-weight:inherit;white-space:nowrap;display:block}.desktop-sidebar__badge[data-v-9a74c6bb]{background:var(--color-danger);color:var(--color-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-inline-start:auto;padding:0 4px;font-size:.6875rem;font-weight:700;display:flex}.desktop-sidebar__support[data-v-9a74c6bb]{background:var(--color-primary-soft);border-radius:var(--radius-lg);flex-direction:column;gap:8px;margin:auto 12px 20px;padding:14px;display:flex}@media (width>=1200px){.desktop-sidebar__support[data-v-9a74c6bb]{margin:auto 16px 24px;padding:16px}}.desktop-sidebar__support-icon[data-v-9a74c6bb]{background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;display:flex}.desktop-sidebar__support-title[data-v-9a74c6bb]{color:var(--color-text);font-size:.875rem;font-weight:700}.desktop-sidebar__support-text[data-v-9a74c6bb]{color:var(--color-text-muted);margin:0;font-size:.6875rem;line-height:1.5}.desktop-sidebar__support-btn[data-v-9a74c6bb]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);text-align:center;margin-top:4px;padding:10px 12px;font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.desktop-sidebar__support-btn[data-v-9a74c6bb]:hover{opacity:.9}.auth-theme-toggle[data-v-3a58cb84]{color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.auth-theme-toggle--floating[data-v-3a58cb84]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;width:40px;height:40px;color:var(--color-text);box-shadow:none;background:0 0;position:fixed;inset-inline-end:16px}.auth-theme-toggle--inline[data-v-3a58cb84]{width:40px;height:40px;color:inherit;flex-shrink:0;position:relative}.auth-theme-toggle[data-v-3a58cb84]:hover{color:var(--color-primary)}.user-avatar[data-v-5c562bf0]{color:inherit;background:#ffffff2e;border-radius:999px;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.user-avatar__img[data-v-5c562bf0]{object-fit:cover;width:100%;height:100%;display:block}.desktop-header[data-v-d90aac23]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;background:var(--color-surface);border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:none}@media (width>=768px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:16px;display:flex}}@media (width>=1200px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:24px}}.desktop-header__spacer[data-v-d90aac23]{flex:1;min-width:0}.desktop-header__actions[data-v-d90aac23]{flex-shrink:0;align-items:center;gap:16px;margin-inline-start:auto;display:flex}.desktop-header__company[data-v-d90aac23]{color:var(--color-text-muted);border-inline-end:1px solid var(--color-border);padding-inline-end:8px;font-size:.8125rem;font-weight:600;display:none}@media (width>=992px){.desktop-header__company[data-v-d90aac23]{display:block}}.desktop-header__icon-btn[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.desktop-header__notif-badge[data-v-d90aac23]{top:4px;background:var(--color-danger);min-width:18px;height:18px;color:var(--color-on-primary,#fff);border:2px solid var(--color-surface);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;inset-inline-end:4px}.desktop-header__user-wrap[data-v-d90aac23]{position:relative}.desktop-header__user[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;align-items:center;gap:10px;padding:6px 12px 6px 8px;font-family:inherit;display:flex}.desktop-header__avatar[data-v-d90aac23]{background:var(--color-primary);color:var(--color-surface)}.desktop-header__user-name[data-v-d90aac23]{color:var(--color-text);font-size:.875rem;font-weight:600;display:none}@media (width>=1200px){.desktop-header__user-name[data-v-d90aac23]{display:block}}.desktop-header__chevron[data-v-d90aac23]{color:var(--color-text-muted);transform:rotate(-90deg)}.desktop-header__menu[data-v-d90aac23]{top:calc(100% + 6px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);z-index:100;padding:6px;position:absolute;inset-inline-end:0}.desktop-header__menu button[data-v-d90aac23]{text-align:start;cursor:pointer;border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:0 0;border:none;padding:10px 12px;font-family:inherit;font-size:.875rem}.desktop-header__menu button[data-v-d90aac23]:hover{background:var(--color-elevated)}.desktop-header__menu-logout[data-v-d90aac23]{color:var(--color-danger)!important}.btn[data-v-3628a8bb]{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn[data-v-3628a8bb]:disabled{opacity:.55;cursor:not-allowed}.btn-block[data-v-3628a8bb]{width:100%}.btn-sm[data-v-3628a8bb]{min-height:36px;padding:0 14px;font-size:.8125rem}.btn-md[data-v-3628a8bb]{min-height:var(--btn-height);padding:0 24px;font-size:.9375rem}.btn-lg[data-v-3628a8bb]{min-height:52px;padding:0 28px;font-size:1rem}.btn-primary[data-v-3628a8bb]{background:var(--color-primary);color:var(--color-surface)}.btn-primary[data-v-3628a8bb]:not(:disabled):hover{background:var(--color-primary-dark)}.btn-secondary[data-v-3628a8bb]{background:var(--color-primary-light);color:var(--color-primary)}.btn-outline[data-v-3628a8bb]{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-danger[data-v-3628a8bb]{background:var(--color-danger);color:var(--color-surface)}.btn-ghost[data-v-3628a8bb]{color:var(--color-text-muted);background:0 0}.btn-spinner[data-v-3628a8bb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-3628a8bb}@keyframes spin-3628a8bb{to{transform:rotate(360deg)}}.confirm-dialog[data-v-2e50e2a7]{padding:20px}.confirm-dialog__title[data-v-2e50e2a7]{margin:0 0 8px;font-size:1.0625rem;font-weight:700}.confirm-dialog__message[data-v-2e50e2a7]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.confirm-dialog__actions[data-v-2e50e2a7]{margin-top:20px}@media (width>=768px){.confirm-dialog__actions[data-v-2e50e2a7]{flex-direction:row;justify-content:flex-end}}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.auth-header{text-align:center;margin-bottom:2rem}.btn-block{width:100%}.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.grid{display:grid}.inline-grid{display:inline-grid}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-3{margin-bottom:.75rem}.ms-1{margin-inline-start:.25rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.inline,.empty-inline:empty{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-10{height:2.5rem}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.max-w-\[var\(--form-max-width\)\]{max-width:var(--form-max-width)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.w-10{width:2.5rem}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.b,.border{border-width:1px}.border-0{border-width:0}.border-t{border-top-width:1px}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-full{border-radius:9999px}.bg-\[var\(--color-primary-soft\)\]{background-color:var(--color-primary-soft)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pt-3{padding-top:.75rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-primary\)\],.text-primary{color:var(--color-primary)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text-muted\)\],.text-muted{color:var(--color-text-muted)}.text-\[var\(--color-text\)\],.hover\:text-text:hover{color:var(--color-text)}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline,.hover\:underline:hover{text-decoration-line:underline}.no-underline{text-decoration:none}.tab{tab-size:4}.outline{outline-style:solid}.blur{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_UltraLight-hW-WDKY9.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#0a353c;--color-primary-hover:#072a2f;--color-primary-soft:#e8f4f1;--color-primary-dark:#062428;--color-primary-light:#e8f4f1;--color-primary-rgb:10, 53, 60;--color-accent-navy:#1b223c;--color-accent-navy-rgb:27, 34, 60;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f6f8f7;--color-page-background:#f6f8f7;--color-shell-bg:#eef1f0;--color-surface:#fff;--color-border:#e5e9e8;--color-text:#121212;--color-text-primary:#121212;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--color-tab-inactive-bg:#f1f5f9;--color-tab-inactive-text:#64748b;--color-summary-bg:#f1f5f9;--color-elevated:#fff;--color-brand-warm:#f3ece3;--color-brand-warm-text:#1a202c;--color-brand-warm-muted:#718096;--color-level-gold:#c9a227;--color-level-gold-soft:#f7efd6;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 4px 16px #1018280f;--shadow-card:0 1px 2px #1018280a, 0 4px 16px #1018280a;--shadow-frame:0 8px 32px #0f172a1a;--nav-height:64px;--page-padding:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-gap:12px;--content-max-width:1360px;--form-max-width:520px;--auth-form-max-width:440px;--summary-panel-width:320px;--sidebar-width:240px;--sidebar-width-compact:72px;--header-height:70px;--app-shell-breakpoint:768px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-height:48px;--desktop-breakpoint:1200px}html.dark{--color-primary:#5eb8ad;--color-primary-hover:#7ad0c5;--color-primary-soft:#14353a;--color-primary-dark:#7ad0c5;--color-primary-light:#14353a;--color-primary-rgb:94, 184, 173;--color-accent-navy:#9bb0d0;--color-accent-navy-rgb:155, 176, 208;--color-success:#3dd68c;--color-success-light:#123528;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-page-background:#0b0f14;--color-shell-bg:#080b10;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-text:#eef2f8;--color-text-primary:#eef2f8;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--color-tab-inactive-bg:#1a2230;--color-tab-inactive-text:#9aa8bc;--color-summary-bg:#1a2230;--color-brand-warm:#2a241c;--color-brand-warm-text:#f3ebe0;--color-brand-warm-muted:#b9a88d;--color-level-gold:#e0c35a;--color-level-gold-soft:#3a3420;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 8px 24px #00000073;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000059;--shadow-frame:0 12px 40px #00000080}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px;overflow:hidden}body{font-family:var(--font-family);background:var(--color-shell-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5;overflow:hidden}#app{height:100dvh;overflow:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;text-align:right}.page{background:var(--color-bg);min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.page__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.page__scroll--with-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.page-title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700;line-height:1.35}.page-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.card{background:var(--color-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text);padding:16px}.auth-page .card{box-shadow:none;background:0 0;border:none;padding-inline:0}.card+.card{margin-top:var(--page-gap)}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.875rem;line-height:1.5}.alert-info{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #cbd5e1}.alert-warning{background:var(--color-warning-light);color:#9a3412;border:1px solid #fed7aa}.alert-success{background:var(--color-success-light);color:#155724;border:1px solid #c3e6cb}.alert-danger{background:var(--color-danger-light);color:#991b1b;border:1px solid #fecaca}.form-group{margin-bottom:16px}.form-label{color:var(--color-text);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-hint{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.divider{background:var(--color-border);height:1px;margin:16px 0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-center{text-align:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.flex-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.sticky-footer{bottom:calc(var(--nav-height) + 12px);z-index:50;width:100%;max-width:100%;padding-inline:var(--page-padding);box-sizing:border-box;position:fixed;inset-inline:0}.sticky-footer-inner{max-width:100%}.no-nav .page{padding-bottom:0}.no-nav .sticky-footer{bottom:0}.dialog-overlay{z-index:200;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-overlay .dialog{width:100%;max-width:400px}.dialog-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.desktop-only{display:none!important}.mobile-hidden{display:block}.desktop-hidden{display:none!important}@media (width>=768px){.mobile-only,.mobile-block{display:none!important}.desktop-only{display:block!important}.mobile-hidden{display:none!important}.desktop-hidden{display:block!important}.desktop-only-flex{display:flex!important}.desktop-only-grid{display:grid!important}.page{background:0 0;padding:0}.page__scroll--with-nav{padding-bottom:0}}.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:opacity .22s,transform .22s}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.page-forward-enter-from{opacity:0;transform:translate(-18px)}.page-forward-leave-to{opacity:0;transform:translate(12px)}.page-back-enter-from{opacity:0;transform:translate(18px)}.page-back-leave-to{opacity:0;transform:translate(-12px)}@media (prefers-reduced-motion:reduce){.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:none}}.app-shell{background:var(--color-shell-bg);width:100%;height:100dvh;display:flex;overflow:hidden}.app-layout{flex-direction:row;width:100%;height:100%;min-height:0;display:flex}.app-frame{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-main,.app-main__content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-content{width:100%;min-height:0;max-width:var(--content-max-width);flex-direction:column;flex:1;margin-inline:auto;padding-inline:0;display:flex;position:relative}.page-transition{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.app-shell--with-nav{justify-content:stretch}.app-shell--with-nav .app-frame{max-width:100%;box-shadow:none;border-radius:0;margin:0}@media (width>=768px){.app-shell--with-nav,.app-shell--with-nav .app-frame{background:var(--color-page-background)}.app-shell--with-nav .app-layout{position:relative}.app-shell--with-nav .app-layout:after{content:"";top:var(--header-height);background:var(--color-border);z-index:30;pointer-events:none;height:1px;position:absolute;inset-inline:0}.app-shell--with-nav .app-main__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--with-nav .app-content,.app-shell--with-nav .page-transition{flex:1 0 auto;min-height:min-content;overflow:visible}.app-shell--with-nav .page-transition>*{flex:1 0 auto;height:auto;min-height:min-content;max-height:none;overflow:visible}}.app-shell--no-nav{background:var(--color-page-background);justify-content:center;align-items:center;padding:16px}.app-shell--no-nav .app-layout{max-width:var(--form-max-width);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);overflow:hidden}.app-shell--no-nav .app-frame{max-width:var(--form-max-width);border-radius:var(--radius-lg);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-frame);background:var(--color-surface);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--no-nav .app-main,.app-shell--no-nav .app-main__content,.app-shell--no-nav .app-content,.app-shell--no-nav .page-transition{flex:1 0 auto;height:auto;min-height:min-content;overflow:visible}.app-shell--no-nav .app-content{padding-inline:var(--page-padding)}.app-shell--no-nav .page{background:0 0;min-height:auto;overflow:visible}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 32px))}.app-shell--no-nav.app-shell--wide .app-frame{background:var(--color-bg)}@media (width>=768px){.app-shell--no-nav{padding:24px}.app-shell--no-nav .app-layout,.app-shell--no-nav .app-frame{max-height:calc(100dvh - 48px)}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 48px))}:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}html,body{height:auto;overflow:auto}#app{height:100dvh;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:6px;height:6px;display:block}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.sticky-footer{max-width:min(var(--content-max-width), calc(100% - 2 * var(--page-padding)));bottom:0}.no-nav .sticky-footer{bottom:0}.auth-page__scroll{flex-direction:column;justify-content:center;align-items:center;padding-block:48px;display:flex}.auth-header,.auth-page .card,.auth-footer{width:100%;max-width:var(--form-max-width)}.company-select-page__list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:20px;display:grid}.company-brand-card{min-height:220px}.catalog-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.product-page__scroll{padding-bottom:88px}.settlement-options,.mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:720px;margin-inline:auto;display:grid}.company-select-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.company-select-page__header{max-width:560px;margin-inline:auto}.catalog-page .page__scroll,.orders-page__scroll,.product-page .product-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cart-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.cart-page__body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:start;gap:16px 20px;display:grid}.cart-page__company{grid-column:1/-1;margin-bottom:0;font-size:.9375rem}.cart-page__scroll{grid-column:1;max-height:none;overflow:visible}.cart-page__footer{box-shadow:var(--shadow-md);border-radius:var(--radius-md);border-top:none;border:1px solid var(--color-border);grid-area:1/2/-1;margin:0;padding:16px;position:sticky;top:16px}.cart-table__head{position:static}.check-list-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.check-list-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.summary-cards{gap:16px}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.rass-panel{max-width:480px;margin-inline:auto}.profile-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.profile-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-menu__item{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.order-detail-page__body{-webkit-overflow-scrolling:touch;width:100%;max-width:none;margin-inline:0;overflow-y:auto}.order-detail-page__footer{width:100%;max-width:none;margin-inline:0}.checkout-page__scroll,.cash-page__scroll,.settlement-page__scroll,.check-mode-page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.cash-page{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cash-page__footer{max-width:var(--form-max-width);width:100%;box-shadow:none;border-top:none;grid-template-columns:1fr 1fr;gap:12px;margin-inline:auto;padding-top:16px;display:grid}.accounts-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bank-card+.bank-card,.cash-page__submit{margin-top:0}.order-info-card{max-width:520px;margin-inline:auto}.profile-edit-page .page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.success-page__scroll{max-width:var(--form-max-width);flex-direction:column;align-items:center;width:100%;margin-inline:auto;display:flex}.dialog-overlay .dialog,.dialog-overlay .card.dialog{width:100%;max-width:480px}.dialog-actions{flex-direction:row;justify-content:flex-end}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1440px){.product-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1920px){:root{--content-max-width:1120px}}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}.page{padding:20px var(--page-padding-tablet) 28px;max-width:var(--content-max-width);background:0 0;flex:1 0 auto;width:100%;min-height:auto;margin-inline:auto;overflow:visible}.page__scroll{flex:none;min-height:auto;overflow:visible}.page__scroll--with-nav{padding-bottom:0}.page-head{margin-bottom:20px}.page-head__title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700}.page-head__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-page__desktop-head{margin-bottom:20px}.orders-page__desktop-title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.orders-page__desktop-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.orders-stat-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:16px 18px 14px;display:flex}.orders-stat-card__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.orders-stat-card__label{font-size:.8125rem;font-weight:600;line-height:1.4}.orders-stat-card__label--total,.orders-stat-card__label--review{color:var(--color-text)}.orders-stat-card__label--active{color:#ea580c}.orders-stat-card__label--done{color:var(--color-success)}.orders-stat-card__value{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0 0 12px;font-size:1.75rem;font-weight:700;line-height:1.15}.orders-stat-card__link{color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin-top:auto;padding:0;font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:underline}.orders-stat-card__link:hover{color:var(--color-primary-hover)}.orders-stat-card__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.orders-stat-card__icon--total,.orders-stat-card__icon--review{background:var(--color-primary-soft);color:var(--color-primary)}.orders-stat-card__icon--active{background:var(--color-warning-light);color:#ea580c}.orders-stat-card__icon--done{background:var(--color-success-soft);color:var(--color-success)}.orders-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.orders-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.orders-toolbar__filter-btn{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;height:40px;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.orders-toolbar__filter-btn:hover{background:var(--color-primary-hover)}.orders-toolbar__pills{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.orders-filter-pill{border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 16px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.orders-filter-pill:hover{color:var(--color-text);border-color:#cbd5e1}.orders-filter-pill--active{background:var(--color-primary-soft);color:var(--color-primary);border-color:#c7d7ff;font-weight:600}.orders-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);overflow:hidden}.orders-table-scroll{overflow-x:auto}.orders-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.875rem}.orders-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 16px;font-size:.8125rem;font-weight:600}.orders-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:16px}.orders-table tr:last-child td{border-bottom:none}.orders-table tbody tr:hover td{background:var(--color-elevated)}.orders-table__number{color:var(--color-text);white-space:nowrap;font-weight:700}.orders-table__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.orders-table__date{color:var(--color-text-muted);white-space:nowrap;font-size:.8125rem}.orders-table__actions{align-items:center;gap:8px;display:flex}.orders-table__action{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);cursor:pointer;white-space:nowrap;padding:7px 16px;font-family:inherit;font-size:.8125rem;font-weight:600}.orders-table__action:hover{background:var(--color-primary-soft);border-color:#c7d7ff}.orders-table__menu{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-table__menu:hover{background:var(--color-elevated);color:var(--color-text)}.orders-pagination{border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-size:.8125rem;display:flex}.orders-pagination__summary{white-space:nowrap}.orders-pagination__controls{align-items:center;gap:4px;display:flex}.orders-pagination__arrow{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:32px;height:32px;color:var(--color-text);justify-content:center;align-items:center;padding:0;display:flex}.orders-pagination__arrow:disabled{opacity:.4;cursor:not-allowed}.orders-pagination__arrow:not(:disabled):hover{border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__arrow-icon--prev{transform:scaleX(-1)}.orders-pagination__arrow-icon--next{transform:none}.orders-pagination__ellipsis{text-align:center;min-width:24px;color:var(--color-text-muted)}.orders-pagination__page{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;min-width:32px;height:32px;color:var(--color-text);padding:0 6px;font-family:inherit;font-size:.8125rem}.orders-pagination__page:hover:not(.orders-pagination__page--active){border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__page--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.product-page__layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__main{min-width:0}.product-page__sidebar{position:sticky;top:16px}.cart-summary-panel{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:20px}.cart-summary-panel__title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.cart-summary-panel__row{justify-content:space-between;align-items:center;padding:8px 0;font-size:.875rem;display:flex}.cart-summary-panel__row span:first-child{color:var(--color-text-muted)}.cart-summary-panel__row strong{color:var(--color-text)}.cart-summary-panel__btn{margin-top:16px}.product-page__scroll{padding-bottom:0}.product-page .sticky-footer{display:none}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cart-page{max-width:var(--content-max-width);padding:20px var(--page-padding-tablet) 28px;background:0 0;margin-inline:auto}.cart-page__desktop-title{margin:0 0 16px;font-size:1.25rem;font-weight:700}.cart-page__body{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:start;gap:20px 24px;display:grid}.cart-page__company{grid-column:1/-1}.order-detail-page{max-width:none;padding:24px var(--page-padding) 32px;background:0 0;height:100%;margin-inline:0;overflow:hidden}.order-detail-back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.company-select-page{max-width:var(--content-max-width);padding:24px var(--page-padding-desktop);background:0 0;margin-inline:auto}.catalog-page{background:0 0}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-page{background:0 0}.profile-hero{border-radius:var(--radius-md);margin-inline:0}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.page{padding:24px var(--page-padding-desktop) 32px}.orders-stats{gap:16px;margin-bottom:24px}.orders-page__desktop-head{margin-bottom:24px}.orders-toolbar{margin-bottom:20px}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.desktop-page{width:100%;min-height:auto;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;background:0 0;flex-direction:column;flex:1 0 auto;margin-inline:auto;display:flex}.desktop-page__head{margin-bottom:20px}.desktop-page__title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-page__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.desktop-two-col{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.desktop-two-col__main{min-width:0}.desktop-summary-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;position:sticky;top:16px}.desktop-summary-panel__title{border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.desktop-summary-panel__row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.desktop-summary-panel__row span:first-child{color:var(--color-text-muted)}.desktop-summary-panel__row strong{color:var(--color-text);font-variant-numeric:tabular-nums}.desktop-summary-panel__action{margin-top:16px}.desktop-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);width:100%;min-width:0;overflow:hidden}.desktop-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.desktop-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.875rem}.desktop-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-size:.8125rem;font-weight:600}.desktop-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:14px 16px}.desktop-table tbody tr:last-child td{border-bottom:none}.desktop-table tbody tr:hover td{background:var(--color-elevated)}.desktop-grid-2{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.desktop-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.desktop-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.desktop-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.desktop-btn-compact{min-width:120px;width:auto!important;padding-inline:20px!important}.desktop-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-form-grid__full{grid-column:1/-1}.desktop-checkout-shell{width:100%;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.desktop-settlement-grid{grid-template-columns:repeat(2,minmax(280px,380px));justify-content:center;gap:20px;max-width:820px;margin-inline:auto;display:grid}.desktop-company-grid{grid-template-columns:repeat(2,minmax(280px,400px));justify-content:center;gap:20px;width:100%;max-width:900px;margin-inline:auto;display:grid}}@media (width>=1200px){.desktop-page,.desktop-checkout-shell{padding:24px var(--page-padding) 32px}.desktop-page__head{margin-bottom:24px}.desktop-two-col:has(>.desktop-summary-panel){grid-template-columns:minmax(0, 1fr) var(--summary-panel-width,320px)}.desktop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.desktop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (width>=1440px){.desktop-grid-3{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/dist/assets/index-D3Z8WOeX.js b/dist/assets/index-D3Z8WOeX.js new file mode 100644 index 0000000..56fcabc --- /dev/null +++ b/dist/assets/index-D3Z8WOeX.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-DoB0zrip.js","assets/BasicIcon-CjTTsi6o.js","assets/BasicIcon-QF_b9Svq.css","assets/format-BHJptHdF.js","assets/validation-BD7oi-2I.js","assets/BaseInput-oWA7d1_u.js","assets/BaseInput-Dxl7Obd8.css","assets/FormErrorBanner-B8THF9oG.js","assets/FormErrorBanner-Hje8L-00.css","assets/formErrors-DglFjYkZ.js","assets/RegisterView-F8TAiSXX.js","assets/dist-DLhmLSgX.js","assets/IconChevronBack-B10eZjCQ.js","assets/RegisterView-C6HaqUjx.css","assets/OtpView-DmhIJ6L4.js","assets/IconEditPen-CUhGotGH.js","assets/OtpView-DxlMUbrO.css","assets/HomeView-IjELxlp4.js","assets/IconLayoutGrid-fpJ_H2ee.js","assets/IconDiamond-Yhg3u2_R.js","assets/PageSkeleton-CyATkHE1.js","assets/PageSkeleton-BAjL8n2H.css","assets/crm-l0KpZ2AN.js","assets/http-Bfs7sUUO.js","assets/useGoBack-D3aJ73Q-.js","assets/IconHeart-BmvFB3Xr.js","assets/HomeView-B1qHsdTP.css","assets/CompanySelectView-CyQjKzR7.js","assets/catalog-Dd554brK.js","assets/IconFamBaftLogo-DC-RbvIL.js","assets/IconFamBaftLogo-BaDEschB.css","assets/IconBuilding-BTmZv_WO.js","assets/IconShoppingBag-B7WsCtZ4.js","assets/CompanySelectView-D61_rpsC.css","assets/CategoriesView-B2_xTRif.js","assets/IconBolt-DDYT1Qsn.js","assets/CategoriesView-BPyEMB_L.css","assets/ProductsView-DnYpVLnx.js","assets/IconFilter-lDKrtGms.js","assets/PageHeader-B47bvmJV.js","assets/PageHeader-CDhs0XKF.css","assets/SearchField-Ao52FWA8.js","assets/SearchField-BGmIHecn.css","assets/ProductsView-CHENfFEp.css","assets/ProductDetailView-DeWz9Sq6.js","assets/ProductDetailView-CtgUNpy9.css","assets/CatalogsHubView-Bb-hkFRI.js","assets/CatalogsHubView-COE4952g.css","assets/CatalogRequestView-18LsN9_v.js","assets/catalogRequests-CmW4jeEs.js","assets/CatalogRequestView-Ba1kJ7pw.css","assets/CatalogRequestsView-BHPBd5vT.js","assets/CatalogRequestsView-DUzaL-Pf.css","assets/FavoritesView-CTWGW3n4.js","assets/FavoritesView-C_rd5Wxy.css","assets/CustomersView-BPHESniR.js","assets/CustomersView--6m_fbKL.css","assets/CustomerCreateView-CYoHi2HU.js","assets/CustomerCreateView-xAy0nFXT.css","assets/CustomerDetailView-BizpJZAo.js","assets/constants-DXXK14Zz.js","assets/IconClipboardEmpty-CrdSnG5c.js","assets/IconMail-xKb9uNIK.js","assets/CustomerDetailView-Baj8nbYX.css","assets/MeetingReportView-BmE6DYAq.js","assets/IconCheckCircleOutline-DMQwnwv8.js","assets/MeetingReportView-clcxg22r.css","assets/RemindersView-CHMuTLoj.js","assets/IconMoreVertical-CoEoZgQs.js","assets/RemindersView-DX3323vn.css","assets/ReminderDetailView-Bz1lWWpY.js","assets/ReminderDetailView-CRDCge09.css","assets/CatalogListView-DF3_XOfL.js","assets/EmptyState-BpC5eqVE.js","assets/EmptyState-D6A5GmrP.css","assets/CatalogListView-CJBMOWwi.css","assets/CartView-BqUM1Ido.js","assets/CheckoutStepper-BoOJQ-Nf.js","assets/CheckoutStepper-hqk-kVCz.css","assets/CartView-CiGb3xZt.css","assets/OrdersView-MV4lb2oK.js","assets/OrdersView-CDVkfDcz.css","assets/OrderDetailView-DT5bw4I-.js","assets/orderInvoice-B0L1Aeuk.js","assets/PersianDateInput-C60QImoe.js","assets/PersianDateInput-MG7uK7zm.css","assets/OrderDetailView-DfQWMJF8.css","assets/OrderSuccessView-Bmz2L5sQ.js","assets/OrderSuccessView-D_odiYNR.css","assets/SettlementTypeView-CDwgIUrX.js","assets/useRequirePricedOrder-a2bgwmwB.js","assets/IconCashSettlement-DDfZWnNk.js","assets/SettlementTypeView-C3wqclvS.css","assets/CashSettlementView-CUX9QmvM.js","assets/CashSettlementView-C8IRazOR.css","assets/CheckModeSelectView-DpttebVb.js","assets/CheckModeSelectView-BZlKzxFL.css","assets/CheckFormView-DicpQoBz.js","assets/IconCash-CCD4LPLC.js","assets/CheckFormView-Cgp6kUZ2.css","assets/CheckListView-RTeRZSX_.js","assets/CheckListView-B_ogsKeK.css","assets/ProfileView-Cfmzm61F.js","assets/ProfileView-CLVmMWUZ.css","assets/ProfileEditView-BVfkEMoi.js","assets/ProfileSubpageLayout-VuAWanhC.js","assets/ProfileSubpageLayout-W3vfIprY.css","assets/ProfileEditView-Cqvr3yiG.css","assets/ProfileSecurityView-pOo-7xS0.js","assets/ProfileSecurityView-BjbybMSz.css","assets/ProfileNotificationsView-CAmwFOO5.js","assets/ProfileNotificationsView-CTp2kqLW.css","assets/ProfileDisplayView-IR8b7Mze.js","assets/ProfileDisplayView-BRRdMHnK.css","assets/ProfileChecksView-DsuXJYJS.js"])))=>i.map(i=>d[i]); +import{$ as e,A as t,B as n,Ct as r,E as i,F as a,G as o,H as s,I as c,J as l,L as u,M as d,O as f,Q as p,T as m,U as h,X as g,Y as _,_ as v,a as y,b,bt as x,c as S,d as C,et as w,f as T,ft as E,g as D,h as ee,ht as te,i as O,j as k,k as A,l as ne,m as re,n as j,o as M,p as ie,pt as ae,q as N,r as oe,s as se,t as P,tt as F,u as ce,ut as le,v as I,wt as L,xt as R,y as ue}from"./BasicIcon-CjTTsi6o.js";import{a as de,i as z,n as B,o as V,r as H,s as U,t as W}from"./http-Bfs7sUUO.js";import{a as fe,i as pe,r as me}from"./dist-DLhmLSgX.js";import{_ as he,c as ge,s as _e,t as ve,u as ye,v as be}from"./format-BHJptHdF.js";import{r as xe}from"./validation-BD7oi-2I.js";import{t as G}from"./catalog-Dd554brK.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 K=typeof document<`u`,Se=/#/g,Ce=/&/g,we=/\//g,Te=/=/g,Ee=/\?/g,De=/\+/g,Oe=/%5B/g,ke=/%5D/g,Ae=/%5E/g,je=/%60/g,Me=/%7B/g,Ne=/%7C/g,Pe=/%7D/g,Fe=/%20/g;function Ie(e){return e==null?``:encodeURI(``+e).replace(Ne,`|`).replace(Oe,`[`).replace(ke,`]`)}function Le(e){return Ie(e).replace(Me,`{`).replace(Pe,`}`).replace(Ae,`^`)}function Re(e){return Ie(e).replace(De,`%2B`).replace(Fe,`+`).replace(Se,`%23`).replace(Ce,`%26`).replace(je,"`").replace(Me,`{`).replace(Pe,`}`).replace(Ae,`^`)}function ze(e){return Re(e).replace(Te,`%3D`)}function Be(e){return Ie(e).replace(Se,`%23`).replace(Ee,`%3F`)}function Ve(e){return Be(e).replace(we,`%2F`)}function He(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Ue=/\/$/,We=e=>e.replace(Ue,``);function Ge(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=Qe(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:He(o)}}function Ke(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function qe(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Je(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&q(t.matched[r],n.matched[i])&&Ye(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function q(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ye(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Xe(e[n],t[n]))return!1;return!0}function Xe(e,t){return M(e)?Ze(e,t):M(t)?Ze(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Ze(e,t){return M(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Qe(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 J={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function $e(e){if(!e)if(K){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),We(e)}var et=/^[^#]+#/;function tt(e,t){return e.replace(et,`#`)+t}function nt(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 rt=()=>({left:window.scrollX,top:window.scrollY});function it(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=nt(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 at(e,t){return(history.state?history.state.position-t:-1)+e}var ot=new Map;function st(e,t){ot.set(e,t)}function ct(e){let t=ot.get(e);return ot.delete(e),t}function lt(e){return typeof e==`string`||e&&typeof e==`object`}function ut(e){return typeof e==`string`||typeof e==`symbol`}function dt(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Re(e)):[r&&Re(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function pt(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=M(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function mt(){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 Y(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(y(4,{from:n,to:t})):e instanceof Error?c(e):lt(e)?c(y(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 ht(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(ne(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Y(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=se(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Y(c,n,r,o,e,i)()}))}}return a}function gt(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oq(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>q(e,s))||i.push(s))}return[n,r,i]}var _t=()=>location.protocol+`//`+location.host;function vt(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),qe(n,``)}return qe(n,e)+r+i}function yt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=vt(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(O({},e.state,{scroll:rt()}),``)}}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 bt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?rt():null}}function xt(e){let{history:t,location:n}=window,r={value:vt(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:_t()+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,O({},t.state,bt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=O({},i.value,t.state,{forward:e,scroll:rt()});a(o.current,o,!0),a(e,O({},bt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function St(e){e=$e(e);let t=xt(e),n=yt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=O({location:``,base:e,go:r,createHref:tt.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 Ct={type:0,value:``},wt=/[a-zA-Z0-9_]/;function Tt(e){if(!e)return[[]];if(e===`/`)return[[Ct]];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 jt(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Nt={strict:!1,end:!0,sensitive:!1};function Pt(e,t,n){let r=kt(Tt(e.path),n),i=O(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ft(e,t){let n=[],r=new Map;t=C(Nt,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Lt(e);s.aliasOf=r&&r.record;let l=C(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(Lt(O({},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=Pt(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!zt(d)&&o(e.name)),Ut(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:T}function o(e){if(ut(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=Vt(e,n);n.splice(t,0,e),e.record.name&&!zt(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 y(1,{location:e});s=i.record.name,a=O(It(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&It(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 y(1,{location:e,currentLocation:t});s=i.record.name,a=O({},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:Bt(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 It(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Lt(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rt(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 Rt(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 zt(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Bt(e){return e.reduce((e,t)=>O(e,t.meta),{})}function Vt(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;jt(e,t[i])<0?r=i:n=i+1}let i=Ht(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ht(e){let t=e;for(;t=t.parent;)if(Ut(t)&&jt(e,t)===0)return t}function Ut({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Wt(e){let t=s(re),n=s(ie),r=f(()=>{let n=x(e.to);return t.resolve(n)}),i=f(()=>{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(q.bind(null,i));if(o>-1)return o;let s=Yt(e[t-2]);return t>1&&Yt(i)===s&&a[a.length-1].path!==s?a.findIndex(q.bind(null,e[t-2])):o}),a=f(()=>i.value>-1&&Jt(n.params,r.value.params)),o=f(()=>i.value>-1&&i.value===n.matched.length-1&&Ye(n.params,r.value.params));function c(n={}){if(qt(n)){let n=t[x(e.replace)?`replace`:`push`](x(e.to)).catch(T);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:f(()=>r.value.href),isActive:a,isExactActive:o,navigate:c}}function Gt(e){return e.length===1?e[0]:e}var Kt=u({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:Wt,setup(e,{slots:t}){let r=le(Wt(e)),{options:i}=s(re),a=f(()=>({[Xt(e.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[Xt(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=t.default&&Gt(t.default(r));return e.custom?i:n(`a`,{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});function qt(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 Jt(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(!M(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Yt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Xt=(e,t,n)=>e??t??n,Zt=u({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:r,slots:i}){let a=s(ee),o=f(()=>t.route||a.value),c=s(I,0),u=f(()=>{let e=x(c),{matched:t}=o.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),d=f(()=>o.value.matched[u.value]);l(I,f(()=>u.value+1)),l(ce,d),l(ee,o);let p=E();return e(()=>[p.value,d.value,t.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||!q(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let e=o.value,a=t.name,s=d.value,c=s&&s.components[a];if(!c)return Qt(i.default,{Component:c,route:e});let l=s.props[a],u=l?l===!0?e.params:typeof l==`function`?l(e):l:null,f=n(c,O({},u,r,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(s.instances[a]=null)},ref:p}));return Qt(i.default,{Component:f,route:e})||f}}});function Qt(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var $t=Zt;function en(e){let t=Ft(e.routes,e),n=e.parseQuery||dt,r=e.stringifyQuery||ft,i=e.history,a=mt(),o=mt(),s=mt(),c=te(J),l=J;K&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=oe.bind(null,e=>``+e),d=oe.bind(null,Ve),f=oe.bind(null,He);function p(e,n){let r,i;return ut(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 g(){return t.getRoutes().map(e=>e.record)}function _(e){return!!t.getRecordMatcher(e)}function v(e,a){if(a=O({},a||c.value),typeof e==`string`){let r=Ge(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return O(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=O({},e,{path:Ge(n,e.path,a.path).path});else{let t=O({},e.params);for(let e in t)t[e]??delete t[e];o=O({},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=Ke(r,O({},e,{hash:Le(l),path:s.path})),m=i.createHref(p);return O({fullPath:p,hash:l,query:r===ft?pt(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function b(e){return typeof e==`string`?Ge(n,e,c.value.path):O({},e)}function C(e,t){if(l!==e)return y(8,{from:t,to:e})}function w(e){return k(e)}function E(e){return w(O(b(e),{replace:!0}))}function D(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=b(i):{path:i},i.params={}),O({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function k(e,t){let n=l=v(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=D(n,i);if(u)return k(O(b(u),{state:typeof u==`object`?O({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Je(r,i,n)&&(f=y(16,{to:d,from:i}),de(i,i,!0,!1)),(f?Promise.resolve(f):j(d,i)).catch(e=>S(e)?S(e,2)?e:ue(e):L(e,d,i)).then(e=>{if(e){if(S(e,2))return k(O({replace:s},b(e.to),{state:typeof e.to==`object`?O({},a,e.to.state):a,force:o}),t||d)}else e=se(d,i,!0,s,a);return N(d,i,e),e})}function A(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function ne(e){let t=V.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function j(e,t){let n,[r,i,s]=gt(e,t);n=ht(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Y(r,e,t))});let c=A.bind(null,e,t);return n.push(c),U(n).then(()=>{n=[];for(let r of a.list())n.push(Y(r,e,t));return n.push(c),U(n)}).then(()=>{n=ht(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Y(r,e,t))});return n.push(c),U(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(M(r.beforeEnter))for(let i of r.beforeEnter)n.push(Y(i,e,t));else n.push(Y(r.beforeEnter,e,t));return n.push(c),U(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ht(s,`beforeRouteEnter`,e,t,ne),n.push(c),U(n))).then(()=>{n=[];for(let r of o.list())n.push(Y(r,e,t));return n.push(c),U(n)}).catch(e=>S(e,8)?e:Promise.reject(e))}function N(e,t,n){s.list().forEach(r=>ne(()=>r(e,t,n)))}function se(e,t,n,r,a){let o=C(e,t);if(o)return o;let s=t===J,l=K?history.state:{};n&&(r||s?i.replace(e.fullPath,O({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,de(e,t,n,s),ue()}let P;function F(){P||=i.listen((e,t,n)=>{if(!H.listening)return;let r=v(e),a=D(r,H.currentRoute.value);if(a){k(O(a,{replace:!0,force:!0}),r).catch(T);return}l=r;let o=c.value;K&&st(at(o.fullPath,n.delta),rt()),j(r,o).catch(e=>S(e,12)?e:S(e,2)?(k(O(b(e.to),{force:!0}),r).then(e=>{S(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(T),Promise.reject()):(n.delta&&i.go(-n.delta,!1),L(e,r,o))).then(e=>{e||=se(r,o,!1),e&&(n.delta&&!S(e,8)?i.go(-n.delta,!1):n.type===`pop`&&S(e,20)&&i.go(-1,!1)),N(r,o,e)}).catch(T)})}let ce=mt(),le=mt(),I;function L(e,t,n){ue(e);let r=le.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function R(){return I&&c.value!==J?Promise.resolve():new Promise((e,t)=>{ce.add([e,t])})}function ue(e){return I||(I=!e,F(),ce.list().forEach(([t,n])=>e?n(e):t()),ce.reset()),e}function de(t,n,r,i){let{scrollBehavior:a}=e;if(!K||!a)return Promise.resolve();let o=!r&&ct(at(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return h().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&it(e)).catch(e=>t===c.value&&L(e,t,n))}let z=e=>i.go(e),B,V=new Set,H={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:v,options:e,push:w,replace:E,go:z,back:()=>z(-1),forward:()=>z(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:le.add,isReady:R,install(e){e.component(`RouterLink`,Kt),e.component(`RouterView`,$t),e.config.globalProperties.$router=H,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>x(c)}),K&&!B&&c.value===J&&(B=!0,w(i.location).catch(e=>{}));let t={};for(let e in J)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(re,H),e.provide(ie,ae(t)),e.provide(ee,c);let n=e.unmount;V.add(e),e.unmount=function(){V.delete(e),V.size<1&&(l=J,P&&P(),P=null,c.value=J,B=!1,I=!1),n()}}};function U(e){return e.reduce((e,t)=>e.then(()=>ne(t)),Promise.resolve())}return H}var tn=typeof global==`object`&&global&&global.Object===Object&&global,nn=typeof self==`object`&&self&&self.Object===Object&&self,rn=(tn||nn||Function(`return this`)()).Symbol,an=Object.prototype,on=an.hasOwnProperty,sn=an.toString,cn=rn?rn.toStringTag:void 0;function ln(e){var t=on.call(e,cn),n=e[cn];try{e[cn]=void 0;var r=!0}catch{}var i=sn.call(e);return r&&(t?e[cn]=n:delete e[cn]),i}var un=Object.prototype.toString;function dn(e){return un.call(e)}var fn=`[object Null]`,pn=`[object Undefined]`,mn=rn?rn.toStringTag:void 0;function hn(e){return e==null?e===void 0?pn:fn:mn&&mn in Object(e)?ln(e):dn(e)}function gn(e){return typeof e==`object`&&!!e}var _n=`[object Symbol]`;function vn(e){return typeof e==`symbol`||gn(e)&&hn(e)==_n}var yn=/\s/;function bn(e){for(var t=e.length;t--&&yn.test(e.charAt(t)););return t}var xn=/^\s+/;function Sn(e){return e&&e.slice(0,bn(e)+1).replace(xn,``)}function Cn(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var wn=NaN,Tn=/^[-+]0x[0-9a-f]+$/i,En=/^0b[01]+$/i,Dn=/^0o[0-7]+$/i,On=parseInt;function kn(e){if(typeof e==`number`)return e;if(vn(e))return wn;if(Cn(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Cn(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Sn(e);var n=En.test(e);return n||Dn.test(e)?On(e.slice(2),n?2:8):Tn.test(e)?wn:+e}function An(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function jn(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=kn(n),n=n===n?n:0),t!==void 0&&(t=kn(t),t=t===t?t:0),An(kn(e),t,n)}var Mn=5e3;function Nn(){return{id:`local`,companyId:``,companyName:``,items:[]}}function X(){return!1}function Pn(e){return[...new Set(e.map(e=>e.companyName).filter(Boolean))].join(`، `)}function Fn(e,t){return e.items.filter(e=>e.companyId===t).reduce((e,t)=>e+t.meterage,0)}var Z=V(`cart`,()=>{let e=E([Nn()]),t=E(`local`),n=E(null),r=E(!1),i=f(()=>e.value.find(e=>e.id===t.value)??e.value[0]??null),a=f(()=>i.value?.items.reduce((e,t)=>e+t.meterage,0)??0),o=f(()=>i.value?.items.length??0),s=G(),c=f(()=>i.value?.items.length?Pn(i.value.items):``),l=f(()=>{let e=i.value;if(!e?.items.length)return[];let t=new Map;for(let n of e.items){let e=t.get(n.companyId);e?e.meterage+=n.meterage:t.set(n.companyId,{companyName:n.companyName||`شرکت`,meterage:n.meterage})}return[...t.entries()].map(([e,t])=>{let n=s.getCompany(e)?.maxMeteragePerInvoice??Mn;return{companyId:e,companyName:t.companyName,meterage:t.meterage,maxMeterage:n,remaining:Math.max(0,n-t.meterage)}})}),u=f(()=>l.value.length?l.value.reduce((e,t)=>e+t.maxMeterage,0):(n.value?s.getCompany(n.value):null)?.maxMeteragePerInvoice??Mn),d=f(()=>l.value.length?l.value.reduce((e,t)=>e+t.remaining,0):Math.max(0,u.value-a.value)),p=f(()=>l.value.some(e=>e.meterage>=e.maxMeterage));function m(r){let i={id:r.id,companyId:r.companyId||``,companyName:r.companyName||Pn(r.items),items:r.items??[],notes:r.notes};e.value=[i],t.value=i.id,i.companyId&&(n.value=i.companyId)}function h(n){e.value=[{...n,items:n.items.map(e=>({...e}))}],t.value=e.value[0].id}async function g(){if(!H()){_();return}if(X()){r.value=!1;return}r.value=!0;try{m(await B(`/carts`))}catch{_()}finally{r.value=!1}}function _(){e.value=[Nn()],t.value=e.value[0].id,n.value=null}function v(e){n.value=e.id,i.value&&!i.value.items.length&&(i.value.companyId=e.id,i.value.companyName=e.name)}function y(e){return v(e),i.value??Nn()}function b(e){return e&&v(e),i.value??Nn()}async function x(){if(X())return _(),i.value;try{return m(await B(`/carts`,{method:`DELETE`})),i.value}catch(e){return console.error(e),null}}function S(e,t,r,i){let a=b(i),o=a.items.find(t=>t.productId===e.id),s=[...a.items];if(o){let e=s.findIndex(e=>e.id===o.id);s[e]={...o,meterage:r}}else{let n={id:`local-item-${e.id}-${Date.now()}`,productId:e.id,catalogCode:t,productName:e.name,productCode:e.code,color:e.color,meterage:r,companyId:i.id,companyName:i.name};s.push(n)}return h({id:a.id||`local`,companyId:s[0]?.companyId||i.id,companyName:Pn(s)||i.name,items:s,notes:a.notes}),n.value=i.id,{success:!0}}async function C(e,t,r){s.companies.length||await s.loadCompanies();let a=s.getCompany(e.companyId),o=i.value??Nn(),c=a?.maxMeteragePerInvoice??Mn,l=e.companyId?Fn(o,e.companyId):0,u=o.items.find(t=>t.productId===e.id),d=u?.meterage??0,f=xe(r,e,l,c,d);if(!f.valid)return{success:!1,message:f.message};if(X())return a?S(e,t,r,a):{success:!1,message:`شرکت محصول یافت نشد.`};try{let t;return t=u?await B(`/carts/items/${u.id}`,{method:`PATCH`,body:{meterage:r}}):await B(`/carts/items`,{method:`POST`,body:{productId:e.id,meterage:r}}),m(t),n.value=a?.id||e.companyId||n.value,{success:!0}}catch(e){return{success:!1,message:e instanceof W?e.message:`افزودن به سبد ناموفق بود.`}}}async function w(e,t,n){if(!i.value)return{success:!1,message:`سبد خرید یافت نشد.`};let r=i.value.items.find(t=>t.id===e);if(!r)return{success:!1,message:`آیتم یافت نشد.`};let a=s.getCompany(r.companyId||n.companyId)?.maxMeteragePerInvoice??Mn,o=Fn(i.value,r.companyId),c=xe(t,n,o,a,r.meterage);if(!c.valid)return{success:!1,message:c.message};if(X()){let n=i.value.items.map(n=>n.id===e?{...n,meterage:t}:n);return h({...i.value,items:n}),{success:!0}}try{return m(await B(`/carts/items/${e}`,{method:`PATCH`,body:{meterage:t}})),{success:!0}}catch(e){return{success:!1,message:e instanceof W?e.message:`به‌روزرسانی متراژ ناموفق بود.`}}}async function T(e){if(X()){if(!i.value)return;let t=i.value.items.filter(t=>t.id!==e);h({...i.value,items:t});return}try{m(await B(`/carts/items/${e}`,{method:`DELETE`}))}catch(e){console.error(e)}}async function D(e){if(X()){if(!i.value)return;h({...i.value,notes:e});return}try{m(await B(`/carts/notes`,{method:`PATCH`,body:{notes:e}}))}catch(e){console.error(e)}}async function ee(){if(X()){_();return}try{m(await B(`/carts`,{method:`DELETE`}))}catch{_()}}function te(){}return{carts:e,activeCartId:t,selectedCompanyId:n,syncing:r,activeCart:i,totalMeterage:a,itemCount:o,companyNamesLabel:c,companySummaries:l,maxMeterage:u,remainingCapacity:d,isFull:p,initCartForCompany:y,selectCompany:v,createNewCartForSameCompany:x,addItem:C,updateItemMeterage:w,removeItem:T,setNotes:D,clearActiveCart:ee,ensureActiveCartForCartPage:te,hydrate:g,resetLocal:_}}),In=u({__name:`IconHome`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:home`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ln=u({__name:`IconCart`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:bag-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Rn=u({__name:`IconOrders`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:document-text`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zn=u({__name:`IconProfile`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:profile-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Bn=u({__name:`IconCatalog`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:category`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Vn=u({__name:`IconCheckBook`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:card-receive`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Hn=u({__name:`IconPlus`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:add`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Un=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`catalogs`,path:`/catalogs`,label:`کالیته‌ها`,icon:Bn},{name:`order-fab`,path:`/cart`,label:`ثبت سفارش`,icon:Hn},{name:`orders`,path:`/orders`,label:`سفارش‌ها`,icon:Rn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Wn=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`ordering`,path:`/`,label:`سفارش‌گذاری`,icon:Bn,dynamicPath:!0},{name:`cart`,path:`/cart`,label:`سبد خرید`,icon:Ln},{name:`orders`,path:`/orders`,label:`سفارش‌ها`,icon:Rn},{name:`checks`,path:`/profile/checks`,label:`لیست چک‌ها`,icon:Vn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Gn=`/categories`;function Kn(e){return Gn}var qn=[`/catalogs`,`/catalog-request`,`/catalog-requests`,`/categories`,`/products`,`/product`,`/favorites`];function Jn(e,t,n){return e===`ordering`?n.startsWith(`/categories`)||n.startsWith(`/products`)||n.startsWith(`/product`)||n.startsWith(`/catalogs`):e===`home`?n===`/`:e===`catalogs`?qn.some(e=>n===e||n.startsWith(`${e}/`)):e===`order-fab`?n===`/cart`||n.startsWith(`/cart/`):e===`checks`?n.startsWith(`/profile/checks`):e===`profile`||t===`/profile`?n===`/profile`:t===`/`?n===`/`:n.startsWith(t)}function Yn(e,t){return e.name===`ordering`?Kn(t):e.path}var Xn={class:`bottom-nav`,"aria-label":`ناوبری اصلی`},Zn=[`aria-current`,`aria-label`,`onClick`],Qn={key:0,class:`nav-badge`},$n={key:0,class:`nav-label`},er={key:1,class:`nav-label nav-label--fab`},tr=j(u({__name:`BottomNav`,setup(e){let n=D(),r=v(),a=Z(),o=f(()=>a.itemCount);function s(e,t){let n=t.currentTarget;if(n instanceof HTMLElement&&n.blur(),e===`/cart`&&a.itemCount===0){r.push(`/categories`);return}r.push(e)}return(e,r)=>(N(),d(`nav`,Xn,[(N(!0),d(i,null,_(x(Un),e=>(N(),d(`button`,{key:e.name,type:`button`,class:R([`nav-item`,{active:x(Jn)(e.name,e.path,x(n).path),"nav-item--fab":e.name===`order-fab`}]),"aria-current":x(Jn)(e.name,e.path,x(n).path)?`page`:void 0,"aria-label":e.label,onClick:t=>s(e.path,t)},[A(`span`,{class:R([`nav-icon`,{"nav-icon--fab":e.name===`order-fab`}])},[(N(),t(p(e.icon),{size:e.name===`order-fab`?26:22,"stroke-width":e.name===`order-fab`?1.8:1.5,color:e.name===`order-fab`?`#ffffff`:void 0},null,8,[`size`,`stroke-width`,`color`])),e.name===`order-fab`&&o.value>0?(N(),d(`span`,Qn,L(o.value),1)):k(``,!0)],2),e.name===`order-fab`?(N(),d(`span`,er,L(e.label),1)):(N(),d(`span`,$n,L(e.label),1))],10,Zn))),128))]))}}),[[`__scopeId`,`data-v-18a88055`]]);function nr(){return{checkCount:0,totalAmount:0,nearestDueDate:null,farthestDueDate:null,rassDays:0,rassDate:null}}function rr(e,t=new Date){if(e.length===0)return nr();let n=new Date(t);n.setHours(0,0,0,0);let r=0,i=0,a=[];for(let t of e){if(!t.dueDate){r+=t.amount;continue}let e=he(t.dueDate);if(Number.isNaN(e.getTime())){r+=t.amount;continue}e.setHours(0,0,0,0),a.push(e);let o=e.getTime()-n.getTime(),s=Math.max(0,Math.round(o/864e5));r+=t.amount,i+=t.amount*s}let o=r>0?Math.round(i/r):0,s=new Date(n);return s.setDate(s.getDate()+o),a.sort((e,t)=>e.getTime()-t.getTime()),{checkCount:e.length,totalAmount:r,nearestDueDate:a[0]?be(a[0]):null,farthestDueDate:a.length?be(a[a.length-1]):null,rassDays:o,rassDate:be(s)}}function ir(e){let t=new Date;t.setHours(0,0,0,0);let n=he(e);return Number.isNaN(n.getTime())?0:(n.setHours(0,0,0,0),Math.max(0,Math.round((n.getTime()-t.getTime())/864e5)))}var ar=V(`order`,()=>{let e=E([]),t=E([]),n=E(null),r=E(null),i=E(null),a=E(!1),o=f(()=>t=>[...e.value].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()));function s(t){return e.value.find(e=>e.id===t)}function c(e,a){i.value=e,n.value=`check`,t.value=[],r.value=a??null}function l(e){i.value=e.id,n.value=`check`,r.value=e.checkMode??`full`,t.value=(e.checks??[]).map(e=>({...e}))}function u(){i.value=null,t.value=[],r.value=null,n.value=null}function d(e){r.value=e}function p(e){t.value.push({...e,id:_e()})}function m(e,n){let r=t.value.findIndex(t=>t.id===e);r>=0&&(t.value[r]={...t.value[r],...n})}function h(e){t.value=t.value.filter(t=>t.id!==e)}function g(e){return rr(t.value,e??new Date)}async function _(){if(!H()){e.value=[];return}a.value=!0;try{e.value=await B(`/orders`)}catch{e.value=[]}finally{a.value=!1}}function v(){e.value=[],u()}function y(t){let n=e.value.findIndex(e=>e.id===t.id);n>=0?e.value[n]=t:e.value.unshift(t)}async function b(e){try{let t=await B(`/orders/${e}`);return y(t),t}catch{return null}}async function x(t){if(!t.items.length)throw Error(`سبد خرید خالی است.`);if(t.id===`local`||t.items.some(e=>e.id.startsWith(`local-item-`)))throw Error(`سبد خرید با سرور همگام نیست. لطفاً دوباره محصولات را به سبد اضافه کنید.`);let n=[...new Set(t.items.map(e=>e.companyId).filter(Boolean))];if(!n.length)throw Error(`شرکت سبد مشخص نیست. سبد را خالی کنید و دوباره اضافه کنید.`);try{let r=await B(`/orders`,{method:`POST`,body:{companyId:n[0],notes:t.notes,items:t.items.map(e=>({productId:e.productId,meterage:Number(e.meterage),notes:e.notes}))}});return e.value.unshift(r),u(),r}catch(e){throw Error(e instanceof W?e.message:`ثبت سفارش ناموفق بود.`)}}async function S(e,t,n){try{let r=await B(`/orders/${e}/settlement`,{method:`POST`,body:{settlementType:t,checkMode:t===`check`?n??`full`:void 0}});return y(r),r}catch(e){throw Error(e instanceof W?e.message:`ثبت روش تسویه ناموفق بود.`)}}async function C(e,t){try{await B(`/orders/${e}/cash-receipt`,{method:`POST`,body:{amount:t.amount,transferDate:t.transferDate,transferTime:t.transferTime,trackingNumber:t.trackingNumber,destinationAccountId:t.destinationAccountId,receiptImage:t.receiptImage,notes:t.notes}});let n=await b(e);if(!n)throw Error(`رسید ثبت شد ولی دریافت سفارش ناموفق بود.`);return n}catch(e){throw Error(e instanceof W?e.message:`ثبت رسید ناموفق بود.`)}}async function w(e,t,n){try{let r=await B(`/orders/${e}/checks`,{method:`PATCH`,body:{checkMode:n,checks:t.map(e=>({amount:e.amount,dueDate:e.dueDate,sayadId:e.sayadId,checkNumber:e.checkNumber,ownerNationalId:e.ownerNationalId,ownerFirstName:e.ownerFirstName,ownerLastName:e.ownerLastName,bankName:e.bankName,branchName:e.branchName,frontImage:e.frontImage,backImage:e.backImage,notes:e.notes,mode:e.mode}))}});return y(r),u(),r}catch(e){throw Error(e instanceof W?e.message:`ثبت چک‌ها ناموفق بود.`)}}async function T(e){let t=[...new Set([e.companyId,...e.items.map(e=>e.companyId).filter(Boolean)].filter(Boolean))],n=G(),r=await Promise.all(t.map(e=>n.loadBankAccounts(e))),i=new Map;for(let e of r)for(let t of e)i.set(t.id,t);return[...i.values()]}async function D(e){return G().loadBankAccounts(e)}return{orders:e,draftChecks:t,draftSettlementType:n,draftCheckMode:r,draftOrderId:i,loading:a,userOrders:o,getOrderById:s,startCheckDraft:c,loadChecksIntoDraft:l,clearCheckDraft:u,setCheckMode:d,addDraftCheck:p,updateDraftCheck:m,removeDraftCheck:h,getDraftRass:g,submitOrder:x,chooseSettlement:S,submitCashReceipt:C,updateOrderChecks:w,hydrate:_,resetLocal:v,fetchOrder:b,getBankAccountsForOrder:T,getBankAccountsForCompany:D}}),or=u({__name:`IconHeadset`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:headphone`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),sr={class:`desktop-sidebar`,"aria-label":`ناوبری اصلی`},cr={class:`desktop-sidebar__nav`},lr=[`aria-current`,`aria-label`,`title`,`onClick`],ur={class:`desktop-sidebar__icon`},dr={class:`desktop-sidebar__label`},fr={key:0,class:`desktop-sidebar__badge`},pr={key:1,class:`desktop-sidebar__badge`},mr={class:`desktop-sidebar__support`},hr={class:`desktop-sidebar__support-icon`,"aria-hidden":`true`},gr=j(u({__name:`DesktopSidebar`,setup(e){let n=D(),r=v(),a=Z(),o=ar(),s=f(()=>a.itemCount),l=f(()=>o.draftChecks.length),u=f(()=>a.selectedCompanyId||a.activeCart?.companyId||null);function m(e){r.push(Yn(e,u.value))}return(e,r)=>(N(),d(`aside`,sr,[r[3]||=A(`div`,{class:`desktop-sidebar__brand`},[A(`span`,{class:`desktop-sidebar__logo-mark`,"aria-hidden":`true`},`پ`),A(`strong`,{class:`desktop-sidebar__title`},`پارس بافت`)],-1),A(`nav`,cr,[(N(!0),d(i,null,_(x(Wn),e=>(N(),d(`button`,{key:e.name,type:`button`,class:R([`desktop-sidebar__item`,{active:x(Jn)(e.name,e.path,x(n).path)}]),"aria-current":x(Jn)(e.name,e.path,x(n).path)?`page`:void 0,"aria-label":e.label,title:e.label,onClick:t=>m(e)},[A(`span`,ur,[(N(),t(p(e.icon),{size:20}))]),A(`span`,dr,L(e.label),1),e.name===`cart`&&s.value>0?(N(),d(`span`,fr,L(s.value),1)):k(``,!0),e.name===`checks`&&l.value>0?(N(),d(`span`,pr,L(l.value),1)):k(``,!0)],10,lr))),128))]),A(`div`,mr,[A(`span`,hr,[c(or,{size:22})]),r[0]||=A(`strong`,{class:`desktop-sidebar__support-title`},`پشتیبانی و راهنما`,-1),r[1]||=A(`p`,{class:`desktop-sidebar__support-text`},` در صورت نیاز به راهنمایی یا گزارش مشکل با تیم پشتیبانی تماس بگیرید. `,-1),r[2]||=A(`a`,{href:`tel:02112345678`,class:`desktop-sidebar__support-btn`},`تماس با پشتیبانی`,-1)])]))}}),[[`__scopeId`,`data-v-9a74c6bb`]]),_r=`ft_user`,vr=`ft_pending_otp`;function Q(e){e?localStorage.setItem(_r,JSON.stringify(e)):localStorage.removeItem(_r)}function yr(){try{let e=localStorage.getItem(_r);return e?JSON.parse(e):null}catch{return null}}function br(){return H()?yr():null}function xr(){return!!H()}function Sr(e){try{e?sessionStorage.setItem(vr,JSON.stringify(e)):sessionStorage.removeItem(vr)}catch{}}async function Cr(e,t){let n=ge(e);if(!/^09\d{9}$/.test(n))return{success:!1,message:`شماره موبایل معتبر نیست.`};if(t.isRegister&&(!t.firstName?.trim()||!t.lastName?.trim()))return{success:!1,message:`نام و نام خانوادگی الزامی است.`};try{Sr({phone:n,isRegister:t.isRegister,firstName:t.firstName,lastName:t.lastName});let e=await B(`/auth/otp/request`,{method:`POST`,auth:!1,body:{phone:n,firstName:t.firstName,lastName:t.lastName,isRegister:t.isRegister}}),r=e.debugCode?` (کد: ${e.debugCode})`:``;return{success:!0,message:`${e.message}${r}`}}catch(e){return{success:!1,message:e instanceof W?e.message:`ارسال کد ناموفق بود.`}}}async function wr(e,t){let n=ge(e);try{let e=await B(`/auth/otp/verify`,{method:`POST`,auth:!1,body:{phone:n,code:ve(t)}});return z(e.accessToken),Q(e.user),Sr(null),{success:!0,message:`ورود موفق.`,user:e.user}}catch(e){return{success:!1,message:e instanceof W?e.message:`تأیید کد ناموفق بود.`}}}function Tr(){z(null),Q(null),Sr(null)}async function Er(){if(!H())return Q(null),null;try{let e=await B(`/auth/me`);return Q(e),e}catch{return yr()}}async function Dr(e){try{let t=await B(`/auth/profile`,{method:`PATCH`,body:e});return Q(t),t}catch(t){let n=e.avatarUrl!==void 0&&e.firstName===void 0&&e.lastName===void 0&&e.nationalId===void 0,r=yr();if(!n||!r)throw t;let i={...r};return e.avatarUrl?i.avatarUrl=e.avatarUrl:delete i.avatarUrl,Q(i),i}}var Or=`ft_pending_register`,kr=[{id:`garment_producer`,label:`تولیدکننده پوشاک عمده`},{id:`atelier`,label:`مزون`},{id:`fabric_wholesaler`,label:`عمده‌فروش پارچه`}];function Ar(){try{let e=sessionStorage.getItem(Or);if(!e)return null;let t=JSON.parse(e);return!t?.firstName?.trim()||!t?.lastName?.trim()?null:{firstName:t.firstName.trim(),lastName:t.lastName.trim(),jobCategory:t.jobCategory}}catch{return null}}function jr(e){if(e?.firstName?.trim()&&e?.lastName?.trim()){sessionStorage.setItem(Or,JSON.stringify({firstName:e.firstName.trim(),lastName:e.lastName.trim(),jobCategory:e.jobCategory}));return}sessionStorage.removeItem(Or)}var Mr=V(`notification`,()=>{let e=E([]),t=E(0),n=E(!1),r=f(()=>t.value>0);async function i(){if(!H()){e.value=[],t.value=0;return}n.value=!0;try{e.value=await B(`/notifications`),t.value=e.value.filter(e=>!e.isRead).length}catch{e.value=[],t.value=0}finally{n.value=!1}}async function a(){if(!H()){t.value=0;return}try{let e=await B(`/notifications/unread-count`);t.value=e.count}catch{}}async function o(n){let r=e.value.find(e=>e.id===n);if(!(!r||r.isRead)){r.isRead=!0,t.value=Math.max(0,t.value-1);try{await B(`/notifications/${n}/read`,{method:`PATCH`})}catch{await i()}}}async function s(){if(t.value){e.value=e.value.map(e=>({...e,isRead:!0})),t.value=0;try{await B(`/notifications/read-all`,{method:`PATCH`})}catch{await i()}}}function c(){e.value=[],t.value=0}return{items:e,unreadCount:t,loading:n,hasUnread:r,hydrate:i,refreshUnreadCount:a,markRead:o,markAllRead:s,resetLocal:c}}),Nr=`ft_favorites`;function Pr(){try{let e=localStorage.getItem(Nr);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function Fr(e){localStorage.setItem(Nr,JSON.stringify(e))}var Ir=V(`favorites`,()=>{let e=E(Pr()),t=E(!1),n=E({}),r=f(()=>new Set(e.value));function i(e){return r.value.has(e)}async function a(){try{let t=await B(`/products/favorites/ids`);e.value=t,Fr(t)}catch{e.value=Pr()}finally{t.value=!0}}async function o(t){if(!t||n.value[t])return;n.value={...n.value,[t]:!0};let r=i(t);e.value=r?e.value.filter(e=>e!==t):[...e.value,t],Fr(e.value);try{let n=await B(`/products/${t}/favorite`,{method:`POST`});e.value=n.favorited?[...new Set([...e.value.filter(e=>e!==t),t])]:e.value.filter(e=>e!==t),Fr(e.value)}catch(n){if(!(n instanceof W&&n.status===404))throw e.value=r?[...new Set([...e.value,t])]:e.value.filter(e=>e!==t),Fr(e.value),n}finally{let e={...n.value};delete e[t],n.value=e}}function s(){e.value=[],Fr([]),t.value=!1}return{ids:e,loaded:t,pending:n,isFavorite:i,hydrate:a,toggle:o,resetLocal:s}}),Lr=V(`auth`,()=>{let e=E(br()),t=E(!1),n=E(null),r=E(Ar()),i=f(()=>!!e.value),a=f(()=>e.value?`${e.value.firstName} ${e.value.lastName}`:``),o=f(()=>e.value?.appRole===`agent`),s=f(()=>!!e.value&&e.value.appRole!==`agent`);function c(){n.value=null}function l(){r.value=null,jr(null)}async function u(e,i){t.value=!0,n.value=null;try{let t=Ar();r.value=t;let a=i.firstName?.trim()||t?.firstName,o=i.lastName?.trim()||t?.lastName;i.isRegister&&a&&o&&(r.value={firstName:a,lastName:o},jr(r.value));let s=await Cr(e,{isRegister:i.isRegister,firstName:a,lastName:o});return s.success||(n.value=s.message),s}finally{t.value=!1}}async function d(r,i){t.value=!0,n.value=null;let a=await wr(r,i);return t.value=!1,a.success&&a.user?(e.value=a.user,l(),await Promise.all([G().loadCompanies(),Z().hydrate(),ar().hydrate(),Mr().hydrate(),Ir().hydrate()])):n.value=a.message,a}function p(){Tr(),e.value=null,l(),Z().resetLocal(),ar().resetLocal(),Mr().resetLocal(),Ir().resetLocal()}async function m(t){if(!e.value)return null;let n=await Dr(t);return n&&(e.value=n),n}async function h(){if(e.value=br(),!e.value)return;let t=await Er();e.value=t}return{user:e,loading:t,error:n,isAuthenticated:i,fullName:a,isAgent:o,isCustomerOnly:s,clearError:c,requestOtp:u,confirmOtp:d,logout:p,updateProfile:m,hydrate:h}}),Rr=u({__name:`IconBell`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:notification`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zr=u({__name:`IconChevronLeft`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(N(),t(P,{icon:`vuesax-linear:arrow-left-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Br=V(`theme`,()=>{let e=pe(`ft_theme`,`system`),t=me(),n=f(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=f(()=>n.value===`dark`);w(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}function a(){let t=[`light`,`dark`,`system`],n=t.indexOf(e.value);e.value=t[(n+1)%t.length]}function o(){e.value=r.value?`light`:`dark`}return{preference:e,resolved:n,isDark:r,setPreference:i,cyclePreference:a,toggleLightDark:o}}),Vr=[`aria-label`,`title`],Hr=j(u({__name:`AuthThemeToggle`,props:{variant:{default:`floating`}},setup(e){let t=Br(),{isDark:n}=U(t),r=f(()=>n.value?`vuesax-linear:sun-1`:`vuesax-linear:moon`),i=f(()=>n.value?`تغییر به تم روشن`:`تغییر به تم تاریک`);return(n,a)=>(N(),d(`button`,{type:`button`,class:R([`auth-theme-toggle`,e.variant===`inline`?`auth-theme-toggle--inline`:`auth-theme-toggle--floating`]),"aria-label":i.value,title:i.value,onClick:a[0]||=e=>x(t).toggleLightDark()},[c(P,{icon:r.value,size:18,"stroke-width":1.5},null,8,[`icon`])],10,Vr))}}),[[`__scopeId`,`data-v-3a58cb84`]]),Ur=[`src`],Wr={key:1},Gr=j(u({__name:`UserAvatar`,props:{src:{},initials:{},size:{default:72}},setup(e){return(t,n)=>(N(),d(`span`,{class:`user-avatar`,style:r({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${Math.round(e.size*.38)}px`})},[e.src?(N(),d(`img`,{key:0,class:`user-avatar__img`,src:e.src,alt:``},null,8,Ur)):(N(),d(`span`,Wr,L(e.initials),1))],4))}}),[[`__scopeId`,`data-v-5c562bf0`]]),Kr={class:`desktop-header`},qr={class:`desktop-header__actions`},Jr={key:0,class:`desktop-header__company`},Yr=[`aria-label`],Xr={class:`desktop-header__user-wrap`},Zr=[`aria-expanded`],Qr={class:`desktop-header__user-name`},$r={key:0,class:`desktop-header__menu`},ei=j(u({__name:`DesktopHeader`,setup(e){let t=v(),n=Lr(),r=Z(),i=Mr(),a=E(!1),o=f(()=>ye(i.unreadCount>9?`9+`:String(i.unreadCount))),s=f(()=>`${n.user?.firstName?.[0]??``}${n.user?.lastName?.[0]??``}`||`؟`),l=f(()=>r.companyNamesLabel||r.activeCart?.companyName||``);function u(){a.value=!a.value}function p(){a.value=!1,t.push(`/profile`)}function m(){a.value=!1,n.logout(),t.replace(`/login`)}return(e,r)=>(N(),d(`header`,Kr,[r[1]||=A(`div`,{class:`desktop-header__spacer`,"aria-hidden":`true`},null,-1),A(`div`,qr,[l.value?(N(),d(`span`,Jr,L(l.value),1)):k(``,!0),c(Hr,{variant:`inline`}),A(`button`,{type:`button`,class:`desktop-header__icon-btn`,"aria-label":`اعلان‌ها`,onClick:r[0]||=e=>x(t).push(`/profile/notifications`)},[c(Rr,{size:20}),x(i).hasUnread?(N(),d(`span`,{key:0,class:`desktop-header__notif-badge`,"aria-label":`${x(i).unreadCount} اعلان خوانده‌نشده`},L(o.value),9,Yr)):k(``,!0)]),A(`div`,Xr,[A(`button`,{type:`button`,class:`desktop-header__user`,"aria-expanded":a.value,onClick:u},[c(Gr,{class:`desktop-header__avatar`,src:x(n).user?.avatarUrl,initials:s.value,size:32},null,8,[`src`,`initials`]),A(`span`,Qr,L(x(n).fullName),1),c(zr,{size:16,class:`desktop-header__chevron`})],8,Zr),a.value?(N(),d(`div`,$r,[A(`button`,{type:`button`,onClick:p},`پروفایل`),A(`button`,{type:`button`,class:`desktop-header__menu-logout`,onClick:m},`خروج`)])):k(``,!0)])])]))}}),[[`__scopeId`,`data-v-d90aac23`]]),ti={class:`app-layout`},ni={class:`app-frame`},ri={class:`app-main`},ii={class:`app-main__content`},ai={class:`app-content`},oi=u({__name:`DefaultLayout`,setup(e){let n=D(),r=f(()=>![`login`,`register`,`otp`,`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`,`order-success`].includes(n.name)&&!n.meta.hideNav),i=f(()=>[`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`].includes(n.name));return(e,n)=>(N(),d(`div`,{class:R([`app-shell`,{"app-shell--no-nav":!r.value,"app-shell--wide":i.value,"app-shell--with-nav":r.value}])},[A(`div`,ti,[r.value?(N(),t(gr,{key:0})):k(``,!0),A(`div`,ni,[r.value?(N(),t(ei,{key:0})):k(``,!0),A(`main`,ri,[A(`div`,ii,[A(`div`,ai,[g(e.$slots,`default`)])])]),r.value?(N(),t(tr,{key:1})):k(``,!0)])])],2))}}),si=[`type`,`disabled`],ci={key:0,class:`btn-spinner`},li=j(u({__name:`BaseButton`,props:{variant:{},size:{},block:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},type:{}},setup(e){return(t,n)=>(N(),d(`button`,{type:e.type??`button`,class:R([`btn`,[`btn-${e.variant??`primary`}`,`btn-${e.size??`md`}`,{"btn-block":e.block}]]),disabled:e.disabled||e.loading},[e.loading?(N(),d(`span`,ci)):k(``,!0),g(t.$slots,`default`,{},void 0,!0)],10,si))}}),[[`__scopeId`,`data-v-3628a8bb`]]),ui=le({open:!1,title:``,message:``,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`,resolve:null});function di(){return ui}function fi(e){return new Promise(t=>{Object.assign(ui,{open:!0,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`حذف`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`danger`,resolve:t})})}function pi(e){ui.resolve?.(e),ui.open=!1,ui.resolve=null}var mi={class:`dialog card confirm-dialog`},hi={id:`confirm-dialog-title`,class:`confirm-dialog__title`},gi={class:`confirm-dialog__message`},_i={class:`dialog-actions confirm-dialog__actions`},vi=j(u({__name:`ConfirmDialog`,setup(e){let t=di();function n(){pi(!1)}function r(){pi(!0)}return(e,i)=>x(t).open?(N(),d(`div`,{key:0,class:`dialog-overlay confirm-dialog-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`confirm-dialog-title`,onClick:m(n,[`self`])},[A(`div`,mi,[A(`h3`,hi,L(x(t).title),1),A(`p`,gi,L(x(t).message),1),A(`div`,_i,[c(li,{variant:`outline`,onClick:n},{default:F(()=>[a(L(x(t).cancelLabel),1)]),_:1}),c(li,{variant:x(t).tone===`danger`?`danger`:`primary`,onClick:r},{default:F(()=>[a(L(x(t).confirmLabel),1)]),_:1},8,[`variant`])])])])):k(``,!0)}}),[[`__scopeId`,`data-v-2e50e2a7`]]),yi=u({__name:`App`,setup(e){let n=Lr(),r=Z(),a=ar(),s=G(),l=Mr(),u=v(),f=E(`page-fade`);function m(e){return e.split(`/`).filter(Boolean).length}return u.beforeEach((e,t)=>{if(!t.name){f.value=`page-fade`;return}let n=jn(m(e.path)-m(t.path),-1,1);n>0?f.value=`page-forward`:n<0?f.value=`page-back`:f.value=`page-fade`}),o(async()=>{await n.hydrate(),n.isAuthenticated&&await Promise.all([s.loadCompanies(),r.hydrate(),a.hydrate(),l.hydrate()])}),fe(()=>{n.isAuthenticated&&l.refreshUnreadCount()},6e4,{immediate:!1}),(e,n)=>(N(),d(i,null,[c(oi,null,{default:F(()=>[c(x($t),null,{default:F(({Component:e,route:n})=>[c(ue,{name:f.value,mode:`out-in`},{default:F(()=>[(N(),d(`div`,{key:n.path,class:`page-transition page-shell`},[(N(),t(p(e)))]))]),_:2},1032,[`name`])]),_:1})]),_:1}),c(vi)],64))}}),bi=`modulepreload`,xi=function(e){return`/`+e},Si={},$=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=xi(t,n),t=s(t),t in Si)return;Si[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`:bi,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)})},Ci=en({history:St(`/`),routes:[{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-DoB0zrip.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),meta:{guest:!0,hideNav:!0}},{path:`/register`,name:`register`,component:()=>$(()=>import(`./RegisterView-F8TAiSXX.js`),__vite__mapDeps([10,1,2,11,3,4,12,5,6,7,8,9,13])),meta:{guest:!0,hideNav:!0}},{path:`/otp`,name:`otp`,component:()=>$(()=>import(`./OtpView-DmhIJ6L4.js`),__vite__mapDeps([14,1,2,11,3,12,7,8,9,15,16])),meta:{guest:!0,hideNav:!0}},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-IjELxlp4.js`),__vite__mapDeps([17,1,2,3,12,18,19,20,21,22,23,24,25,26])),meta:{requiresAuth:!0}},{path:`/companies`,name:`companies`,component:()=>$(()=>import(`./CompanySelectView-CyQjKzR7.js`),__vite__mapDeps([27,1,2,28,23,12,29,30,31,18,20,21,32,24,33])),meta:{requiresAuth:!0}},{path:`/categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-B2_xTRif.js`),__vite__mapDeps([34,1,2,12,18,19,20,21,22,23,32,35,24,36])),meta:{requiresAuth:!0}},{path:`/products`,name:`products`,component:()=>$(()=>import(`./ProductsView-DnYpVLnx.js`),__vite__mapDeps([37,1,2,38,39,12,40,41,42,20,21,22,23,25,43])),meta:{requiresAuth:!0}},{path:`/product`,name:`product`,component:()=>$(()=>import(`./ProductDetailView-DeWz9Sq6.js`),__vite__mapDeps([44,1,2,3,28,23,12,20,21,22,32,24,25,45])),meta:{requiresAuth:!0}},{path:`/catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsHubView-Bb-hkFRI.js`),__vite__mapDeps([46,1,2,28,23,39,12,40,20,21,47])),meta:{requiresAuth:!0}},{path:`/catalog-request`,name:`catalog-request`,component:()=>$(()=>import(`./CatalogRequestView-18LsN9_v.js`),__vite__mapDeps([48,1,2,3,39,12,40,20,21,22,23,49,50])),meta:{requiresAuth:!0}},{path:`/catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-BHPBd5vT.js`),__vite__mapDeps([51,1,2,3,39,12,40,49,23,52])),meta:{requiresAuth:!0}},{path:`/favorites`,name:`favorites`,component:()=>$(()=>import(`./FavoritesView-CTWGW3n4.js`),__vite__mapDeps([53,1,2,39,12,40,20,21,22,23,25,54])),meta:{requiresAuth:!0}},{path:`/customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-BPHESniR.js`),__vite__mapDeps([55,1,2,3,38,39,12,40,41,42,20,21,22,23,56])),meta:{requiresAuth:!0}},{path:`/customers/new`,name:`customer-new`,component:()=>$(()=>import(`./CustomerCreateView-CYoHi2HU.js`),__vite__mapDeps([57,1,2,23,3,4,5,6,7,8,9,39,12,40,22,24,58])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/customer`,name:`customer`,component:()=>$(()=>import(`./CustomerDetailView-BizpJZAo.js`),__vite__mapDeps([59,1,2,3,60,15,61,39,12,40,20,21,22,23,62,63])),meta:{requiresAuth:!0}},{path:`/meeting-report`,name:`meeting-report`,component:()=>$(()=>import(`./MeetingReportView-BmE6DYAq.js`),__vite__mapDeps([64,1,2,65,15,61,39,12,40,20,21,22,23,62,66])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/reminders`,name:`reminders`,component:()=>$(()=>import(`./RemindersView-CHMuTLoj.js`),__vite__mapDeps([67,1,2,3,12,68,20,21,22,23,24,69])),meta:{requiresAuth:!0}},{path:`/reminder`,name:`reminder`,component:()=>$(()=>import(`./ReminderDetailView-Bz1lWWpY.js`),__vite__mapDeps([70,1,2,39,12,40,20,21,22,23,71])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/companies/:companyId/catalogs`,name:`company-catalogs`,component:()=>$(()=>import(`./CatalogListView-DF3_XOfL.js`),__vite__mapDeps([72,1,2,28,23,73,74,39,12,40,41,42,20,21,75])),meta:{requiresAuth:!0}},{path:`/companies/:companyId/catalogs/:catalogId/products`,name:`company-products`,redirect:e=>({path:`/products`,query:{catalogId:String(e.params.catalogId??``),companyId:String(e.params.companyId??``)}})},{path:`/cart`,name:`cart`,component:()=>$(()=>import(`./CartView-BqUM1Ido.js`),__vite__mapDeps([76,1,2,3,73,74,12,7,8,77,78,31,61,18,19,79])),meta:{requiresAuth:!0}},{path:`/orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-MV4lb2oK.js`),__vite__mapDeps([80,1,2,3,28,23,73,74,60,12,29,30,65,38,68,81])),meta:{requiresAuth:!0}},{path:`/order`,name:`order-query`,redirect:e=>{let t=String(e.query.id??``);return t?{path:`/orders/${t}`}:{name:`orders`}}},{path:`/orders/:id`,name:`order-detail`,component:()=>$(()=>import(`./OrderDetailView-DT5bw4I-.js`),__vite__mapDeps([82,1,2,11,3,4,60,12,5,6,7,8,9,83,84,85,86])),meta:{requiresAuth:!0}},{path:`/orders/:id/success`,name:`order-success`,component:()=>$(()=>import(`./OrderSuccessView-Bmz2L5sQ.js`),__vite__mapDeps([87,1,2,3,39,12,40,24,88])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/settlement`,name:`settlement`,component:()=>$(()=>import(`./SettlementTypeView-CDwgIUrX.js`),__vite__mapDeps([89,1,2,3,7,8,77,78,39,12,40,83,90,91,92])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/cash`,name:`cash-settlement`,component:()=>$(()=>import(`./CashSettlementView-CUX9QmvM.js`),__vite__mapDeps([93,1,2,3,28,23,39,12,40,90,83,94])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-mode`,name:`check-mode`,component:()=>$(()=>import(`./CheckModeSelectView-DpttebVb.js`),__vite__mapDeps([95,1,2,3,15,39,12,40,90,83,96])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-form`,name:`check-form`,component:()=>$(()=>import(`./CheckFormView-DicpQoBz.js`),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,39,12,40,90,83,84,85,98,99])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-list`,name:`check-list`,component:()=>$(()=>import(`./CheckListView-RTeRZSX_.js`).then(e=>e.n),__vite__mapDeps([100,1,2,3,73,74,12,7,8,90,83,101])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/profile`,name:`profile`,component:()=>$(()=>import(`./ProfileView-Cfmzm61F.js`),__vite__mapDeps([102,1,2,3,60,15,31,18,20,21,22,23,35,98,91,62,103])),meta:{requiresAuth:!0}},{path:`/profile/edit`,name:`profile-edit`,component:()=>$(()=>import(`./ProfileEditView-BVfkEMoi.js`),__vite__mapDeps([104,1,2,5,6,7,8,9,105,12,106,107])),meta:{requiresAuth:!0}},{path:`/profile/security`,name:`profile-security`,component:()=>$(()=>import(`./ProfileSecurityView-pOo-7xS0.js`),__vite__mapDeps([108,1,2,5,6,7,8,9,105,12,106,109])),meta:{requiresAuth:!0}},{path:`/profile/notifications`,name:`profile-notifications`,component:()=>$(()=>import(`./ProfileNotificationsView-CAmwFOO5.js`),__vite__mapDeps([110,1,2,3,73,74,105,12,106,111])),meta:{requiresAuth:!0}},{path:`/profile/display`,name:`profile-display`,component:()=>$(()=>import(`./ProfileDisplayView-IR8b7Mze.js`),__vite__mapDeps([112,1,2,11,105,12,106,113])),meta:{requiresAuth:!0}},{path:`/profile/checks`,name:`profile-checks`,component:()=>$(()=>import(`./ProfileChecksView-DsuXJYJS.js`),__vite__mapDeps([114,100,1,2,3,73,74,12,7,8,90,83,101])),meta:{requiresAuth:!0}}],scrollBehavior(){return{top:0}}});Ci.beforeEach(e=>{let t=xr();return e.meta.requiresAuth&&!t?{name:`login`,query:{redirect:e.fullPath}}:e.meta.guest&&t||e.meta.agentOnly&&yr()?.appRole!==`agent`?{name:`home`}:!0});var wi=b(yi),Ti=de();wi.use(Ti),wi.use(Ci),Br(Ti),wi.mount(`#app`);export{Ln as C,Rn as S,Z as T,ir as _,Br as a,Bn as b,Lr as c,kr as d,Ar as f,rr as g,ar as h,Hr as i,Ir as l,or as m,li as n,zr as o,jr as p,Gr as r,Rr as s,fi as t,Mr as u,Hn as v,In as w,zn as x,Vn as y}; \ No newline at end of file diff --git a/dist/assets/useRequirePricedOrder-bwpoZWB1.js b/dist/assets/useRequirePricedOrder-a2bgwmwB.js similarity index 86% rename from dist/assets/useRequirePricedOrder-bwpoZWB1.js rename to dist/assets/useRequirePricedOrder-a2bgwmwB.js index 4d9158e..098fb71 100644 --- a/dist/assets/useRequirePricedOrder-bwpoZWB1.js +++ b/dist/assets/useRequirePricedOrder-a2bgwmwB.js @@ -1 +1 @@ -import{$ as e,O as t,_ as n,g as r}from"./BasicIcon-CjTTsi6o.js";import{h as i}from"./index-BQQA5ZX-.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=r(),s=n(),c=i(),l=t(()=>o.params.id),u=t(()=>c.getOrderById(l.value)),d=t(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return e(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),e(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t}; \ No newline at end of file +import{$ as e,O as t,_ as n,g as r}from"./BasicIcon-CjTTsi6o.js";import{h as i}from"./index-D3Z8WOeX.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=r(),s=n(),c=i(),l=t(()=>o.params.id),u=t(()=>c.getOrderById(l.value)),d=t(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return e(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),e(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t}; \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 37e2077..c23bf13 100644 --- a/dist/index.html +++ b/dist/index.html @@ -6,15 +6,15 @@ سامانه سفارش عمده پارچه - + - + - +