PageSourceSearch

https://oqoq.ai/_next/static/chunks/9419.b1b33a8b70f675ff.js

js oqoq.ai collected 2026-10-05 13:48:08 UTC 23,798 bytes, 5 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9419,1308],{50237:function(e,t,n){n.d(t,{Fl:function(){return a},NW:function(){return g},Rg:function(){return c},j3:function(){return u},xG:function(){return m}});var r,a,o=n(99928),i=n(94798),l=n(67668),s=n(55145),d=n(48546);o.Z,i.Z,l.Z,d.Z,s.Z,o.Z,d.Z,o.Z;let u={substitution:"substitution",additional:"additional",default:"default"},c=[{id:1,homeIcon:"/images/onboarding/admin/icon/menu-order-icon.svg",title:"메뉴 순서",sections:[{title:"메뉴 순서",description:"메뉴 순서 기능을 통해 메뉴 리스트의 순서를 쉽게 변경할 수 있습니다.\n'메뉴판 수정' -> '메뉴 순서' 탭에서 카테고리와 메뉴를 원하는 순서로 조정하세요. 순서를 변경하려면 메뉴를 드래그하여 이동해 주세요.",image:"/images/onboarding/admin/guide-menu-order.png"}]},{id:2,homeIcon:"/images/onboarding/admin/icon/menu-edit-icon.svg",title:"메뉴 편집",sections:[{title:"메뉴 사진 등록",description:"메뉴 사진을 추가하거나 삭제할 수 있습니다.\n‘메뉴편집’ 탭에서 등록된 메뉴를 탭 하면 메뉴의 사진을 추가하거나 삭제 또는 이미지를 변경하실 수 있어요.\n등록된 메뉴 사진을 3d 이미지 또는 누끼 이미지로 변환할 수 있어요.",image:"/images/onboarding/admin/guide-menu-edit-1.png"},{title:"상세정보 수정",description:"메뉴의 상세 정보를 추가하거나 수정할 수 있습니다.\n메뉴명, 가격, 메뉴 카테고리, 메뉴 설명 및 옵션을 추가하거나 수정할 수 있어요.",image:"/images/onboarding/admin/guide-menu-edit-2.png"}]},{id:3,homeIcon:"/images/onboarding/admin/icon/recommend-menu-icon.svg",title:"추천 메뉴",sections:[{title:"추천 메뉴",description:"메뉴판 상단에 추천 메뉴를 고정하여 표시할 수 있습니다.\n추천 메뉴는 최대 3개까지 설정이 가능해요.",image:"/images/onboarding/admin/guide-recommend-menu.png"}]},{id:4,homeIcon:"/images/onboarding/admin/icon/theme-change-icon.svg",title:"테마 변경",sections:[{title:"테마 변경",description:"메뉴판의 테마를 변경할 수 있습니다.\n디자인과 폰트 등 7가지 테마가 준비되어 있어 언제든지 원하는 테마로 바꿀 수 있습니다.",image:"/images/onboarding/admin/guide-theme-change.png"}]},{id:5,homeIcon:"/images/onboarding/admin/icon/store-info-change-icon.svg",title:"매장 정보 변경",sections:[{title:"매장 정보 변경",description:"메뉴판 하단에 매장 정보를 표시할 수 있습니다.\n매장 설명과 주소, 전화번호, 공지사항 등을 표시할 수 있어요.\n공지 문구 입력란을 활용하면 메뉴판 상단에 중요 메시지를 전달할 수 있습니다.",image:"/images/onboarding/admin/guide-store-info-change.png"}]},{id:6,homeIcon:"/images/onboarding/admin/icon/event-banner-icon.svg",title:"이벤트 배너",sections:[{title:"메뉴판 스플래시",description:"메뉴판 접속 시 스플래시 이미지를 표시할 수 있습니다.\n매장을 대표하는 이미지를 사용해 브랜드 인지도를 높이세요.",image:"/images/onboarding/admin/guide-event-banner.png"},{title:"메뉴판 공지",description:"메뉴판 상단에는 공지 문구를 표시할 수 있습니다.\n매장 또는 메뉴와 관련된 공지사항을 입력하면 메뉴판 상단에 해당 내용이 나타나요.",image:"/images/onboarding/admin/guide-event-notice.png"}]},{id:7,homeIcon:"/images/onboarding/admin/icon/menu-qr-print-icon.svg",title:"메뉴판 QR 출력",sections:[{title:"메뉴판 QR 출력",description:"메뉴판에 접속할 수 있는 QR 코드를 생성할 수 있습니다.\n출력된 QR 코드를 매장에 설치하여 사용이 가능해요.\nQR 코드 배송을 요청하시면 무료로 배송해 드립니다.",image:"/images/onboarding/admin/guide-menu-qr-print.png"}]},{id:8,homeIcon:"/images/onboarding/admin/icon/staff-invite-icon.svg",title:"직원 초대",sections:[{title:"주문 현황 직원 초대",description:"주문 현황을 직원에게 공유할 수 있습니다.\n‘주문 관리자 수정 -> 직원 초대’ 에서 직원을 초대하고 직원이 초대 링크로 가입하면 실시간 주문 í
1˜„황을 공유할 수 있어요.\n직원 초대 후에는 직원 추가 초대와 삭제 및 조회가 가능해요.",image:"/images/onboarding/admin/guide-staff-invite.png"}]}],m=[{code:"ko-KR",name:"한국어"},{code:"en-US",name:"English"},{code:"ja-JP",name:"日本語"},{code:"zh-CN",name:"中文(简体)"},{code:"zh-TW",name:"中文(繁體)"},{code:"vi-VN",name:"Việt Nam"},{code:"ms-MY",name:"Malaysia"},{code:"th-TH",name:"Thai"},{code:"ru-RU",name:"Russian"},{code:"fr-FR",name:"French"},{code:"es-ES",name:"Spanish"},{code:"mn-MN",name:"Монгол"}],g=e=>{if(!e)return;let t=e.toLowerCase();if("zh"===t||t.startsWith("zh-")||t.startsWith("zh_")){let e=/hant|tw|hk|mo/.test(t)?"zh-TW":"zh-CN";return m.find(t=>t.code===e)}return m.find(t=>t.code===e)};(r=a||(a={})).AGENCY="AGENCY",r.SHOP="SHOP"},69419:function(e,t,n){n.r(t),n.d(t,{getWalletTotalBalance:function(){return s}});var r=n(89465),a=n(38532),o=n(74338),i=n(61308),l=n(37255);function s(e){return e?(e.free_balance||0)+(e.paid_balance||0)+(e.agency_balance||0):0}let d=(0,r.Ue)()((0,a.tJ)((0,a.mW)(e=>({userCredit:null,shopPhoneNumber:"",getShopWallet:async()=>{var t;let n=l.Z.getState().ownerId,r=null===(t=i.default.getState().menu)||void 0===t?void 0:t.shop_id;if(null==n||null==r||0===r)return e({userCredit:null}),null;try{let t=await (0,o.ye)(r);return e({userCredit:t}),t}catch(t){if(function(e){var t;let n=null==e?void 0:null===(t=e.response)||void 0===t?void 0:t.status;return 500===n||404===n}(t))return e({userCredit:null}),null;throw t}},setShopPhoneNumber:t=>{e({shopPhoneNumber:t.replace(/-/g,"")})},resetCreditStore:()=>{e({userCredit:null})}})),{name:"user-credit",storage:(0,a.FL)(()=>sessionStorage),partialize:e=>({userCredit:e.userCredit,shopPhoneNumber:e.shopPhoneNumber})}));t.default=d},61308:function(e,t,n){n.r(t);var r=n(89465),a=n(38532),o=n(70719),i=n(79265);let l=(0,r.Ue)()((0,a.tJ)((0,a.mW)((e,t)=>({_hasHydrated:!1,_setHasHydrated:t=>e({_hasHydrated:t}),menu:null,shop:null,member_menu_role:null,shop_roles:null,menu_device:null,selectRoleState:!1,getMenu:()=>t().menu,getShopName:()=>{var e;return(null===(e=t().shop)||void 0===e?void 0:e.name)||""},getUserOwnerRole:()=>{var e;return(null===(e=t().member_menu_role)||void 0===e?void 0:e.roles.includes("owner"))==!0},getUserAgencyRole:()=>{var e;return(null===(e=t().member_menu_role)||void 0===e?void 0:e.roles.includes("agency"))==!0},setRole:(t,n,r,a)=>{e({menu:t,member_menu_role:n,menu_device:r,shop:t.shop,shop_roles:a})},setShopRoles:t=>{e({shop_roles:t})},setShop:n=>{e({shop:n,menu:{...t().menu,shop_id:n.id,shop:n}})},setMenu:t=>{e({menu:t})},updateMenuInvalidateCache:async n=>{let r=t().menu;if(!r)return;let a=await (0,o._8)(r.id.toString(),n);return await (0,i.kZ)(r.id.toString()),e({menu:{...r,...a.result}}),a.result},updateMenu:async n=>{let r=t().menu;if(!r)return;let a=await (0,o._8)(r.id.toString(),n);return e({menu:{...r,...a.result}}),a.result},resetMenuRoleStore:()=>{e({menu:null,shop:null,member_menu_role:null,shop_roles:null,menu_device:null})}})),{name:"member_menu_role",storage:(0,a.FL)(()=>localStorage),partialize:e=>{let{_hasHydrated:t,_setHasHydrated:n,getShopName:r,setRole:a,setShop:o,resetMenuRoleStore:i,...l}=e;return l},onRehydrateStorage:()=>(e,t)=>{t||null==e||e._setHasHydrated(!0)}}));t.default=l},37255:function(e,t,n){n.d(t,{OS:function(){return a}});var r,a,o=n(89465),i=n(38532),l=n(61308);(r=a||(a={})).WEB="web",r.WINDOW="window",r.APP="app";let s=()=>{localStorage.removeItem("jwt"),Object.keys(localStorage).forEach(e=>{e.startsWith("shop_jwt_")&&localStorage.removeItem(e)})},d=(0,o.Ue)()((0,i.tJ)((0,i.mW)((e,t)=>({os:null,jwt:null,ownerId:null,userInfo:null,getOS:()=>t().os||"",getJWT:()=>t().jwt||"",setUserInfo:(t,n,r)=>{localStorage.setItem("jwt",n),l.default.getState().resetMenuRoleStore(),e({os:t,jwt:n,userInfo:r,ownerId:null})},setSessionInfo:function(t,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;localStorage.setItem("jwt",n),l.default.getState().resetMenuRoleStore(),e({os:t,jwt:n,userInfo:null,ownerId:r})},setJWT:t=>{localStorage.setItem("jwt",t),e({jwt:t})},clearJWT:()=>{localStorage.removeItem("jwt"),e({jwt:null})},setAppUserInfo:t=>{e({userInfo:t})},setOwnerId:t=>e({ownerId:t}),deleteUserState:()=>{s(),e({os:null,jwt:null,ownerId:null,userInfo:null})}})),{name:"user-storage",storage:(0,i.FL)(()=>localStorage)}));t.Z=d},70719:function(e,t,n){n.d(t,{Gt:function(){return l},Vs:function(){return o},_8:function(){return a},r7:function(){return i}});var r=n(51467);let a=async(e,t)=>{try{return(await r.H.put("/v1/priv/menu/".concat(e),{...t})).data}catch(e){throw console.error("Error updating menu:",e),e}},o=async e=>{try{return(await r.H.put("/v1/priv/menu/".concat(e,"/i18n"))).data}catch(e){throw console.error("Error updating menu:",e),e}},i=async(e,t)=>{try{let n=await r.H.get("/v1/priv/menu/".concat(e,"?include_shop=").concat(t?"true":"false"));if(n.data)return n.data;throw Error("No data received from the API")}catch(e){return(0,r.z)(e)}},l=async e=>{try{return(await r.H.get("/v1/public/stats/menu",{params:{tz:e}})).data}catch(e){return(0,r.z)(e)}}},79265:function(e,t,n){n.d(t,{Yv:function(){return o},kZ:function(){return i}});var r=n(68065),a=n(51467);let o=async(e,t)=>{try{console.log("Calling getMenuJson with menu_id: ".concat(e));let n=await a.H.get("/v1/guest/menus/".concat(e,"/rendering/v2?use_cache=false&locale_code=").concat(t));if(n.data)return n.data;return null}catch(e){if(r.default.isAxiosError(e)){var n,o,i;console.error("API call failed:",e.message),console.error("Status:",null===(n=e.response)||void 0===n?void 0:n.status),console.error("Data:",null===(o=e.response)||void 0===o?void 0:o.data),console.error("Headers:",null===(i=e.response)||void 0===i?void 0:i.headers)}else console.error("Unexpected error:",e);throw e}},i=async e=>{try{console.log("Calling putMenuInvalidateCache with menu_id: ".concat(e));let t=await a.H.put("/v1/priv/menu/".concat(e,"/cache/invalidate"),{locale_codes:["ko","ko-KR","en","en-US","ja-JP","zh-CN","zh-TW","vi-VN","ms-MY","th-TH","ru-RU","fr-FR","es-ES"]});if(t.data)return t.data;return null}catch(e){if(r.default.isAxiosError(e)){var t,n,o;console.error("API call failed:",e.message),console.error("Status:",null===(t=e.response)||void 0===t?void 0:t.status),console.error("Data:",null===(n=e.response)||void 0===n?void 0:n.data),console.error("Headers:",null===(o=e.response)||void 0===o?void 0:o.headers)}else console.error("Unexpected error:",e);throw e}}},51467:function(e,t,n){n.d(t,{H:function(){return a},z:function(){return o}});var r=n(68065);let a=r.default.create({baseURL:"https://api.oqmenu.ai"});a.interceptors.request.use(e=>{let t=localStorage.getItem("jwt");return t&&(e.headers.Authorization="Bearer ".concat(t)),e},e=>Promise.reject(e));let o=(e,t)=>{if(r.default.isAxiosError(e)){var n,a,o,i,l,s,d;throw console.error("API Error:",null===(n=e.response)||void 0===n?void 0:n.data),Error("string"==typeof t&&"true"===t?(null===(o=e.response)||void 0===o?void 0:null===(a=o.data)||void 0===a?void 0:a.debug)||(null===(l=e.response)||void 0===l?void 0:null===(i=l.data)||void 0===i?void 0:i.error)||"An error occurred":(null===(d=e.response)||void 0===d?void 0:null===(s=d.data)||void 0===s?void 0:s.error)||"An error occurred")}throw e}},74338:function(e,t,n){n.d(t,{ye:function(){return o}});var r=n(50237),a=n(72451);let o=async e=>{let t=new URLSearchParams({owner_id:String(e),scopes:r.Fl.SHOP});return(await a.J.get("/v2/priv/manage/wallets?".concat(t.toString()))).data.result}},72451:function(e,t,n){n.d(t,{J:function(){return a},z:function(){return o}});var r=n(68065);let a=r.default.create({baseURL:"https://payment.oqmenu.ai"});a.interceptors.request.use(e=>{let t=localStorage.getItem("jwt");return t&&(e.headers.Authorization="Bearer ".concat(t)),e.headers["ngrok-skip-browser-warning"]="69420",e},e=>Promise.reject(e));let o=e=>{if(r.default.isAxiosError(e)){var t,n,a;throw console.error("API Error:",null===(t=e.response)||void 0===t?void 0:t.data),Error((null===(a=e.response)||void 0===a?void 0:null===(n=a.data)||void 0===n?void 0:n.error)||"An error occurred")}throw e}},94798:function(e,t,n){var r=n(64865);let a=r.forwardRef(function({title:e,titleId:t,...n},a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{fillRule:"evenodd",d:"M3 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H3Zm2.5 5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM10 5.75a.75.75 0 0 1 .75-.75h1.5a.75.75 0 0 1 0 1.5h-1.5a.75.75 0 0 1-.75-.75Zm.75 3.75a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5ZM10 8a.75.75 0 0 1 .75-.75h1.5a.75.75 0 0 1 0 1.5h-1.5A.75.75 0 0 1 10 8Zm-2.378 3c.346 0 .583-.343.395-.633A2.998 2.998 0 0 0 5.5 9a2.998 2.998 0 0 0-2.517 1.367c-.188.29.05.633.395.633h4.244Z",clipRule:"evenodd"}))});t.Z=a},99928:function(e,t,n){var r=n(64865);let a=r.forwardRef(function({title:e,titleId:t,...n},a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{fillRule:"evenodd",d:"M11.013 2.513a1.75 1.75 0 0 1 2.475 2.474L6.226 12.25a2.751 2.751 0 0 1-.892.596l-2.047.848a.75.75 0 0 1-.98-.98l.848-2.047a2.75 2.75 0 0 1 .596-.892l7.262-7.261Z",clipRule:"evenodd"}))});t.Z=a},67668:function(e,t,n){var r=n(64865);let a=r.forwardRef(function({title:e,titleId:t,...n},a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{d:"M4.75 4.25a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1Z"}),r.createElement("path",{fillRule:"evenodd",d:"M2 3.5A1.5 1.5 0 0 1 3.5 2H6a1.5 1.5 0 0 1 1.5 1.5V6A1.5 1.5 0 0 1 6 7.5H3.5A1.5 1.5 0 0 1 2 6V3.5Zm1.5 0H6V6H3.5V3.5Z",clipRule:"evenodd"}),r.createElement("path",{d:"M4.25 11.25a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0Z"}),r.createElement("path",{fillRule:"evenodd",d:"M2 10a1.5 1.5 0 0 1 1.5-1.5H6A1.5 1.5 0 0 1 7.5 10v2.5A1.5 1.5 0 0 1 6 14H3.5A1.5 1.5 0 0 1 2 12.5V10Zm1.5 2.5V10H6v2.5H3.5Z",clipRule:"evenodd"}),r.createElement("path",{d:"M11.25 4.25a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1Z"}),r.createElement("path",{fillRule:"evenodd",d:"M10 2a1.5 1.5 0 0 0-1.5 1.5V6A1.5 1.5 0 0 0 10 7.5h2.5A1.5 1.5 0 0 0 14 6V3.5A1.5 1.5 0 0 0 12.5 2H10Zm2.5 1.5H10V6h2.5V3.5Z",clipRule:"evenodd"}),r.createElement("path",{d:"M8.5 9.417a.917.917 0 1 1 1.833 0 .917.917 0 0 1-1.833 0ZM8.5 13.083a.9
117.917 0 1 1 1.833 0 .917.917 0 0 1-1.833 0ZM13.083 8.5a.917.917 0 1 0 0 1.833.917.917 0 0 0 0-1.833ZM12.166 13.084a.917.917 0 1 1 1.833 0 .917.917 0 0 1-1.833 0ZM11.25 10.333a.917.917 0 1 0 0 1.833.917.917 0 0 0 0-1.833Z"}))});t.Z=a},55145:function(e,t,n){var r=n(64865);let a=r.forwardRef(function({title:e,titleId:t,...n},a){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":t},n),e?r.createElement("title",{id:t},e):null,r.createElement("path",{fillRule:"evenodd",d:"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-5-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 9c-1.825 0-3.422.977-4.295 2.437A5.49 5.49 0 0 0 8 13.5a5.49 5.49 0 0 0 4.294-2.063A4.997 4.997 0 0 0 8 9Z",clipRule:"evenodd"}))});t.Z=a},48546:function(e,t,n){var r=n(64865);let a=r.forwardRef(function(e,t){let{title:n,titleId:a,...o}=e;return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":a},o),n?r.createElement("title",{id:a},n):null,r.createElement("path",{d:"M5.85 3.5a.75.75 0 0 0-1.117-1 9.719 9.719 0 0 0-2.348 4.876.75.75 0 0 0 1.479.248A8.219 8.219 0 0 1 5.85 3.5ZM19.267 2.5a.75.75 0 1 0-1.118 1 8.22 8.22 0 0 1 1.987 4.124.75.75 0 0 0 1.48-.248A9.72 9.72 0 0 0 19.266 2.5Z"}),r.createElement("path",{fillRule:"evenodd",d:"M12 2.25A6.75 6.75 0 0 0 5.25 9v.75a8.217 8.217 0 0 1-2.119 5.52.75.75 0 0 0 .298 1.206c1.544.57 3.16.99 4.831 1.243a3.75 3.75 0 1 0 7.48 0 24.583 24.583 0 0 0 4.83-1.244.75.75 0 0 0 .298-1.205 8.217 8.217 0 0 1-2.118-5.52V9A6.75 6.75 0 0 0 12 2.25ZM9.75 18c0-.034 0-.067.002-.1a25.05 25.05 0 0 0 4.496 0l.002.1a2.25 2.25 0 1 1-4.5 0Z",clipRule:"evenodd"}))});t.Z=a},38532:function(e,t,n){n.d(t,{FL:function(){return s},mW:function(){return i},tJ:function(){return m}});let r=new Map,a=e=>{let t=r.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},o=(e,t,n)=>{if(void 0===e)return{type:"untracked",connection:t.connect(n)};let a=r.get(n.name);if(a)return{type:"tracked",store:e,...a};let o={connection:t.connect(n),stores:{}};return r.set(n.name,o),{type:"tracked",store:e,...o}},i=(e,t={})=>(n,r,i)=>{let s;let{enabled:d,anonymousActionType:u,store:c,...m}=t;try{s=(null==d||d)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(e){}if(!s)return d&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(n,r,i);let{connection:g,...v}=o(c,s,m),h=!0;i.setState=(e,t,o)=>{let l=n(e,t);if(!h)return l;let s=void 0===o?{type:u||"anonymous"}:"string"==typeof o?{type:o}:o;return void 0===c?null==g||g.send(s,r()):null==g||g.send({...s,type:`${c}/${s.type}`},{...a(m.name),[c]:i.getState()}),l};let p=(...e)=>{let t=h;h=!1,n(...e),h=t},f=e(i.setState,r,i);if("untracked"===v.type?null==g||g.init(f):(v.stores[v.store]=i,null==g||g.init(Object.fromEntries(Object.entries(v.stores).map(([e,t])=>[e,e===v.store?f:t.getState()])))),i.dispatchFromDevtools&&"function"==typeof i.dispatch){let e=!1,t=i.dispatch;i.dispatch=(...n)=>{"__setState"!==n[0].type||e||(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),e=!0),t(...n)}}return g.subscribe(e=>{var t;switch(e.type){case"ACTION":if("string"!=typeof e.payload){console.error("[zustand devtools middleware] Unsupported action format");return}return l(e.payload,e=>{if("__setState"===e.type){if(void 0===c){p(e.state);return}1!==Object.keys(e.state).length&&console.error(`
2                    [zustand devtools middleware] Unsupported __setState action format. 
3                    When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
4                    and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
5                    `);let t=e.state[c];if(null==t)return;JSON.stringify(i.getState())!==JSON.stringify(t)&&p(t);return}i.dispatchFromDevtools&&"function"==typeof i.dispatch&&i.dispatch(e)});case"DISPATCH":switch(e.payload.type){case"RESET":if(p(f),void 0===c)return null==g?void 0:g.init(i.getState());return null==g?void 0:g.init(a(m.name));
5case"COMMIT":if(void 0===c){null==g||g.init(i.getState());break}return null==g?void 0:g.init(a(m.name));case"ROLLBACK":return l(e.state,e=>{if(void 0===c){p(e),null==g||g.init(i.getState());return}p(e[c]),null==g||g.init(a(m.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return l(e.state,e=>{if(void 0===c){p(e);return}JSON.stringify(i.getState())!==JSON.stringify(e[c])&&p(e[c])});case"IMPORT_STATE":{let{nextLiftedState:n}=e.payload,r=null==(t=n.computedStates.slice(-1)[0])?void 0:t.state;if(!r)return;void 0===c?p(r):p(r[c]),null==g||g.send(null,n);break}case"PAUSE_RECORDING":return h=!h}return}}),f},l=(e,t)=>{let n;try{n=JSON.parse(e)}catch(e){console.error("[zustand devtools middleware] Could not parse the received json",e)}void 0!==n&&t(n)};function s(e,t){let n;try{n=e()}catch(e){return}return{getItem:e=>{var r;let a=e=>null===e?null:JSON.parse(e,null==t?void 0:t.reviver),o=null!=(r=n.getItem(e))?r:null;return o instanceof Promise?o.then(a):a(o)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,null==t?void 0:t.replacer)),removeItem:e=>n.removeItem(e)}}let d=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>d(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>d(t)(e)}}},u=(e,t)=>(n,r,a)=>{let o,i,l={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},s=!1,u=new Set,c=new Set;try{o=l.getStorage()}catch(e){}if(!o)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),n(...e)},r,a);let m=d(l.serialize),g=()=>{let e;let t=m({state:l.partialize({...r()}),version:l.version}).then(e=>o.setItem(l.name,e)).catch(t=>{e=t});if(e)throw e;return t},v=a.setState;a.setState=(e,t)=>{v(e,t),g()};let h=e((...e)=>{n(...e),g()},r,a),p=()=>{var e;if(!o)return;s=!1,u.forEach(e=>e(r()));let t=(null==(e=l.onRehydrateStorage)?void 0:e.call(l,r()))||void 0;return d(o.getItem.bind(o))(l.name).then(e=>{if(e)return l.deserialize(e)}).then(e=>{if(e){if("number"!=typeof e.version||e.version===l.version)return e.state;if(l.migrate)return l.migrate(e.state,e.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}}).then(e=>{var t;return n(i=l.merge(e,null!=(t=r())?t:h),!0),g()}).then(()=>{null==t||t(i,void 0),s=!0,c.forEach(e=>e(i))}).catch(e=>{null==t||t(void 0,e)})};return a.persist={setOptions:e=>{l={...l,...e},e.getStorage&&(o=e.getStorage())},clearStorage:()=>{null==o||o.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>p(),hasHydrated:()=>s,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},p(),i||h},c=(e,t)=>(n,r,a)=>{let o,i={storage:s(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},l=!1,u=new Set,c=new Set,m=i.storage;if(!m)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...e)},r,a);let g=()=>{let e=i.partialize({...r()});return m.setItem(i.name,{state:e,version:i.version})},v=a.setState;a.setState=(e,t)=>{v(e,t),g()};let h=e((...e)=>{n(...e),g()},r,a);a.getInitialState=()=>h;let p=()=>{var e,t;if(!m)return;l=!1,u.forEach(e=>{var t;return e(null!=(t=r())?t:h)});let a=(null==(t=i.onRehydrateStorage)?void 0:t.call(i,null!=(e=r())?e:h))||void 0;return d(m.getItem.bind(m))(i.name).then(e=>{if(e){if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];if(i.migrate)return[!0,i.migrate(e.state,e.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;let[a,l]=e;if(n(o=i.merge(l,null!=(t=r())?t:h),!0),a)return g()}).then(()=>{null==a||a(o,void 0),o=r(),l=!0,c.forEach(e=>e(o))}).catch(e=>{null==a||a(void 0,e)})};return a.persist={setOptions:e=>{i={...i,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>p(),hasHydrated:()=>l,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},i.skipHydration||p(),o||h},m=(e,t)=>
5"getStorage"in t||"serialize"in t||"deserialize"in t?(console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),u(e,t)):c(e,t)}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.