1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="566a94a2-b1f7-48fe-ace1-16984d6420f4",e._sentryDebugIdIdentifier="sentry-dbid-566a94a2-b1f7-48fe-ace1-16984d6420f4")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1304,4038],{9452:(e,t,n)=>{n.d(t,{P:()=>o,s:()=>u});var r=n(12115),a=n(37061),i=n(22741);function o(){let e=(0,a.nc)(e=>e.user),t=(0,i.useOrganizationStore)(e=>e.currentOrganization),n=(0,i.useOrganizationStore)(e=>e.isLoading),o=(0,i.useOrganizationStore)(e=>e.error),u=(0,i.useOrganizationStore)(e=>e.loadOrganization),l=(0,r.useRef)(null);(0,r.useEffect)(()=>{let r=null==e?void 0:e.organizationId,a=null==e?void 0:e.uid,i=null==e?void 0:e.organizationRole;r&&a&&(!t||t.id!==r)&&!n&&l.current!==r&&(l.current=r,u(r,a,i))},[null==e?void 0:e.organizationId,null==e?void 0:e.uid,null==e?void 0:e.organizationRole,t,n,u]);let s=(0,r.useMemo)(()=>{let n=[{id:"",name:"No Organization (Personal)",organization:null}];return t&&(null==e?void 0:e.organizationId)&&n.push({id:t.id,name:t.name,organization:t}),n},[t,null==e?void 0:e.organizationId]),c=!!((null==e?void 0:e.organizationId)&&t);return{organizations:s,currentOrganization:t,hasOrganization:c,isLoading:n,error:o}}function u(e,t){return void 0!==t?t:(null==e?void 0:e.id)||""}},32848:(e,t,n)=>{n.d(t,{g:()=>a});var r=n(37285);function a(e,t){var n,a,i;return e&&(0,r.Nz)(e.entryContext)?{budgetAllocated:e.entryContext.entryAmount,budgetCurrency:e.entryContext.entryCurrency.toUpperCase()}:e&&void 0!==e.allocated?(e.entryContext,e.currency,{budgetAllocated:e.allocated,budgetCurrency:(null!=(a=e.currency)?a:"USD").toUpperCase()}):{budgetAllocated:void 0,budgetCurrency:null!=(i=null==e||null==(n=e.currency)?void 0:n.toUpperCase())?i:t}}},39931:(e,t,n)=>{n.d(t,{I:()=>o});var r=n(12115),a=n(60294),i=n(92844);function o(){let{settings:e,hasOrganization:t}=(0,a.m9)();return(0,r.useMemo)(()=>{let n=e.domesticCurrency,r=(0,i.oG)(n);return{currency:n,symbol:r.symbol,label:r.label,code:r.code,isLoaded:t,format:(e,t)=>(0,i.vv)(e,n,t)}},[e.domesticCurrency,t])}},59908:(e,t,n)=>{n.d(t,{EE:()=>s,JE:()=>c,Wj:()=>l,fE:()=>u,pH:()=>d});var r=n(42040),a=n(66444),i=n(77605);function o(e,t,n){if(!Number.isFinite(e))return"non_finite_amount";if(t!==r.gp.USD){var a;if(t!==n.orgCurrency)return"unconvertible_currency";if(!(void 0!==(a=n.orgToUsdRate)&&Number.isFinite(a)&&a>0))return"no_rate"}}function u(e,t){return void 0===o(0,e,t)}function l(e,t,n){var a;return arguments.length>3&&void 0!==arguments[3]&&arguments[3],void 0!==o(e,t,n)?void 0:t===r.gp.USD?e:(0,i.fk)(e,t,null!=(a=n.orgToUsdRate)?a:0)}function s(e,t,n){var a;return arguments.length>3&&void 0!==arguments[3]&&arguments[3],void 0!==o(e,t,n)?void 0:t===r.gp.USD?e:e*(null!=(a=n.orgToUsdRate)?a:0)}function c(e,t,n,r){let i=l(e,t,n,{field:r});if(void 0===i)throw new a.yI({message:"Cannot save ".concat(r,": no valid exchange rate is available for ")+"".concat(t.toUpperCase(),". Configure exchange rates in organization settings."),field:r,context:{amount:e,entryCurrency:t,orgCurrency:n.orgCurrency,orgToUsdRate:n.orgToUsdRate}});return i}function d(e,t,n){var a;let i=c(e,t.orgCurrency,t,n),o=t.orgCurrency===r.gp.USD?1:null!=(a=t.orgToUsdRate)?a:0;return{amountUSD:i,entryContext:{entryCurrency:t.orgCurrency,entryAmount:e,entryRate:o,entryTimestamp:new Date().toISOString()}}}},60110:(e,t,n)=>{n.d(t,{AM:()=>s,YH:()=>d,au:()=>l,dR:()=>o,ds:()=>c,uX:()=>u});var r=n(42040),a=n(66444),i=n(56783);function o(e){if(!(0,i.o)(e))throw new a.yI({message:"usd() requires a finite number",field:"value",severity:a.xe.ERROR,context:{fn:"usd",value:e}});return{value:e,unit:r.gp.USD}}function u(e){if(!(0,i.o)(e.value))throw new a.yI({message:"usdVal() requires a finite MeasuredValue.value",field:"value",severity:a.xe.ERROR,context:{fn:"usdVal",value:e.value}});return e.value}function l(e,t){if((0,i.o)(e)&&(0,i.o)(t.value))return{value:e*t.value,unit:t.unit}}function s(e){if(0===e.length)return o(0);let t=e[0].unit,n=0;for(let r of e){if(r.unit!==t||!(0,i.o)(r.value))return;n+=r.value}return{value:n,unit:t}}function c(e,t){if(e.unit===t.unit&&(0,i.o)(e.value)&&(0,i.o)(t.value))return{value:e.value-t.value,unit:e.unit}}function d(e,t){if(e.unit===t.unit&&(0,i.o)(e.value)&&(0,i.o)(t.value)&&0!==t.value)return(e.value-t.value)/t.value*100}},60294:(e,t,n)=>{n.d(t,{t:()=>r.OrganizationCrudService,fC:()=>u,m9:()=>i.m,EH:()=>a.useOrganizationStore}),n(55652),n(43855),n(2757),n(30781);var r=n(48558);n(13409),n(88912);var a=n(22741);n(9452);var i=n(81745);
1n(357),n(81996),n(52917);let o={CZ:"Czech Republic",DE:"Germany",AT:"Austria",PL:"Poland",SK:"Slovakia",HU:"Hungary",FR:"France",IT:"Italy",ES:"Spain",NL:"Netherlands",BE:"Belgium",CH:"Switzerland",GB:"United Kingdom",US:"United States",CA:"Canada",CN:"China",JP:"Japan",KR:"South Korea",TW:"Taiwan",IN:"India",AU:"Australia"};function u(e){var t,n;let r=[e.city,e.state,e.postalCode].filter(Boolean).join(", ");return[e.line1,e.line2,r,null!=(n=o[t=e.country])?n:t].filter(Boolean).join("\n")}},77605:(e,t,n)=>{n.d(t,{_6:()=>i,fk:()=>a,r3:()=>o});var r=n(42040);function a(e,t,n){return Number.isFinite(e)&&Number.isFinite(n)&&!(n<=0)?t===r.gp.USD?e:e/n:0}function i(e){if(void 0===e)return!0;try{let t=new Date(e);if(isNaN(t.getTime()))return!0;return(new Date().getTime()-t.getTime())/36e5>24}catch(e){return!0}}function o(e,t){if(!Number.isFinite(e))return 0;let n=Math.pow(10,2*(t!==r.gp.JPY));return Math.round(e*n)/n}},81745:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(12115),a=n(37061),i=n(22741),o=n(48558),u=n(55652);function l(){let e=(0,a.nc)(e=>e.user),t=(0,i.useOrganizationStore)(e=>e.currentOrganization),n=(0,i.useOrganizationStore)(e=>e.setCurrentOrganization),l=(0,i.useOrganizationStore)(e=>e.userRole),[s,c]=(0,r.useState)(!1),[d,m]=(0,r.useState)(null),g=(0,r.useMemo)(()=>{let t=(null==e?void 0:e.systemRole)==="system_admin",n="org_admin"===l;return t||n},[null==e?void 0:e.systemRole,l]),f=(0,r.useMemo)(()=>(null==t?void 0:t.settings)?{...t.settings,domesticCurrency:t.settings.domesticCurrency||u.Ax.domesticCurrency}:{...u.Ax},[null==t?void 0:t.settings]),v=(0,r.useCallback)(async e=>{if(!t)return void m("No organization selected");if(!g)return void m("You do not have permission to edit organization settings");c(!0),m(null);try{let r=await o.OrganizationCrudService.updateOrganizationSettings(t.id,{domesticCurrency:e});n(r,l)}catch(e){throw m(e instanceof Error?e.message:"Failed to update settings"),e}finally{c(!1)}},[t,g,n,l]),y=(0,r.useMemo)(()=>"org_admin"===l,[l]),p=(0,r.useCallback)(async e=>{if(!t)return void m("No organization selected");if(!y)return void m("Only an organization admin can change forecast sharing");c(!0),m(null);try{let r=await o.OrganizationCrudService.updateForecastSharing(t.id,e);n({...t,settings:{...t.settings,forecastSharing:r.settings}},l)}catch(e){throw m(e instanceof Error?e.message:"Failed to update forecast sharing"),e}finally{c(!1)}},[t,y,n,l]),h=(0,r.useCallback)(()=>{m(null)},[]);return{settings:f,canEditSettings:g,isSaving:s,error:d,hasOrganization:!!t,organizationId:(null==t?void 0:t.id)||null,organizationName:(null==t?void 0:t.name)||null,updateDomesticCurrency:v,canEditForecastSharing:y,updateForecastSharing:p,clearError:h}}},81996:(e,t,n)=>{n.d(t,{S:()=>u});var r=n(12115),a=n(37061),i=n(22741),o=n(52917);function u(){let e=(0,a.nc)(e=>e.user),t=(0,i.useOrganizationStore)(e=>e.userRole),n=(0,i.useOrganizationStore)(e=>e.currentOrganization),u=(0,r.useMemo)(()=>({systemRole:(null==e?void 0:e.systemRole)||"user",organizationId:(null==n?void 0:n.id)||null,organizationRole:t}),[null==e?void 0:e.systemRole,null==n?void 0:n.id,t]),l=(0,r.useMemo)(()=>(0,o.cb)((0,o.kj)(u)),[u]),s=(0,r.useMemo)(()=>(e,t)=>(0,o._m)(u,e,t),[u]),c=(0,r.useMemo)(()=>(e,t)=>(0,o.UC)(u,e,t),[u]),d=(0,r.useMemo)(()=>"design_admin"===u.systemRole,[u]),m=(0,r.useMemo)(()=>(0,o.yN)(u),[u]);return{can:s,deniedMessage:c,access:u,roleName:l,isDesignAdmin:d,canReviewValidation:m}}},88912:(e,t,n)=>{n.d(t,{D:()=>g});var r=n(39390),a=n(28516),i=n(17642),o=n(37061),u=n(66444),l=n(43855);let s=["pending","accepted","rejected","implemented"];function c(e){return"object"==typeof e&&null!==e&&"string"==typeof e.requestId&&("change"===e.kind||"proposal"===e.kind)&&("container"===e.resourceType||"pallet"===e.resourceType)&&"string"==typeof e.title&&"string"==typeof e.description&&s.includes(e.status)&&"string"==typeof e.createdBy&&"string"==typeof e.createdAt}var d=n(25878);let m="templateRequests";class g{static async createTemplateRequest(e){var t,n,l;let s=e.title.trim(),c=e.description.trim();if(!s)throw new u.yI({message:"Title is required",field:"title"});if(!c)throw new u.yI({message:"Description is required",field:"description"});let g=i.UserContextService.getOwnershipFields(),f=(0,r.doc)((0,r.collection)(a.db,m)).id,v=null==(t=o.nc.getState().user)?void 0:t.email,y=null==(n=e.resourceId)?void 0:n.trim(),p=null==(l=e.resourceName)?void 0:l.trim(),h={requestId:f,kind:e.kind,resourceType:e.resourceType,title:s,description:c,status:"pending",createdBy:g.createdBy,organizationId:g.organizationId,createdAt:new Date().toISOString(),...y?{resourceId:y}:{},...p?{resourceName:p}:{}
1,...v?{createdByEmail:v}:{}};return await (0,r.setDoc)((0,r.doc)(a.db,m,f),h),!function(e,t){var n;let r=(0,d.dv)(e),a="change"===t.kind?"Template Change Requested":"New Standard Proposed",i=t.resourceName?"".concat(t.resourceName," (").concat(t.resourceType,")"):t.resourceType;r.createNotification({recipientUserId:"role:system_admin",type:"template_request_created",title:a,message:"".concat(t.title," â ").concat(i),link:"/dashboard/admin/template-requests",metadata:{requestId:t.requestId,kind:t.kind,resourceType:t.resourceType},organizationId:null!=(n=t.organizationId)?n:void 0}).catch(e=>{})}(a.db,h),h}static async listTemplateRequests(e){let t=i.UserContextService.getCurrentContext(),n=(0,r.collection)(a.db,m),o=(0,r.query)(n);"system_admin"!==t.systemRole&&i.UserContextService.getQueryFilters().forEach(e=>{let[t,n,a]=e;o=(0,r.query)(o,(0,r.where)(t,n,a))});let u=(await (0,r.getDocs)(o)).docs.map(e=>e.data()).filter(c);return((null==e?void 0:e.status)?u.filter(t=>t.status===e.status):u).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))}static async updateRequestStatus(e,t,n,o){if(!(0,l.FV)(o))throw new u.lR({message:"Only system administrators can review template requests",context:{requestId:e,attemptedStatus:t}});if(!s.includes(t))throw new u.yI({message:"Invalid template request status: ".concat(String(t)),field:"status",value:t});let g=(0,r.doc)(a.db,m,e),f=await (0,r.getDoc)(g),v=f.exists()?f.data():null;if(!c(v))throw new u.m_({resourceType:"TemplateRequest",resourceId:e});let y=i.UserContextService.getCurrentContext();if(!y.userId)throw new u.lR({message:"User context required to review template requests",context:{requestId:e}});let p=new Date().toISOString(),h=null==n?void 0:n.trim();await (0,r.updateDoc)(g,{status:t,reviewedBy:y.userId,reviewedAt:p,...h?{reviewNote:h}:{}});let w={...v,status:t,reviewedBy:y.userId,reviewedAt:p,...h?{reviewNote:h}:{}};return!function(e,t){var n,r;let a=(0,d.dv)(e),i=null!=(n=({accepted:"Accepted",rejected:"Rejected",implemented:"Implemented"})[t.status])?n:t.status,o=t.reviewNote?" Reviewer note: ".concat(t.reviewNote):"";a.createNotification({recipientUserId:t.createdBy,type:"template_request_reviewed",title:"Template Request ".concat(i),message:'Your request "'.concat(t.title,'" has been ').concat(i.toLowerCase()," by the OptiPacker team.").concat(o),metadata:{requestId:t.requestId,kind:t.kind,resourceType:t.resourceType,status:t.status},organizationId:null!=(r=t.organizationId)?r:void 0}).catch(e=>{})}(a.db,w),w}}},89443:(e,t,n)=>{n.d(t,{Cm:()=>u,G3:()=>l,Go:()=>y,Hy:()=>m,UC:()=>d,Uz:()=>f,fT:()=>g,gH:()=>s,h4:()=>v,sp:()=>c});var r=n(42040),a=n(92844),i=n(77605);let o={decimals:2,showCode:!1,showUSDEquivalent:!0,locale:"en-US",showStaleWarning:!0},u="â";function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={...o,...n};if(!Number.isFinite(e))return"".concat((0,a.Qn)(t),"â");let u=(0,i.r3)(e,t),l=(0,a.Qn)(t),s=new Intl.NumberFormat(r.locale,{minimumFractionDigits:r.decimals,maximumFractionDigits:r.decimals}).format(u);return r.showCode?"".concat(l).concat(s," ").concat((0,a.D9)(t)):"".concat(l).concat(s)}function s(e,t){if(!Number.isFinite(e))return"".concat((0,a.Qn)(t),"â");let n=new Intl.NumberFormat(o.locale,{maximumSignificantDigits:12}).format(e);return"".concat((0,a.Qn)(t)).concat(n)}function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2;if(!Number.isFinite(e))return"â ".concat((0,a.D9)(t));let r=(0,i.r3)(e,t),o=new Intl.NumberFormat("en-US",{minimumFractionDigits:n,maximumFractionDigits:n}).format(r);return"".concat(o," ").concat((0,a.D9)(t))}function d(e,t,n,a,o,u){return{primary:{value:t,currency:n,formatted:l(t,n)},secondary:{value:e,currency:r.gp.USD,formatted:l(e,r.gp.USD)},rateInfo:{rate:a,source:o,timestamp:u,isStale:"manual"!==o&&(0,i._6)(u)}}}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...o,...t},a=l(e.primary.value,e.primary.currency,{decimals:n.decimals,locale:n.locale});if(!n.showUSDEquivalent||e.primary.currency===r.gp.USD)return a;let i=l(e.secondary.value,r.gp.USD,{decimals:n.decimals,locale:n.locale});return"".concat(a," (").concat(i,")")}function g(e,t){switch(e){case"fallback":return"fallback rate";case"cached":return t?"stale rate":"cached rate";case"api":return t?"stale rate":void 0;case"manual":return;default:return e}}function f(e){let t=["Original: ".concat(e.secondary.formatted),"Rate: ".concat(function(e,t){if(!Number.isFinite(e))return"1 USD = â ".concat((0,a.D9)(t));let n=e.toFixed(4);return"1 USD = ".concat(n," ").concat((0,a.D9)(t))}(e.rateInfo.rate,e.primary.currency)),"Source: ".concat(function(e){switch(e){case"api":return"Live rate";case"manual":return"Manual rate";case"cached":return"Cached rate";case"fallback":return"Fallback rate";default:return"Unknown"}}(e.rateInfo.source)),"Updated: ".concat(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if(void 0===e)return"Unknown";try{let n=new Date(e);return new Intl.DateTimeFormat(t,{dateStyle:"medium",timeStyle:"short"}).format(n)}catch(e){return"Unknown"}}(e.rateInfo.timestamp))];return e.rateInfo.isStale&&t.push("â ï¸ Rate may be outdated"),t.join("\n")}function v(e){if(!e||"string"!=typeof e)return NaN;let t=parseFloat(e.replace(/[â¬$£¥â¹A-Za-z\s]/g,"").replace(/,/g,""));return!Number.isFinite(t)||t<0||t>1e12?NaN:t}function y(e){return Number.isFinite(e)?e<0?{isValid:!1,error:"Value cannot be negative"}:e>1e12?{isValid:!1,error:"Value is too large"}:{isValid:!0}:{isValid:!1,error:"Invalid number"}}}
1,91304:(e,t,n)=>{n.d(t,{AM:()=>r.AM,Cm:()=>i.Cm,G3:()=>i.G3,Go:()=>i.Go,Hy:()=>i.Hy,UC:()=>i.UC,Uz:()=>i.Uz,YH:()=>r.YH,au:()=>r.au,dR:()=>r.dR,ds:()=>r.ds,fT:()=>i.fT,fk:()=>a.fk,gH:()=>i.gH,h4:()=>i.h4,sp:()=>i.sp});var r=n(60110),a=n(77605),i=n(89443);n(32848),n(59908)}}]);
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.